bbj-screen-widget 2.4.62 → 2.4.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (738) hide show
  1. package/bbj-screen-widget.d.ts +119 -0
  2. package/bbj-screen-widget.metadata.json +1 -0
  3. package/bundles/bbj-screen-widget-core.umd.js +614 -0
  4. package/bundles/bbj-screen-widget-core.umd.js.map +1 -0
  5. package/bundles/bbj-screen-widget-core.umd.min.js +2 -0
  6. package/bundles/bbj-screen-widget-core.umd.min.js.map +1 -0
  7. package/bundles/bbj-screen-widget.umd.js +21735 -0
  8. package/bundles/bbj-screen-widget.umd.js.map +1 -0
  9. package/bundles/bbj-screen-widget.umd.min.js +2 -0
  10. package/bundles/bbj-screen-widget.umd.min.js.map +1 -0
  11. package/core/bbj-screen-widget-core.d.ts +4 -0
  12. package/core/bbj-screen-widget-core.metadata.json +1 -0
  13. package/core/model/screen-widget.config.d.ts +7 -0
  14. package/core/package.json +10 -2
  15. package/core/public_api.d.ts +2 -0
  16. package/core/service/baidu-map.service.d.ts +18 -0
  17. package/esm2015/bbj-screen-widget.js +120 -0
  18. package/esm2015/core/bbj-screen-widget-core.js +5 -0
  19. package/esm2015/core/model/screen-widget.config.js +3 -0
  20. package/esm2015/core/public_api.js +3 -0
  21. package/esm2015/core/service/baidu-map.service.js +108 -0
  22. package/esm2015/lib/announcement/announcement.component.js +80 -0
  23. package/esm2015/lib/announcement/announcement.module.js +25 -0
  24. package/esm2015/lib/audio/audio.component.js +167 -0
  25. package/esm2015/lib/audio/audio.module.js +20 -0
  26. package/esm2015/lib/background/background.component.js +52 -0
  27. package/esm2015/lib/background/background.module.js +19 -0
  28. package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.component.js +323 -0
  29. package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.module.js +20 -0
  30. package/esm2015/lib/basic-bar-chart/basic-bar-chart.component.js +604 -0
  31. package/esm2015/lib/basic-bar-chart/basic-bar-chart.module.js +27 -0
  32. package/esm2015/lib/basic-line-chart/basic-line-chart.component.js +782 -0
  33. package/esm2015/lib/basic-line-chart/basic-line-chart.module.js +20 -0
  34. package/esm2015/lib/basic-pie-chart/basic-pie-chart.component.js +471 -0
  35. package/esm2015/lib/basic-pie-chart/basic-pie-chart.module.js +20 -0
  36. package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.component.js +233 -0
  37. package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.module.js +21 -0
  38. package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.component.js +503 -0
  39. package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.module.js +19 -0
  40. package/esm2015/lib/bubble-chart/bubble-chart.component.js +348 -0
  41. package/esm2015/lib/bubble-chart/bubble-chart.module.js +20 -0
  42. package/esm2015/lib/bulletin-board/bulletin-board.component.js +160 -0
  43. package/esm2015/lib/bulletin-board/bulletin-board.module.js +23 -0
  44. package/esm2015/lib/button/button.component.js +186 -0
  45. package/esm2015/lib/button/button.module.js +21 -0
  46. package/esm2015/lib/calendar/background-events/background-events.component.js +65 -0
  47. package/esm2015/lib/calendar/calendar-events-child.js +28 -0
  48. package/esm2015/lib/calendar/calendar.component.js +168 -0
  49. package/esm2015/lib/calendar/calendar.module.js +32 -0
  50. package/esm2015/lib/calendar/calendar.util.js +12 -0
  51. package/esm2015/lib/calendar/events/events.component.js +75 -0
  52. package/esm2015/lib/checkbox/checkbox.component.js +333 -0
  53. package/esm2015/lib/checkbox/checkbox.module.js +21 -0
  54. package/esm2015/lib/cross-table/cross-table.component.js +291 -0
  55. package/esm2015/lib/cross-table/cross-table.module.js +20 -0
  56. package/esm2015/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.js +747 -0
  57. package/esm2015/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.js +278 -0
  58. package/esm2015/lib/custom-baidu-map/base-layer.js +53 -0
  59. package/esm2015/lib/custom-baidu-map/custom-baidu-map.component.js +675 -0
  60. package/esm2015/lib/custom-baidu-map/custom-baidu-map.module.js +46 -0
  61. package/esm2015/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.js +116 -0
  62. package/esm2015/lib/custom-baidu-map/wind-layer/wind-layer.component.js +331 -0
  63. package/esm2015/lib/date-picker/date-picker.component.js +447 -0
  64. package/esm2015/lib/date-picker/date-picker.module.js +22 -0
  65. package/esm2015/lib/funnel-chart/funnel-chart.component.js +241 -0
  66. package/esm2015/lib/funnel-chart/funnel-chart.module.js +20 -0
  67. package/esm2015/lib/gantt/gantt.component.js +222 -0
  68. package/esm2015/lib/gantt/gantt.module.js +39 -0
  69. package/esm2015/lib/gauge/gauge.component.js +324 -0
  70. package/esm2015/lib/gauge/gauge.module.js +20 -0
  71. package/esm2015/lib/gauge-progress/gauge-progress.component.js +356 -0
  72. package/esm2015/lib/gauge-progress/gauge.module.js +22 -0
  73. package/esm2015/lib/general-text/general-text.component.js +144 -0
  74. package/esm2015/lib/general-text/general-text.module.js +20 -0
  75. package/esm2015/lib/iconfont/icon.js +199 -0
  76. package/esm2015/lib/iconfont/iconfont.component.js +56 -0
  77. package/esm2015/lib/iconfont/iconfont.module.js +20 -0
  78. package/esm2015/lib/iframe/iframe.component.js +46 -0
  79. package/esm2015/lib/iframe/iframe.module.js +20 -0
  80. package/esm2015/lib/image/image.component.js +98 -0
  81. package/esm2015/lib/image/image.module.js +19 -0
  82. package/esm2015/lib/item-swiper/item-swiper.component.js +343 -0
  83. package/esm2015/lib/item-swiper/item-swiper.module.js +22 -0
  84. package/esm2015/lib/line-bar-chart/line-bar-chart.component.js +398 -0
  85. package/esm2015/lib/line-bar-chart/line-bar-chart.module.js +20 -0
  86. package/esm2015/lib/line-light-flow/line-light-flow.component.js +241 -0
  87. package/esm2015/lib/line-light-flow/line-light-flow.module.js +24 -0
  88. package/esm2015/lib/liquid-fill/liquid-fill.component.js +158 -0
  89. package/esm2015/lib/liquid-fill/liquid-fill.module.js +20 -0
  90. package/esm2015/lib/marquee/marquee.component.js +110 -0
  91. package/esm2015/lib/marquee/marquee.module.js +19 -0
  92. package/esm2015/lib/mip-anim/mip-anim.component.js +26 -0
  93. package/esm2015/lib/mip-anim/mip-anim.module.js +19 -0
  94. package/esm2015/lib/multi-title-gauge/multi-title-gauge.component.js +277 -0
  95. package/esm2015/lib/multi-title-gauge/multi-title-gauge.module.js +22 -0
  96. package/esm2015/lib/number-flop/number-flop.component.js +124 -0
  97. package/esm2015/lib/number-flop/number-flop.module.js +19 -0
  98. package/esm2015/lib/parent-container/parent-container.component.js +21 -0
  99. package/esm2015/lib/parent-container/parent-container.module.js +19 -0
  100. package/esm2015/lib/percent-pie-chart/percent-pie-chart.component.js +248 -0
  101. package/esm2015/lib/percent-pie-chart/percent-pie-chart.module.js +20 -0
  102. package/esm2015/lib/pie3d-chart/pie3d-chart.component.js +303 -0
  103. package/esm2015/lib/pie3d-chart/pie3d-chart.module.js +19 -0
  104. package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.js +431 -0
  105. package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.js +19 -0
  106. package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.js +252 -0
  107. package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.js +19 -0
  108. package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.js +124 -0
  109. package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.js +19 -0
  110. package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.js +359 -0
  111. package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.js +21 -0
  112. package/esm2015/lib/planimetric-map2d/planimetric-map2d.component.js +753 -0
  113. package/esm2015/lib/planimetric-map2d/planimetric-map2d.module.js +34 -0
  114. package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.js +128 -0
  115. package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.js +19 -0
  116. package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.js +242 -0
  117. package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.js +19 -0
  118. package/esm2015/lib/planimetric-map3d/planimetric-map3d.component.js +265 -0
  119. package/esm2015/lib/planimetric-map3d/planimetric-map3d.module.js +22 -0
  120. package/esm2015/lib/radar-chart/radar-chart.component.js +255 -0
  121. package/esm2015/lib/radar-chart/radar-chart.module.js +20 -0
  122. package/esm2015/lib/radio/radio.component.js +148 -0
  123. package/esm2015/lib/radio/radio.module.js +21 -0
  124. package/esm2015/lib/rate/rate.component.js +57 -0
  125. package/esm2015/lib/rate/rate.module.js +23 -0
  126. package/esm2015/lib/scatter3d/scatter3d.component.js +166 -0
  127. package/esm2015/lib/scatter3d/scatter3d.module.js +20 -0
  128. package/esm2015/lib/screen-widget.module.js +536 -0
  129. package/esm2015/lib/search/search.component.js +130 -0
  130. package/esm2015/lib/search/search.module.js +29 -0
  131. package/esm2015/lib/select/select.component.js +359 -0
  132. package/esm2015/lib/select/select.module.js +22 -0
  133. package/esm2015/lib/shape/shape.component.js +248 -0
  134. package/esm2015/lib/shape/shape.module.js +19 -0
  135. package/esm2015/lib/shared/component/video-player/video-player.component.js +114 -0
  136. package/esm2015/lib/shared/component/video-player/video-player.module.js +14 -0
  137. package/esm2015/lib/shared/service/common.service.js +39 -0
  138. package/esm2015/lib/shared/service/file-url.service.js +12 -0
  139. package/esm2015/lib/shared/service/gaode-map.service.js +36 -0
  140. package/esm2015/lib/shared/service/highcharts.service.js +36 -0
  141. package/esm2015/lib/shared/service/http.service.js +20 -0
  142. package/esm2015/lib/shared/util/base.util.js +5 -0
  143. package/esm2015/lib/shared/util/echarts.util.js +12 -0
  144. package/esm2015/lib/shared/util/style.util.js +19 -0
  145. package/esm2015/lib/shuffling-list/color.pipe.js +23 -0
  146. package/esm2015/lib/shuffling-list/shuffling-list.component.js +601 -0
  147. package/esm2015/lib/shuffling-list/shuffling-list.module.js +22 -0
  148. package/esm2015/lib/table/table.component.js +657 -0
  149. package/esm2015/lib/table/table.module.js +38 -0
  150. package/esm2015/lib/tabs/tab/tab.component.js +27 -0
  151. package/esm2015/lib/tabs/tabs.component.js +85 -0
  152. package/esm2015/lib/tabs/tabs.module.js +22 -0
  153. package/esm2015/lib/temporary-data/temporary-data.component.js +49 -0
  154. package/esm2015/lib/temporary-data/temporary-data.module.js +20 -0
  155. package/esm2015/lib/time-picker/time-picker.component.js +112 -0
  156. package/esm2015/lib/time-picker/time-picker.module.js +21 -0
  157. package/esm2015/lib/timer/timer.component.js +108 -0
  158. package/esm2015/lib/timer/timer.module.js +20 -0
  159. package/esm2015/lib/tree-control/tree-control.component.js +435 -0
  160. package/esm2015/lib/tree-control/tree-control.module.js +24 -0
  161. package/esm2015/lib/tree-ring-chart/tree-ring-chart.component.js +215 -0
  162. package/esm2015/lib/tree-ring-chart/tree-ring-chart.module.js +20 -0
  163. package/esm2015/lib/upload/upload.component.js +127 -0
  164. package/esm2015/lib/upload/upload.module.js +22 -0
  165. package/esm2015/lib/video-grid/video-grid.component.js +140 -0
  166. package/esm2015/lib/video-grid/video-grid.module.js +22 -0
  167. package/esm2015/lib/visual-map-chart/visual-map-chart.component.js +395 -0
  168. package/esm2015/lib/visual-map-chart/visual-map-chart.module.js +20 -0
  169. package/esm2015/lib/vote/vote.component.js +100 -0
  170. package/esm2015/lib/vote/vote.module.js +21 -0
  171. package/esm2015/lib/weather/weather.component.js +92 -0
  172. package/esm2015/lib/weather/weather.module.js +21 -0
  173. package/esm2015/lib/wordart/wordart.component.js +84 -0
  174. package/esm2015/lib/wordart/wordart.module.js +19 -0
  175. package/esm2015/lib/workbench-widget.module.js +620 -0
  176. package/esm2015/public-api.js +40 -0
  177. package/fesm2015/bbj-screen-widget-core.js +114 -0
  178. package/fesm2015/bbj-screen-widget-core.js.map +1 -0
  179. package/fesm2015/bbj-screen-widget.js +20633 -0
  180. package/fesm2015/bbj-screen-widget.js.map +1 -0
  181. package/lib/announcement/announcement.component.d.ts +13 -0
  182. package/lib/announcement/announcement.module.d.ts +5 -0
  183. package/lib/audio/audio.component.d.ts +22 -0
  184. package/lib/audio/audio.module.d.ts +4 -0
  185. package/lib/background/background.component.d.ts +12 -0
  186. package/lib/background/background.module.d.ts +4 -0
  187. package/lib/bar-chart-three-d/bar-chart-three-d.component.d.ts +30 -0
  188. package/lib/bar-chart-three-d/bar-chart-three-d.module.d.ts +4 -0
  189. package/lib/basic-bar-chart/basic-bar-chart.component.d.ts +105 -0
  190. package/lib/basic-bar-chart/basic-bar-chart.module.d.ts +5 -0
  191. package/lib/basic-line-chart/basic-line-chart.component.d.ts +102 -0
  192. package/lib/basic-line-chart/basic-line-chart.module.d.ts +4 -0
  193. package/lib/basic-pie-chart/basic-pie-chart.component.d.ts +56 -0
  194. package/lib/basic-pie-chart/basic-pie-chart.module.d.ts +4 -0
  195. package/lib/basic-planimetric-map/basic-planimetric-map.component.d.ts +18 -0
  196. package/lib/basic-planimetric-map/basic-planimetric-map.module.d.ts +4 -0
  197. package/lib/breathing-bubble-layer/breathing-bubble-layer.component.d.ts +210 -0
  198. package/lib/breathing-bubble-layer/breathing-bubble-layer.module.d.ts +4 -0
  199. package/lib/bubble-chart/bubble-chart.component.d.ts +75 -0
  200. package/lib/bubble-chart/bubble-chart.module.d.ts +4 -0
  201. package/lib/bulletin-board/bulletin-board.component.d.ts +25 -0
  202. package/lib/bulletin-board/bulletin-board.module.d.ts +4 -0
  203. package/lib/button/button.component.d.ts +25 -0
  204. package/lib/button/button.module.d.ts +4 -0
  205. package/lib/calendar/background-events/background-events.component.d.ts +10 -0
  206. package/lib/calendar/calendar-events-child.d.ts +12 -0
  207. package/lib/calendar/calendar.component.d.ts +27 -0
  208. package/lib/calendar/calendar.module.d.ts +4 -0
  209. package/lib/calendar/calendar.util.d.ts +6 -0
  210. package/lib/calendar/events/events.component.d.ts +13 -0
  211. package/lib/checkbox/checkbox.component.d.ts +45 -0
  212. package/lib/checkbox/checkbox.module.d.ts +4 -0
  213. package/lib/cross-table/cross-table.component.d.ts +30 -0
  214. package/lib/cross-table/cross-table.module.d.ts +4 -0
  215. package/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.d.ts +72 -0
  216. package/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.d.ts +23 -0
  217. package/lib/custom-baidu-map/base-layer.d.ts +16 -0
  218. package/lib/custom-baidu-map/custom-baidu-map.component.d.ts +93 -0
  219. package/lib/custom-baidu-map/custom-baidu-map.module.d.ts +4 -0
  220. package/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.d.ts +16 -0
  221. package/lib/custom-baidu-map/wind-layer/wind-layer.component.d.ts +28 -0
  222. package/lib/date-picker/date-picker.component.d.ts +63 -0
  223. package/lib/date-picker/date-picker.module.d.ts +4 -0
  224. package/lib/funnel-chart/funnel-chart.component.d.ts +24 -0
  225. package/lib/funnel-chart/funnel-chart.module.d.ts +4 -0
  226. package/lib/gantt/gantt.component.d.ts +25 -0
  227. package/lib/gantt/gantt.module.d.ts +4 -0
  228. package/lib/gauge/gauge.component.d.ts +37 -0
  229. package/lib/gauge/gauge.module.d.ts +4 -0
  230. package/lib/gauge-progress/gauge-progress.component.d.ts +46 -0
  231. package/lib/gauge-progress/gauge.module.d.ts +5 -0
  232. package/lib/general-text/general-text.component.d.ts +21 -0
  233. package/lib/general-text/general-text.module.d.ts +4 -0
  234. package/lib/iconfont/icon.d.ts +1 -0
  235. package/lib/iconfont/iconfont.component.d.ts +11 -0
  236. package/lib/iconfont/iconfont.module.d.ts +4 -0
  237. package/lib/iframe/iframe.component.d.ts +10 -0
  238. package/lib/iframe/iframe.module.d.ts +4 -0
  239. package/lib/image/image.component.d.ts +21 -0
  240. package/lib/image/image.module.d.ts +4 -0
  241. package/lib/item-swiper/item-swiper.component.d.ts +41 -0
  242. package/lib/item-swiper/item-swiper.module.d.ts +5 -0
  243. package/lib/line-bar-chart/line-bar-chart.component.d.ts +63 -0
  244. package/lib/line-bar-chart/line-bar-chart.module.d.ts +4 -0
  245. package/lib/line-light-flow/line-light-flow.component.d.ts +26 -0
  246. package/lib/line-light-flow/line-light-flow.module.d.ts +4 -0
  247. package/lib/liquid-fill/liquid-fill.component.d.ts +18 -0
  248. package/lib/liquid-fill/liquid-fill.module.d.ts +4 -0
  249. package/lib/marquee/marquee.component.d.ts +20 -0
  250. package/lib/marquee/marquee.module.d.ts +4 -0
  251. package/lib/mip-anim/mip-anim.component.d.ts +6 -0
  252. package/lib/mip-anim/mip-anim.module.d.ts +4 -0
  253. package/lib/multi-title-gauge/multi-title-gauge.component.d.ts +26 -0
  254. package/lib/multi-title-gauge/multi-title-gauge.module.d.ts +4 -0
  255. package/lib/number-flop/number-flop.component.d.ts +22 -0
  256. package/lib/number-flop/number-flop.module.d.ts +4 -0
  257. package/lib/parent-container/parent-container.component.d.ts +9 -0
  258. package/lib/parent-container/parent-container.module.d.ts +4 -0
  259. package/lib/percent-pie-chart/percent-pie-chart.component.d.ts +24 -0
  260. package/lib/percent-pie-chart/percent-pie-chart.module.d.ts +4 -0
  261. package/lib/pie3d-chart/pie3d-chart.component.d.ts +30 -0
  262. package/lib/pie3d-chart/pie3d-chart.module.d.ts +4 -0
  263. package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.d.ts +206 -0
  264. package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.d.ts +4 -0
  265. package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.d.ts +15 -0
  266. package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.d.ts +4 -0
  267. package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.d.ts +15 -0
  268. package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.d.ts +4 -0
  269. package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.d.ts +49 -0
  270. package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.d.ts +4 -0
  271. package/lib/planimetric-map2d/planimetric-map2d.component.d.ts +49 -0
  272. package/lib/planimetric-map2d/planimetric-map2d.module.d.ts +4 -0
  273. package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.d.ts +14 -0
  274. package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.d.ts +4 -0
  275. package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.d.ts +41 -0
  276. package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.d.ts +4 -0
  277. package/lib/planimetric-map3d/planimetric-map3d.component.d.ts +29 -0
  278. package/lib/planimetric-map3d/planimetric-map3d.module.d.ts +4 -0
  279. package/lib/radar-chart/radar-chart.component.d.ts +24 -0
  280. package/lib/radar-chart/radar-chart.module.d.ts +4 -0
  281. package/lib/radio/radio.component.d.ts +21 -0
  282. package/lib/radio/radio.module.d.ts +4 -0
  283. package/lib/rate/rate.component.d.ts +13 -0
  284. package/lib/rate/rate.module.d.ts +4 -0
  285. package/lib/scatter3d/scatter3d.component.d.ts +25 -0
  286. package/lib/scatter3d/scatter3d.module.d.ts +4 -0
  287. package/lib/screen-widget.module.d.ts +4 -0
  288. package/lib/search/search.component.d.ts +21 -0
  289. package/lib/search/search.module.d.ts +6 -0
  290. package/lib/select/select.component.d.ts +37 -0
  291. package/lib/select/select.module.d.ts +4 -0
  292. package/lib/shape/shape.component.d.ts +50 -0
  293. package/lib/shape/shape.module.d.ts +4 -0
  294. package/lib/shared/component/video-player/video-player.component.d.ts +28 -0
  295. package/lib/shared/component/video-player/video-player.module.d.ts +2 -0
  296. package/lib/shared/service/common.service.d.ts +21 -0
  297. package/lib/shared/service/file-url.service.d.ts +3 -0
  298. package/lib/shared/service/gaode-map.service.d.ts +10 -0
  299. package/lib/shared/service/highcharts.service.d.ts +9 -0
  300. package/lib/shared/service/http.service.d.ts +7 -0
  301. package/lib/shared/util/base.util.d.ts +1 -0
  302. package/lib/shared/util/echarts.util.d.ts +1 -0
  303. package/lib/shared/util/style.util.d.ts +1 -0
  304. package/lib/shuffling-list/color.pipe.d.ts +4 -0
  305. package/lib/shuffling-list/shuffling-list.component.d.ts +76 -0
  306. package/lib/shuffling-list/shuffling-list.module.d.ts +4 -0
  307. package/lib/table/table.component.d.ts +65 -0
  308. package/lib/table/table.module.d.ts +4 -0
  309. package/lib/tabs/tab/tab.component.d.ts +7 -0
  310. package/lib/tabs/tabs.component.d.ts +13 -0
  311. package/lib/tabs/tabs.module.d.ts +4 -0
  312. package/lib/temporary-data/temporary-data.component.d.ts +13 -0
  313. package/lib/temporary-data/temporary-data.module.d.ts +4 -0
  314. package/lib/time-picker/time-picker.component.d.ts +17 -0
  315. package/lib/time-picker/time-picker.module.d.ts +4 -0
  316. package/lib/timer/timer.component.d.ts +21 -0
  317. package/lib/timer/timer.module.d.ts +4 -0
  318. package/lib/tree-control/tree-control.component.d.ts +62 -0
  319. package/lib/tree-control/tree-control.module.d.ts +4 -0
  320. package/lib/tree-ring-chart/tree-ring-chart.component.d.ts +24 -0
  321. package/lib/tree-ring-chart/tree-ring-chart.module.d.ts +4 -0
  322. package/lib/upload/upload.component.d.ts +21 -0
  323. package/lib/upload/upload.module.d.ts +4 -0
  324. package/lib/video-grid/video-grid.component.d.ts +23 -0
  325. package/lib/video-grid/video-grid.module.d.ts +4 -0
  326. package/lib/visual-map-chart/visual-map-chart.component.d.ts +49 -0
  327. package/lib/visual-map-chart/visual-map-chart.module.d.ts +4 -0
  328. package/lib/vote/vote.component.d.ts +15 -0
  329. package/lib/vote/vote.module.d.ts +4 -0
  330. package/lib/weather/weather.component.d.ts +26 -0
  331. package/lib/weather/weather.module.d.ts +4 -0
  332. package/lib/wordart/wordart.component.d.ts +14 -0
  333. package/lib/wordart/wordart.module.d.ts +4 -0
  334. package/lib/workbench-widget.module.d.ts +4 -0
  335. package/package.json +13 -4
  336. package/{src/public-api.ts → public-api.d.ts} +35 -46
  337. package/core/src/public_api.ts +0 -1
  338. package/core/src/service/baidu-map.service.ts +0 -107
  339. package/karma.conf.js +0 -32
  340. package/ng-package.json +0 -59
  341. package/src/lib/announcement/announcement.component.html +0 -3
  342. package/src/lib/announcement/announcement.component.less +0 -5
  343. package/src/lib/announcement/announcement.component.spec.ts +0 -25
  344. package/src/lib/announcement/announcement.component.ts +0 -55
  345. package/src/lib/announcement/announcement.module.ts +0 -19
  346. package/src/lib/audio/audio.component.html +0 -6
  347. package/src/lib/audio/audio.component.less +0 -12
  348. package/src/lib/audio/audio.component.spec.ts +0 -25
  349. package/src/lib/audio/audio.component.ts +0 -167
  350. package/src/lib/audio/audio.module.ts +0 -15
  351. package/src/lib/background/background.component.html +0 -1
  352. package/src/lib/background/background.component.less +0 -6
  353. package/src/lib/background/background.component.spec.ts +0 -25
  354. package/src/lib/background/background.component.ts +0 -33
  355. package/src/lib/background/background.module.ts +0 -14
  356. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.html +0 -1
  357. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.less +0 -8
  358. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.spec.ts +0 -25
  359. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.ts +0 -271
  360. package/src/lib/bar-chart-three-d/bar-chart-three-d.module.ts +0 -15
  361. package/src/lib/basic-bar-chart/basic-bar-chart.component.html +0 -7
  362. package/src/lib/basic-bar-chart/basic-bar-chart.component.less +0 -5
  363. package/src/lib/basic-bar-chart/basic-bar-chart.component.spec.ts +0 -25
  364. package/src/lib/basic-bar-chart/basic-bar-chart.component.ts +0 -493
  365. package/src/lib/basic-bar-chart/basic-bar-chart.module.ts +0 -21
  366. package/src/lib/basic-line-chart/basic-line-chart.component.html +0 -7
  367. package/src/lib/basic-line-chart/basic-line-chart.component.less +0 -8
  368. package/src/lib/basic-line-chart/basic-line-chart.component.spec.ts +0 -25
  369. package/src/lib/basic-line-chart/basic-line-chart.component.ts +0 -654
  370. package/src/lib/basic-line-chart/basic-line-chart.module.ts +0 -15
  371. package/src/lib/basic-pie-chart/basic-pie-chart.component.html +0 -7
  372. package/src/lib/basic-pie-chart/basic-pie-chart.component.less +0 -8
  373. package/src/lib/basic-pie-chart/basic-pie-chart.component.spec.ts +0 -25
  374. package/src/lib/basic-pie-chart/basic-pie-chart.component.ts +0 -439
  375. package/src/lib/basic-pie-chart/basic-pie-chart.module.ts +0 -15
  376. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.html +0 -2
  377. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.less +0 -9
  378. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.spec.ts +0 -25
  379. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.ts +0 -211
  380. package/src/lib/basic-planimetric-map/basic-planimetric-map.module.ts +0 -16
  381. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.css +0 -0
  382. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.html +0 -1
  383. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.spec.ts +0 -25
  384. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.ts +0 -487
  385. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.module.ts +0 -14
  386. package/src/lib/bubble-chart/bubble-chart.component.html +0 -7
  387. package/src/lib/bubble-chart/bubble-chart.component.less +0 -8
  388. package/src/lib/bubble-chart/bubble-chart.component.spec.ts +0 -25
  389. package/src/lib/bubble-chart/bubble-chart.component.ts +0 -307
  390. package/src/lib/bubble-chart/bubble-chart.module.ts +0 -15
  391. package/src/lib/bulletin-board/bulletin-board.component.html +0 -15
  392. package/src/lib/bulletin-board/bulletin-board.component.less +0 -27
  393. package/src/lib/bulletin-board/bulletin-board.component.spec.ts +0 -25
  394. package/src/lib/bulletin-board/bulletin-board.component.ts +0 -127
  395. package/src/lib/bulletin-board/bulletin-board.module.ts +0 -20
  396. package/src/lib/button/button.component.html +0 -1
  397. package/src/lib/button/button.component.less +0 -17
  398. package/src/lib/button/button.component.spec.ts +0 -25
  399. package/src/lib/button/button.component.ts +0 -137
  400. package/src/lib/button/button.module.ts +0 -16
  401. package/src/lib/calendar/background-events/background-events.component.html +0 -0
  402. package/src/lib/calendar/background-events/background-events.component.less +0 -0
  403. package/src/lib/calendar/background-events/background-events.component.spec.ts +0 -25
  404. package/src/lib/calendar/background-events/background-events.component.ts +0 -51
  405. package/src/lib/calendar/calendar-events-child.ts +0 -27
  406. package/src/lib/calendar/calendar.component.html +0 -2
  407. package/src/lib/calendar/calendar.component.less +0 -14
  408. package/src/lib/calendar/calendar.component.spec.ts +0 -25
  409. package/src/lib/calendar/calendar.component.ts +0 -151
  410. package/src/lib/calendar/calendar.module.ts +0 -27
  411. package/src/lib/calendar/calendar.util.ts +0 -14
  412. package/src/lib/calendar/events/events.component.html +0 -0
  413. package/src/lib/calendar/events/events.component.less +0 -0
  414. package/src/lib/calendar/events/events.component.spec.ts +0 -25
  415. package/src/lib/calendar/events/events.component.ts +0 -61
  416. package/src/lib/checkbox/checkbox.component.html +0 -61
  417. package/src/lib/checkbox/checkbox.component.less +0 -104
  418. package/src/lib/checkbox/checkbox.component.spec.ts +0 -25
  419. package/src/lib/checkbox/checkbox.component.ts +0 -292
  420. package/src/lib/checkbox/checkbox.module.ts +0 -16
  421. package/src/lib/cross-table/cross-table.component.html +0 -16
  422. package/src/lib/cross-table/cross-table.component.less +0 -75
  423. package/src/lib/cross-table/cross-table.component.spec.ts +0 -25
  424. package/src/lib/cross-table/cross-table.component.ts +0 -257
  425. package/src/lib/cross-table/cross-table.module.ts +0 -18
  426. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.html +0 -32
  427. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.less +0 -11
  428. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.spec.ts +0 -25
  429. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.ts +0 -689
  430. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.html +0 -0
  431. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.less +0 -0
  432. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.spec.ts +0 -25
  433. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.ts +0 -248
  434. package/src/lib/custom-baidu-map/base-layer.ts +0 -50
  435. package/src/lib/custom-baidu-map/custom-baidu-map.component.html +0 -15
  436. package/src/lib/custom-baidu-map/custom-baidu-map.component.less +0 -69
  437. package/src/lib/custom-baidu-map/custom-baidu-map.component.spec.ts +0 -25
  438. package/src/lib/custom-baidu-map/custom-baidu-map.component.ts +0 -652
  439. package/src/lib/custom-baidu-map/custom-baidu-map.module.ts +0 -41
  440. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.html +0 -0
  441. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.less +0 -0
  442. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.spec.ts +0 -25
  443. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.ts +0 -99
  444. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.html +0 -0
  445. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.less +0 -0
  446. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.spec.ts +0 -25
  447. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.ts +0 -404
  448. package/src/lib/data-map/data-map.component.html +0 -9
  449. package/src/lib/data-map/data-map.component.less +0 -0
  450. package/src/lib/data-map/data-map.component.spec.ts +0 -25
  451. package/src/lib/data-map/data-map.component.ts +0 -105
  452. package/src/lib/data-map/data-map.module.ts +0 -15
  453. package/src/lib/date-picker/date-picker.component.html +0 -32
  454. package/src/lib/date-picker/date-picker.component.less +0 -20
  455. package/src/lib/date-picker/date-picker.component.spec.ts +0 -25
  456. package/src/lib/date-picker/date-picker.component.ts +0 -389
  457. package/src/lib/date-picker/date-picker.module.ts +0 -18
  458. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.html +0 -25
  459. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.less +0 -35
  460. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.spec.ts +0 -25
  461. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.ts +0 -117
  462. package/src/lib/drop-down-detail-list/drop-down-detail-list.module.ts +0 -15
  463. package/src/lib/dynamic-list/dynamic-list.component.html +0 -15
  464. package/src/lib/dynamic-list/dynamic-list.component.less +0 -31
  465. package/src/lib/dynamic-list/dynamic-list.component.spec.ts +0 -25
  466. package/src/lib/dynamic-list/dynamic-list.component.ts +0 -57
  467. package/src/lib/dynamic-list/dynamic-list.module.ts +0 -15
  468. package/src/lib/funnel-chart/funnel-chart.component.html +0 -7
  469. package/src/lib/funnel-chart/funnel-chart.component.less +0 -8
  470. package/src/lib/funnel-chart/funnel-chart.component.spec.ts +0 -25
  471. package/src/lib/funnel-chart/funnel-chart.component.ts +0 -198
  472. package/src/lib/funnel-chart/funnel-chart.module.ts +0 -15
  473. package/src/lib/gantt/gantt.component.html +0 -10
  474. package/src/lib/gantt/gantt.component.less +0 -76
  475. package/src/lib/gantt/gantt.component.spec.ts +0 -25
  476. package/src/lib/gantt/gantt.component.ts +0 -213
  477. package/src/lib/gantt/gantt.module.ts +0 -37
  478. package/src/lib/gauge/gauge.component.html +0 -1
  479. package/src/lib/gauge/gauge.component.less +0 -8
  480. package/src/lib/gauge/gauge.component.spec.ts +0 -25
  481. package/src/lib/gauge/gauge.component.ts +0 -268
  482. package/src/lib/gauge/gauge.module.ts +0 -15
  483. package/src/lib/gauge-progress/gauge-progress.component.html +0 -29
  484. package/src/lib/gauge-progress/gauge-progress.component.less +0 -51
  485. package/src/lib/gauge-progress/gauge-progress.component.ts +0 -293
  486. package/src/lib/gauge-progress/gauge.module.ts +0 -17
  487. package/src/lib/general-text/general-text.component.html +0 -7
  488. package/src/lib/general-text/general-text.component.less +0 -8
  489. package/src/lib/general-text/general-text.component.spec.ts +0 -25
  490. package/src/lib/general-text/general-text.component.ts +0 -114
  491. package/src/lib/general-text/general-text.module.ts +0 -15
  492. package/src/lib/iconfont/icon.ts +0 -198
  493. package/src/lib/iconfont/iconfont.component.html +0 -4
  494. package/src/lib/iconfont/iconfont.component.less +0 -5
  495. package/src/lib/iconfont/iconfont.component.spec.ts +0 -25
  496. package/src/lib/iconfont/iconfont.component.ts +0 -42
  497. package/src/lib/iconfont/iconfont.module.ts +0 -15
  498. package/src/lib/iframe/iframe.component.html +0 -1
  499. package/src/lib/iframe/iframe.component.less +0 -13
  500. package/src/lib/iframe/iframe.component.spec.ts +0 -25
  501. package/src/lib/iframe/iframe.component.ts +0 -34
  502. package/src/lib/iframe/iframe.module.ts +0 -15
  503. package/src/lib/image/image.component.html +0 -2
  504. package/src/lib/image/image.component.less +0 -13
  505. package/src/lib/image/image.component.spec.ts +0 -25
  506. package/src/lib/image/image.component.ts +0 -79
  507. package/src/lib/image/image.module.ts +0 -14
  508. package/src/lib/item-swiper/item-swiper.component.html +0 -48
  509. package/src/lib/item-swiper/item-swiper.component.less +0 -75
  510. package/src/lib/item-swiper/item-swiper.component.spec.ts +0 -25
  511. package/src/lib/item-swiper/item-swiper.component.ts +0 -277
  512. package/src/lib/item-swiper/item-swiper.module.ts +0 -17
  513. package/src/lib/line-bar-chart/line-bar-chart.component.html +0 -7
  514. package/src/lib/line-bar-chart/line-bar-chart.component.less +0 -3
  515. package/src/lib/line-bar-chart/line-bar-chart.component.spec.ts +0 -25
  516. package/src/lib/line-bar-chart/line-bar-chart.component.ts +0 -346
  517. package/src/lib/line-bar-chart/line-bar-chart.module.ts +0 -15
  518. package/src/lib/line-light-flow/line-light-flow.component.css +0 -0
  519. package/src/lib/line-light-flow/line-light-flow.component.html +0 -3
  520. package/src/lib/line-light-flow/line-light-flow.component.spec.ts +0 -25
  521. package/src/lib/line-light-flow/line-light-flow.component.ts +0 -274
  522. package/src/lib/line-light-flow/line-light-flow.module.ts +0 -21
  523. package/src/lib/liquid-fill/liquid-fill.component.html +0 -1
  524. package/src/lib/liquid-fill/liquid-fill.component.less +0 -8
  525. package/src/lib/liquid-fill/liquid-fill.component.spec.ts +0 -25
  526. package/src/lib/liquid-fill/liquid-fill.component.ts +0 -127
  527. package/src/lib/liquid-fill/liquid-fill.module.ts +0 -15
  528. package/src/lib/marquee/marquee.component.html +0 -5
  529. package/src/lib/marquee/marquee.component.less +0 -9
  530. package/src/lib/marquee/marquee.component.spec.ts +0 -25
  531. package/src/lib/marquee/marquee.component.ts +0 -84
  532. package/src/lib/marquee/marquee.module.ts +0 -14
  533. package/src/lib/mip-anim/mip-anim.component.html +0 -1
  534. package/src/lib/mip-anim/mip-anim.component.less +0 -7
  535. package/src/lib/mip-anim/mip-anim.component.spec.ts +0 -25
  536. package/src/lib/mip-anim/mip-anim.component.ts +0 -18
  537. package/src/lib/mip-anim/mip-anim.module.ts +0 -14
  538. package/src/lib/multi-title-gauge/multi-title-gauge.component.html +0 -1
  539. package/src/lib/multi-title-gauge/multi-title-gauge.component.less +0 -9
  540. package/src/lib/multi-title-gauge/multi-title-gauge.component.spec.ts +0 -25
  541. package/src/lib/multi-title-gauge/multi-title-gauge.component.ts +0 -231
  542. package/src/lib/multi-title-gauge/multi-title-gauge.module.ts +0 -19
  543. package/src/lib/number-flop/number-flop.component.html +0 -31
  544. package/src/lib/number-flop/number-flop.component.less +0 -155
  545. package/src/lib/number-flop/number-flop.component.spec.ts +0 -25
  546. package/src/lib/number-flop/number-flop.component.ts +0 -96
  547. package/src/lib/number-flop/number-flop.module.ts +0 -14
  548. package/src/lib/parent-container/parent-container.component.html +0 -0
  549. package/src/lib/parent-container/parent-container.component.less +0 -0
  550. package/src/lib/parent-container/parent-container.component.spec.ts +0 -25
  551. package/src/lib/parent-container/parent-container.component.ts +0 -21
  552. package/src/lib/parent-container/parent-container.module.ts +0 -14
  553. package/src/lib/percent-pie-chart/percent-pie-chart.component.html +0 -8
  554. package/src/lib/percent-pie-chart/percent-pie-chart.component.less +0 -8
  555. package/src/lib/percent-pie-chart/percent-pie-chart.component.spec.ts +0 -25
  556. package/src/lib/percent-pie-chart/percent-pie-chart.component.ts +0 -213
  557. package/src/lib/percent-pie-chart/percent-pie-chart.module.ts +0 -15
  558. package/src/lib/pie3d-chart/pie3d-chart.component.html +0 -1
  559. package/src/lib/pie3d-chart/pie3d-chart.component.less +0 -9
  560. package/src/lib/pie3d-chart/pie3d-chart.component.spec.ts +0 -25
  561. package/src/lib/pie3d-chart/pie3d-chart.component.ts +0 -278
  562. package/src/lib/pie3d-chart/pie3d-chart.module.ts +0 -16
  563. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.html +0 -0
  564. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.less +0 -0
  565. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.spec.ts +0 -25
  566. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.ts +0 -411
  567. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.ts +0 -13
  568. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.html +0 -1
  569. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.less +0 -0
  570. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.spec.ts +0 -25
  571. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.ts +0 -235
  572. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.ts +0 -16
  573. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.html +0 -0
  574. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.less +0 -0
  575. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.spec.ts +0 -25
  576. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.ts +0 -107
  577. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.ts +0 -17
  578. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.html +0 -0
  579. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.less +0 -0
  580. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.spec.ts +0 -25
  581. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.ts +0 -337
  582. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.ts +0 -18
  583. package/src/lib/planimetric-map2d/planimetric-map2d.component.html +0 -11
  584. package/src/lib/planimetric-map2d/planimetric-map2d.component.less +0 -9
  585. package/src/lib/planimetric-map2d/planimetric-map2d.component.spec.ts +0 -25
  586. package/src/lib/planimetric-map2d/planimetric-map2d.component.ts +0 -690
  587. package/src/lib/planimetric-map2d/planimetric-map2d.module.ts +0 -29
  588. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.html +0 -0
  589. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.less +0 -0
  590. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.spec.ts +0 -25
  591. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.ts +0 -123
  592. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.ts +0 -14
  593. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.html +0 -0
  594. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.less +0 -0
  595. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.spec.ts +0 -25
  596. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.ts +0 -229
  597. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.ts +0 -14
  598. package/src/lib/planimetric-map3d/planimetric-map3d.component.html +0 -2
  599. package/src/lib/planimetric-map3d/planimetric-map3d.component.less +0 -10
  600. package/src/lib/planimetric-map3d/planimetric-map3d.component.spec.ts +0 -25
  601. package/src/lib/planimetric-map3d/planimetric-map3d.component.ts +0 -227
  602. package/src/lib/planimetric-map3d/planimetric-map3d.module.ts +0 -17
  603. package/src/lib/radar-chart/radar-chart.component.html +0 -7
  604. package/src/lib/radar-chart/radar-chart.component.less +0 -8
  605. package/src/lib/radar-chart/radar-chart.component.spec.ts +0 -25
  606. package/src/lib/radar-chart/radar-chart.component.ts +0 -219
  607. package/src/lib/radar-chart/radar-chart.module.ts +0 -15
  608. package/src/lib/radio/radio.component.html +0 -18
  609. package/src/lib/radio/radio.component.less +0 -61
  610. package/src/lib/radio/radio.component.spec.ts +0 -25
  611. package/src/lib/radio/radio.component.ts +0 -116
  612. package/src/lib/radio/radio.module.ts +0 -16
  613. package/src/lib/rate/rate.component.html +0 -16
  614. package/src/lib/rate/rate.component.less +0 -39
  615. package/src/lib/rate/rate.component.spec.ts +0 -25
  616. package/src/lib/rate/rate.component.ts +0 -40
  617. package/src/lib/rate/rate.module.ts +0 -18
  618. package/src/lib/scatter3d/scatter3d.component.html +0 -1
  619. package/src/lib/scatter3d/scatter3d.component.less +0 -8
  620. package/src/lib/scatter3d/scatter3d.component.spec.ts +0 -25
  621. package/src/lib/scatter3d/scatter3d.component.ts +0 -129
  622. package/src/lib/scatter3d/scatter3d.module.ts +0 -15
  623. package/src/lib/screen-widget.module.ts +0 -592
  624. package/src/lib/search/search.component.html +0 -30
  625. package/src/lib/search/search.component.less +0 -30
  626. package/src/lib/search/search.component.spec.ts +0 -25
  627. package/src/lib/search/search.component.ts +0 -103
  628. package/src/lib/search/search.module.ts +0 -22
  629. package/src/lib/select/select.component.html +0 -30
  630. package/src/lib/select/select.component.less +0 -117
  631. package/src/lib/select/select.component.spec.ts +0 -25
  632. package/src/lib/select/select.component.ts +0 -297
  633. package/src/lib/select/select.module.ts +0 -18
  634. package/src/lib/shape/shape.component.html +0 -39
  635. package/src/lib/shape/shape.component.less +0 -8
  636. package/src/lib/shape/shape.component.spec.ts +0 -25
  637. package/src/lib/shape/shape.component.ts +0 -207
  638. package/src/lib/shape/shape.module.ts +0 -14
  639. package/src/lib/shared/component/video-player/video-player.component.html +0 -2
  640. package/src/lib/shared/component/video-player/video-player.component.less +0 -15
  641. package/src/lib/shared/component/video-player/video-player.component.spec.ts +0 -25
  642. package/src/lib/shared/component/video-player/video-player.component.ts +0 -132
  643. package/src/lib/shared/component/video-player/video-player.module.ts +0 -11
  644. package/src/lib/shared/model/scale.token.ts +0 -8
  645. package/src/lib/shared/service/common.service.ts +0 -28
  646. package/src/lib/shared/service/file-url.service.ts +0 -8
  647. package/src/lib/shared/service/gaode-map.service.ts +0 -37
  648. package/src/lib/shared/service/highcharts.service.ts +0 -29
  649. package/src/lib/shared/service/http.service.ts +0 -15
  650. package/src/lib/shared/util/base.util.ts +0 -4
  651. package/src/lib/shared/util/echarts.util.ts +0 -11
  652. package/src/lib/shared/util/style.util.ts +0 -12
  653. package/src/lib/shuffling-list/color.pipe.ts +0 -21
  654. package/src/lib/shuffling-list/shuffling-list.component.html +0 -37
  655. package/src/lib/shuffling-list/shuffling-list.component.less +0 -55
  656. package/src/lib/shuffling-list/shuffling-list.component.spec.ts +0 -25
  657. package/src/lib/shuffling-list/shuffling-list.component.ts +0 -534
  658. package/src/lib/shuffling-list/shuffling-list.module.ts +0 -17
  659. package/src/lib/table/table.component.html +0 -123
  660. package/src/lib/table/table.component.less +0 -76
  661. package/src/lib/table/table.component.spec.ts +0 -25
  662. package/src/lib/table/table.component.ts +0 -608
  663. package/src/lib/table/table.module.ts +0 -33
  664. package/src/lib/tabs/tab/tab.component.html +0 -1
  665. package/src/lib/tabs/tab/tab.component.less +0 -5
  666. package/src/lib/tabs/tab/tab.component.spec.ts +0 -25
  667. package/src/lib/tabs/tab/tab.component.ts +0 -18
  668. package/src/lib/tabs/tabs.component.html +0 -13
  669. package/src/lib/tabs/tabs.component.less +0 -40
  670. package/src/lib/tabs/tabs.component.spec.ts +0 -25
  671. package/src/lib/tabs/tabs.component.ts +0 -68
  672. package/src/lib/tabs/tabs.module.ts +0 -17
  673. package/src/lib/temporary-data/temporary-data.component.html +0 -1
  674. package/src/lib/temporary-data/temporary-data.component.less +0 -4
  675. package/src/lib/temporary-data/temporary-data.component.spec.ts +0 -25
  676. package/src/lib/temporary-data/temporary-data.component.ts +0 -46
  677. package/src/lib/temporary-data/temporary-data.module.ts +0 -15
  678. package/src/lib/text/text.component.css +0 -0
  679. package/src/lib/text/text.component.html +0 -3
  680. package/src/lib/text/text.component.spec.ts +0 -25
  681. package/src/lib/text/text.component.ts +0 -22
  682. package/src/lib/text/text.module.ts +0 -14
  683. package/src/lib/time-picker/time-picker.component.html +0 -1
  684. package/src/lib/time-picker/time-picker.component.less +0 -14
  685. package/src/lib/time-picker/time-picker.component.spec.ts +0 -25
  686. package/src/lib/time-picker/time-picker.component.ts +0 -86
  687. package/src/lib/time-picker/time-picker.module.ts +0 -19
  688. package/src/lib/timer/timer.component.html +0 -7
  689. package/src/lib/timer/timer.component.less +0 -24
  690. package/src/lib/timer/timer.component.spec.ts +0 -25
  691. package/src/lib/timer/timer.component.ts +0 -74
  692. package/src/lib/timer/timer.module.ts +0 -15
  693. package/src/lib/tree-control/tree-control.component.html +0 -97
  694. package/src/lib/tree-control/tree-control.component.less +0 -111
  695. package/src/lib/tree-control/tree-control.component.spec.ts +0 -25
  696. package/src/lib/tree-control/tree-control.component.ts +0 -363
  697. package/src/lib/tree-control/tree-control.module.ts +0 -18
  698. package/src/lib/tree-ring-chart/tree-ring-chart.component.html +0 -7
  699. package/src/lib/tree-ring-chart/tree-ring-chart.component.less +0 -8
  700. package/src/lib/tree-ring-chart/tree-ring-chart.component.spec.ts +0 -25
  701. package/src/lib/tree-ring-chart/tree-ring-chart.component.ts +0 -192
  702. package/src/lib/tree-ring-chart/tree-ring-chart.module.ts +0 -15
  703. package/src/lib/upload/upload.component.html +0 -32
  704. package/src/lib/upload/upload.component.less +0 -14
  705. package/src/lib/upload/upload.component.spec.ts +0 -25
  706. package/src/lib/upload/upload.component.ts +0 -109
  707. package/src/lib/upload/upload.module.ts +0 -19
  708. package/src/lib/video-grid/video-grid.component.html +0 -33
  709. package/src/lib/video-grid/video-grid.component.less +0 -68
  710. package/src/lib/video-grid/video-grid.component.spec.ts +0 -25
  711. package/src/lib/video-grid/video-grid.component.ts +0 -115
  712. package/src/lib/video-grid/video-grid.module.ts +0 -17
  713. package/src/lib/visual-map-chart/visual-map-chart.component.html +0 -8
  714. package/src/lib/visual-map-chart/visual-map-chart.component.less +0 -21
  715. package/src/lib/visual-map-chart/visual-map-chart.component.spec.ts +0 -25
  716. package/src/lib/visual-map-chart/visual-map-chart.component.ts +0 -365
  717. package/src/lib/visual-map-chart/visual-map-chart.module.ts +0 -18
  718. package/src/lib/vote/vote.component.html +0 -6
  719. package/src/lib/vote/vote.component.less +0 -41
  720. package/src/lib/vote/vote.component.spec.ts +0 -25
  721. package/src/lib/vote/vote.component.ts +0 -71
  722. package/src/lib/vote/vote.module.ts +0 -16
  723. package/src/lib/weather/weather.component.html +0 -27
  724. package/src/lib/weather/weather.component.less +0 -67
  725. package/src/lib/weather/weather.component.spec.ts +0 -25
  726. package/src/lib/weather/weather.component.ts +0 -78
  727. package/src/lib/weather/weather.module.ts +0 -16
  728. package/src/lib/wordart/wordart.component.html +0 -2
  729. package/src/lib/wordart/wordart.component.less +0 -12
  730. package/src/lib/wordart/wordart.component.spec.ts +0 -25
  731. package/src/lib/wordart/wordart.component.ts +0 -56
  732. package/src/lib/wordart/wordart.module.ts +0 -14
  733. package/src/lib/workbench-widget.module.ts +0 -675
  734. package/src/test.ts +0 -22
  735. package/tsconfig.lib.json +0 -37
  736. package/tsconfig.lib.prod.json +0 -9
  737. package/tsconfig.spec.json +0 -17
  738. package/tslint.json +0 -17
