bbj-screen-widget 2.4.60 → 2.4.62

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