@@ -0,0 +1,657 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, ElementRef, EventEmitter } from '@angular/core';
3
+ import { Widget, Property, Data, DataSchema, DataOutput, Event } from 'bbj-widget-base';
4
+ import { isNum } from '@delon/util';
5
+ const ɵ0 = { type: 'object', title: '行数据' };
6
+ let TableComponent = class TableComponent {
7
+ constructor(ele) {
8
+ this.ele = ele;
9
+ this.pageSize = 10;
10
+ this.theadBackground = '#fafafa';
11
+ this.headFont = { family: '', color: '#222222', weight: 'normal', size: 12, space: 0, lineHeight: 2 };
12
+ this.contentAlign = 'center';
13
+ this.tbodyBackground = '#FFFFFF';
14
+ this.font = { family: '', color: '#222222', weight: 'normal', size: 12, space: 0, lineHeight: 2 };
15
+ this.isCustom = false;
16
+ this.showBorder = false;
17
+ this.needPage = false;
18
+ this.isCount = false;
19
+ this.level = [];
20
+ // @Property('字段交叉', {
21
+ // type: 'array',
22
+ // maxItems: 1,
23
+ // items: {
24
+ // type: 'object',
25
+ // properties: {
26
+ // key: {
27
+ // type: 'string',
28
+ // title: '绑定字段',
29
+ // },
30
+ // value: {
31
+ // type: 'string',
32
+ // title: '绑定值',
33
+ // },
34
+ // mergeField: {
35
+ // type: 'string',
36
+ // title: '合并字段',
37
+ // }
38
+ // },
39
+ // required: [],
40
+ // },
41
+ // ui: {grid: {arraySpan: 24}, spanControl: 24} as SFArrayWidgetSchema,
42
+ // })
43
+ // cross = [];
44
+ this.customCol = [];
45
+ // hasGroup = false;
46
+ this.isCross = false;
47
+ this._data = [
48
+ { x: '一月', y: '10%', s: '收入' },
49
+ { x: '二月', y: 20, s: '收入' },
50
+ { x: '三月', y: 25, s: '收入' },
51
+ { x: '四月', y: 35, s: '收入' },
52
+ { x: '五月', y: 27, s: '收入' },
53
+ { x: '六月', y: 28, s: '收入' },
54
+ { x: '一月', y: 18, s: '支出' },
55
+ { x: '二月', y: 28, s: '支出' },
56
+ { x: '三月', y: 32, s: '支出' },
57
+ { x: '四月', y: 48, s: '支出' },
58
+ { x: '五月', y: 20, s: '支出' },
59
+ { x: '六月', y: 17, s: '支出' },
60
+ ];
61
+ this.tdChange = new EventEmitter();
62
+ this.trChange = new EventEmitter();
63
+ this.rowChange = new EventEmitter();
64
+ this.tdClick = new EventEmitter();
65
+ // y: string;
66
+ this.headStyle = {};
67
+ this.bodyStyle = {};
68
+ // rowSize = 1;
69
+ this.widthConfig = [];
70
+ this.rows = [];
71
+ this.totalCount = [];
72
+ this.needCount = false;
73
+ this.searchValue = {};
74
+ this.headers = [];
75
+ this.filterValues = {};
76
+ this.sumData = {};
77
+ }
78
+ ngOnChanges(changes) {
79
+ if (changes.schema || changes.customCol) {
80
+ this.updateHeader();
81
+ this.updateData();
82
+ }
83
+ else if (changes._data) {
84
+ if (!this.schema) {
85
+ this.updateHeader();
86
+ }
87
+ this.updateData();
88
+ }
89
+ }
90
+ ngOnInit() {
91
+ // if (this.ele) {
92
+ // const height = this.ele.nativeElement.offsetHeight - 110;
93
+ // this.y = height > 0 ? height + 'px' : '0px';
94
+ // }
95
+ // console.log(this.groupBy(this._data,'x'));
96
+ // console.log(this.countGroupRow);
97
+ this.headStyle = {
98
+ family: this.headFont.family,
99
+ color: this.headFont.color,
100
+ weight: this.headFont.weight,
101
+ fontSize: this.headFont.size + 'px',
102
+ space: this.headFont.space,
103
+ lineHeight: this.headFont.lineHeight,
104
+ background: this.theadBackground,
105
+ };
106
+ this.bodyStyle = {
107
+ family: this.font.family,
108
+ color: this.font.color,
109
+ weight: this.font.weight,
110
+ fontSize: this.font.size + 'px',
111
+ space: this.font.space,
112
+ lineHeight: this.font.lineHeight,
113
+ };
114
+ }
115
+ updateHeader() {
116
+ this.columns = [];
117
+ this.widthConfig = [];
118
+ if (this.isCustom && this.customCol[0]) {
119
+ const hasGroup = this.customCol.some((data) => data.group != null && data.group !== '');
120
+ this.groups = [];
121
+ const subHeader = [];
122
+ const groupMap = {};
123
+ this.customCol.forEach((data) => {
124
+ const grouped = !!data.group;
125
+ const groupName = data.group || data.title;
126
+ this.widthConfig.push((data.width || 100) + 'px');
127
+ const column = {
128
+ title: data.title,
129
+ index: data.field,
130
+ ismerge: data.ismerge,
131
+ iscount: data.iscount,
132
+ needlevel: data.needlevel,
133
+ showFilter: data.showFilter,
134
+ };
135
+ let group = groupMap[groupName];
136
+ if (group == null) {
137
+ group = { title: groupName, row: 1, col: 0, columns: [] };
138
+ groupMap[groupName] = group;
139
+ this.groups.push(group);
140
+ }
141
+ group.columns.push(column);
142
+ group.col++;
143
+ if (grouped) {
144
+ subHeader.push(column);
145
+ }
146
+ else {
147
+ group.index = data.field;
148
+ if (hasGroup) {
149
+ group.row = 2;
150
+ }
151
+ }
152
+ });
153
+ this.headers = [this.groups, subHeader];
154
+ }
155
+ else {
156
+ if (this.schema) {
157
+ Object.keys(this.schema.properties).forEach((key) => {
158
+ const property = this.schema.properties[key];
159
+ if (property) {
160
+ const column = { title: property.title || key, index: key, schema: property };
161
+ this.columns.push(column);
162
+ }
163
+ });
164
+ }
165
+ else if (this._data && this._data[0]) {
166
+ const data = this._data[0];
167
+ Object.keys(data).forEach((key) => {
168
+ const column = { title: key, index: key };
169
+ this.widthConfig.push(100 + 'px');
170
+ this.columns.push(column);
171
+ });
172
+ }
173
+ this.headers = [this.columns];
174
+ console.log('header', this.headers);
175
+ }
176
+ }
177
+ updateData() {
178
+ this.dataSize = this._data.length;
179
+ if (this._data[0]) {
180
+ this.titleSize = Object.keys(this._data[0]).length;
181
+ }
182
+ if (this.isCustom && this.customCol[0]) {
183
+ this.updateFilterOptions();
184
+ this.groupBy(this._data);
185
+ this.count();
186
+ }
187
+ if (this.sumColumns) {
188
+ this.sumData = {};
189
+ this.sumColumns.split(',').forEach((column) => {
190
+ let sum = this._data.reduce((p, c) => {
191
+ const value = c[column];
192
+ if (value && isNum(value)) {
193
+ p += +value;
194
+ }
195
+ return p;
196
+ }, 0);
197
+ this.sumData[column] = +sum.toFixed(2);
198
+ });
199
+ }
200
+ }
201
+ /**
202
+ * 更新筛选下拉框里的数据
203
+ */
204
+ updateFilterOptions() {
205
+ if (this.groups) {
206
+ this.groups.forEach((group) => {
207
+ group.columns.forEach((column) => {
208
+ if (column.showFilter) {
209
+ const valueSet = new Set();
210
+ const target = group.columns.length == 1 ? group : column;
211
+ target.filter = [];
212
+ if (this._data) {
213
+ this._data.forEach((row) => {
214
+ const key = column.index;
215
+ const value = row[key];
216
+ const filterValue = this.filterValues[key];
217
+ const checked = filterValue && filterValue.includes(value);
218
+ if (checked || this.filterMatch(row, key)) {
219
+ if (value != null && value != '' && !valueSet.has(value)) {
220
+ valueSet.add(value);
221
+ const item = { value, checked };
222
+ target.filter.push(item);
223
+ }
224
+ }
225
+ });
226
+ }
227
+ }
228
+ });
229
+ });
230
+ }
231
+ }
232
+ filterMatch(record, exclude) {
233
+ const keys = Object.keys(this.filterValues);
234
+ for (const key of keys) {
235
+ if (key !== exclude) {
236
+ const filterValue = this.filterValues[key];
237
+ const value = record[key];
238
+ if ((filterValue === null || filterValue === void 0 ? void 0 : filterValue.length) && !filterValue.includes(value)) {
239
+ return false;
240
+ }
241
+ }
242
+ }
243
+ return true;
244
+ }
245
+ groupBy(array) {
246
+ this.rows = [];
247
+ array.forEach((record) => {
248
+ if (this.filterMatch(record)) {
249
+ const row = [];
250
+ for (const group of this.groups) {
251
+ for (const column of group.columns) {
252
+ const value = record[column.index];
253
+ // if (column.showFilter) {
254
+ // const filterValue = column.filterValue || group.filterValue;
255
+ // if (filterValue?.length && !filterValue.includes(value)) {
256
+ // return;
257
+ // }
258
+ // }
259
+ let myColor = '';
260
+ if (column.needlevel) {
261
+ myColor = this.getColor(record[column.index]);
262
+ }
263
+ if (myColor == '') {
264
+ myColor = this.tbodyBackground;
265
+ }
266
+ row.push({ rowspan: 1, value, index: column.index, color: myColor, data: record });
267
+ }
268
+ }
269
+ this.rows.push(row);
270
+ }
271
+ });
272
+ this.customCol.forEach((column, i) => {
273
+ if (column.ismerge) {
274
+ this.needPage = false;
275
+ let lastTd = null;
276
+ this.rows.forEach((row) => {
277
+ const td = row[i];
278
+ if (lastTd != null && lastTd.value === td.value) {
279
+ lastTd.rowspan++;
280
+ td.rowspan = 0;
281
+ }
282
+ else {
283
+ lastTd = td;
284
+ }
285
+ });
286
+ }
287
+ });
288
+ }
289
+ getColor(value) {
290
+ // value=value.toString().replace('%','');
291
+ const regExp = /-?\d+\.?\d*/;
292
+ const result = regExp.exec(value);
293
+ if (this.level.length > 0) {
294
+ for (const t of this.level) {
295
+ if (t.gte <= Number(result[0]) && Number(result[0]) < t.lte) {
296
+ return t.color;
297
+ }
298
+ }
299
+ }
300
+ return '';
301
+ }
302
+ count() {
303
+ const name = 'value';
304
+ this._data.forEach((data) => {
305
+ this.groups.forEach((group, i) => {
306
+ group.columns.forEach((column, j) => {
307
+ let item = {};
308
+ let check = false;
309
+ this.totalCount.forEach((ite) => {
310
+ if (ite.filed === column.index) {
311
+ item = ite;
312
+ check = true;
313
+ return;
314
+ }
315
+ });
316
+ if (i === 0 && j === 0 && !check) {
317
+ item = { filed: column.index, value: '合计' };
318
+ }
319
+ if (i !== 0 || j !== 0) {
320
+ if (!check) {
321
+ item = { filed: column.index };
322
+ }
323
+ if (column.iscount) {
324
+ this.needCount = true;
325
+ if (!item[name]) {
326
+ item[name] = 0;
327
+ }
328
+ item[name] = Number(item[name]) + this.getDataValue(data, column.index);
329
+ }
330
+ else {
331
+ item[name] = '';
332
+ }
333
+ }
334
+ if (!check) {
335
+ this.totalCount.push(item);
336
+ }
337
+ });
338
+ });
339
+ });
340
+ }
341
+ getDataValue(array, index) {
342
+ let result = 0;
343
+ array.forEach((data) => {
344
+ if (data.index === index) {
345
+ result = Number(data.value);
346
+ return;
347
+ }
348
+ });
349
+ return result;
350
+ }
351
+ onTdClick(td, i) {
352
+ const { index, value, data } = td;
353
+ this.tdChange.emit(value);
354
+ this.rowChange.emit(this.customCol[i].title);
355
+ this.tdClick.emit({ index, value, data });
356
+ }
357
+ onTdClickByGroup(data, column) {
358
+ const index = column.index;
359
+ const value = data[index];
360
+ this.tdChange.emit(value);
361
+ this.rowChange.emit(column.title);
362
+ this.tdClick.emit({ index, value, data });
363
+ }
364
+ onTrClick(data) {
365
+ // if (this.isCustom) {
366
+ // data.forEach((a) => {
367
+ // console.log('tr:td' + a.value);
368
+ // });
369
+ // }
370
+ this.trChange.emit(data);
371
+ }
372
+ onCheck(column, values) {
373
+ column.filterChecked = values;
374
+ }
375
+ filter(column) {
376
+ this.filterValues[column.index] = column.filterChecked;
377
+ // column.filterValue = column.filterChecked;
378
+ this.updateData();
379
+ column.filterVisible = false;
380
+ }
381
+ reset(column) {
382
+ column.filterChecked = [];
383
+ column.filter = column.filter.map((item) => ({
384
+ value: item.value,
385
+ }));
386
+ this.filter(column);
387
+ }
388
+ export() {
389
+ const data = [];
390
+ const merges = [];
391
+ if (this.groups) {
392
+ const row1 = [];
393
+ const row2 = [];
394
+ this.groups.forEach((group) => {
395
+ const colIndex = row1.length;
396
+ group.columns.forEach((column) => {
397
+ row1.push(group.title);
398
+ row2.push(column.title);
399
+ });
400
+ if (group.row > 1 || group.col > 1) {
401
+ merges.push({ s: { r: 0, c: colIndex }, e: { r: group.row - 1, c: colIndex + group.col - 1 } });
402
+ }
403
+ });
404
+ data.push(row1, row2);
405
+ this._data.forEach((rowData) => {
406
+ const rowIndex = data.length;
407
+ const row = [];
408
+ rowData.forEach((td, i) => {
409
+ row.push(td.value);
410
+ if (td.rowspan > 1) {
411
+ merges.push({ s: { r: rowIndex, c: i }, e: { r: rowIndex + td.rowspan - 1, c: i } });
412
+ }
413
+ });
414
+ data.push(row);
415
+ });
416
+ }
417
+ else {
418
+ const row1 = this.columns.map((column) => column.title);
419
+ data.push(row1);
420
+ this._data.forEach((rowData) => {
421
+ const row = this.columns.map((column) => rowData[column.index]);
422
+ data.push(row);
423
+ });
424
+ }
425
+ return { data, merges };
426
+ }
427
+ exportWord() {
428
+ const element = this.ele.nativeElement;
429
+ let html = '';
430
+ const tables = element.querySelectorAll('table');
431
+ if (tables.length === 1) {
432
+ html += tables.item(0).outerHTML;
433
+ }
434
+ else if (tables.length > 1) {
435
+ html += '<table>';
436
+ tables.forEach((table) => {
437
+ table = table.cloneNode(true);
438
+ const measureRow = table.querySelector('.ant-table-measure-now');
439
+ if (measureRow) {
440
+ measureRow.parentElement.removeChild(measureRow);
441
+ }
442
+ html += table.innerHTML;
443
+ });
444
+ html += '</table><br/>';
445
+ }
446
+ return html;
447
+ }
448
+ };
449
+ TableComponent.decorators = [
450
+ { type: Component, args: [{
451
+ selector: 'sc-table',
452
+ template: "<nz-table\n *ngIf=\"columns\"\n #basicTable\n [nzData]=\"_data\"\n [nzScroll]=\"{ x: '50px', y: '100%' }\"\n [nzPageSize]=\"pageSize\"\n [ngStyle]=\"bodyStyle\"\n [nzBordered]=\"showBorder\"\n [nzWidthConfig]=\"widthConfig\"\n [nzFrontPagination]=\"needPage\"\n>\n <thead>\n <tr *ngFor=\"let header of headers\">\n <ng-container *ngFor=\"let column of header\">\n <th\n *ngIf=\"column.filter\"\n [rowSpan]=\"column.row\"\n [ngStyle]=\"headStyle\"\n [colSpan]=\"column.col\"\n [nzAlign]=\"contentAlign\"\n nzCustomFilter\n >\n {{ column.title }}\n <ng-container *ngIf=\"column.filter\">\n <nz-filter-trigger\n [nzDropdownMenu]=\"menu\"\n [(nzVisible)]=\"column.filterVisible\"\n [nzActive]=\"filterValues[column.index]?.length\"\n >\n <i nz-icon nzType=\"filter\" nzTheme=\"outline\"></i>\n </nz-filter-trigger>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div class=\"ant-table-filter-dropdown\">\n <div class=\"search-box\">\n <nz-checkbox-wrapper style=\"width: 100%\" (nzOnChange)=\"onCheck(column, $event)\">\n <div *ngFor=\"let option of column.filter\">\n <label nz-checkbox [nzValue]=\"option.value\" [ngModel]=\"option.checked\">\n <span [innerHTML]=\"option.value | nzSafeNull | nzSanitizer : 'html'\"></span>\n </label>\n </div>\n </nz-checkbox-wrapper>\n <button nz-button nzSize=\"small\" nzType=\"primary\" (click)=\"filter(column)\" class=\"search-button\">\n \u67E5\u8BE2\n </button>\n <button nz-button nzSize=\"small\" (click)=\"reset(column)\">\u91CD\u7F6E</button>\n </div>\n </div>\n </nz-dropdown-menu>\n </ng-container>\n </th>\n <th\n *ngIf=\"!column.filter\"\n [rowSpan]=\"column.row\"\n [ngStyle]=\"headStyle\"\n [colSpan]=\"column.col\"\n [nzAlign]=\"contentAlign\"\n >\n {{ column.title }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"!groups\">\n <tr *ngFor=\"let data of basicTable.data\" (click)=\"onTrClick(data)\">\n <td\n *ngFor=\"let column of columns\"\n nzAlign=\"{{ contentAlign }}\"\n (click)=\"onTdClickByGroup(data, column)\"\n [ngStyle]=\"bodyStyle\"\n [style.backgroundColor]=\"tbodyBackground\"\n [innerHTML]=\"data[column.index] | nzSafeNull | nzSanitizer : 'html'\"\n >\n </td>\n </tr>\n </ng-container>\n <ng-container *ngIf=\"groups\">\n <tr *ngFor=\"let row of rows\" (click)=\"onTrClick(row)\">\n <ng-container *ngFor=\"let td of row; let i = index\">\n <td\n *ngIf=\"td.rowspan\"\n [attr.rowspan]=\"td.rowspan\"\n [style.backgroundColor]=\"td.color\"\n nzAlign=\"{{ contentAlign }}\"\n (click)=\"onTdClick(td, i)\"\n [ngStyle]=\"bodyStyle\"\n [innerHTML]=\"td.value | nzSafeNull | nzSanitizer : 'html'\"\n ></td>\n </ng-container>\n </tr>\n </ng-container>\n <tr *ngIf=\"needCount\">\n <td *ngFor=\"let count of totalCount\" nzAlign=\"{{ contentAlign }}\" [style.backgroundColor]=\"tbodyBackground\">\n {{ count.value }}\n </td>\n </tr>\n <tr *ngIf=\"needCount\">\n <ng-container *ngFor=\"let count of totalCount; let i = index\">\n <td *ngIf=\"i === 0\" nzAlign=\"{{ contentAlign }}\" [style.backgroundColor]=\"tbodyBackground\">\u5E73\u5747\u503C</td>\n <td *ngIf=\"i !== 0\" nzAlign=\"{{ contentAlign }}\" [style.backgroundColor]=\"tbodyBackground\">\n {{ count.value / dataSize }}\n </td>\n </ng-container>\n </tr>\n <tr *ngIf=\"isCount\">\n <td nzAlign=\"{{ contentAlign }}\" [style.backgroundColor]=\"tbodyBackground\">\u4E2A\u6570</td>\n <td nzAlign=\"{{ contentAlign }}\" colSpan=\"{{ titleSize - 1 }}\" [style.backgroundColor]=\"tbodyBackground\">\n {{ dataSize }}\n </td>\n </tr>\n <tr *ngIf=\"sumColumns\">\n <td\n *ngFor=\"let column of columns; let i = index\"\n nzAlign=\"{{ contentAlign }}\"\n [ngStyle]=\"bodyStyle\"\n [style.backgroundColor]=\"tbodyBackground\"\n >\n <ng-container *ngIf=\"i == 0 && sumData[column.index] == null\">\u5408\u8BA1</ng-container>\n <ng-container *ngIf=\"sumData[column.index] != null\">{{ sumData[column.index] }}</ng-container>\n </td>\n </tr>\n </tbody>\n</nz-table>\n",
453
+ styles: [":host{display:block;width:100%}.ant-table-wrapper,.ant-table-wrapper ::ng-deep.ant-spin-nested-loading,:host{height:100%}.ant-table-wrapper ::ng-deep.ant-spin-nested-loading .ant-spin-container{height:100%;display:flex;flex-direction:column}.ant-table-wrapper ::ng-deep.ant-spin-nested-loading .ant-spin-container .ant-table{background:inherit;flex:1;overflow:hidden}.ant-table-wrapper ::ng-deep.ant-spin-nested-loading .ant-spin-container .ant-table .ant-table-thead>tr>th{background:inherit}.ant-table-wrapper ::ng-deep.ant-spin-nested-loading .ant-spin-container .ant-table .ant-table-container{height:100%;display:flex;flex-direction:column}.ant-table-wrapper ::ng-deep.ant-spin-nested-loading .ant-spin-container .ant-table .ant-table-container .ant-table-header{flex:none}.ant-table-wrapper ::ng-deep.ant-spin-nested-loading .ant-spin-container .ant-table .ant-table-container .ant-table-header::-webkit-scrollbar{opacity:0;background:transparent}.ant-table-wrapper ::ng-deep.ant-spin-nested-loading .ant-spin-container .ant-table .ant-table-container .ant-table-body{flex:1;overflow:auto}.ant-table-wrapper ::ng-deep.ant-spin-nested-loading .ant-spin-container .ant-table-pagination-right{align-self:flex-end}.search-box{padding:8px;width:212px}.search-box input{margin-bottom:8px;display:block}.search-box button{width:90px}.search-button{margin-right:8px}nz-filter-trigger{background:transparent!important}nz-filter-trigger ::ng-deep .ant-table-filter-trigger{font-size:inherit}nz-filter-trigger ::ng-deep .ant-table-filter-trigger:not(.active){color:inherit}.ant-checkbox-group{max-height:300px;overflow:auto}"]
454
+ },] }
455
+ ];
456
+ TableComponent.ctorParameters = () => [
457
+ { type: ElementRef }
458
+ ];
459
+ __decorate([
460
+ Property('条数/页', { ui: { widget: 'myRange', min: 1, max: 100, step: 1 } }),
461
+ __metadata("design:type", Object)
462
+ ], TableComponent.prototype, "pageSize", void 0);
463
+ __decorate([
464
+ Property('表头背景', {
465
+ ui: {
466
+ widget: 'myColor',
467
+ example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],
468
+ },
469
+ }),
470
+ __metadata("design:type", Object)
471
+ ], TableComponent.prototype, "theadBackground", void 0);
472
+ __decorate([
473
+ Property('表头字体', { ui: { widget: 'myFont' } }),
474
+ __metadata("design:type", Object)
475
+ ], TableComponent.prototype, "headFont", void 0);
476
+ __decorate([
477
+ Property('内容对齐', {
478
+ type: 'string',
479
+ ui: {
480
+ widget: 'select',
481
+ },
482
+ enum: [
483
+ { label: '左对齐', value: 'left' },
484
+ { label: '右对齐', value: 'right' },
485
+ { label: '居中', value: 'center' },
486
+ ],
487
+ }),
488
+ __metadata("design:type", Object)
489
+ ], TableComponent.prototype, "contentAlign", void 0);
490
+ __decorate([
491
+ Property('表格背景', {
492
+ ui: {
493
+ widget: 'myColor',
494
+ example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],
495
+ },
496
+ }),
497
+ __metadata("design:type", Object)
498
+ ], TableComponent.prototype, "tbodyBackground", void 0);
499
+ __decorate([
500
+ Property('字体', { ui: { widget: 'myFont' } }),
501
+ __metadata("design:type", Object)
502
+ ], TableComponent.prototype, "font", void 0);
503
+ __decorate([
504
+ Property('是否自定义', {
505
+ type: 'boolean',
506
+ ui: {
507
+ checkedChildren: '开',
508
+ unCheckedChildren: '关',
509
+ },
510
+ }),
511
+ __metadata("design:type", Object)
512
+ ], TableComponent.prototype, "isCustom", void 0);
513
+ __decorate([
514
+ Property('显示边框', {
515
+ type: 'boolean',
516
+ ui: {
517
+ checkedChildren: '开',
518
+ unCheckedChildren: '关',
519
+ },
520
+ }),
521
+ __metadata("design:type", Object)
522
+ ], TableComponent.prototype, "showBorder", void 0);
523
+ __decorate([
524
+ Property('显示分页', {
525
+ type: 'boolean',
526
+ ui: {
527
+ checkedChildren: '开',
528
+ unCheckedChildren: '关',
529
+ },
530
+ }),
531
+ __metadata("design:type", Object)
532
+ ], TableComponent.prototype, "needPage", void 0);
533
+ __decorate([
534
+ Property('统计个数', {
535
+ type: 'boolean',
536
+ ui: {
537
+ checkedChildren: '开',
538
+ unCheckedChildren: '关',
539
+ },
540
+ }),
541
+ __metadata("design:type", Object)
542
+ ], TableComponent.prototype, "isCount", void 0);
543
+ __decorate([
544
+ Property('合计', { type: 'string', ui: { optionalHelp: '填写列名,逗号分隔' } }),
545
+ __metadata("design:type", String)
546
+ ], TableComponent.prototype, "sumColumns", void 0);
547
+ __decorate([
548
+ Property('颜色分层', {
549
+ type: 'array',
550
+ maxItems: 99,
551
+ items: {
552
+ type: 'object',
553
+ properties: {
554
+ gte: {
555
+ type: 'number',
556
+ title: '大于',
557
+ },
558
+ lte: {
559
+ type: 'number',
560
+ title: '小于',
561
+ minimum: 1,
562
+ },
563
+ color: {
564
+ type: 'string',
565
+ title: '颜色',
566
+ ui: {
567
+ widget: 'myColor',
568
+ },
569
+ },
570
+ },
571
+ required: ['gte', 'lte'],
572
+ },
573
+ ui: { grid: { arraySpan: 24 }, spanControl: 24 },
574
+ }),
575
+ __metadata("design:type", Object)
576
+ ], TableComponent.prototype, "level", void 0);
577
+ __decorate([
578
+ Property('自定义列', {
579
+ type: 'array',
580
+ maxItems: 99,
581
+ items: {
582
+ type: 'object',
583
+ properties: {
584
+ group: {
585
+ type: 'string',
586
+ title: '分组名',
587
+ },
588
+ title: {
589
+ type: 'string',
590
+ title: '列名',
591
+ },
592
+ field: {
593
+ type: 'string',
594
+ title: 'bind',
595
+ },
596
+ width: {
597
+ type: 'number',
598
+ title: '宽度',
599
+ },
600
+ ismerge: {
601
+ type: 'boolean',
602
+ title: '是否合并',
603
+ },
604
+ needlevel: {
605
+ type: 'boolean',
606
+ title: '颜色分层',
607
+ },
608
+ showFilter: {
609
+ type: 'boolean',
610
+ title: '显示筛选',
611
+ },
612
+ },
613
+ required: ['title', 'field'],
614
+ },
615
+ ui: { visibleIf: { isCustom: [true] }, grid: { arraySpan: 24 }, spanLabel: 24, spanControl: 24 },
616
+ }),
617
+ __metadata("design:type", Object)
618
+ ], TableComponent.prototype, "customCol", void 0);
619
+ __decorate([
620
+ Data({}),
621
+ __metadata("design:type", Array)
622
+ ], TableComponent.prototype, "_data", void 0);
623
+ __decorate([
624
+ DataSchema('_data'),
625
+ __metadata("design:type", Object)
626
+ ], TableComponent.prototype, "schema", void 0);
627
+ __decorate([
628
+ DataOutput('单元格内容'),
629
+ __metadata("design:type", Object)
630
+ ], TableComponent.prototype, "tdChange", void 0);
631
+ __decorate([
632
+ DataOutput('行数据'),
633
+ __metadata("design:type", Object)
634
+ ], TableComponent.prototype, "trChange", void 0);
635
+ __decorate([
636
+ DataOutput('列名'),
637
+ __metadata("design:type", Object)
638
+ ], TableComponent.prototype, "rowChange", void 0);
639
+ __decorate([
640
+ Event('点击单元格', {
641
+ params: {
642
+ properties: {
643
+ index: { type: 'string', title: '列名' },
644
+ value: { type: 'string', title: '值' },
645
+ data: ɵ0,
646
+ },
647
+ },
648
+ }),
649
+ __metadata("design:type", Object)
650
+ ], TableComponent.prototype, "tdClick", void 0);
651
+ TableComponent = __decorate([
652
+ Widget('表格', { group: 'table', icon: 'icontubiao', image: '/assets/img/screen/custom-table.png' }),
653
+ __metadata("design:paramtypes", [ElementRef])
654
+ ], TableComponent);
655
+ export { TableComponent };
656
+ export { ɵ0 };
657
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWVuLXdpZGdldC9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQTRCLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBdUIsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0csT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztXQXdNdEIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFoTWpDLGNBQWMsU0FBZCxjQUFjO0lBc056QixZQUFvQixHQUFlO1FBQWYsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQXBObkMsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQU9kLG9CQUFlLEdBQUcsU0FBUyxDQUFDO1FBRTVCLGFBQVEsR0FBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFZdEcsaUJBQVksR0FBRyxRQUFRLENBQUM7UUFPeEIsb0JBQWUsR0FBRyxTQUFTLENBQUM7UUFHNUIsU0FBSSxHQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQVFsRyxhQUFRLEdBQUcsS0FBSyxD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S0FBSyxDQUFDOztnREFDaUI7QUFFbkM7SUFEQyxVQUFVLENBQUMsSUFBSSxDQUFDOztpREFDbUI7QUFVcEM7SUFUQyxLQUFLLENBQUMsT0FBTyxFQUFFO1FBQ2QsTUFBTSxFQUFFO1lBQ04sVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtnQkFDdEMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNyQyxJQUFJLElBQWtDO2FBQ3ZDO1NBQ0Y7S0FDRixDQUFDOzsrQ0FDZ0M7QUFwTXZCLGNBQWM7SUFEMUIsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUscUNBQXFDLEVBQUUsQ0FBQztxQ0F1TnhFLFVBQVU7R0F0TnhCLGNBQWMsQ0FvbEIxQjtTQXBsQlksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2lkZ2V0LCBQcm9wZXJ0eSwgRGF0YSwgRGF0YVNjaGVtYSwgRGF0YU91dHB1dCwgQ3VzdG9tRXhwb3J0LCBTaGVldCwgRXZlbnQgfSBmcm9tICdiYmotd2lkZ2V0LWJhc2UnO1xuaW1wb3J0IHsgU0ZBcnJheVdpZGdldFNjaGVtYSwgU0ZTY2hlbWEgfSBmcm9tICdAZGVsb24vZm9ybSc7XG5pbXBvcnQgeyBpc051bSB9IGZyb20gJ0BkZWxvbi91dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2MtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQubGVzcyddLFxufSlcbkBXaWRnZXQoJ+ihqOagvCcsIHsgZ3JvdXA6ICd0YWJsZScsIGljb246ICdpY29udHViaWFvJywgaW1hZ2U6ICcvYXNzZXRzL2ltZy9zY3JlZW4vY3VzdG9tLXRhYmxlLnBuZycgfSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDdXN0b21FeHBvcnQge1xuICBAUHJvcGVydHkoJ+adoeaVsC/pobUnLCB7IHVpOiB7IHdpZGdldDogJ215UmFuZ2UnLCBtaW46IDEsIG1heDogMTAwLCBzdGVwOiAxIH0gfSlcbiAgcGFnZVNpemUgPSAxMDtcbiAgQFByb3BlcnR5KCfooajlpLTog4zmma8nLCB7XG4gICAgdWk6IHtcbiAgICAgIHdpZGdldDogJ215Q29sb3InLFxuICAgICAgZXhhbXBsZTogWycjRDAwMjFCJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgJyMzMzMzMzMnXSxcbiAgICB9LFxuICB9KVxuICB0aGVhZEJhY2tncm91bmQgPSAnI2ZhZmFmYSc7XG4gIEBQcm9wZXJ0eSgn6KGo5aS05a2X5L2TJywgeyB1aTogeyB3aWRnZXQ6ICdteUZvbnQnIH0gfSlcbiAgaGVhZEZvbnQ6IGFueSA9IHsgZmFtaWx5OiAnJywgY29sb3I6ICcjMjIyMjIyJywgd2VpZ2h0OiAnbm9ybWFsJywgc2l6ZTogMTIsIHNwYWNlOiAwLCBsaW5lSGVpZ2h0OiAyIH07XG4gIEBQcm9wZXJ0eSgn5YaF5a655a+56b2QJywge1xuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIHVpOiB7XG4gICAgICB3aWRnZXQ6ICdzZWxlY3QnLFxuICAgIH0sXG4gICAgZW51bTogW1xuICAgICAgeyBsYWJlbDogJ+W3puWvuem9kCcsIHZhbHVlOiAnbGVmdCcgfSxcbiAgICAgIHsgbGFiZWw6ICflj7Plr7npvZAnLCB2YWx1ZTogJ3JpZ2h0JyB9LFxuICAgICAgeyBsYWJlbDogJ+WxheS4rScsIHZhbHVlOiAnY2VudGVyJyB9LFxuICAgIF0sXG4gIH0pXG4gIGNvbnRlbnRBbGlnbiA9ICdjZW50ZXInO1xuICBAUHJvcGVydHkoJ+ihqOagvOiDjOaZrycsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNEMDAyMUInLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCAnIzMzMzMzMyddLFxuICAgIH0sXG4gIH0pXG4gIHRib2R5QmFja2dyb3VuZCA9ICcjRkZGRkZGJztcblxuICBAUHJvcGVydHkoJ+Wtl+S9kycsIHsgdWk6IHsgd2lkZ2V0OiAnbXlGb250JyB9IH0pXG4gIGZvbnQ6IGFueSA9IHsgZmFtaWx5OiAnJywgY29sb3I6ICcjMjIyMjIyJywgd2VpZ2h0OiAnbm9ybWFsJywgc2l6ZTogMTIsIHNwYWNlOiAwLCBsaW5lSGVpZ2h0OiAyIH07XG4gIEBQcm9wZXJ0eSgn5piv5ZCm6Ieq5a6a5LmJJywge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB1aToge1xuICAgICAgY2hlY2tlZENoaWxkcmVuOiAn5byAJyxcbiAgICAgIHVuQ2hlY2tlZENoaWxkcmVuOiAn5YWzJyxcbiAgICB9LFxuICB9KVxuICBpc0N1c3RvbSA9IGZhbHNlO1xuICBAUHJvcGVydHkoJ+aYvuekuui+ueahhicsIHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgdWk6IHtcbiAgICAgIGNoZWNrZWRDaGlsZHJlbjogJ+W8gCcsXG4gICAgICB1bkNoZWNrZWRDaGlsZHJlbjogJ+WFsycsXG4gICAgfSxcbiAgfSlcbiAgc2hvd0JvcmRlciA9IGZhbHNlO1xuICBAUHJvcGVydHkoJ+aYvuekuuWIhumhtScsIHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgdWk6IHtcbiAgICAgIGNoZWNrZWRDaGlsZHJlbjogJ+W8gCcsXG4gICAgICB1bkNoZWNrZWRDaGlsZHJlbjogJ+WFsycsXG4gICAgfSxcbiAgfSlcbiAgbmVlZFBhZ2UgPSBmYWxzZTtcbiAgQFByb3BlcnR5KCfnu5/orqHkuKrmlbAnLCB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIHVpOiB7XG4gICAgICBjaGVja2VkQ2hpbGRyZW46ICflvIAnLFxuICAgICAgdW5DaGVja2VkQ2hpbGRyZW46ICflhbMnLFxuICAgIH0sXG4gIH0pXG4gIGlzQ291bnQgPSBmYWxzZTtcbiAgQFByb3BlcnR5KCflkIjorqEnLCB7IHR5cGU6ICdzdHJpbmcnLCB1aTogeyBvcHRpb25hbEhlbHA6ICfloavlhpnliJflkI0s6YCX5Y+35YiG6ZqUJyB9IH0pXG4gIHN1bUNvbHVtbnM6IHN0cmluZztcbiAgQFByb3BlcnR5KCfpopzoibLliIblsYInLCB7XG4gICAgdHlwZTogJ2FycmF5JyxcbiAgICBtYXhJdGVtczogOTksXG4gICAgaXRlbXM6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBndGU6IHtcbiAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICB0aXRsZTogJ+Wkp+S6jicsXG4gICAgICAgIH0sXG4gICAgICAgIGx0ZToge1xuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgIHRpdGxlOiAn5bCP5LqOJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICB9LFxuICAgICAgICBjb2xvcjoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIHRpdGxlOiAn6aKc6ImyJyxcbiAgICAgICAgICB1aToge1xuICAgICAgICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICByZXF1aXJlZDogWydndGUnLCAnbHRlJ10sXG4gICAgfSxcbiAgICB1aTogeyBncmlkOiB7IGFycmF5U3BhbjogMjQgfSwgc3BhbkNvbnRyb2w6IDI0IH0gYXMgU0ZBcnJheVdpZGdldFNjaGVtYSxcbiAgfSlcbiAgbGV2ZWwgPSBbXTtcbiAgLy8gQFByb3BlcnR5KCflrZfmrrXkuqTlj4knLCB7XG4gIC8vICAgdHlwZTogJ2FycmF5JyxcbiAgLy8gICBtYXhJdGVtczogMSxcbiAgLy8gICBpdGVtczoge1xuICAvLyAgICAgdHlwZTogJ29iamVjdCcsXG4gIC8vICAgICBwcm9wZXJ0aWVzOiB7XG4gIC8vICAgICAgIGtleToge1xuICAvLyAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAvLyAgICAgICAgIHRpdGxlOiAn57uR5a6a5a2X5q61JyxcbiAgLy8gICAgICAgfSxcbiAgLy8gICAgICAgdmFsdWU6IHtcbiAgLy8gICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgLy8gICAgICAgICB0aXRsZTogJ+e7keWumuWAvCcsXG4gIC8vICAgICAgIH0sXG4gIC8vICAgICAgIG1lcmdlRmllbGQ6IHtcbiAgLy8gICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgLy8gICAgICAgICB0aXRsZTogJ+WQiOW5tuWtl+autScsXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0sXG4gIC8vICAgICByZXF1aXJlZDogW10sXG4gIC8vICAgfSxcbiAgLy8gICB1aToge2dyaWQ6IHthcnJheVNwYW46IDI0fSwgc3BhbkNvbnRyb2w6IDI0fSBhcyBTRkFycmF5V2lkZ2V0U2NoZW1hLFxuICAvLyB9KVxuICAvLyBjcm9zcyA9IFtdO1xuICBAUHJvcGVydHkoJ+iHquWumuS5ieWIlycsIHtcbiAgICB0eXBlOiAnYXJyYXknLFxuICAgIG1heEl0ZW1zOiA5OSxcbiAgICBpdGVtczoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGdyb3VwOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgdGl0bGU6ICfliIbnu4TlkI0nLFxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIHRpdGxlOiAn5YiX5ZCNJyxcbiAgICAgICAgfSxcbiAgICAgICAgZmllbGQ6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB0aXRsZTogJ2JpbmQnLFxuICAgICAgICB9LFxuICAgICAgICB3aWR0aDoge1xuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgIHRpdGxlOiAn5a695bqmJyxcbiAgICAgICAgfSxcbiAgICAgICAgaXNtZXJnZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICB0aXRsZTogJ+aYr+WQpuWQiOW5ticsXG4gICAgICAgIH0sXG4gICAgICAgIG5lZWRsZXZlbDoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICB0aXRsZTogJ+minOiJsuWIhuWxgicsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dGaWx0ZXI6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgdGl0bGU6ICfmmL7npLrnrZvpgIknLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlcXVpcmVkOiBbJ3RpdGxlJywgJ2ZpZWxkJ10sXG4gICAgfSxcbiAgICB1aTogeyB2aXNpYmxlSWY6IHsgaXNDdXN0b206IFt0cnVlXSB9LCBncmlkOiB7IGFycmF5U3BhbjogMjQgfSwgc3BhbkxhYmVsOiAyNCwgc3BhbkNvbnRyb2w6IDI0IH0sXG4gIH0pXG4gIGN1c3RvbUNvbDogYW55ID0gW107XG4gIC8vIGhhc0dyb3VwID0gZmFsc2U7XG4gIGlzQ3Jvc3MgPSBmYWxzZTtcbiAgaW1hZ2U6IHN0cmluZztcbiAgQERhdGEoe30pXG4gIF9kYXRhOiBhbnlbXSA9IFtcbiAgICB7IHg6ICfkuIDmnIgnLCB5OiAnMTAlJywgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICfkuozmnIgnLCB5OiAyMCwgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICfkuInmnIgnLCB5OiAyNSwgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICflm5vmnIgnLCB5OiAzNSwgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICfkupTmnIgnLCB5OiAyNywgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICflha3mnIgnLCB5OiAyOCwgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICfkuIDmnIgnLCB5OiAxOCwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICfkuozmnIgnLCB5OiAyOCwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICfkuInmnIgnLCB5OiAzMiwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICflm5vmnIgnLCB5OiA0OCwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICfkupTmnIgnLCB5OiAyMCwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICflha3mnIgnLCB5OiAxNywgczogJ+aUr+WHuicgfSxcbiAgXTtcbiAgQERhdGFTY2hlbWEoJ19kYXRhJylcbiAgc2NoZW1hOiBTRlNjaGVtYTtcblxuICBARGF0YU91dHB1dCgn5Y2V5YWD5qC85YaF5a65JylcbiAgdGRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQERhdGFPdXRwdXQoJ+ihjOaVsOaNricpXG4gIHRyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBEYXRhT3V0cHV0KCfliJflkI0nKVxuICByb3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQEV2ZW50KCfngrnlh7vljZXlhYPmoLwnLCB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGluZGV4OiB7IHR5cGU6ICdzdHJpbmcnLCB0aXRsZTogJ+WIl+WQjScgfSxcbiAgICAgICAgdmFsdWU6IHsgdHlwZTogJ3N0cmluZycsIHRpdGxlOiAn5YC8JyB9LFxuICAgICAgICBkYXRhOiB7IHR5cGU6ICdvYmplY3QnLCB0aXRsZTogJ+ihjOaVsOaNricgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbiAgdGRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAvLyB5OiBzdHJpbmc7XG4gIGhlYWRTdHlsZTogYW55ID0ge307XG4gIGJvZHlTdHlsZTogYW55ID0ge307XG4gIGNvbHVtbnM6IGFueTtcbiAgZ3JvdXBzOiBhbnk7XG4gIC8vIHJvd1NpemUgPSAxO1xuICB3aWR0aENvbmZpZyA9IFtdO1xuICByb3dzID0gW107XG4gIHRvdGFsQ291bnQgPSBbXTtcbiAgbmVlZENvdW50ID0gZmFsc2U7XG5cbiAgZGF0YVNpemU6IG51bWJlcjtcbiAgdGl0bGVTaXplOiBudW1iZXI7XG4gIHNlYXJjaFZhbHVlID0ge307XG4gIGhlYWRlcnMgPSBbXTtcbiAgZmlsdGVyVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IGFueVtdIH0gPSB7fTtcbiAgc3VtRGF0YSA9IHt9O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZTogRWxlbWVudFJlZikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuc2NoZW1hIHx8IGNoYW5nZXMuY3VzdG9tQ29sKSB7XG4gICAgICB0aGlzLnVwZGF0ZUhlYWRlcigpO1xuICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzLl9kYXRhKSB7XG4gICAgICBpZiAoIXRoaXMuc2NoZW1hKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSGVhZGVyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBpZiAodGhpcy5lbGUpIHtcbiAgICAvLyAgIGNvbnN0IGhlaWdodCA9IHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gMTEwO1xuICAgIC8vICAgdGhpcy55ID0gaGVpZ2h0ID4gMCA/IGhlaWdodCArICdweCcgOiAnMHB4JztcbiAgICAvLyB9XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5ncm91cEJ5KHRoaXMuX2RhdGEsJ3gnKSk7XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jb3VudEdyb3VwUm93KTtcbiAgICB0aGlzLmhlYWRTdHlsZSA9IHtcbiAgICAgIGZhbWlseTogdGhpcy5oZWFkRm9udC5mYW1pbHksXG4gICAgICBjb2xvcjogdGhpcy5oZWFkRm9udC5jb2xvcixcbiAgICAgIHdlaWdodDogdGhpcy5oZWFkRm9udC53ZWlnaHQsXG4gICAgICBmb250U2l6ZTogdGhpcy5oZWFkRm9udC5zaXplICsgJ3B4JyxcbiAgICAgIHNwYWNlOiB0aGlzLmhlYWRGb250LnNwYWNlLFxuICAgICAgbGluZUhlaWdodDogdGhpcy5oZWFkRm9udC5saW5lSGVpZ2h0LFxuICAgICAgYmFja2dyb3VuZDogdGhpcy50aGVhZEJhY2tncm91bmQsXG4gICAgfTtcbiAgICB0aGlzLmJvZHlTdHlsZSA9IHtcbiAgICAgIGZhbWlseTogdGhpcy5mb250LmZhbWlseSxcbiAgICAgIGNvbG9yOiB0aGlzLmZvbnQuY29sb3IsXG4gICAgICB3ZWlnaHQ6IHRoaXMuZm9udC53ZWlnaHQsXG4gICAgICBmb250U2l6ZTogdGhpcy5mb250LnNpemUgKyAncHgnLFxuICAgICAgc3BhY2U6IHRoaXMuZm9udC5zcGFjZSxcbiAgICAgIGxpbmVIZWlnaHQ6IHRoaXMuZm9udC5saW5lSGVpZ2h0LFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVIZWFkZXIoKSB7XG4gICAgdGhpcy5jb2x1bW5zID0gW107XG4gICAgdGhpcy53aWR0aENvbmZpZyA9IFtdO1xuICAgIGlmICh0aGlzLmlzQ3VzdG9tICYmIHRoaXMuY3VzdG9tQ29sWzBdKSB7XG4gICAgICBjb25zdCBoYXNHcm91cCA9IHRoaXMuY3VzdG9tQ29sLnNvbWUoKGRhdGEpID0+IGRhdGEuZ3JvdXAgIT0gbnVsbCAmJiBkYXRhLmdyb3VwICE9PSAnJyk7XG4gICAgICB0aGlzLmdyb3VwcyA9IFtdO1xuICAgICAgY29uc3Qgc3ViSGVhZGVyID0gW107XG4gICAgICBjb25zdCBncm91cE1hcCA9IHt9O1xuICAgICAgdGhpcy5jdXN0b21Db2wuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBncm91cGVkID0gISFkYXRhLmdyb3VwO1xuICAgICAgICBjb25zdCBncm91cE5hbWUgPSBkYXRhLmdyb3VwIHx8IGRhdGEudGl0bGU7XG4gICAgICAgIHRoaXMud2lkdGhDb25maWcucHVzaCgoZGF0YS53aWR0aCB8fCAxMDApICsgJ3B4Jyk7XG4gICAgICAgIGNvbnN0IGNvbHVtbjogYW55ID0ge1xuICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxuICAgICAgICAgIGluZGV4OiBkYXRhLmZpZWxkLFxuICAgICAgICAgIGlzbWVyZ2U6IGRhdGEuaXNtZXJnZSxcbiAgICAgICAgICBpc2NvdW50OiBkYXRhLmlzY291bnQsXG4gICAgICAgICAgbmVlZGxldmVsOiBkYXRhLm5lZWRsZXZlbCxcbiAgICAgICAgICBzaG93RmlsdGVyOiBkYXRhLnNob3dGaWx0ZXIsXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBNYXBbZ3JvdXBOYW1lXTtcbiAgICAgICAgaWYgKGdyb3VwID09IG51bGwpIHtcbiAgICAgICAgICBncm91cCA9IHsgdGl0bGU6IGdyb3VwTmFtZSwgcm93OiAxLCBjb2w6IDAsIGNvbHVtbnM6IFtdIH07XG4gICAgICAgICAgZ3JvdXBNYXBbZ3JvdXBOYW1lXSA9IGdyb3VwO1xuICAgICAgICAgIHRoaXMuZ3JvdXBzLnB1c2goZ3JvdXApO1xuICAgICAgICB9XG4gICAgICAgIGdyb3VwLmNvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICBncm91cC5jb2wrKztcbiAgICAgICAgaWYgKGdyb3VwZWQpIHtcbiAgICAgICAgICBzdWJIZWFkZXIucHVzaChjb2x1bW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwLmluZGV4ID0gZGF0YS5maWVsZDtcbiAgICAgICAgICBpZiAoaGFzR3JvdXApIHtcbiAgICAgICAgICAgIGdyb3VwLnJvdyA9IDI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaGVhZGVycyA9IFt0aGlzLmdyb3Vwcywgc3ViSGVhZGVyXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuc2NoZW1hKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuc2NoZW1hLnByb3BlcnRpZXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5zY2hlbWEucHJvcGVydGllc1trZXldO1xuICAgICAgICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgICAgICAgY29uc3QgY29sdW1uID0geyB0aXRsZTogcHJvcGVydHkudGl0bGUgfHwga2V5LCBpbmRleDoga2V5LCBzY2hlbWE6IHByb3BlcnR5IH07XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2RhdGEgJiYgdGhpcy5fZGF0YVswXSkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5fZGF0YVswXTtcbiAgICAgICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29sdW1uID0geyB0aXRsZToga2V5LCBpbmRleDoga2V5IH07XG4gICAgICAgICAgdGhpcy53aWR0aENvbmZpZy5wdXNoKDEwMCArICdweCcpO1xuICAgICAgICAgIHRoaXMuY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5oZWFkZXJzID0gW3RoaXMuY29sdW1uc107XG4gICAgICBjb25zb2xlLmxvZygnaGVhZGVyJywgdGhpcy5oZWFkZXJzKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVEYXRhKCkge1xuICAgIHRoaXMuZGF0YVNpemUgPSB0aGlzLl9kYXRhLmxlbmd0aDtcbiAgICBpZiAodGhpcy5fZGF0YVswXSkge1xuICAgICAgdGhpcy50aXRsZVNpemUgPSBPYmplY3Qua2V5cyh0aGlzLl9kYXRhWzBdKS5sZW5ndGg7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzQ3VzdG9tICYmIHRoaXMuY3VzdG9tQ29sWzBdKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbnMoKTtcbiAgICAgIHRoaXMuZ3JvdXBCeSh0aGlzLl9kYXRhKTtcbiAgICAgIHRoaXMuY291bnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3VtQ29sdW1ucykge1xuICAgICAgdGhpcy5zdW1EYXRhID0ge307XG4gICAgICB0aGlzLnN1bUNvbHVtbnMuc3BsaXQoJywnKS5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgbGV0IHN1bTogbnVtYmVyID0gdGhpcy5fZGF0YS5yZWR1Y2UoKHAsIGMpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNbY29sdW1uXTtcbiAgICAgICAgICBpZiAodmFsdWUgJiYgaXNOdW0odmFsdWUpKSB7XG4gICAgICAgICAgICBwICs9ICt2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHA7XG4gICAgICAgIH0sIDApO1xuICAgICAgICB0aGlzLnN1bURhdGFbY29sdW1uXSA9ICtzdW0udG9GaXhlZCgyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDmm7TmlrDnrZvpgInkuIvmi4nmoYbph4znmoTmlbDmja5cbiAgICovXG4gIHVwZGF0ZUZpbHRlck9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMuZ3JvdXBzKSB7XG4gICAgICB0aGlzLmdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICBncm91cC5jb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICAgIGlmIChjb2x1bW4uc2hvd0ZpbHRlcikge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVTZXQgPSBuZXcgU2V0PGFueT4oKTtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGdyb3VwLmNvbHVtbnMubGVuZ3RoID09IDEgPyBncm91cCA6IGNvbHVtbjtcbiAgICAgICAgICAgIHRhcmdldC5maWx0ZXIgPSBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gY29sdW1uLmluZGV4O1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcm93W2tleV07XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmZpbHRlclZhbHVlc1trZXldO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrZWQgPSBmaWx0ZXJWYWx1ZSAmJiBmaWx0ZXJWYWx1ZS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQgfHwgdGhpcy5maWx0ZXJNYXRjaChyb3csIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHZhbHVlICE9ICcnICYmICF2YWx1ZVNldC5oYXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlU2V0LmFkZCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB7IHZhbHVlLCBjaGVja2VkIH07XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5maWx0ZXIucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJNYXRjaChyZWNvcmQ6IGFueSwgZXhjbHVkZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZpbHRlclZhbHVlcyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgaWYgKGtleSAhPT0gZXhjbHVkZSkge1xuICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZmlsdGVyVmFsdWVzW2tleV07XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcmVjb3JkW2tleV07XG4gICAgICAgIGlmIChmaWx0ZXJWYWx1ZT8ubGVuZ3RoICYmICFmaWx0ZXJWYWx1ZS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBncm91cEJ5KGFycmF5KSB7XG4gICAgdGhpcy5yb3dzID0gW107XG4gICAgYXJyYXkuZm9yRWFjaCgocmVjb3JkKSA9PiB7XG4gICAgICBpZiAodGhpcy5maWx0ZXJNYXRjaChyZWNvcmQpKSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHRoaXMuZ3JvdXBzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBjb2x1bW4gb2YgZ3JvdXAuY29sdW1ucykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByZWNvcmRbY29sdW1uLmluZGV4XTtcbiAgICAgICAgICAgIC8vIGlmIChjb2x1bW4uc2hvd0ZpbHRlcikge1xuICAgICAgICAgICAgLy8gICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGNvbHVtbi5maWx0ZXJWYWx1ZSB8fCBncm91cC5maWx0ZXJWYWx1ZTtcbiAgICAgICAgICAgIC8vICAgaWYgKGZpbHRlclZhbHVlPy5sZW5ndGggJiYgIWZpbHRlclZhbHVlLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgLy8gICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vICAgfVxuICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgbGV0IG15Q29sb3IgPSAnJztcbiAgICAgICAgICAgIGlmIChjb2x1bW4ubmVlZGxldmVsKSB7XG4gICAgICAgICAgICAgIG15Q29sb3IgPSB0aGlzLmdldENvbG9yKHJlY29yZFtjb2x1bW4uaW5kZXhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChteUNvbG9yID09ICcnKSB7XG4gICAgICAgICAgICAgIG15Q29sb3IgPSB0aGlzLnRib2R5QmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvdy5wdXNoKHsgcm93c3BhbjogMSwgdmFsdWUsIGluZGV4OiBjb2x1bW4uaW5kZXgsIGNvbG9yOiBteUNvbG9yLCBkYXRhOiByZWNvcmQgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucm93cy5wdXNoKHJvdyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jdXN0b21Db2wuZm9yRWFjaCgoY29sdW1uLCBpKSA9PiB7XG4gICAgICBpZiAoY29sdW1uLmlzbWVyZ2UpIHtcbiAgICAgICAgdGhpcy5uZWVkUGFnZSA9IGZhbHNlO1xuICAgICAgICBsZXQgbGFzdFRkID0gbnVsbDtcbiAgICAgICAgdGhpcy5yb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIGNvbnN0IHRkID0gcm93W2ldO1xuICAgICAgICAgIGlmIChsYXN0VGQgIT0gbnVsbCAmJiBsYXN0VGQudmFsdWUgPT09IHRkLnZhbHVlKSB7XG4gICAgICAgICAgICBsYXN0VGQucm93c3BhbisrO1xuICAgICAgICAgICAgdGQucm93c3BhbiA9IDA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhc3RUZCA9IHRkO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRDb2xvcih2YWx1ZSk6IHN0cmluZyB7XG4gICAgLy8gdmFsdWU9dmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKCclJywnJyk7XG4gICAgY29uc3QgcmVnRXhwOiBSZWdFeHAgPSAvLT9cXGQrXFwuP1xcZCovO1xuICAgIGNvbnN0IHJlc3VsdCA9IHJlZ0V4cC5leGVjKHZhbHVlKTtcbiAgICBpZiAodGhpcy5sZXZlbC5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHQgb2YgdGhpcy5sZXZlbCkge1xuICAgICAgICBpZiAodC5ndGUgPD0gTnVtYmVyKHJlc3VsdFswXSkgJiYgTnVtYmVyKHJlc3VsdFswXSkgPCB0Lmx0ZSkge1xuICAgICAgICAgIHJldHVybiB0LmNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGNvdW50KCkge1xuICAgIGNvbnN0IG5hbWUgPSAndmFsdWUnO1xuICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5ncm91cHMuZm9yRWFjaCgoZ3JvdXAsIGkpID0+IHtcbiAgICAgICAgZ3JvdXAuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGopID0+IHtcbiAgICAgICAgICBsZXQgaXRlbSA9IHt9O1xuICAgICAgICAgIGxldCBjaGVjayA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudG90YWxDb3VudC5mb3JFYWNoKChpdGUpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGUuZmlsZWQgPT09IGNvbHVtbi5pbmRleCkge1xuICAgICAgICAgICAgICBpdGVtID0gaXRlO1xuICAgICAgICAgICAgICBjaGVjayA9IHRydWU7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaSA9PT0gMCAmJiBqID09PSAwICYmICFjaGVjaykge1xuICAgICAgICAgICAgaXRlbSA9IHsgZmlsZWQ6IGNvbHVtbi5pbmRleCwgdmFsdWU6ICflkIjorqEnIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpICE9PSAwIHx8IGogIT09IDApIHtcbiAgICAgICAgICAgIGlmICghY2hlY2spIHtcbiAgICAgICAgICAgICAgaXRlbSA9IHsgZmlsZWQ6IGNvbHVtbi5pbmRleCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbHVtbi5pc2NvdW50KSB7XG4gICAgICAgICAgICAgIHRoaXMubmVlZENvdW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgaWYgKCFpdGVtW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgaXRlbVtuYW1lXSA9IDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaXRlbVtuYW1lXSA9IE51bWJlcihpdGVtW25hbWVdKSArIHRoaXMuZ2V0RGF0YVZhbHVlKGRhdGEsIGNvbHVtbi5pbmRleCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpdGVtW25hbWVdID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghY2hlY2spIHtcbiAgICAgICAgICAgIHRoaXMudG90YWxDb3VudC5wdXNoKGl0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldERhdGFWYWx1ZShhcnJheSwgaW5kZXgpIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICBhcnJheS5mb3JFYWNoKChkYXRhKSA9PiB7XG4gICAgICBpZiAoZGF0YS5pbmRleCA9PT0gaW5kZXgpIHtcbiAgICAgICAgcmVzdWx0ID0gTnVtYmVyKGRhdGEudmFsdWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG9uVGRDbGljayh0ZDogYW55LCBpOiBudW1iZXIpIHtcbiAgICBjb25zdCB7IGluZGV4LCB2YWx1ZSwgZGF0YSB9ID0gdGQ7XG4gICAgdGhpcy50ZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLnJvd0NoYW5nZS5lbWl0KHRoaXMuY3VzdG9tQ29sW2ldLnRpdGxlKTtcbiAgICB0aGlzLnRkQ2xpY2suZW1pdCh7IGluZGV4LCB2YWx1ZSwgZGF0YSB9KTtcbiAgfVxuXG4gIG9uVGRDbGlja0J5R3JvdXAoZGF0YTogYW55LCBjb2x1bW46IGFueSkge1xuICAgIGNvbnN0IGluZGV4ID0gY29sdW1uLmluZGV4O1xuICAgIGNvbnN0IHZhbHVlID0gZGF0YVtpbmRleF07XG4gICAgdGhpcy50ZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLnJvd0NoYW5nZS5lbWl0KGNvbHVtbi50aXRsZSk7XG4gICAgdGhpcy50ZENsaWNrLmVtaXQoeyBpbmRleCwgdmFsdWUsIGRhdGEgfSk7XG4gIH1cblxuICBvblRyQ2xpY2soZGF0YTogYW55KSB7XG4gICAgLy8gaWYgKHRoaXMuaXNDdXN0b20pIHtcbiAgICAvLyAgIGRhdGEuZm9yRWFjaCgoYSkgPT4ge1xuICAgIC8vICAgICBjb25zb2xlLmxvZygndHI6dGQnICsgYS52YWx1ZSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG4gICAgdGhpcy50ckNoYW5nZS5lbWl0KGRhdGEpO1xuICB9XG5cbiAgb25DaGVjayhjb2x1bW46IGFueSwgdmFsdWVzOiBhbnlbXSkge1xuICAgIGNvbHVtbi5maWx0ZXJDaGVja2VkID0gdmFsdWVzO1xuICB9XG5cbiAgZmlsdGVyKGNvbHVtbjogYW55KSB7XG4gICAgdGhpcy5maWx0ZXJWYWx1ZXNbY29sdW1uLmluZGV4XSA9IGNvbHVtbi5maWx0ZXJDaGVja2VkO1xuICAgIC8vIGNvbHVtbi5maWx0ZXJWYWx1ZSA9IGNvbHVtbi5maWx0ZXJDaGVja2VkO1xuICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIGNvbHVtbi5maWx0ZXJWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICByZXNldChjb2x1bW46IGFueSkge1xuICAgIGNvbHVtbi5maWx0ZXJDaGVja2VkID0gW107XG4gICAgY29sdW1uLmZpbHRlciA9IGNvbHVtbi5maWx0ZXIubWFwKChpdGVtKSA9PiAoe1xuICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgfSkpO1xuICAgIHRoaXMuZmlsdGVyKGNvbHVtbik7XG4gIH1cblxuICBleHBvcnQoKTogU2hlZXQge1xuICAgIGNvbnN0IGRhdGEgPSBbXTtcbiAgICBjb25zdCBtZXJnZXMgPSBbXTtcbiAgICBpZiAodGhpcy5ncm91cHMpIHtcbiAgICAgIGNvbnN0IHJvdzEgPSBbXTtcbiAgICAgIGNvbnN0IHJvdzIgPSBbXTtcbiAgICAgIHRoaXMuZ3JvdXBzLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbEluZGV4ID0gcm93MS5sZW5ndGg7XG4gICAgICAgIGdyb3VwLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgcm93MS5wdXNoKGdyb3VwLnRpdGxlKTtcbiAgICAgICAgICByb3cyLnB1c2goY29sdW1uLnRpdGxlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChncm91cC5yb3cgPiAxIHx8IGdyb3VwLmNvbCA+IDEpIHtcbiAgICAgICAgICBtZXJnZXMucHVzaCh7IHM6IHsgcjogMCwgYzogY29sSW5kZXggfSwgZTogeyByOiBncm91cC5yb3cgLSAxLCBjOiBjb2xJbmRleCArIGdyb3VwLmNvbCAtIDEgfSB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBkYXRhLnB1c2gocm93MSwgcm93Mik7XG4gICAgICB0aGlzLl9kYXRhLmZvckVhY2goKHJvd0RhdGEpID0+IHtcbiAgICAgICAgY29uc3Qgcm93SW5kZXggPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgY29uc3Qgcm93ID0gW107XG4gICAgICAgIHJvd0RhdGEuZm9yRWFjaCgodGQsIGkpID0+IHtcbiAgICAgICAgICByb3cucHVzaCh0ZC52YWx1ZSk7XG4gICAgICAgICAgaWYgKHRkLnJvd3NwYW4gPiAxKSB7XG4gICAgICAgICAgICBtZXJnZXMucHVzaCh7IHM6IHsgcjogcm93SW5kZXgsIGM6IGkgfSwgZTogeyByOiByb3dJbmRleCArIHRkLnJvd3NwYW4gLSAxLCBjOiBpIH0gfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZGF0YS5wdXNoKHJvdyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgcm93MSA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLnRpdGxlKTtcbiAgICAgIGRhdGEucHVzaChyb3cxKTtcbiAgICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgocm93RGF0YSkgPT4ge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IHJvd0RhdGFbY29sdW1uLmluZGV4XSk7XG4gICAgICAgIGRhdGEucHVzaChyb3cpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7IGRhdGEsIG1lcmdlcyB9O1xuICB9XG5cbiAgZXhwb3J0V29yZCgpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGUubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIGNvbnN0IHRhYmxlcyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGUnKTtcbiAgICBpZiAodGFibGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaHRtbCArPSB0YWJsZXMuaXRlbSgwKS5vdXRlckhUTUw7XG4gICAgfSBlbHNlIGlmICh0YWJsZXMubGVuZ3RoID4gMSkge1xuICAgICAgaHRtbCArPSAnPHRhYmxlPic7XG4gICAgICB0YWJsZXMuZm9yRWFjaCgodGFibGUpID0+IHtcbiAgICAgICAgdGFibGUgPSB0YWJsZS5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTFRhYmxlRWxlbWVudDtcbiAgICAgICAgY29uc3QgbWVhc3VyZVJvdyA9IHRhYmxlLnF1ZXJ5U2VsZWN0b3IoJy5hbnQtdGFibGUtbWVhc3VyZS1ub3cnKTtcbiAgICAgICAgaWYgKG1lYXN1cmVSb3cpIHtcbiAgICAgICAgICBtZWFzdXJlUm93LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQobWVhc3VyZVJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgaHRtbCArPSB0YWJsZS5pbm5lckhUTUw7XG4gICAgICB9KTtcbiAgICAgIGh0bWwgKz0gJzwvdGFibGU+PGJyLz4nO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbiAgfVxufVxuIl19