@ng-nest/ui 14.0.7 → 14.0.9

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 (1094) hide show
  1. package/auto-complete/auto-complete-portal.component.d.ts +6 -3
  2. package/auto-complete/auto-complete.component.d.ts +3 -5
  3. package/avatar/avatar-group.component.d.ts +8 -0
  4. package/avatar/avatar.component.d.ts +15 -4
  5. package/avatar/avatar.module.d.ts +5 -4
  6. package/avatar/avatar.property.d.ts +31 -3
  7. package/avatar/public-api.d.ts +1 -0
  8. package/badge/badge.component.d.ts +4 -1
  9. package/badge/badge.property.d.ts +6 -1
  10. package/base-form/base-form.component.d.ts +3 -1
  11. package/base-form/base-form.property.d.ts +9 -1
  12. package/calendar/calendar.property.d.ts +2 -1
  13. package/core/animation/badge.d.ts +1 -0
  14. package/core/config/config.d.ts +31 -0
  15. package/core/interfaces/identify.type.d.ts +2 -0
  16. package/core/interfaces/layout.type.d.ts +22 -1
  17. package/core/util/check.d.ts +2 -0
  18. package/core/util/public-api.d.ts +1 -0
  19. package/dialog/dialog.property.d.ts +8 -0
  20. package/esm2020/auto-complete/auto-complete-portal.component.mjs +11 -4
  21. package/esm2020/auto-complete/auto-complete.component.mjs +20 -21
  22. package/esm2020/avatar/avatar-group.component.mjs +19 -0
  23. package/esm2020/avatar/avatar.component.mjs +91 -11
  24. package/esm2020/avatar/avatar.module.mjs +6 -5
  25. package/esm2020/avatar/avatar.property.mjs +31 -3
  26. package/esm2020/avatar/public-api.mjs +2 -1
  27. package/esm2020/badge/badge.component.mjs +24 -8
  28. package/esm2020/badge/badge.property.mjs +7 -2
  29. package/esm2020/base-form/base-form.component.mjs +13 -4
  30. package/esm2020/base-form/base-form.property.mjs +4 -2
  31. package/esm2020/calendar/calendar.property.mjs +1 -1
  32. package/esm2020/core/animation/badge.mjs +17 -1
  33. package/esm2020/core/config/config.mjs +1 -1
  34. package/esm2020/core/functions/property.mjs +1 -1
  35. package/esm2020/core/interfaces/identify.type.mjs +1 -1
  36. package/esm2020/core/interfaces/layout.type.mjs +1 -1
  37. package/esm2020/core/util/check.mjs +7 -0
  38. package/esm2020/core/util/public-api.mjs +2 -1
  39. package/esm2020/dialog/dialog.property.mjs +1 -1
  40. package/esm2020/find/find.property.mjs +2 -2
  41. package/esm2020/form/control.component.mjs +13 -4
  42. package/esm2020/form/form.component.mjs +3 -3
  43. package/esm2020/form/form.property.mjs +1 -1
  44. package/esm2020/i18n/i18n.property.mjs +1 -1
  45. package/esm2020/i18n/languages/en_US.mjs +11 -1
  46. package/esm2020/i18n/languages/zh_CN.mjs +11 -1
  47. package/esm2020/i18n/languages/zh_TW.mjs +11 -1
  48. package/esm2020/icon/icon.property.mjs +1 -1
  49. package/esm2020/image/image-group.component.mjs +6 -3
  50. package/esm2020/image/image.component.mjs +18 -5
  51. package/esm2020/image/image.module.mjs +5 -4
  52. package/esm2020/image/image.property.mjs +22 -3
  53. package/esm2020/index.mjs +3 -1
  54. package/esm2020/input/input.component.mjs +7 -4
  55. package/esm2020/input/input.property.mjs +1 -1
  56. package/esm2020/input-number/input-number.component.mjs +8 -2
  57. package/esm2020/input-number/input-number.property.mjs +4 -2
  58. package/esm2020/keyword/keyword.directive.mjs +66 -0
  59. package/esm2020/keyword/keyword.module.mjs +19 -0
  60. package/esm2020/keyword/keyword.property.mjs +41 -0
  61. package/esm2020/keyword/ng-nest-ui-keyword.mjs +5 -0
  62. package/esm2020/keyword/public-api.mjs +4 -0
  63. package/esm2020/list/list-drop-group.directive.mjs +47 -0
  64. package/esm2020/list/list-option.component.mjs +4 -4
  65. package/esm2020/list/list.component.mjs +38 -10
  66. package/esm2020/list/list.module.mjs +12 -7
  67. package/esm2020/list/list.property.mjs +19 -3
  68. package/esm2020/list/public-api.mjs +2 -1
  69. package/esm2020/message-box/message-box.component.mjs +24 -9
  70. package/esm2020/message-box/message-box.module.mjs +8 -4
  71. package/esm2020/message-box/message-box.property.mjs +1 -1
  72. package/esm2020/message-box/message-box.service.mjs +10 -3
  73. package/esm2020/resizable/resizable.directive.mjs +2 -2
  74. package/esm2020/select/select-portal.component.mjs +6 -3
  75. package/esm2020/select/select.component.mjs +31 -23
  76. package/esm2020/select/select.property.mjs +8 -2
  77. package/esm2020/slider-select/slider-select.component.mjs +6 -3
  78. package/esm2020/slider-select/slider-select.property.mjs +7 -2
  79. package/esm2020/table/table-body.component.mjs +5 -3
  80. package/esm2020/table/table.component.mjs +13 -9
  81. package/esm2020/table/table.property.mjs +21 -2
  82. package/esm2020/transfer/transfer.component.mjs +354 -51
  83. package/esm2020/transfer/transfer.module.mjs +35 -4
  84. package/esm2020/transfer/transfer.property.mjs +41 -3
  85. package/esm2020/tree/tree-node.component.mjs +65 -31
  86. package/esm2020/tree/tree.component.mjs +189 -72
  87. package/esm2020/tree/tree.module.mjs +5 -4
  88. package/esm2020/tree/tree.property.mjs +44 -2
  89. package/esm2020/tree-select/ng-nest-ui-tree-select.mjs +5 -0
  90. package/esm2020/tree-select/public-api.mjs +5 -0
  91. package/esm2020/tree-select/tree-select-portal.component.mjs +111 -0
  92. package/esm2020/tree-select/tree-select.component.mjs +633 -0
  93. package/esm2020/tree-select/tree-select.module.mjs +65 -0
  94. package/esm2020/tree-select/tree-select.property.mjs +159 -0
  95. package/esm2020/upload/upload.component.mjs +9 -6
  96. package/esm2020/upload/upload.module.mjs +12 -4
  97. package/esm2020/upload/upload.property.mjs +10 -3
  98. package/fesm2015/ng-nest-ui-auto-complete.mjs +28 -22
  99. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  100. package/fesm2015/ng-nest-ui-avatar.mjs +143 -17
  101. package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
  102. package/fesm2015/ng-nest-ui-badge.mjs +29 -8
  103. package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
  104. package/fesm2015/ng-nest-ui-base-form.mjs +16 -5
  105. package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
  106. package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
  107. package/fesm2015/ng-nest-ui-core.mjs +24 -1
  108. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  109. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  110. package/fesm2015/ng-nest-ui-find.mjs +1 -1
  111. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  112. package/fesm2015/ng-nest-ui-form.mjs +14 -6
  113. package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
  114. package/fesm2015/ng-nest-ui-i18n.mjs +30 -0
  115. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  116. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  117. package/fesm2015/ng-nest-ui-image.mjs +47 -11
  118. package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
  119. package/fesm2015/ng-nest-ui-input-number.mjs +10 -2
  120. package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
  121. package/fesm2015/ng-nest-ui-input.mjs +6 -3
  122. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  123. package/fesm2015/ng-nest-ui-keyword.mjs +125 -0
  124. package/fesm2015/ng-nest-ui-keyword.mjs.map +1 -0
  125. package/fesm2015/ng-nest-ui-list.mjs +116 -23
  126. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  127. package/fesm2015/ng-nest-ui-message-box.mjs +39 -14
  128. package/fesm2015/ng-nest-ui-message-box.mjs.map +1 -1
  129. package/fesm2015/ng-nest-ui-resizable.mjs +1 -1
  130. package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
  131. package/fesm2015/ng-nest-ui-select.mjs +42 -25
  132. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  133. package/fesm2015/ng-nest-ui-slider-select.mjs +11 -3
  134. package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
  135. package/fesm2015/ng-nest-ui-table.mjs +36 -11
  136. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  137. package/fesm2015/ng-nest-ui-transfer.mjs +433 -57
  138. package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
  139. package/fesm2015/ng-nest-ui-tree-select.mjs +959 -0
  140. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -0
  141. package/fesm2015/ng-nest-ui-tree.mjs +306 -112
  142. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  143. package/fesm2015/ng-nest-ui-upload.mjs +28 -10
  144. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  145. package/fesm2015/ng-nest-ui.mjs +2 -0
  146. package/fesm2015/ng-nest-ui.mjs.map +1 -1
  147. package/fesm2020/ng-nest-ui-auto-complete.mjs +28 -22
  148. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  149. package/fesm2020/ng-nest-ui-avatar.mjs +140 -17
  150. package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
  151. package/fesm2020/ng-nest-ui-badge.mjs +29 -8
  152. package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
  153. package/fesm2020/ng-nest-ui-base-form.mjs +16 -5
  154. package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
  155. package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
  156. package/fesm2020/ng-nest-ui-core.mjs +24 -1
  157. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  158. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  159. package/fesm2020/ng-nest-ui-find.mjs +1 -1
  160. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  161. package/fesm2020/ng-nest-ui-form.mjs +14 -6
  162. package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
  163. package/fesm2020/ng-nest-ui-i18n.mjs +30 -0
  164. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  165. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  166. package/fesm2020/ng-nest-ui-image.mjs +47 -11
  167. package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
  168. package/fesm2020/ng-nest-ui-input-number.mjs +10 -2
  169. package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
  170. package/fesm2020/ng-nest-ui-input.mjs +6 -3
  171. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  172. package/fesm2020/ng-nest-ui-keyword.mjs +125 -0
  173. package/fesm2020/ng-nest-ui-keyword.mjs.map +1 -0
  174. package/fesm2020/ng-nest-ui-list.mjs +113 -22
  175. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  176. package/fesm2020/ng-nest-ui-message-box.mjs +38 -13
  177. package/fesm2020/ng-nest-ui-message-box.mjs.map +1 -1
  178. package/fesm2020/ng-nest-ui-resizable.mjs +1 -1
  179. package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
  180. package/fesm2020/ng-nest-ui-select.mjs +42 -25
  181. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  182. package/fesm2020/ng-nest-ui-slider-select.mjs +11 -3
  183. package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
  184. package/fesm2020/ng-nest-ui-table.mjs +36 -11
  185. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  186. package/fesm2020/ng-nest-ui-transfer.mjs +427 -55
  187. package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
  188. package/fesm2020/ng-nest-ui-tree-select.mjs +954 -0
  189. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -0
  190. package/fesm2020/ng-nest-ui-tree.mjs +302 -109
  191. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  192. package/fesm2020/ng-nest-ui-upload.mjs +28 -10
  193. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  194. package/fesm2020/ng-nest-ui.mjs +2 -0
  195. package/fesm2020/ng-nest-ui.mjs.map +1 -1
  196. package/find/find.property.d.ts +1 -1
  197. package/form/form.property.d.ts +10 -0
  198. package/i18n/i18n.property.d.ts +12 -0
  199. package/i18n/languages/en_US.d.ts +10 -0
  200. package/i18n/languages/zh_CN.d.ts +10 -0
  201. package/i18n/languages/zh_TW.d.ts +10 -0
  202. package/icon/icon.property.d.ts +1 -1
  203. package/image/image-group.component.d.ts +1 -0
  204. package/image/image.component.d.ts +3 -2
  205. package/image/image.module.d.ts +3 -2
  206. package/image/image.property.d.ts +23 -7
  207. package/index.d.ts +2 -0
  208. package/input/input.property.d.ts +7 -2
  209. package/input-number/input-number.property.d.ts +12 -1
  210. package/keyword/index.d.ts +5 -0
  211. package/keyword/keyword.directive.d.ts +19 -0
  212. package/keyword/keyword.module.d.ts +9 -0
  213. package/keyword/keyword.property.d.ts +40 -0
  214. package/keyword/public-api.d.ts +3 -0
  215. package/list/list-drop-group.directive.d.ts +15 -0
  216. package/list/list-option.component.d.ts +0 -1
  217. package/list/list.component.d.ts +7 -3
  218. package/list/list.module.d.ts +15 -13
  219. package/list/list.property.d.ts +25 -3
  220. package/list/public-api.d.ts +1 -0
  221. package/message-box/message-box.component.d.ts +4 -2
  222. package/message-box/message-box.module.d.ts +2 -1
  223. package/message-box/message-box.property.d.ts +18 -4
  224. package/package.json +17 -1
  225. package/select/select-portal.component.d.ts +5 -1
  226. package/select/select.component.d.ts +2 -2
  227. package/select/select.property.d.ts +6 -1
  228. package/slider-select/slider-select.component.d.ts +1 -0
  229. package/slider-select/slider-select.property.d.ts +6 -1
  230. package/style/core/index.css +29 -0
  231. package/style/core/index.css.map +1 -1
  232. package/style/directives/index.scss +1 -0
  233. package/style/directives/keyword/index.scss +6 -0
  234. package/style/directives/keyword/mixin.scss +24 -0
  235. package/style/directives/keyword/param.scss +3 -0
  236. package/table/table.property.d.ts +18 -1
  237. package/transfer/transfer.component.d.ts +29 -4
  238. package/transfer/transfer.module.d.ts +3 -1
  239. package/transfer/transfer.property.d.ts +85 -6
  240. package/tree/tree-node.component.d.ts +4 -4
  241. package/tree/tree.component.d.ts +13 -1
  242. package/tree/tree.module.d.ts +2 -1
  243. package/tree/tree.property.d.ts +49 -14
  244. package/tree-select/index.d.ts +5 -0
  245. package/tree-select/public-api.d.ts +4 -0
  246. package/tree-select/tree-select-portal.component.d.ts +63 -0
  247. package/tree-select/tree-select.component.d.ts +101 -0
  248. package/tree-select/tree-select.module.d.ts +20 -0
  249. package/tree-select/tree-select.property.d.ts +207 -0
  250. package/upload/upload.component.d.ts +1 -1
  251. package/upload/upload.module.d.ts +3 -1
  252. package/upload/upload.property.d.ts +13 -3
  253. package/affix/examples/en_US/default/README.md +0 -4
  254. package/affix/examples/en_US/default/default/README.md +0 -6
  255. package/affix/examples/en_US/default/scope/README.md +0 -6
  256. package/affix/examples/zh_CN/default/README.md +0 -4
  257. package/affix/examples/zh_CN/default/default/README.md +0 -6
  258. package/affix/examples/zh_CN/default/scope/README.md +0 -6
  259. package/alert/examples/en_US/default/README.md +0 -4
  260. package/alert/examples/en_US/default/custom/README.md +0 -9
  261. package/alert/examples/en_US/default/default/README.md +0 -6
  262. package/alert/examples/en_US/default/description/README.md +0 -6
  263. package/alert/examples/en_US/default/effect/README.md +0 -6
  264. package/alert/examples/en_US/default/icon/README.md +0 -6
  265. package/alert/examples/zh_CN/default/README.md +0 -4
  266. package/alert/examples/zh_CN/default/custom/README.md +0 -9
  267. package/alert/examples/zh_CN/default/default/README.md +0 -6
  268. package/alert/examples/zh_CN/default/description/README.md +0 -6
  269. package/alert/examples/zh_CN/default/effect/README.md +0 -6
  270. package/alert/examples/zh_CN/default/icon/README.md +0 -6
  271. package/anchor/examples/en_US/default/README.md +0 -4
  272. package/anchor/examples/en_US/default/default/README.md +0 -6
  273. package/anchor/examples/zh_CN/default/README.md +0 -4
  274. package/anchor/examples/zh_CN/default/default/README.md +0 -6
  275. package/auto-complete/examples/en_US/default/README.md +0 -4
  276. package/auto-complete/examples/en_US/default/bordered/README.md +0 -6
  277. package/auto-complete/examples/en_US/default/custom/README.md +0 -6
  278. package/auto-complete/examples/en_US/default/default/README.md +0 -6
  279. package/auto-complete/examples/en_US/default/disabled/README.md +0 -6
  280. package/auto-complete/examples/en_US/default/label/README.md +0 -7
  281. package/auto-complete/examples/en_US/default/required/README.md +0 -6
  282. package/auto-complete/examples/en_US/default/size/README.md +0 -6
  283. package/auto-complete/examples/zh_CN/default/README.md +0 -4
  284. package/auto-complete/examples/zh_CN/default/bordered/README.md +0 -6
  285. package/auto-complete/examples/zh_CN/default/custom/README.md +0 -6
  286. package/auto-complete/examples/zh_CN/default/default/README.md +0 -6
  287. package/auto-complete/examples/zh_CN/default/disabled/README.md +0 -6
  288. package/auto-complete/examples/zh_CN/default/label/README.md +0 -7
  289. package/auto-complete/examples/zh_CN/default/required/README.md +0 -6
  290. package/auto-complete/examples/zh_CN/default/size/README.md +0 -6
  291. package/avatar/examples/en_US/default/README.md +0 -4
  292. package/avatar/examples/en_US/default/default/README.md +0 -7
  293. package/avatar/examples/en_US/default/display/README.md +0 -6
  294. package/avatar/examples/en_US/default/fallback/README.md +0 -6
  295. package/avatar/examples/en_US/default/fit/README.md +0 -6
  296. package/avatar/examples/zh_CN/default/README.md +0 -4
  297. package/avatar/examples/zh_CN/default/default/README.md +0 -7
  298. package/avatar/examples/zh_CN/default/display/README.md +0 -6
  299. package/avatar/examples/zh_CN/default/fallback/README.md +0 -6
  300. package/avatar/examples/zh_CN/default/fit/README.md +0 -6
  301. package/back-top/examples/en_US/default/README.md +0 -4
  302. package/back-top/examples/en_US/default/custom/README.md +0 -6
  303. package/back-top/examples/en_US/default/default/README.md +0 -6
  304. package/back-top/examples/en_US/default/target/README.md +0 -6
  305. package/back-top/examples/zh_CN/default/README.md +0 -4
  306. package/back-top/examples/zh_CN/default/custom/README.md +0 -6
  307. package/back-top/examples/zh_CN/default/default/README.md +0 -6
  308. package/back-top/examples/zh_CN/default/target/README.md +0 -6
  309. package/badge/examples/en_US/default/README.md +0 -4
  310. package/badge/examples/en_US/default/color/README.md +0 -6
  311. package/badge/examples/en_US/default/custom/README.md +0 -7
  312. package/badge/examples/en_US/default/default/README.md +0 -7
  313. package/badge/examples/en_US/default/dot/README.md +0 -7
  314. package/badge/examples/en_US/default/max/README.md +0 -6
  315. package/badge/examples/en_US/default/offset/README.md +0 -6
  316. package/badge/examples/zh_CN/default/README.md +0 -4
  317. package/badge/examples/zh_CN/default/color/README.md +0 -6
  318. package/badge/examples/zh_CN/default/custom/README.md +0 -7
  319. package/badge/examples/zh_CN/default/default/README.md +0 -7
  320. package/badge/examples/zh_CN/default/dot/README.md +0 -7
  321. package/badge/examples/zh_CN/default/max/README.md +0 -6
  322. package/badge/examples/zh_CN/default/offset/README.md +0 -6
  323. package/border/examples/en_US/default/README.md +0 -4
  324. package/border/examples/en_US/default/default/README.md +0 -6
  325. package/border/examples/en_US/default/radius/README.md +0 -6
  326. package/border/examples/en_US/default/shadow/README.md +0 -6
  327. package/border/examples/zh_CN/default/README.md +0 -4
  328. package/border/examples/zh_CN/default/default/README.md +0 -6
  329. package/border/examples/zh_CN/default/radius/README.md +0 -6
  330. package/border/examples/zh_CN/default/shadow/README.md +0 -6
  331. package/button/examples/en_US/default/README.md +0 -4
  332. package/button/examples/en_US/default/default/README.md +0 -8
  333. package/button/examples/en_US/default/disabled/README.md +0 -8
  334. package/button/examples/en_US/default/group/README.md +0 -10
  335. package/button/examples/en_US/default/icon/README.md +0 -9
  336. package/button/examples/en_US/default/loading/README.md +0 -8
  337. package/button/examples/en_US/default/size/README.md +0 -8
  338. package/button/examples/en_US/default/text/README.md +0 -6
  339. package/button/examples/zh_CN/default/README.md +0 -4
  340. package/button/examples/zh_CN/default/default/README.md +0 -8
  341. package/button/examples/zh_CN/default/disabled/README.md +0 -8
  342. package/button/examples/zh_CN/default/group/README.md +0 -10
  343. package/button/examples/zh_CN/default/icon/README.md +0 -9
  344. package/button/examples/zh_CN/default/loading/README.md +0 -8
  345. package/button/examples/zh_CN/default/size/README.md +0 -8
  346. package/button/examples/zh_CN/default/text/README.md +0 -6
  347. package/calendar/examples/en_US/default/README.md +0 -4
  348. package/calendar/examples/en_US/default/card/README.md +0 -6
  349. package/calendar/examples/en_US/default/default/README.md +0 -6
  350. package/calendar/examples/en_US/default/header/README.md +0 -6
  351. package/calendar/examples/zh_CN/default/README.md +0 -4
  352. package/calendar/examples/zh_CN/default/card/README.md +0 -6
  353. package/calendar/examples/zh_CN/default/default/README.md +0 -6
  354. package/calendar/examples/zh_CN/default/header/README.md +0 -6
  355. package/card/examples/en_US/default/README.md +0 -4
  356. package/card/examples/en_US/default/default/README.md +0 -6
  357. package/card/examples/en_US/default/header/README.md +0 -6
  358. package/card/examples/en_US/default/img/README.md +0 -6
  359. package/card/examples/en_US/default/shadow/README.md +0 -7
  360. package/card/examples/zh_CN/default/README.md +0 -4
  361. package/card/examples/zh_CN/default/default/README.md +0 -6
  362. package/card/examples/zh_CN/default/header/README.md +0 -6
  363. package/card/examples/zh_CN/default/img/README.md +0 -6
  364. package/card/examples/zh_CN/default/shadow/README.md +0 -7
  365. package/carousel/examples/en_US/default/README.md +0 -4
  366. package/carousel/examples/en_US/default/arrow/README.md +0 -7
  367. package/carousel/examples/en_US/default/card/README.md +0 -7
  368. package/carousel/examples/en_US/default/default/README.md +0 -7
  369. package/carousel/examples/en_US/default/direction/README.md +0 -6
  370. package/carousel/examples/zh_CN/default/README.md +0 -4
  371. package/carousel/examples/zh_CN/default/arrow/README.md +0 -7
  372. package/carousel/examples/zh_CN/default/card/README.md +0 -7
  373. package/carousel/examples/zh_CN/default/default/README.md +0 -7
  374. package/carousel/examples/zh_CN/default/direction/README.md +0 -6
  375. package/cascade/examples/en_US/default/README.md +0 -4
  376. package/cascade/examples/en_US/default/bordered/README.md +0 -6
  377. package/cascade/examples/en_US/default/default/README.md +0 -7
  378. package/cascade/examples/en_US/default/disabled/README.md +0 -6
  379. package/cascade/examples/en_US/default/hover/README.md +0 -7
  380. package/cascade/examples/en_US/default/label/README.md +0 -7
  381. package/cascade/examples/en_US/default/required/README.md +0 -6
  382. package/cascade/examples/en_US/default/size/README.md +0 -6
  383. package/cascade/examples/zh_CN/default/README.md +0 -4
  384. package/cascade/examples/zh_CN/default/bordered/README.md +0 -6
  385. package/cascade/examples/zh_CN/default/default/README.md +0 -7
  386. package/cascade/examples/zh_CN/default/disabled/README.md +0 -6
  387. package/cascade/examples/zh_CN/default/hover/README.md +0 -7
  388. package/cascade/examples/zh_CN/default/label/README.md +0 -7
  389. package/cascade/examples/zh_CN/default/required/README.md +0 -6
  390. package/cascade/examples/zh_CN/default/size/README.md +0 -6
  391. package/checkbox/examples/en_US/default/README.md +0 -4
  392. package/checkbox/examples/en_US/default/async/README.md +0 -6
  393. package/checkbox/examples/en_US/default/button/README.md +0 -6
  394. package/checkbox/examples/en_US/default/check-all/README.md +0 -6
  395. package/checkbox/examples/en_US/default/default/README.md +0 -9
  396. package/checkbox/examples/en_US/default/disabled/README.md +0 -9
  397. package/checkbox/examples/en_US/default/icon/README.md +0 -6
  398. package/checkbox/examples/zh_CN/default/README.md +0 -4
  399. package/checkbox/examples/zh_CN/default/async/README.md +0 -6
  400. package/checkbox/examples/zh_CN/default/button/README.md +0 -6
  401. package/checkbox/examples/zh_CN/default/check-all/README.md +0 -6
  402. package/checkbox/examples/zh_CN/default/default/README.md +0 -9
  403. package/checkbox/examples/zh_CN/default/disabled/README.md +0 -9
  404. package/checkbox/examples/zh_CN/default/icon/README.md +0 -6
  405. package/collapse/examples/en_US/default/README.md +0 -4
  406. package/collapse/examples/en_US/default/accordion/README.md +0 -7
  407. package/collapse/examples/en_US/default/arrow/README.md +0 -6
  408. package/collapse/examples/en_US/default/border/README.md +0 -6
  409. package/collapse/examples/en_US/default/custom/README.md +0 -6
  410. package/collapse/examples/en_US/default/default/README.md +0 -6
  411. package/collapse/examples/en_US/default/disabled/README.md +0 -6
  412. package/collapse/examples/en_US/default/ghost/README.md +0 -6
  413. package/collapse/examples/en_US/default/icon/README.md +0 -6
  414. package/collapse/examples/zh_CN/default/README.md +0 -4
  415. package/collapse/examples/zh_CN/default/accordion/README.md +0 -7
  416. package/collapse/examples/zh_CN/default/arrow/README.md +0 -6
  417. package/collapse/examples/zh_CN/default/border/README.md +0 -6
  418. package/collapse/examples/zh_CN/default/custom/README.md +0 -6
  419. package/collapse/examples/zh_CN/default/default/README.md +0 -6
  420. package/collapse/examples/zh_CN/default/disabled/README.md +0 -6
  421. package/collapse/examples/zh_CN/default/ghost/README.md +0 -6
  422. package/collapse/examples/zh_CN/default/icon/README.md +0 -6
  423. package/color/examples/en_US/default/README.md +0 -4
  424. package/color/examples/en_US/default/assist/README.md +0 -6
  425. package/color/examples/en_US/default/default/README.md +0 -8
  426. package/color/examples/en_US/default/neutral/README.md +0 -6
  427. package/color/examples/zh_CN/default/README.md +0 -4
  428. package/color/examples/zh_CN/default/assist/README.md +0 -6
  429. package/color/examples/zh_CN/default/default/README.md +0 -8
  430. package/color/examples/zh_CN/default/neutral/README.md +0 -6
  431. package/color-picker/examples/en_US/default/README.md +0 -4
  432. package/color-picker/examples/en_US/default/bordered/README.md +0 -6
  433. package/color-picker/examples/en_US/default/default/README.md +0 -6
  434. package/color-picker/examples/en_US/default/disabled/README.md +0 -6
  435. package/color-picker/examples/en_US/default/label/README.md +0 -7
  436. package/color-picker/examples/en_US/default/required/README.md +0 -6
  437. package/color-picker/examples/en_US/default/size/README.md +0 -6
  438. package/color-picker/examples/zh_CN/default/README.md +0 -4
  439. package/color-picker/examples/zh_CN/default/bordered/README.md +0 -6
  440. package/color-picker/examples/zh_CN/default/default/README.md +0 -6
  441. package/color-picker/examples/zh_CN/default/disabled/README.md +0 -6
  442. package/color-picker/examples/zh_CN/default/label/README.md +0 -7
  443. package/color-picker/examples/zh_CN/default/required/README.md +0 -6
  444. package/color-picker/examples/zh_CN/default/size/README.md +0 -6
  445. package/comment/examples/en_US/default/README.md +0 -4
  446. package/comment/examples/en_US/default/default/README.md +0 -6
  447. package/comment/examples/zh_CN/default/README.md +0 -4
  448. package/comment/examples/zh_CN/default/default/README.md +0 -6
  449. package/container/examples/en_US/default/README.md +0 -4
  450. package/container/examples/en_US/default/default/README.md +0 -10
  451. package/container/examples/zh_CN/default/README.md +0 -4
  452. package/container/examples/zh_CN/default/default/README.md +0 -10
  453. package/crumb/examples/en_US/default/README.md +0 -4
  454. package/crumb/examples/en_US/default/custom/README.md +0 -6
  455. package/crumb/examples/en_US/default/default/README.md +0 -6
  456. package/crumb/examples/en_US/default/icon/README.md +0 -6
  457. package/crumb/examples/en_US/default/separator/README.md +0 -6
  458. package/crumb/examples/zh_CN/default/README.md +0 -4
  459. package/crumb/examples/zh_CN/default/custom/README.md +0 -6
  460. package/crumb/examples/zh_CN/default/default/README.md +0 -6
  461. package/crumb/examples/zh_CN/default/icon/README.md +0 -6
  462. package/crumb/examples/zh_CN/default/separator/README.md +0 -6
  463. package/date-picker/examples/en_US/default/README.md +0 -4
  464. package/date-picker/examples/en_US/default/bordered/README.md +0 -6
  465. package/date-picker/examples/en_US/default/default/README.md +0 -6
  466. package/date-picker/examples/en_US/default/disabled/README.md +0 -6
  467. package/date-picker/examples/en_US/default/label/README.md +0 -7
  468. package/date-picker/examples/en_US/default/required/README.md +0 -6
  469. package/date-picker/examples/en_US/default/size/README.md +0 -6
  470. package/date-picker/examples/en_US/default/time/README.md +0 -6
  471. package/date-picker/examples/en_US/default/today/README.md +0 -6
  472. package/date-picker/examples/en_US/default/year-month/README.md +0 -6
  473. package/date-picker/examples/zh_CN/default/README.md +0 -4
  474. package/date-picker/examples/zh_CN/default/bordered/README.md +0 -6
  475. package/date-picker/examples/zh_CN/default/default/README.md +0 -6
  476. package/date-picker/examples/zh_CN/default/disabled/README.md +0 -6
  477. package/date-picker/examples/zh_CN/default/label/README.md +0 -7
  478. package/date-picker/examples/zh_CN/default/required/README.md +0 -6
  479. package/date-picker/examples/zh_CN/default/size/README.md +0 -6
  480. package/date-picker/examples/zh_CN/default/time/README.md +0 -6
  481. package/date-picker/examples/zh_CN/default/today/README.md +0 -6
  482. package/date-picker/examples/zh_CN/default/year-month/README.md +0 -6
  483. package/description/examples/en_US/default/README.md +0 -4
  484. package/description/examples/en_US/default/border/README.md +0 -6
  485. package/description/examples/en_US/default/default/README.md +0 -6
  486. package/description/examples/en_US/default/size/README.md +0 -6
  487. package/description/examples/en_US/default/split/README.md +0 -8
  488. package/description/examples/en_US/default/vertical/README.md +0 -4
  489. package/description/examples/zh_CN/default/README.md +0 -4
  490. package/description/examples/zh_CN/default/border/README.md +0 -6
  491. package/description/examples/zh_CN/default/default/README.md +0 -6
  492. package/description/examples/zh_CN/default/size/README.md +0 -6
  493. package/description/examples/zh_CN/default/split/README.md +0 -8
  494. package/description/examples/zh_CN/default/vertical/README.md +0 -4
  495. package/dialog/examples/en_US/default/README.md +0 -4
  496. package/dialog/examples/en_US/default/container/README.md +0 -6
  497. package/dialog/examples/en_US/default/custom/README.md +0 -6
  498. package/dialog/examples/en_US/default/default/README.md +0 -6
  499. package/dialog/examples/en_US/default/draggable/README.md +0 -6
  500. package/dialog/examples/en_US/default/resizable/README.md +0 -6
  501. package/dialog/examples/en_US/default/service/README.md +0 -6
  502. package/dialog/examples/zh_CN/default/README.md +0 -4
  503. package/dialog/examples/zh_CN/default/container/README.md +0 -6
  504. package/dialog/examples/zh_CN/default/custom/README.md +0 -6
  505. package/dialog/examples/zh_CN/default/default/README.md +0 -6
  506. package/dialog/examples/zh_CN/default/draggable/README.md +0 -6
  507. package/dialog/examples/zh_CN/default/resizable/README.md +0 -6
  508. package/dialog/examples/zh_CN/default/service/README.md +0 -6
  509. package/drawer/examples/en_US/default/README.md +0 -4
  510. package/drawer/examples/en_US/default/container/README.md +0 -6
  511. package/drawer/examples/en_US/default/custom/README.md +0 -6
  512. package/drawer/examples/en_US/default/default/README.md +0 -6
  513. package/drawer/examples/en_US/default/multiple/README.md +0 -6
  514. package/drawer/examples/en_US/default/service/README.md +0 -6
  515. package/drawer/examples/en_US/default/title/README.md +0 -6
  516. package/drawer/examples/zh_CN/default/README.md +0 -4
  517. package/drawer/examples/zh_CN/default/container/README.md +0 -6
  518. package/drawer/examples/zh_CN/default/custom/README.md +0 -6
  519. package/drawer/examples/zh_CN/default/default/README.md +0 -6
  520. package/drawer/examples/zh_CN/default/multiple/README.md +0 -6
  521. package/drawer/examples/zh_CN/default/service/README.md +0 -6
  522. package/drawer/examples/zh_CN/default/title/README.md +0 -6
  523. package/dropdown/examples/en_US/default/README.md +0 -4
  524. package/dropdown/examples/en_US/default/default/README.md +0 -6
  525. package/dropdown/examples/en_US/default/multistage/README.md +0 -6
  526. package/dropdown/examples/en_US/default/prop/README.md +0 -6
  527. package/dropdown/examples/en_US/default/trigger/README.md +0 -6
  528. package/dropdown/examples/zh_CN/default/README.md +0 -4
  529. package/dropdown/examples/zh_CN/default/default/README.md +0 -6
  530. package/dropdown/examples/zh_CN/default/multistage/README.md +0 -6
  531. package/dropdown/examples/zh_CN/default/prop/README.md +0 -6
  532. package/dropdown/examples/zh_CN/default/trigger/README.md +0 -6
  533. package/empty/examples/en_US/default/README.md +0 -4
  534. package/empty/examples/en_US/default/custom/README.md +0 -6
  535. package/empty/examples/en_US/default/default/README.md +0 -6
  536. package/empty/examples/zh_CN/default/README.md +0 -4
  537. package/empty/examples/zh_CN/default/custom/README.md +0 -6
  538. package/empty/examples/zh_CN/default/default/README.md +0 -6
  539. package/find/examples/en_US/default/README.md +0 -4
  540. package/find/examples/en_US/default/bordered/README.md +0 -6
  541. package/find/examples/en_US/default/default/README.md +0 -10
  542. package/find/examples/en_US/default/disabled/README.md +0 -6
  543. package/find/examples/en_US/default/label/README.md +0 -7
  544. package/find/examples/en_US/default/size/README.md +0 -6
  545. package/find/examples/en_US/default/tree/README.md +0 -6
  546. package/find/examples/en_US/default/tree-table/README.md +0 -5
  547. package/find/examples/zh_CN/default/README.md +0 -4
  548. package/find/examples/zh_CN/default/bordered/README.md +0 -6
  549. package/find/examples/zh_CN/default/default/README.md +0 -10
  550. package/find/examples/zh_CN/default/disabled/README.md +0 -6
  551. package/find/examples/zh_CN/default/label/README.md +0 -7
  552. package/find/examples/zh_CN/default/size/README.md +0 -6
  553. package/find/examples/zh_CN/default/tree/README.md +0 -6
  554. package/find/examples/zh_CN/default/tree-table/README.md +0 -5
  555. package/form/examples/en_US/default/README.md +0 -4
  556. package/form/examples/en_US/default/default/README.md +0 -6
  557. package/form/examples/en_US/default/form-vaild/README.md +0 -8
  558. package/form/examples/en_US/default/label-row/README.md +0 -5
  559. package/form/examples/en_US/default/title/README.md +0 -4
  560. package/form/examples/zh_CN/default/README.md +0 -4
  561. package/form/examples/zh_CN/default/default/README.md +0 -6
  562. package/form/examples/zh_CN/default/form-vaild/README.md +0 -8
  563. package/form/examples/zh_CN/default/label-row/README.md +0 -5
  564. package/form/examples/zh_CN/default/title/README.md +0 -4
  565. package/highlight/examples/en_US/default/README.md +0 -4
  566. package/highlight/examples/en_US/default/html/README.md +0 -6
  567. package/highlight/examples/en_US/default/scss/README.md +0 -6
  568. package/highlight/examples/en_US/default/typescript/README.md +0 -6
  569. package/highlight/examples/zh_CN/default/README.md +0 -4
  570. package/highlight/examples/zh_CN/default/html/README.md +0 -6
  571. package/highlight/examples/zh_CN/default/scss/README.md +0 -6
  572. package/highlight/examples/zh_CN/default/typescript/README.md +0 -6
  573. package/icon/examples/en_US/default/README.md +0 -4
  574. package/icon/examples/en_US/default/ant-design/README.md +0 -12
  575. package/icon/examples/en_US/default/eva/README.md +0 -11
  576. package/icon/examples/en_US/default/feather/README.md +0 -8
  577. package/icon/examples/en_US/default/font-awesome/README.md +0 -10
  578. package/icon/examples/en_US/default/material-design/README.md +0 -11
  579. package/icon/examples/zh_CN/default/README.md +0 -4
  580. package/icon/examples/zh_CN/default/ant-design/README.md +0 -12
  581. package/icon/examples/zh_CN/default/eva/README.md +0 -11
  582. package/icon/examples/zh_CN/default/feather/README.md +0 -8
  583. package/icon/examples/zh_CN/default/font-awesome/README.md +0 -10
  584. package/icon/examples/zh_CN/default/material-design/README.md +0 -11
  585. package/image/examples/en_US/default/README.md +0 -4
  586. package/image/examples/en_US/default/default/README.md +0 -6
  587. package/image/examples/en_US/default/fallback/README.md +0 -6
  588. package/image/examples/en_US/default/group/README.md +0 -6
  589. package/image/examples/en_US/default/placeholder/README.md +0 -6
  590. package/image/examples/zh_CN/default/README.md +0 -4
  591. package/image/examples/zh_CN/default/default/README.md +0 -6
  592. package/image/examples/zh_CN/default/fallback/README.md +0 -6
  593. package/image/examples/zh_CN/default/group/README.md +0 -6
  594. package/image/examples/zh_CN/default/placeholder/README.md +0 -6
  595. package/input/examples/en_US/default/README.md +0 -4
  596. package/input/examples/en_US/default/bordered/README.md +0 -6
  597. package/input/examples/en_US/default/clear/README.md +0 -6
  598. package/input/examples/en_US/default/default/README.md +0 -6
  599. package/input/examples/en_US/default/disabled/README.md +0 -6
  600. package/input/examples/en_US/default/focus/README.md +0 -6
  601. package/input/examples/en_US/default/group/README.md +0 -6
  602. package/input/examples/en_US/default/icon/README.md +0 -7
  603. package/input/examples/en_US/default/label/README.md +0 -7
  604. package/input/examples/en_US/default/length/README.md +0 -6
  605. package/input/examples/en_US/default/perpost/README.md +0 -6
  606. package/input/examples/en_US/default/required/README.md +0 -6
  607. package/input/examples/en_US/default/size/README.md +0 -6
  608. package/input/examples/zh_CN/default/README.md +0 -4
  609. package/input/examples/zh_CN/default/bordered/README.md +0 -6
  610. package/input/examples/zh_CN/default/clear/README.md +0 -6
  611. package/input/examples/zh_CN/default/default/README.md +0 -6
  612. package/input/examples/zh_CN/default/disabled/README.md +0 -6
  613. package/input/examples/zh_CN/default/focus/README.md +0 -6
  614. package/input/examples/zh_CN/default/group/README.md +0 -6
  615. package/input/examples/zh_CN/default/icon/README.md +0 -7
  616. package/input/examples/zh_CN/default/label/README.md +0 -7
  617. package/input/examples/zh_CN/default/length/README.md +0 -6
  618. package/input/examples/zh_CN/default/perpost/README.md +0 -6
  619. package/input/examples/zh_CN/default/required/README.md +0 -6
  620. package/input/examples/zh_CN/default/size/README.md +0 -6
  621. package/input-number/examples/en_US/default/README.md +0 -4
  622. package/input-number/examples/en_US/default/bordered/README.md +0 -6
  623. package/input-number/examples/en_US/default/default/README.md +0 -6
  624. package/input-number/examples/en_US/default/disabled/README.md +0 -6
  625. package/input-number/examples/en_US/default/label/README.md +0 -7
  626. package/input-number/examples/en_US/default/limit/README.md +0 -6
  627. package/input-number/examples/en_US/default/precision/README.md +0 -7
  628. package/input-number/examples/en_US/default/required/README.md +0 -6
  629. package/input-number/examples/en_US/default/size/README.md +0 -6
  630. package/input-number/examples/zh_CN/default/README.md +0 -4
  631. package/input-number/examples/zh_CN/default/bordered/README.md +0 -6
  632. package/input-number/examples/zh_CN/default/default/README.md +0 -6
  633. package/input-number/examples/zh_CN/default/disabled/README.md +0 -6
  634. package/input-number/examples/zh_CN/default/label/README.md +0 -7
  635. package/input-number/examples/zh_CN/default/limit/README.md +0 -6
  636. package/input-number/examples/zh_CN/default/precision/README.md +0 -7
  637. package/input-number/examples/zh_CN/default/required/README.md +0 -6
  638. package/input-number/examples/zh_CN/default/size/README.md +0 -6
  639. package/layout/examples/en_US/default/README.md +0 -4
  640. package/layout/examples/en_US/default/blend/README.md +0 -6
  641. package/layout/examples/en_US/default/default/README.md +0 -10
  642. package/layout/examples/en_US/default/flex/README.md +0 -10
  643. package/layout/examples/en_US/default/hidden/README.md +0 -20
  644. package/layout/examples/en_US/default/layout/README.md +0 -6
  645. package/layout/examples/en_US/default/offset/README.md +0 -8
  646. package/layout/examples/en_US/default/space/README.md +0 -9
  647. package/layout/examples/zh_CN/default/README.md +0 -4
  648. package/layout/examples/zh_CN/default/blend/README.md +0 -6
  649. package/layout/examples/zh_CN/default/default/README.md +0 -10
  650. package/layout/examples/zh_CN/default/flex/README.md +0 -10
  651. package/layout/examples/zh_CN/default/hidden/README.md +0 -20
  652. package/layout/examples/zh_CN/default/layout/README.md +0 -6
  653. package/layout/examples/zh_CN/default/offset/README.md +0 -8
  654. package/layout/examples/zh_CN/default/space/README.md +0 -9
  655. package/link/examples/en_US/default/README.md +0 -4
  656. package/link/examples/en_US/default/default/README.md +0 -6
  657. package/link/examples/en_US/default/disabled/README.md +0 -8
  658. package/link/examples/en_US/default/icon/README.md +0 -6
  659. package/link/examples/en_US/default/underline/README.md +0 -6
  660. package/link/examples/zh_CN/default/README.md +0 -4
  661. package/link/examples/zh_CN/default/default/README.md +0 -6
  662. package/link/examples/zh_CN/default/disabled/README.md +0 -8
  663. package/link/examples/zh_CN/default/icon/README.md +0 -6
  664. package/link/examples/zh_CN/default/underline/README.md +0 -6
  665. package/list/examples/en_US/default/README.md +0 -4
  666. package/list/examples/en_US/default/default/README.md +0 -7
  667. package/list/examples/en_US/default/load-more/README.md +0 -8
  668. package/list/examples/en_US/default/scroll/README.md +0 -8
  669. package/list/examples/en_US/default/size/README.md +0 -6
  670. package/list/examples/zh_CN/default/README.md +0 -4
  671. package/list/examples/zh_CN/default/default/README.md +0 -7
  672. package/list/examples/zh_CN/default/load-more/README.md +0 -8
  673. package/list/examples/zh_CN/default/scroll/README.md +0 -8
  674. package/list/examples/zh_CN/default/size/README.md +0 -6
  675. package/loading/examples/en_US/default/README.md +0 -4
  676. package/loading/examples/en_US/default/custom/README.md +0 -6
  677. package/loading/examples/en_US/default/default/README.md +0 -6
  678. package/loading/examples/en_US/default/full-screen/README.md +0 -6
  679. package/loading/examples/zh_CN/default/README.md +0 -4
  680. package/loading/examples/zh_CN/default/custom/README.md +0 -6
  681. package/loading/examples/zh_CN/default/default/README.md +0 -6
  682. package/loading/examples/zh_CN/default/full-screen/README.md +0 -6
  683. package/menu/examples/en_US/default/README.md +0 -4
  684. package/menu/examples/en_US/default/default/README.md +0 -6
  685. package/menu/examples/en_US/default/icon/README.md +0 -6
  686. package/menu/examples/en_US/default/layout/README.md +0 -6
  687. package/menu/examples/en_US/default/leaf/README.md +0 -6
  688. package/menu/examples/en_US/default/size/README.md +0 -6
  689. package/menu/examples/zh_CN/default/README.md +0 -4
  690. package/menu/examples/zh_CN/default/default/README.md +0 -6
  691. package/menu/examples/zh_CN/default/icon/README.md +0 -6
  692. package/menu/examples/zh_CN/default/layout/README.md +0 -6
  693. package/menu/examples/zh_CN/default/leaf/README.md +0 -6
  694. package/menu/examples/zh_CN/default/size/README.md +0 -6
  695. package/message/examples/en_US/default/README.md +0 -4
  696. package/message/examples/en_US/default/close/README.md +0 -6
  697. package/message/examples/en_US/default/default/README.md +0 -6
  698. package/message/examples/en_US/default/loading/README.md +0 -6
  699. package/message/examples/en_US/default/single/README.md +0 -6
  700. package/message/examples/en_US/default/type/README.md +0 -6
  701. package/message/examples/zh_CN/default/README.md +0 -4
  702. package/message/examples/zh_CN/default/close/README.md +0 -6
  703. package/message/examples/zh_CN/default/default/README.md +0 -6
  704. package/message/examples/zh_CN/default/loading/README.md +0 -6
  705. package/message/examples/zh_CN/default/single/README.md +0 -6
  706. package/message/examples/zh_CN/default/type/README.md +0 -6
  707. package/message-box/examples/en_US/default/README.md +0 -4
  708. package/message-box/examples/en_US/default/confirm/README.md +0 -6
  709. package/message-box/examples/en_US/default/custom/README.md +0 -6
  710. package/message-box/examples/en_US/default/default/README.md +0 -6
  711. package/message-box/examples/en_US/default/prompt/README.md +0 -6
  712. package/message-box/examples/zh_CN/default/README.md +0 -4
  713. package/message-box/examples/zh_CN/default/confirm/README.md +0 -6
  714. package/message-box/examples/zh_CN/default/custom/README.md +0 -6
  715. package/message-box/examples/zh_CN/default/default/README.md +0 -6
  716. package/message-box/examples/zh_CN/default/prompt/README.md +0 -6
  717. package/notification/examples/en_US/default/README.md +0 -4
  718. package/notification/examples/en_US/default/default/README.md +0 -6
  719. package/notification/examples/en_US/default/type/README.md +0 -7
  720. package/notification/examples/zh_CN/default/README.md +0 -4
  721. package/notification/examples/zh_CN/default/default/README.md +0 -6
  722. package/notification/examples/zh_CN/default/type/README.md +0 -7
  723. package/outlet/examples/en_US/default/README.md +0 -4
  724. package/outlet/examples/en_US/default/default/README.md +0 -6
  725. package/outlet/examples/zh_CN/default/README.md +0 -4
  726. package/outlet/examples/zh_CN/default/default/README.md +0 -6
  727. package/page-header/examples/en_US/default/README.md +0 -4
  728. package/page-header/examples/en_US/default/default/README.md +0 -6
  729. package/page-header/examples/zh_CN/default/README.md +0 -4
  730. package/page-header/examples/zh_CN/default/default/README.md +0 -6
  731. package/pagination/examples/en_US/default/README.md +0 -4
  732. package/pagination/examples/en_US/default/default/README.md +0 -6
  733. package/pagination/examples/en_US/default/style/README.md +0 -8
  734. package/pagination/examples/zh_CN/default/README.md +0 -4
  735. package/pagination/examples/zh_CN/default/default/README.md +0 -6
  736. package/pagination/examples/zh_CN/default/style/README.md +0 -10
  737. package/popconfirm/examples/en_US/default/README.md +0 -4
  738. package/popconfirm/examples/en_US/default/async-close/README.md +0 -6
  739. package/popconfirm/examples/en_US/default/condition/README.md +0 -6
  740. package/popconfirm/examples/en_US/default/default/README.md +0 -6
  741. package/popconfirm/examples/zh_CN/default/README.md +0 -4
  742. package/popconfirm/examples/zh_CN/default/async-close/README.md +0 -6
  743. package/popconfirm/examples/zh_CN/default/condition/README.md +0 -6
  744. package/popconfirm/examples/zh_CN/default/default/README.md +0 -6
  745. package/popover/examples/en_US/default/README.md +0 -4
  746. package/popover/examples/en_US/default/default/README.md +0 -6
  747. package/popover/examples/zh_CN/default/README.md +0 -4
  748. package/popover/examples/zh_CN/default/default/README.md +0 -6
  749. package/progress/examples/en_US/default/README.md +0 -4
  750. package/progress/examples/en_US/default/circle/README.md +0 -6
  751. package/progress/examples/en_US/default/color/README.md +0 -6
  752. package/progress/examples/en_US/default/dashboard/README.md +0 -6
  753. package/progress/examples/en_US/default/default/README.md +0 -6
  754. package/progress/examples/en_US/default/format/README.md +0 -6
  755. package/progress/examples/en_US/default/gradient/README.md +0 -6
  756. package/progress/examples/en_US/default/inside/README.md +0 -6
  757. package/progress/examples/en_US/default/steps/README.md +0 -6
  758. package/progress/examples/en_US/default/subsection/README.md +0 -6
  759. package/progress/examples/zh_CN/default/README.md +0 -4
  760. package/progress/examples/zh_CN/default/circle/README.md +0 -6
  761. package/progress/examples/zh_CN/default/color/README.md +0 -6
  762. package/progress/examples/zh_CN/default/dashboard/README.md +0 -6
  763. package/progress/examples/zh_CN/default/default/README.md +0 -6
  764. package/progress/examples/zh_CN/default/format/README.md +0 -6
  765. package/progress/examples/zh_CN/default/gradient/README.md +0 -6
  766. package/progress/examples/zh_CN/default/inside/README.md +0 -6
  767. package/progress/examples/zh_CN/default/steps/README.md +0 -6
  768. package/progress/examples/zh_CN/default/subsection/README.md +0 -6
  769. package/radio/examples/en_US/default/README.md +0 -4
  770. package/radio/examples/en_US/default/async/README.md +0 -6
  771. package/radio/examples/en_US/default/button/README.md +0 -6
  772. package/radio/examples/en_US/default/default/README.md +0 -9
  773. package/radio/examples/en_US/default/disabled/README.md +0 -9
  774. package/radio/examples/en_US/default/icon/README.md +0 -6
  775. package/radio/examples/zh_CN/default/README.md +0 -4
  776. package/radio/examples/zh_CN/default/async/README.md +0 -6
  777. package/radio/examples/zh_CN/default/button/README.md +0 -6
  778. package/radio/examples/zh_CN/default/default/README.md +0 -9
  779. package/radio/examples/zh_CN/default/disabled/README.md +0 -9
  780. package/radio/examples/zh_CN/default/icon/README.md +0 -6
  781. package/rate/examples/en_US/default/README.md +0 -4
  782. package/rate/examples/en_US/default/color/README.md +0 -6
  783. package/rate/examples/en_US/default/custom/README.md +0 -6
  784. package/rate/examples/en_US/default/default/README.md +0 -6
  785. package/rate/examples/en_US/default/disabled/README.md +0 -8
  786. package/rate/examples/en_US/default/half/README.md +0 -6
  787. package/rate/examples/zh_CN/default/README.md +0 -4
  788. package/rate/examples/zh_CN/default/color/README.md +0 -6
  789. package/rate/examples/zh_CN/default/custom/README.md +0 -6
  790. package/rate/examples/zh_CN/default/default/README.md +0 -6
  791. package/rate/examples/zh_CN/default/disabled/README.md +0 -8
  792. package/rate/examples/zh_CN/default/half/README.md +0 -6
  793. package/result/examples/en_US/default/README.md +0 -4
  794. package/result/examples/en_US/default/error/README.md +0 -4
  795. package/result/examples/en_US/default/icon/README.md +0 -4
  796. package/result/examples/en_US/default/img/README.md +0 -4
  797. package/result/examples/en_US/default/info/README.md +0 -4
  798. package/result/examples/en_US/default/result403/README.md +0 -4
  799. package/result/examples/en_US/default/result404/README.md +0 -4
  800. package/result/examples/en_US/default/result500/README.md +0 -4
  801. package/result/examples/en_US/default/success/README.md +0 -4
  802. package/result/examples/en_US/default/warning/README.md +0 -4
  803. package/result/examples/zh_CN/default/README.md +0 -4
  804. package/result/examples/zh_CN/default/error/README.md +0 -4
  805. package/result/examples/zh_CN/default/icon/README.md +0 -4
  806. package/result/examples/zh_CN/default/img/README.md +0 -4
  807. package/result/examples/zh_CN/default/info/README.md +0 -4
  808. package/result/examples/zh_CN/default/result403/README.md +0 -4
  809. package/result/examples/zh_CN/default/result404/README.md +0 -4
  810. package/result/examples/zh_CN/default/result500/README.md +0 -4
  811. package/result/examples/zh_CN/default/success/README.md +0 -4
  812. package/result/examples/zh_CN/default/warning/README.md +0 -4
  813. package/select/examples/en_US/default/README.md +0 -4
  814. package/select/examples/en_US/default/async/README.md +0 -7
  815. package/select/examples/en_US/default/bordered/README.md +0 -6
  816. package/select/examples/en_US/default/custom/README.md +0 -6
  817. package/select/examples/en_US/default/default/README.md +0 -7
  818. package/select/examples/en_US/default/disabled/README.md +0 -6
  819. package/select/examples/en_US/default/label/README.md +0 -7
  820. package/select/examples/en_US/default/multiple/README.md +0 -6
  821. package/select/examples/en_US/default/required/README.md +0 -6
  822. package/select/examples/en_US/default/search/README.md +0 -6
  823. package/select/examples/en_US/default/size/README.md +0 -6
  824. package/select/examples/zh_CN/default/README.md +0 -4
  825. package/select/examples/zh_CN/default/async/README.md +0 -7
  826. package/select/examples/zh_CN/default/bordered/README.md +0 -6
  827. package/select/examples/zh_CN/default/custom/README.md +0 -6
  828. package/select/examples/zh_CN/default/default/README.md +0 -7
  829. package/select/examples/zh_CN/default/disabled/README.md +0 -6
  830. package/select/examples/zh_CN/default/label/README.md +0 -7
  831. package/select/examples/zh_CN/default/multiple/README.md +0 -6
  832. package/select/examples/zh_CN/default/required/README.md +0 -6
  833. package/select/examples/zh_CN/default/search/README.md +0 -6
  834. package/select/examples/zh_CN/default/size/README.md +0 -6
  835. package/skeleton/examples/en_US/default/README.md +0 -4
  836. package/skeleton/examples/en_US/default/active/README.md +0 -6
  837. package/skeleton/examples/en_US/default/complex/README.md +0 -6
  838. package/skeleton/examples/en_US/default/default/README.md +0 -6
  839. package/skeleton/examples/en_US/default/list/README.md +0 -6
  840. package/skeleton/examples/en_US/default/loading/README.md +0 -6
  841. package/skeleton/examples/en_US/default/table/README.md +0 -6
  842. package/skeleton/examples/zh_CN/default/README.md +0 -4
  843. package/skeleton/examples/zh_CN/default/active/README.md +0 -6
  844. package/skeleton/examples/zh_CN/default/complex/README.md +0 -6
  845. package/skeleton/examples/zh_CN/default/default/README.md +0 -6
  846. package/skeleton/examples/zh_CN/default/list/README.md +0 -6
  847. package/skeleton/examples/zh_CN/default/loading/README.md +0 -6
  848. package/skeleton/examples/zh_CN/default/table/README.md +0 -6
  849. package/slider/examples/en_US/default/README.md +0 -4
  850. package/slider/examples/en_US/default/activated/README.md +0 -6
  851. package/slider/examples/en_US/default/custom/README.md +0 -6
  852. package/slider/examples/en_US/default/default/README.md +0 -6
  853. package/slider/examples/en_US/default/expand/README.md +0 -7
  854. package/slider/examples/en_US/default/scroll/README.md +0 -6
  855. package/slider/examples/en_US/default/size/README.md +0 -6
  856. package/slider/examples/zh_CN/default/README.md +0 -4
  857. package/slider/examples/zh_CN/default/activated/README.md +0 -6
  858. package/slider/examples/zh_CN/default/custom/README.md +0 -6
  859. package/slider/examples/zh_CN/default/default/README.md +0 -6
  860. package/slider/examples/zh_CN/default/expand/README.md +0 -7
  861. package/slider/examples/zh_CN/default/scroll/README.md +0 -6
  862. package/slider/examples/zh_CN/default/size/README.md +0 -6
  863. package/slider-select/examples/en_US/default/README.md +0 -4
  864. package/slider-select/examples/en_US/default/default/README.md +0 -6
  865. package/slider-select/examples/en_US/default/disabled/README.md +0 -6
  866. package/slider-select/examples/en_US/default/label/README.md +0 -7
  867. package/slider-select/examples/en_US/default/limit/README.md +0 -6
  868. package/slider-select/examples/en_US/default/precision/README.md +0 -7
  869. package/slider-select/examples/zh_CN/default/README.md +0 -4
  870. package/slider-select/examples/zh_CN/default/default/README.md +0 -6
  871. package/slider-select/examples/zh_CN/default/disabled/README.md +0 -6
  872. package/slider-select/examples/zh_CN/default/label/README.md +0 -7
  873. package/slider-select/examples/zh_CN/default/limit/README.md +0 -6
  874. package/slider-select/examples/zh_CN/default/precision/README.md +0 -7
  875. package/statistic/examples/en_US/default/README.md +0 -4
  876. package/statistic/examples/en_US/default/default/README.md +0 -6
  877. package/statistic/examples/en_US/default/down/README.md +0 -6
  878. package/statistic/examples/en_US/default/prefix/README.md +0 -7
  879. package/statistic/examples/zh_CN/default/README.md +0 -4
  880. package/statistic/examples/zh_CN/default/default/README.md +0 -6
  881. package/statistic/examples/zh_CN/default/down/README.md +0 -6
  882. package/statistic/examples/zh_CN/default/prefix/README.md +0 -7
  883. package/steps/examples/en_US/default/README.md +0 -4
  884. package/steps/examples/en_US/default/custom/README.md +0 -6
  885. package/steps/examples/en_US/default/default/README.md +0 -6
  886. package/steps/examples/en_US/default/description/README.md +0 -6
  887. package/steps/examples/en_US/default/icon/README.md +0 -6
  888. package/steps/examples/en_US/default/index/README.md +0 -6
  889. package/steps/examples/en_US/default/layout/README.md +0 -6
  890. package/steps/examples/en_US/default/node-status/README.md +0 -6
  891. package/steps/examples/en_US/default/status/README.md +0 -6
  892. package/steps/examples/en_US/default/tabs/README.md +0 -6
  893. package/steps/examples/zh_CN/default/README.md +0 -4
  894. package/steps/examples/zh_CN/default/custom/README.md +0 -6
  895. package/steps/examples/zh_CN/default/default/README.md +0 -6
  896. package/steps/examples/zh_CN/default/description/README.md +0 -6
  897. package/steps/examples/zh_CN/default/icon/README.md +0 -6
  898. package/steps/examples/zh_CN/default/index/README.md +0 -6
  899. package/steps/examples/zh_CN/default/layout/README.md +0 -6
  900. package/steps/examples/zh_CN/default/node-status/README.md +0 -6
  901. package/steps/examples/zh_CN/default/status/README.md +0 -6
  902. package/steps/examples/zh_CN/default/tabs/README.md +0 -6
  903. package/switch/examples/en_US/default/README.md +0 -4
  904. package/switch/examples/en_US/default/default/README.md +0 -6
  905. package/switch/examples/en_US/default/disabled/README.md +0 -6
  906. package/switch/examples/en_US/default/label/README.md +0 -7
  907. package/switch/examples/zh_CN/default/README.md +0 -4
  908. package/switch/examples/zh_CN/default/default/README.md +0 -6
  909. package/switch/examples/zh_CN/default/disabled/README.md +0 -6
  910. package/switch/examples/zh_CN/default/label/README.md +0 -7
  911. package/table/examples/en_US/default/README.md +0 -4
  912. package/table/examples/en_US/default/adaption/README.md +0 -6
  913. package/table/examples/en_US/default/bordered/README.md +0 -6
  914. package/table/examples/en_US/default/checkbox/README.md +0 -7
  915. package/table/examples/en_US/default/config/README.md +0 -6
  916. package/table/examples/en_US/default/custom/README.md +0 -10
  917. package/table/examples/en_US/default/default/README.md +0 -7
  918. package/table/examples/en_US/default/drag-width/README.md +0 -6
  919. package/table/examples/en_US/default/edit/README.md +0 -7
  920. package/table/examples/en_US/default/expand/README.md +0 -8
  921. package/table/examples/en_US/default/fix/README.md +0 -6
  922. package/table/examples/en_US/default/head/README.md +0 -6
  923. package/table/examples/en_US/default/header/README.md +0 -6
  924. package/table/examples/en_US/default/row-size/README.md +0 -6
  925. package/table/examples/en_US/default/rowclass/README.md +0 -6
  926. package/table/examples/en_US/default/scroll/README.md +0 -7
  927. package/table/examples/en_US/default/search/README.md +0 -6
  928. package/table/examples/zh_CN/default/README.md +0 -4
  929. package/table/examples/zh_CN/default/adaption/README.md +0 -6
  930. package/table/examples/zh_CN/default/bordered/README.md +0 -6
  931. package/table/examples/zh_CN/default/checkbox/README.md +0 -8
  932. package/table/examples/zh_CN/default/config/README.md +0 -6
  933. package/table/examples/zh_CN/default/custom/README.md +0 -10
  934. package/table/examples/zh_CN/default/default/README.md +0 -7
  935. package/table/examples/zh_CN/default/drag-width/README.md +0 -6
  936. package/table/examples/zh_CN/default/edit/README.md +0 -7
  937. package/table/examples/zh_CN/default/expand/README.md +0 -8
  938. package/table/examples/zh_CN/default/fix/README.md +0 -6
  939. package/table/examples/zh_CN/default/head/README.md +0 -6
  940. package/table/examples/zh_CN/default/header/README.md +0 -6
  941. package/table/examples/zh_CN/default/row-size/README.md +0 -6
  942. package/table/examples/zh_CN/default/rowclass/README.md +0 -6
  943. package/table/examples/zh_CN/default/scroll/README.md +0 -7
  944. package/table/examples/zh_CN/default/search/README.md +0 -6
  945. package/tabs/examples/en_US/default/README.md +0 -4
  946. package/tabs/examples/en_US/default/action/README.md +0 -6
  947. package/tabs/examples/en_US/default/card/README.md +0 -6
  948. package/tabs/examples/en_US/default/custom/README.md +0 -6
  949. package/tabs/examples/en_US/default/default/README.md +0 -6
  950. package/tabs/examples/en_US/default/expand/README.md +0 -6
  951. package/tabs/examples/en_US/default/layout/README.md +0 -6
  952. package/tabs/examples/en_US/default/tag/README.md +0 -6
  953. package/tabs/examples/zh_CN/default/README.md +0 -4
  954. package/tabs/examples/zh_CN/default/action/README.md +0 -6
  955. package/tabs/examples/zh_CN/default/card/README.md +0 -6
  956. package/tabs/examples/zh_CN/default/custom/README.md +0 -6
  957. package/tabs/examples/zh_CN/default/default/README.md +0 -6
  958. package/tabs/examples/zh_CN/default/expand/README.md +0 -6
  959. package/tabs/examples/zh_CN/default/layout/README.md +0 -6
  960. package/tabs/examples/zh_CN/default/tag/README.md +0 -6
  961. package/tag/examples/en_US/default/README.md +0 -4
  962. package/tag/examples/en_US/default/bordered/README.md +0 -6
  963. package/tag/examples/en_US/default/checked/README.md +0 -6
  964. package/tag/examples/en_US/default/close/README.md +0 -6
  965. package/tag/examples/en_US/default/color/README.md +0 -6
  966. package/tag/examples/en_US/default/default/README.md +0 -6
  967. package/tag/examples/en_US/default/size/README.md +0 -6
  968. package/tag/examples/zh_CN/default/README.md +0 -4
  969. package/tag/examples/zh_CN/default/bordered/README.md +0 -6
  970. package/tag/examples/zh_CN/default/checked/README.md +0 -6
  971. package/tag/examples/zh_CN/default/close/README.md +0 -6
  972. package/tag/examples/zh_CN/default/color/README.md +0 -6
  973. package/tag/examples/zh_CN/default/default/README.md +0 -6
  974. package/tag/examples/zh_CN/default/size/README.md +0 -6
  975. package/text-retract/examples/en_US/default/README.md +0 -4
  976. package/text-retract/examples/en_US/default/default/README.md +0 -6
  977. package/text-retract/examples/zh_CN/default/README.md +0 -4
  978. package/text-retract/examples/zh_CN/default/default/README.md +0 -6
  979. package/textarea/examples/en_US/default/README.md +0 -4
  980. package/textarea/examples/en_US/default/clear/README.md +0 -6
  981. package/textarea/examples/en_US/default/default/README.md +0 -6
  982. package/textarea/examples/en_US/default/disabled/README.md +0 -6
  983. package/textarea/examples/en_US/default/icon/README.md +0 -7
  984. package/textarea/examples/en_US/default/label/README.md +0 -7
  985. package/textarea/examples/en_US/default/length/README.md +0 -6
  986. package/textarea/examples/en_US/default/required/README.md +0 -6
  987. package/textarea/examples/zh_CN/default/README.md +0 -4
  988. package/textarea/examples/zh_CN/default/clear/README.md +0 -6
  989. package/textarea/examples/zh_CN/default/default/README.md +0 -6
  990. package/textarea/examples/zh_CN/default/disabled/README.md +0 -6
  991. package/textarea/examples/zh_CN/default/icon/README.md +0 -7
  992. package/textarea/examples/zh_CN/default/label/README.md +0 -7
  993. package/textarea/examples/zh_CN/default/length/README.md +0 -6
  994. package/textarea/examples/zh_CN/default/required/README.md +0 -6
  995. package/theme/examples/en_US/default/README.md +0 -4
  996. package/theme/examples/en_US/default/default/README.md +0 -8
  997. package/theme/examples/zh_CN/default/README.md +0 -4
  998. package/theme/examples/zh_CN/default/default/README.md +0 -8
  999. package/time-ago/examples/en_US/default/README.md +0 -4
  1000. package/time-ago/examples/en_US/default/default/README.md +0 -4
  1001. package/time-ago/examples/zh_CN/default/README.md +0 -4
  1002. package/time-ago/examples/zh_CN/default/default/README.md +0 -4
  1003. package/time-picker/examples/en_US/default/README.md +0 -4
  1004. package/time-picker/examples/en_US/default/bordered/README.md +0 -6
  1005. package/time-picker/examples/en_US/default/default/README.md +0 -7
  1006. package/time-picker/examples/en_US/default/disabled/README.md +0 -6
  1007. package/time-picker/examples/en_US/default/hour-minute/README.md +0 -6
  1008. package/time-picker/examples/en_US/default/label/README.md +0 -7
  1009. package/time-picker/examples/en_US/default/required/README.md +0 -6
  1010. package/time-picker/examples/en_US/default/size/README.md +0 -6
  1011. package/time-picker/examples/zh_CN/default/README.md +0 -4
  1012. package/time-picker/examples/zh_CN/default/bordered/README.md +0 -6
  1013. package/time-picker/examples/zh_CN/default/default/README.md +0 -7
  1014. package/time-picker/examples/zh_CN/default/disabled/README.md +0 -6
  1015. package/time-picker/examples/zh_CN/default/hour-minute/README.md +0 -6
  1016. package/time-picker/examples/zh_CN/default/label/README.md +0 -7
  1017. package/time-picker/examples/zh_CN/default/required/README.md +0 -6
  1018. package/time-picker/examples/zh_CN/default/size/README.md +0 -6
  1019. package/time-range/examples/en_US/default/README.md +0 -4
  1020. package/time-range/examples/en_US/default/default/README.md +0 -6
  1021. package/time-range/examples/zh_CN/default/README.md +0 -4
  1022. package/time-range/examples/zh_CN/default/default/README.md +0 -6
  1023. package/timeline/examples/en_US/default/README.md +0 -4
  1024. package/timeline/examples/en_US/default/color/README.md +0 -6
  1025. package/timeline/examples/en_US/default/custom/README.md +0 -6
  1026. package/timeline/examples/en_US/default/default/README.md +0 -6
  1027. package/timeline/examples/en_US/default/icon/README.md +0 -6
  1028. package/timeline/examples/en_US/default/loading/README.md +0 -6
  1029. package/timeline/examples/en_US/default/mode/README.md +0 -6
  1030. package/timeline/examples/en_US/default/size/README.md +0 -6
  1031. package/timeline/examples/en_US/default/type/README.md +0 -6
  1032. package/timeline/examples/zh_CN/default/README.md +0 -4
  1033. package/timeline/examples/zh_CN/default/color/README.md +0 -6
  1034. package/timeline/examples/zh_CN/default/custom/README.md +0 -6
  1035. package/timeline/examples/zh_CN/default/default/README.md +0 -6
  1036. package/timeline/examples/zh_CN/default/icon/README.md +0 -6
  1037. package/timeline/examples/zh_CN/default/loading/README.md +0 -6
  1038. package/timeline/examples/zh_CN/default/mode/README.md +0 -6
  1039. package/timeline/examples/zh_CN/default/size/README.md +0 -6
  1040. package/timeline/examples/zh_CN/default/type/README.md +0 -6
  1041. package/tooltip/examples/en_US/default/README.md +0 -4
  1042. package/tooltip/examples/en_US/default/default/README.md +0 -6
  1043. package/tooltip/examples/zh_CN/default/README.md +0 -4
  1044. package/tooltip/examples/zh_CN/default/default/README.md +0 -6
  1045. package/transfer/examples/en_US/default/README.md +0 -4
  1046. package/transfer/examples/en_US/default/custom/README.md +0 -6
  1047. package/transfer/examples/en_US/default/default/README.md +0 -6
  1048. package/transfer/examples/en_US/default/drag/README.md +0 -6
  1049. package/transfer/examples/zh_CN/default/README.md +0 -4
  1050. package/transfer/examples/zh_CN/default/custom/README.md +0 -6
  1051. package/transfer/examples/zh_CN/default/default/README.md +0 -6
  1052. package/transfer/examples/zh_CN/default/drag/README.md +0 -6
  1053. package/tree/examples/en_US/default/README.md +0 -4
  1054. package/tree/examples/en_US/default/checkbox/README.md +0 -6
  1055. package/tree/examples/en_US/default/control/README.md +0 -6
  1056. package/tree/examples/en_US/default/custom/README.md +0 -6
  1057. package/tree/examples/en_US/default/default/README.md +0 -4
  1058. package/tree/examples/en_US/default/height/README.md +0 -7
  1059. package/tree/examples/en_US/default/lazy/README.md +0 -6
  1060. package/tree/examples/en_US/default/open/README.md +0 -6
  1061. package/tree/examples/en_US/default/status/README.md +0 -6
  1062. package/tree/examples/en_US/default/virtual-scroll/README.md +0 -7
  1063. package/tree/examples/zh_CN/default/README.md +0 -4
  1064. package/tree/examples/zh_CN/default/checkbox/README.md +0 -6
  1065. package/tree/examples/zh_CN/default/control/README.md +0 -6
  1066. package/tree/examples/zh_CN/default/custom/README.md +0 -6
  1067. package/tree/examples/zh_CN/default/default/README.md +0 -4
  1068. package/tree/examples/zh_CN/default/height/README.md +0 -7
  1069. package/tree/examples/zh_CN/default/lazy/README.md +0 -6
  1070. package/tree/examples/zh_CN/default/open/README.md +0 -6
  1071. package/tree/examples/zh_CN/default/status/README.md +0 -6
  1072. package/tree/examples/zh_CN/default/virtual-scroll/README.md +0 -7
  1073. package/tree-file/examples/en_US/default/README.md +0 -4
  1074. package/tree-file/examples/en_US/default/default/README.md +0 -6
  1075. package/tree-file/examples/zh_CN/default/README.md +0 -4
  1076. package/tree-file/examples/zh_CN/default/default/README.md +0 -6
  1077. package/typography/examples/en_US/default/README.md +0 -4
  1078. package/typography/examples/en_US/default/default/README.md +0 -6
  1079. package/typography/examples/en_US/default/line-height/README.md +0 -6
  1080. package/typography/examples/en_US/default/size/README.md +0 -6
  1081. package/typography/examples/zh_CN/default/README.md +0 -4
  1082. package/typography/examples/zh_CN/default/default/README.md +0 -6
  1083. package/typography/examples/zh_CN/default/line-height/README.md +0 -6
  1084. package/typography/examples/zh_CN/default/size/README.md +0 -6
  1085. package/upload/examples/en_US/default/README.md +0 -4
  1086. package/upload/examples/en_US/default/custom/README.md +0 -6
  1087. package/upload/examples/en_US/default/default/README.md +0 -8
  1088. package/upload/examples/en_US/default/disabled/README.md +0 -9
  1089. package/upload/examples/en_US/default/img/README.md +0 -6
  1090. package/upload/examples/zh_CN/default/README.md +0 -4
  1091. package/upload/examples/zh_CN/default/custom/README.md +0 -6
  1092. package/upload/examples/zh_CN/default/default/README.md +0 -8
  1093. package/upload/examples/zh_CN/default/disabled/README.md +0 -9
  1094. package/upload/examples/zh_CN/default/img/README.md +0 -6
@@ -1,7 +1,8 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ViewChildren } from '@angular/core';
2
2
  import { XTreePrefix, XTreeProperty } from './tree.property';
3
- import { XIsObservable, XIsEmpty, XIsFunction, XIsUndefined, XIsChange, XSetData } from '@ng-nest/ui/core';
4
- import { map, Subject } from 'rxjs';
3
+ import { XIsEmpty, XIsFunction, XIsUndefined, XIsChange, XSetData, XResize } from '@ng-nest/ui/core';
4
+ import { debounceTime, map, Subject, takeUntil } from 'rxjs';
5
+ import { XTreeNodeComponent } from './tree-node.component';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@ng-nest/ui/core";
7
8
  import * as i2 from "@angular/common";
@@ -22,35 +23,56 @@ export class XTreeComponent extends XTreeProperty {
22
23
  this.treeData = [];
23
24
  this._unSubject = new Subject();
24
25
  }
26
+ set _nodeComponents(value) {
27
+ this.nodeComponents = value;
28
+ }
25
29
  ngOnChanges(changes) {
26
30
  const { expandedAll, data, activatedId, checked, manual } = changes;
27
31
  XIsChange(data) && this.setData();
28
- XIsChange(expandedAll) && this.setExpandedAll();
29
32
  XIsChange(activatedId) && this.setActivatedNode(this.treeData);
33
+ XIsChange(expandedAll) && this.setExpandedAll();
30
34
  XIsChange(checked) && this.setCheckedKeys(this.checked);
31
35
  XIsChange(manual) && this.setManual();
32
36
  }
37
+ ngAfterViewInit() {
38
+ if (this.virtualScroll && this.heightAdaption) {
39
+ this.setVirtualScrollHeight();
40
+ XResize(this.heightAdaption)
41
+ .pipe(debounceTime(30), takeUntil(this._unSubject))
42
+ .subscribe((x) => {
43
+ this._resizeObserver = x.resizeObserver;
44
+ this.setVirtualScrollHeight();
45
+ });
46
+ }
47
+ this.setScorllTop();
48
+ }
33
49
  ngOnDestroy() {
34
50
  this._unSubject.next();
35
51
  this._unSubject.unsubscribe();
52
+ this._resizeObserver?.disconnect();
36
53
  }
37
54
  setData() {
38
55
  if (typeof this.data === 'undefined')
39
56
  return;
40
57
  this.dataIsFunc = false;
41
- if (XIsObservable(this.data)) {
42
- XSetData(this.data, this._unSubject).subscribe((x) => {
43
- this.setDataChange(x);
44
- });
45
- }
46
- else if (XIsFunction(this.data)) {
58
+ if (XIsFunction(this.data)) {
47
59
  this.dataIsFunc = true;
48
60
  this.getDataByFunc();
49
61
  }
50
62
  else {
51
- this.setDataChange(this.data);
63
+ XSetData(this.data, this._unSubject).subscribe((x) => {
64
+ this.setDataChange(x);
65
+ });
52
66
  }
53
67
  }
68
+ setVirtualScrollHeight() {
69
+ this.virtualScrollHeight = this.heightAdaption.clientHeight;
70
+ this.minBufferPx = this.virtualScrollHeight;
71
+ this.maxBufferPx = this.virtualScrollHeight * 1.2;
72
+ this.virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPx;
73
+ this.virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPx;
74
+ this.cdr.detectChanges();
75
+ }
54
76
  setManual() {
55
77
  if (this.dataIsFunc)
56
78
  this.getDataByFunc();
@@ -63,24 +85,57 @@ export class XTreeComponent extends XTreeProperty {
63
85
  });
64
86
  }
65
87
  setDataChange(value) {
66
- !XIsEmpty(this.activatedId) && this.setActivatedNode(value);
88
+ if (XIsEmpty(this.checked))
89
+ this.checked = [];
67
90
  const getChildren = (node, level) => {
68
91
  node.level = level;
69
- node.open = Boolean(this.expandedAll) || level <= this.expandedLevel || this.expanded.indexOf(node.id) >= 0;
92
+ node.open = Boolean(this.expandedAll) || level <= this.expandedLevel || this.expanded.indexOf(node.id) >= 0 || node.open;
70
93
  node.checked = this.checked.indexOf(node.id) >= 0;
71
94
  node.childrenLoaded = node.open;
72
- if (XIsUndefined(node.children))
95
+ if (XIsUndefined(node.children)) {
73
96
  node.children = value.filter((y) => y.pid === node.id);
97
+ if (this.levelCheck && node.children && node.checked) {
98
+ for (let nd of node.children) {
99
+ nd.checked = true;
100
+ this.checked.push(nd.id);
101
+ }
102
+ }
103
+ }
74
104
  if (XIsUndefined(node.leaf))
75
- node.leaf = node.children?.length > 0;
76
- if (node.leaf)
105
+ node.leaf = node.children?.length === 0;
106
+ if (!node.leaf)
77
107
  node.children?.map((y) => getChildren(y, level + 1));
78
108
  return node;
79
109
  };
80
110
  this.treeData = value;
81
111
  this.nodes = value.filter((x) => XIsEmpty(x.pid)).map((x) => getChildren(x, 0));
112
+ for (let item of value) {
113
+ if (item.open) {
114
+ this.setParentOpen(value, item);
115
+ }
116
+ }
117
+ this.setExpanded();
82
118
  this.cdr.detectChanges();
83
119
  }
120
+ setScorllTop() {
121
+ if (!this.scrollElement || !this.activatedNode)
122
+ return;
123
+ let inx = this.nodes.indexOf(this.activatedNode);
124
+ let com = this.nodeComponents.get(inx);
125
+ if (!com)
126
+ return;
127
+ let ele = com.elementRef.nativeElement;
128
+ let scrollEle = this.scrollElement;
129
+ let min = scrollEle.scrollTop;
130
+ let max = scrollEle.scrollTop + scrollEle.clientHeight;
131
+ if (ele.offsetTop + ele.clientHeight > max) {
132
+ let scrollTop = ele.offsetTop + ele.clientHeight - scrollEle.clientHeight;
133
+ scrollEle.scrollTop = scrollTop;
134
+ }
135
+ if (ele.offsetTop < min) {
136
+ scrollEle.scrollTop = ele.offsetTop;
137
+ }
138
+ }
84
139
  getCheckedNodes() {
85
140
  let result = [];
86
141
  const getChildren = (nodes) => {
@@ -104,15 +159,17 @@ export class XTreeComponent extends XTreeProperty {
104
159
  if (XIsEmpty(nodes))
105
160
  return;
106
161
  nodes.forEach((x) => {
107
- x.checked = !clear && keys.indexOf(x.id) >= 0;
162
+ x.checked = !clear && keys.includes(x.id);
108
163
  x.change && x.change(true);
109
164
  setChildren(x.children, clear);
110
165
  });
111
166
  };
112
- setChildren(this.nodes, keys.length === 0);
167
+ setChildren(this.nodes, XIsEmpty(keys));
113
168
  this.cdr.detectChanges();
114
169
  }
115
170
  setExpandedAll() {
171
+ if (this.expandedAll && this.treeData.length === this.nodes.length)
172
+ return;
116
173
  const setChildren = (nodes) => {
117
174
  if (XIsEmpty(nodes))
118
175
  return;
@@ -123,7 +180,10 @@ export class XTreeComponent extends XTreeProperty {
123
180
  });
124
181
  };
125
182
  setChildren(this.nodes);
126
- if (this.virtualScroll) {
183
+ if (this.expandedAll === false) {
184
+ this.nodes = this.treeData.filter((x) => XIsEmpty(x.pid));
185
+ }
186
+ else {
127
187
  if (this.virtualNodes.length === 0) {
128
188
  this.virtualNodes = [...this.nodes];
129
189
  }
@@ -133,6 +193,16 @@ export class XTreeComponent extends XTreeProperty {
133
193
  }
134
194
  }
135
195
  }
196
+ setExpanded() {
197
+ for (let item of this.nodes) {
198
+ if (item.open) {
199
+ let index = this.nodes.indexOf(item);
200
+ this.nodes.splice(index + 1, 0, ...item.children);
201
+ }
202
+ item.change && item.change();
203
+ }
204
+ this.nodes = [...this.nodes];
205
+ }
136
206
  setVirtualExpandedAll(item, expandedAll) {
137
207
  let index = this.nodes.indexOf(item);
138
208
  if (expandedAll) {
@@ -175,15 +245,39 @@ export class XTreeComponent extends XTreeProperty {
175
245
  this.nodes = [...this.nodes];
176
246
  }
177
247
  setActivatedNode(nodes) {
248
+ if (XIsEmpty(this.activatedId) && this.multiple) {
249
+ this.activatedId = [];
250
+ }
178
251
  let before = this.activatedNode;
179
- this.activatedNode = nodes.find((x) => x.id == this.activatedId);
180
- if (this.activatedNode) {
181
- this.setParentOpen(nodes, this.activatedNode);
182
- this.activatedChange.emit(this.activatedNode);
252
+ if (this.multiple) {
253
+ if (this.activatedId.length > 0) {
254
+ let ids = this.objectArray ? this.activatedId.map((x) => x.id) : this.activatedId;
255
+ for (let i = 0; i < ids.length; i++) {
256
+ let node = nodes.find((x) => x.id === ids[i]);
257
+ if (node) {
258
+ this.setParentOpen(nodes, node);
259
+ if (i === ids.length - 1) {
260
+ this.activatedNode = node;
261
+ this.activatedChange.emit(this.activatedNode);
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+ else {
268
+ let activatedId = this.activatedId;
269
+ this.activatedNode = nodes.find((x) => x.id == activatedId);
270
+ if (this.activatedNode) {
271
+ this.setParentOpen(nodes, this.activatedNode);
272
+ this.activatedChange.emit(this.activatedNode);
273
+ }
183
274
  }
184
275
  if (before) {
185
276
  before.change && before.change();
186
277
  }
278
+ if (!XIsEmpty(nodes)) {
279
+ this.setDataChange(nodes);
280
+ }
187
281
  }
188
282
  setParentOpen(nodes, node) {
189
283
  const getParent = (child) => {
@@ -191,31 +285,39 @@ export class XTreeComponent extends XTreeProperty {
191
285
  return;
192
286
  const parent = nodes.find((x) => x.id === child.pid);
193
287
  if (!XIsEmpty(parent)) {
194
- this.expanded = [...this.expanded, parent.id];
195
- parent.open = true;
196
- parent.change && parent.change();
197
- getParent(parent);
288
+ if (!this.expanded.includes(parent.id)) {
289
+ this.expanded = [...this.expanded, parent.id];
290
+ parent.open = true;
291
+ parent.change && parent.change();
292
+ getParent(parent);
293
+ }
294
+ }
295
+ };
296
+ getParent(node);
297
+ }
298
+ setParentCheck(nodes, node) {
299
+ const getParent = (child) => {
300
+ if (XIsEmpty(child.pid))
301
+ return;
302
+ const parent = nodes.find((x) => x.id === child.pid);
303
+ if (!XIsEmpty(parent)) {
304
+ if (!this.expanded.includes(parent.id)) {
305
+ this.expanded = [...this.expanded, parent.id];
306
+ parent.open = true;
307
+ parent.change && parent.change();
308
+ getParent(parent);
309
+ }
198
310
  }
199
311
  };
200
312
  getParent(node);
201
313
  }
202
314
  onToggle(event, node) {
203
315
  node.open = !node.open;
204
- if (this.virtualScroll) {
205
- if (this.lazy && !node.childrenLoaded) {
206
- this.getLazyData(node, () => this.virtualToggle(node));
207
- }
208
- else {
209
- this.virtualToggle(node);
210
- }
316
+ if (this.lazy && !node.childrenLoaded) {
317
+ this.getLazyData(node, () => this.virtualToggle(node));
211
318
  }
212
- else if (node.open && !node.childrenLoaded) {
213
- if (this.lazy) {
214
- this.getLazyData(node);
215
- }
216
- else {
217
- node.childrenLoaded = true;
218
- }
319
+ else {
320
+ this.virtualToggle(node);
219
321
  }
220
322
  event.preventDefault();
221
323
  event.stopPropagation();
@@ -247,22 +349,20 @@ export class XTreeComponent extends XTreeProperty {
247
349
  if (!parent.children)
248
350
  parent.children = [];
249
351
  this.expanded = [...this.expanded, parent.id];
250
- this.activatedId = node.id;
352
+ this.setActivatedId(node);
251
353
  node.level = Number(parent.level) + 1;
252
354
  node.pid = parent.id;
253
355
  this.treeData.push(node);
254
356
  this.setActivatedNode(this.treeData);
255
357
  parent.open = true;
256
- parent.leaf = true;
358
+ parent.leaf = false;
257
359
  parent.children = [...parent.children, node];
258
- if (this.virtualScroll) {
259
- this.virtualToggle(parent);
260
- this.cdr.detectChanges();
261
- }
360
+ this.virtualToggle(parent);
361
+ this.cdr.detectChanges();
262
362
  parent.change && parent.change();
263
363
  }
264
364
  else if (XIsEmpty(node.pid)) {
265
- this.activatedId = node.id;
365
+ this.setActivatedId(node);
266
366
  node.level = 0;
267
367
  this.treeData = [...this.treeData, node];
268
368
  this.nodes = [...this.nodes, node];
@@ -279,39 +379,50 @@ export class XTreeComponent extends XTreeProperty {
279
379
  _addNode();
280
380
  }
281
381
  }
382
+ setActivatedId(node) {
383
+ if (this.multiple) {
384
+ if (this.objectArray) {
385
+ this.activatedId = [node];
386
+ }
387
+ else {
388
+ this.activatedId = [node.id];
389
+ }
390
+ }
391
+ else {
392
+ this.activatedId = node.id;
393
+ }
394
+ this.activatedIdChange.emit(this.activatedId);
395
+ }
282
396
  removeNode(node) {
283
397
  let parent = this.treeData.find((x) => x.id === node.pid);
284
398
  if (parent) {
285
399
  if (!parent.children)
286
400
  parent.children = [];
287
401
  parent.children.splice(parent.children.indexOf(node), 1);
288
- parent.leaf = parent.children.length > 0;
289
- if (!parent.leaf)
290
- this.activatedId = parent.id;
291
- if (this.virtualScroll) {
292
- let index = this.nodes.indexOf(node);
293
- let aindex = index - 1;
294
- if (index === 0 && this.nodes.length > 1) {
295
- aindex = 1;
296
- }
297
- let activatedNode = this.nodes[aindex];
298
- this.activatedId = activatedNode.id;
299
- this.setActivatedNode(this.nodes);
300
- this.nodes.splice(index, 1);
301
- this.nodes = [...this.nodes];
302
- if (activatedNode) {
303
- activatedNode.change && activatedNode.change();
304
- }
305
- this.cdr.detectChanges();
402
+ parent.leaf = parent.children.length === 0;
403
+ if (parent.leaf) {
404
+ this.setActivatedId(parent);
405
+ }
406
+ let index = this.nodes.indexOf(node);
407
+ let aindex = index - 1;
408
+ if (index === 0 && this.nodes.length > 1) {
409
+ aindex = 1;
306
410
  }
411
+ let activatedNode = this.nodes[aindex];
412
+ this.setActivatedId(activatedNode);
413
+ this.setActivatedNode(this.nodes);
414
+ this.nodes.splice(index, 1);
415
+ this.nodes = [...this.nodes];
416
+ if (activatedNode) {
417
+ activatedNode.change && activatedNode.change();
418
+ }
419
+ this.cdr.detectChanges();
307
420
  parent.change && parent.change();
308
421
  }
309
422
  else if (XIsEmpty(node.pid)) {
310
423
  this.treeData.splice(this.treeData.indexOf(node), 1);
311
424
  this.nodes.splice(this.nodes.indexOf(node), 1);
312
- if (this.virtualScroll) {
313
- this.nodes = [...this.nodes];
314
- }
425
+ this.nodes = [...this.nodes];
315
426
  this.cdr.detectChanges();
316
427
  }
317
428
  }
@@ -324,12 +435,18 @@ export class XTreeComponent extends XTreeProperty {
324
435
  }
325
436
  }
326
437
  /** @nocollapse */ XTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
327
- /** @nocollapse */ XTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeComponent, selector: "x-tree", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #tree class=\"x-tree\">\r\n <ul *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></li>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n [virtualScroll]=\"virtualScroll\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i5.XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["parent", "tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
438
+ /** @nocollapse */ XTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeComponent, selector: "x-tree", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, static: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true }, { propertyName: "_nodeComponents", predicate: XTreeNodeComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf\">\r\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}.x-tree-only-leaf .x-tree-node-sub{color:var(--x-text-300)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i5.XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
328
439
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeComponent, decorators: [{
329
440
  type: Component,
330
- args: [{ selector: `${XTreePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #tree class=\"x-tree\">\r\n <ul *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></li>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n [virtualScroll]=\"virtualScroll\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}\n"] }]
441
+ args: [{ selector: `${XTreePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf\">\r\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}.x-tree-only-leaf .x-tree-node-sub{color:var(--x-text-300)}\n"] }]
331
442
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { tree: [{
332
443
  type: ViewChild,
333
444
  args: ['tree', { static: true }]
445
+ }], virtualBody: [{
446
+ type: ViewChild,
447
+ args: ['virtualBody']
448
+ }], _nodeComponents: [{
449
+ type: ViewChildren,
450
+ args: [XTreeNodeComponent]
334
451
  }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixTQUFTLEVBR1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWtCLE1BQU0sa0JBQWtCLENBQUM7QUFDM0gsT0FBTyxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFTaEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBUy9DLFlBQ1MsUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFMRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBWHRDLFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBQ3hCLGlCQUFZLEdBQWdCLEVBQUUsQ0FBQztRQUUvQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFnQixFQUFFLENBQUM7UUFDbkIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFRekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNo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QUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDOUI7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFlLEVBQUUsT0FBa0I7UUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBZTtRQUN6QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OEhBL1RVLGNBQWM7a0hBQWQsY0FBYyxzTUN0QjNCLDZ2Q0F1Q0E7MkZEakJhLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsR0FBRyxXQUFXLEVBQUUsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEFHVixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBWaWV3Q2hpbGQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVQcmVmaXgsIFhUcmVlTm9kZSwgWFRyZWVQcm9wZXJ0eSB9IGZyb20gJy4vdHJlZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc09ic2VydmFibGUsIFhJc0VtcHR5LCBYSXNGdW5jdGlvbiwgWElzVW5kZWZpbmVkLCBYSXNDaGFuZ2UsIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVHJlZVByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRyZWVDb21wb25lbnQgZXh0ZW5kcyBYVHJlZVByb3BlcnR5IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCd0cmVlJywgeyBzdGF0aWM6IHRydWUgfSkgdHJlZSE6IEVsZW1lbnRSZWY7XHJcbiAgbm9kZXM6IFhUcmVlTm9kZVtdID0gW107XHJcbiAgdmlydHVhbE5vZGVzOiBYVHJlZU5vZGVbXSA9IFtdO1xyXG4gIGFjdGl2YXRlZE5vZGUhOiBYVHJlZU5vZGU7XHJcbiAgZGF0YUlzRnVuYyA9IGZhbHNlO1xyXG4gIGdldHRpbmcgPSBmYWxzZTtcclxuICB0cmVlRGF0YTogWFRyZWVOb2RlW10gPSBbXTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBleHBhbmRlZEFsbCwgZGF0YSwgYWN0aXZhdGVkSWQsIGNoZWNrZWQsIG1hbnVhbCB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShkYXRhKSAmJiB0aGlzLnNldERhdGEoKTtcclxuICAgIFhJc0NoYW5nZShleHBhbmRlZEFsbCkgJiYgdGhpcy5zZXRFeHBhbmRlZEFsbCgpO1xyXG4gICAgWElzQ2hhbmdlKGFjdGl2YXRlZElkKSAmJiB0aGlzLnNldEFjdGl2YXRlZE5vZGUodGhpcy50cmVlRGF0YSk7XHJcbiAgICBYSXNDaGFuZ2UoY2hlY2tlZCkgJiYgdGhpcy5zZXRDaGVja2VkS2V5cyh0aGlzLmNoZWNrZWQpO1xyXG4gICAgWElzQ2hhbmdlKG1hbnVhbCkgJiYgdGhpcy5zZXRNYW51YWwoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0YSgpIHtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5kYXRhID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xyXG4gICAgdGhpcy5kYXRhSXNGdW5jID0gZmFsc2U7XHJcbiAgICBpZiAoWElzT2JzZXJ2YWJsZSh0aGlzLmRhdGEpKSB7XHJcbiAgICAgIFhTZXREYXRhPFhUcmVlTm9kZT4odGhpcy5kYXRhLCB0aGlzLl91blN1YmplY3QpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YUNoYW5nZSh4KTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSkpIHtcclxuICAgICAgdGhpcy5kYXRhSXNGdW5jID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldERhdGFDaGFuZ2UodGhpcy5kYXRhIGFzIFhUcmVlTm9kZVtdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TWFudWFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YUlzRnVuYykgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERhdGFCeUZ1bmMoKSB7XHJcbiAgICBpZiAoIXRoaXMubWFudWFsKSByZXR1cm47XHJcbiAgICBYU2V0RGF0YTxYVHJlZU5vZGU+KCh0aGlzLmRhdGEgYXMgRnVuY3Rpb24pKCksIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YUNoYW5nZSh4KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREYXRhQ2hhbmdlKHZhbHVlOiBYVHJlZU5vZGVbXSkge1xyXG4gICAgIVhJc0VtcHR5KHRoaXMuYWN0aXZhdGVkSWQpICYmIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh2YWx1ZSk7XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlOiBYVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gICAgICBub2RlLm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpIHx8IGxldmVsIDw9IHRoaXMuZXhwYW5kZWRMZXZlbCB8fCB0aGlzLmV4cGFuZGVkLmluZGV4T2Yobm9kZS5pZCkgPj0gMDtcclxuICAgICAgbm9kZS5jaGVja2VkID0gdGhpcy5jaGVja2VkLmluZGV4T2Yobm9kZS5pZCkgPj0gMDtcclxuICAgICAgbm9kZS5jaGlsZHJlbkxvYWRlZCA9IG5vZGUub3BlbjtcclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmNoaWxkcmVuKSkgbm9kZS5jaGlsZHJlbiA9IHZhbHVlLmZpbHRlcigoeSkgPT4geS5waWQgPT09IG5vZGUuaWQpO1xyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUubGVhZikpIG5vZGUubGVhZiA9IChub2RlLmNoaWxkcmVuPy5sZW5ndGggYXMgbnVtYmVyKSA+IDA7XHJcbiAgICAgIGlmIChub2RlLmxlYWYpIG5vZGUuY2hpbGRyZW4/Lm1hcCgoeSkgPT4gZ2V0Q2hpbGRyZW4oeSwgbGV2ZWwgKyAxKSk7XHJcbiAgICAgIHJldHVybiBub2RlO1xyXG4gICAgfTtcclxuICAgIHRoaXMudHJlZURhdGEgPSB2YWx1ZTtcclxuICAgIHRoaXMubm9kZXMgPSB2YWx1ZS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSkubWFwKCh4KSA9PiBnZXRDaGlsZHJlbih4LCAwKSk7XHJcblxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tlZE5vZGVzKCk6IFhUcmVlTm9kZVtdIHtcclxuICAgIGxldCByZXN1bHQ6IFhUcmVlTm9kZVtdID0gW107XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlczogWFRyZWVOb2RlW10pID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KG5vZGVzKSkgcmV0dXJuO1xyXG4gICAgICBub2Rlcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgICAgaWYgKHguY2hlY2tlZCAmJiAhcmVzdWx0LmluY2x1ZGVzKHgpKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSBbLi4ucmVzdWx0LCB4XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZ2V0Q2hpbGRyZW4oeC5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIGdldENoaWxkcmVuKHRoaXMubm9kZXMpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGdldENoZWNrZWRLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tlZE5vZGVzKCkubWFwKCh4KSA9PiB4LmlkKTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWRLZXlzKGtleXM6IGFueVtdID0gW10pIHtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSwgY2xlYXIgPSBmYWxzZSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4LmNoZWNrZWQgPSAhY2xlYXIgJiYga2V5cy5pbmRleE9mKHguaWQpID49IDA7XHJcbiAgICAgICAgeC5jaGFuZ2UgJiYgeC5jaGFuZ2UodHJ1ZSk7XHJcbiAgICAgICAgc2V0Q2hpbGRyZW4oeC5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSwgY2xlYXIpO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICBzZXRDaGlsZHJlbih0aGlzLm5vZGVzLCBrZXlzLmxlbmd0aCA9PT0gMCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZEFsbCgpIHtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4Lm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKCk7XHJcbiAgICAgICAgc2V0Q2hpbGRyZW4oeC5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHNldENoaWxkcmVuKHRoaXMubm9kZXMpO1xyXG5cclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgaWYgKHRoaXMudmlydHVhbE5vZGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudmlydHVhbE5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy52aXJ0dWFsTm9kZXNdO1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMudmlydHVhbE5vZGVzKSB7XHJcbiAgICAgICAgdGhpcy5zZXRWaXJ0dWFsRXhwYW5kZWRBbGwoaXRlbSwgdGhpcy5leHBhbmRlZEFsbCBhcyBib29sZWFuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VmlydHVhbEV4cGFuZGVkQWxsKGl0ZW06IFhUcmVlTm9kZSwgZXhwYW5kZWRBbGw6IGJvb2xlYW4pIHtcclxuICAgIGxldCBpbmRleCA9IHRoaXMubm9kZXMuaW5kZXhPZihpdGVtKTtcclxuICAgIGlmIChleHBhbmRlZEFsbCkge1xyXG4gICAgICBsZXQgYWRkTm9kZXM6IFhUcmVlTm9kZVtdID0gW107XHJcbiAgICAgIGNvbnN0IGdldE5vZGVzID0gKG5kOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBuZC5jaGlsZHJlbiEpIHtcclxuICAgICAgICAgIGFkZE5vZGVzLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgZ2V0Tm9kZXMoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgZ2V0Tm9kZXMoaXRlbSk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgLi4uYWRkTm9kZXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICB9XHJcblxyXG4gIHZpcnR1YWxUb2dnbGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICBpZiAobm9kZS5vcGVuKSB7XHJcbiAgICAgIGxldCBhZGROb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgICAgY29uc3QgZ2V0Tm9kZXMgPSAobmQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5kLmNoaWxkcmVuISkge1xyXG4gICAgICAgICAgYWRkTm9kZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICBjaGlsZC5vcGVuICYmIGdldE5vZGVzKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldE5vZGVzKG5vZGUpO1xyXG4gICAgICB0aGlzLm5vZGVzLnNwbGljZShpbmRleCArIDEsIDAsIC4uLmFkZE5vZGVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkZWxDb3VudCA9IDA7XHJcbiAgICAgIGNvbnN0IGdldENvdW50ID0gKG5kOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgICBkZWxDb3VudCArPSBuZC5jaGlsZHJlbiEubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5kLmNoaWxkcmVuISkge1xyXG4gICAgICAgICAgY2hpbGQub3BlbiAmJiBnZXRDb3VudChjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICBnZXRDb3VudChub2RlKTtcclxuICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXggKyAxLCBkZWxDb3VudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZhdGVkTm9kZShub2RlczogWFRyZWVOb2RlW10pIHtcclxuICAgIGxldCBiZWZvcmUgPSB0aGlzLmFjdGl2YXRlZE5vZGU7XHJcbiAgICB0aGlzLmFjdGl2YXRlZE5vZGUgPSBub2Rlcy5maW5kKCh4KSA9PiB4LmlkID09IHRoaXMuYWN0aXZhdGVkSWQpIGFzIFhUcmVlTm9kZTtcclxuICAgIGlmICh0aGlzLmFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgdGhpcy5zZXRQYXJlbnRPcGVuKG5vZGVzLCB0aGlzLmFjdGl2YXRlZE5vZGUpO1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZENoYW5nZS5lbWl0KHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoYmVmb3JlKSB7XHJcbiAgICAgIGJlZm9yZS5jaGFuZ2UgJiYgYmVmb3JlLmNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGFyZW50T3Blbihub2RlczogWFRyZWVOb2RlW10sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gKGNoaWxkOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkLnBpZCkpIHJldHVybjtcclxuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PT0gY2hpbGQucGlkKSBhcyBYVHJlZU5vZGU7XHJcbiAgICAgIGlmICghWElzRW1wdHkocGFyZW50KSkge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBbLi4udGhpcy5leHBhbmRlZCwgcGFyZW50LmlkXTtcclxuICAgICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgcGFyZW50LmNoYW5nZSAmJiBwYXJlbnQuY2hhbmdlKCk7XHJcbiAgICAgICAgZ2V0UGFyZW50KHBhcmVudCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBnZXRQYXJlbnQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBvblRvZ2dsZShldmVudDogRXZlbnQsIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgbm9kZS5vcGVuID0gIW5vZGUub3BlbjtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgaWYgKHRoaXMubGF6eSAmJiAhbm9kZS5jaGlsZHJlbkxvYWRlZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0TGF6eURhdGEobm9kZSwgKCkgPT4gdGhpcy52aXJ0dWFsVG9nZ2xlKG5vZGUpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZpcnR1YWxUb2dnbGUobm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobm9kZS5vcGVuICYmICFub2RlLmNoaWxkcmVuTG9hZGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmxhenkpIHtcclxuICAgICAgICB0aGlzLmdldExhenlEYXRhKG5vZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUuY2hpbGRyZW5Mb2FkZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRMYXp5RGF0YShub2RlOiBYVHJlZU5vZGUsIGNhbGxCYWNrPzogKCkgPT4gdm9pZCkge1xyXG4gICAgbm9kZS5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIG5vZGUuY2hhbmdlICYmIG5vZGUuY2hhbmdlKCk7XHJcbiAgICAodGhpcy5kYXRhIGFzIChwaWQ/OiBhbnkpID0+IE9ic2VydmFibGU8WFRyZWVOb2RlW10+KShub2RlLmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+XHJcbiAgICAgICAgICB4Lm1hcCgoeSkgPT4ge1xyXG4gICAgICAgICAgICB5LmxldmVsID0gKG5vZGUubGV2ZWwgYXMgbnVtYmVyKSArIDE7XHJcbiAgICAgICAgICAgIHkuY2hlY2tlZCA9IG5vZGUuY2hlY2tlZDtcclxuICAgICAgICAgICAgcmV0dXJuIHk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbiA9IHg7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbkxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgbm9kZS5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGNhbGxCYWNrKSBjYWxsQmFjaygpO1xyXG4gICAgICAgIG5vZGUuY2hhbmdlICYmIG5vZGUuY2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZE5vZGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBsZXQgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKCh4KSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICBjb25zdCBfYWRkTm9kZSA9ICgpID0+IHtcclxuICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuKSBwYXJlbnQuY2hpbGRyZW4gPSBbXTtcclxuICAgICAgICB0aGlzLmV4cGFuZGVkID0gWy4uLnRoaXMuZXhwYW5kZWQsIHBhcmVudC5pZF07XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRJZCA9IG5vZGUuaWQ7XHJcbiAgICAgICAgbm9kZS5sZXZlbCA9IE51bWJlcihwYXJlbnQubGV2ZWwpICsgMTtcclxuICAgICAgICBub2RlLnBpZCA9IHBhcmVudC5pZDtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhLnB1c2gobm9kZSk7XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmF0ZWROb2RlKHRoaXMudHJlZURhdGEpO1xyXG4gICAgICAgIHBhcmVudC5vcGVuID0gdHJ1ZTtcclxuICAgICAgICBwYXJlbnQubGVhZiA9IHRydWU7XHJcbiAgICAgICAgcGFyZW50LmNoaWxkcmVuID0gWy4uLnBhcmVudC5jaGlsZHJlbiwgbm9kZV07XHJcbiAgICAgICAgaWYgKHRoaXMudmlydHVhbFNjcm9sbCkge1xyXG4gICAgICAgICAgdGhpcy52aXJ0dWFsVG9nZ2xlKHBhcmVudCk7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmVudC5jaGFuZ2UgJiYgcGFyZW50LmNoYW5nZSgpO1xyXG4gICAgICB9IGVsc2UgaWYgKFhJc0VtcHR5KG5vZGUucGlkKSkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSBub2RlLmlkO1xyXG4gICAgICAgIG5vZGUubGV2ZWwgPSAwO1xyXG4gICAgICAgIHRoaXMudHJlZURhdGEgPSBbLi4udGhpcy50cmVlRGF0YSwgbm9kZV07XHJcbiAgICAgICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzLCBub2RlXTtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZE5vZGUodGhpcy50cmVlRGF0YSk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMubGF6eSAmJiBwYXJlbnQgJiYgIXBhcmVudC5jaGlsZHJlbkxvYWRlZCkge1xyXG4gICAgICB0aGlzLmdldExhenlEYXRhKHBhcmVudCwgKCkgPT4ge1xyXG4gICAgICAgIF9hZGROb2RlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgX2FkZE5vZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZU5vZGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBsZXQgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKCh4KSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuKSBwYXJlbnQuY2hpbGRyZW4gPSBbXTtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLnNwbGljZShwYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihub2RlKSwgMSk7XHJcbiAgICAgIHBhcmVudC5sZWFmID0gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA+IDA7XHJcbiAgICAgIGlmICghcGFyZW50LmxlYWYpIHRoaXMuYWN0aXZhdGVkSWQgPSBwYXJlbnQuaWQ7XHJcbiAgICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICAgICAgbGV0IGFpbmRleCA9IGluZGV4IC0gMTtcclxuICAgICAgICBpZiAoaW5kZXggPT09IDAgJiYgdGhpcy5ub2Rlcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICBhaW5kZXggPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgYWN0aXZhdGVkTm9kZSA9IHRoaXMubm9kZXNbYWluZGV4XTtcclxuICAgICAgICB0aGlzLmFjdGl2YXRlZElkID0gYWN0aXZhdGVkTm9kZS5pZDtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZE5vZGUodGhpcy5ub2Rlcyk7XHJcbiAgICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgICAgaWYgKGFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgICAgIGFjdGl2YXRlZE5vZGUuY2hhbmdlICYmIGFjdGl2YXRlZE5vZGUuY2hhbmdlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgIH0gZWxzZSBpZiAoWElzRW1wdHkobm9kZS5waWQpKSB7XHJcbiAgICAgIHRoaXMudHJlZURhdGEuc3BsaWNlKHRoaXMudHJlZURhdGEuaW5kZXhPZihub2RlKSwgMSk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKHRoaXMubm9kZXMuaW5kZXhPZihub2RlKSwgMSk7XHJcbiAgICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZU5vZGUobm9kZTogWFRyZWVOb2RlLCBub3dOb2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIE9iamVjdC5hc3NpZ24obm9kZSwgbm93Tm9kZSk7XHJcbiAgICBub2RlLmNoYW5nZSAmJiBub2RlLmNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oX2luZGV4OiBudW1iZXIsIGl0ZW06IFhUcmVlTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI3RyZWUgY2xhc3M9XCJ4LXRyZWVcIj5cclxuICA8dWwgKm5nSWY9XCIhdmlydHVhbFNjcm9sbDsgZWxzZSB2aXJ0dWFsU2Nyb2xsVHBsXCI+XHJcbiAgICA8bGlcclxuICAgICAgeC10cmVlLW5vZGVcclxuICAgICAgKm5nRm9yPVwibGV0IG5vZGUgb2Ygbm9kZXM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgW25vZGVdPVwibm9kZVwiXHJcbiAgICAgIFtsYXp5XT1cImxhenlcIlxyXG4gICAgICBbbGF6eURhdGFdPVwiZGF0YVwiXHJcbiAgICAgIFtub2RlSGVpZ2h0XT1cIm5vZGVIZWlnaHRcIlxyXG4gICAgICBbbm9kZU5vd3JhcF09XCJub2RlTm93cmFwXCJcclxuICAgICAgW25vZGVBbGlnbkl0ZW1zXT1cIm5vZGVBbGlnbkl0ZW1zXCJcclxuICAgICAgW3RyZWVdPVwidGhpc1wiXHJcbiAgICA+PC9saT5cclxuICA8L3VsPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdmlydHVhbFNjcm9sbFRwbD5cclxuICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XHJcbiAgICBbaXRlbVNpemVdPVwiaXRlbVNpemVcIlxyXG4gICAgW21pbkJ1ZmZlclB4XT1cIm1pbkJ1ZmZlclB4XCJcclxuICAgIFttYXhCdWZmZXJQeF09XCJtYXhCdWZmZXJQeFwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInZpcnR1YWxTY3JvbGxIZWlnaHRcIlxyXG4gID5cclxuICAgIDx4LXRyZWUtbm9kZVxyXG4gICAgICAqY2RrVmlydHVhbEZvcj1cImxldCBub2RlIG9mIG5vZGVzOyB0ZW1wbGF0ZUNhY2hlU2l6ZTogMDsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBbbm9kZV09XCJub2RlXCJcclxuICAgICAgW2xhenldPVwibGF6eVwiXHJcbiAgICAgIFtsYXp5RGF0YV09XCJkYXRhXCJcclxuICAgICAgW25vZGVIZWlnaHRdPVwibm9kZUhlaWdodFwiXHJcbiAgICAgIFtub2RlTm93cmFwXT1cIm5vZGVOb3dyYXBcIlxyXG4gICAgICBbbm9kZUFsaWduSXRlbXNdPVwibm9kZUFsaWduSXRlbXNcIlxyXG4gICAgICBbdHJlZV09XCJ0aGlzXCJcclxuICAgICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbFwiXHJcbiAgICA+PC94LXRyZWUtbm9kZT5cclxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0g5o+Q5YmN5Yqg6L29bG9hZGluZ+eahOWbvuaghy0tPlxyXG48eC1pY29uICpuZ0lmPVwibGF6eVwiIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiIHR5cGU9XCJmdG8tbG9hZGVyXCI+PC94LWljb24+XHJcbiJdfQ==
452
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixTQUFTLEVBSVQsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWtCLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFTM0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBaUIvQyxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQWJ0QyxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFnQixFQUFFLENBQUM7UUFFL0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBZ0IsRUFBRSxD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QUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFlLEVBQUUsT0FBa0I7UUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBZTtRQUN6QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OEhBcGJVLGNBQWM7a0hBQWQsY0FBYyw0UUFJWCxrQkFBa0IsNEZDOUJsQyw2eENBc0NBOzJGRFphLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsR0FBRyxXQUFXLEVBQUUsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEFHVixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1QsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUdiLGVBQWU7c0JBRHpCLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVQcmVmaXgsIFhUcmVlTm9kZSwgWFRyZWVQcm9wZXJ0eSB9IGZyb20gJy4vdHJlZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNGdW5jdGlvbiwgWElzVW5kZWZpbmVkLCBYSXNDaGFuZ2UsIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSwgWFJlc2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtbm9kZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUcmVlUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZUNvbXBvbmVudCBleHRlbmRzIFhUcmVlUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmVlITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQm9keScpIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIG5vZGVDb21wb25lbnRzITogUXVlcnlMaXN0PFhUcmVlTm9kZUNvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZHJlbihYVHJlZU5vZGVDb21wb25lbnQpXHJcbiAgcHVibGljIHNldCBfbm9kZUNvbXBvbmVudHModmFsdWU6IFF1ZXJ5TGlzdDxYVHJlZU5vZGVDb21wb25lbnQ+KSB7XHJcbiAgICB0aGlzLm5vZGVDb21wb25lbnRzID0gdmFsdWU7XHJcbiAgfVxyXG4gIG5vZGVzOiBYVHJlZU5vZGVbXSA9IFtdO1xyXG4gIHZpcnR1YWxOb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICBhY3RpdmF0ZWROb2RlITogWFRyZWVOb2RlO1xyXG4gIGRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICBnZXR0aW5nID0gZmFsc2U7XHJcbiAgdHJlZURhdGE6IFhUcmVlTm9kZVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZXhwYW5kZWRBbGwsIGRhdGEsIGFjdGl2YXRlZElkLCBjaGVja2VkLCBtYW51YWwgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBYSXNDaGFuZ2UoYWN0aXZhdGVkSWQpICYmIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLnRyZWVEYXRhKTtcclxuICAgIFhJc0NoYW5nZShleHBhbmRlZEFsbCkgJiYgdGhpcy5zZXRFeHBhbmRlZEFsbCgpO1xyXG4gICAgWElzQ2hhbmdlKGNoZWNrZWQpICYmIHRoaXMuc2V0Q2hlY2tlZEtleXModGhpcy5jaGVja2VkKTtcclxuICAgIFhJc0NoYW5nZShtYW51YWwpICYmIHRoaXMuc2V0TWFudWFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy52aXJ0dWFsU2Nyb2xsICYmIHRoaXMuaGVpZ2h0QWRhcHRpb24pIHtcclxuICAgICAgdGhpcy5zZXRWaXJ0dWFsU2Nyb2xsSGVpZ2h0KCk7XHJcbiAgICAgIFhSZXNpemUodGhpcy5oZWlnaHRBZGFwdGlvbiBhcyBIVE1MRWxlbWVudClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgICB0aGlzLnNldFZpcnR1YWxTY3JvbGxIZWlnaHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2NvcmxsVG9wKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLmRhdGEgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XHJcbiAgICB0aGlzLmRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmRhdGEpKSB7XHJcbiAgICAgIHRoaXMuZGF0YUlzRnVuYyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgWFNldERhdGE8WFRyZWVOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKHgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmlydHVhbFNjcm9sbEhlaWdodCgpIHtcclxuICAgIHRoaXMudmlydHVhbFNjcm9sbEhlaWdodCA9ICh0aGlzLmhlaWdodEFkYXB0aW9uIGFzIEhUTUxFbGVtZW50KS5jbGllbnRIZWlnaHQ7XHJcbiAgICB0aGlzLm1pbkJ1ZmZlclB4ID0gdGhpcy52aXJ0dWFsU2Nyb2xsSGVpZ2h0O1xyXG4gICAgdGhpcy5tYXhCdWZmZXJQeCA9IHRoaXMudmlydHVhbFNjcm9sbEhlaWdodCAqIDEuMjtcclxuICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHg7XHJcbiAgICB0aGlzLnZpcnR1YWxCb2R5Wydfc2Nyb2xsU3RyYXRlZ3knXVsnX21heEJ1ZmZlclB4J10gPSB0aGlzLm1heEJ1ZmZlclB4O1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNYW51YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhSXNGdW5jKSB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0YUJ5RnVuYygpIHtcclxuICAgIGlmICghdGhpcy5tYW51YWwpIHJldHVybjtcclxuICAgIFhTZXREYXRhPFhUcmVlTm9kZT4oKHRoaXMuZGF0YSBhcyBGdW5jdGlvbikoKSwgdGhpcy5fdW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKHgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGFDaGFuZ2UodmFsdWU6IFhUcmVlTm9kZVtdKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5jaGVja2VkKSkgdGhpcy5jaGVja2VkID0gW107XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlOiBYVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gICAgICBub2RlLm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpIHx8IGxldmVsIDw9IHRoaXMuZXhwYW5kZWRMZXZlbCB8fCB0aGlzLmV4cGFuZGVkLmluZGV4T2Yobm9kZS5pZCkgPj0gMCB8fCBub2RlLm9wZW47XHJcbiAgICAgIG5vZGUuY2hlY2tlZCA9IHRoaXMuY2hlY2tlZC5pbmRleE9mKG5vZGUuaWQpID49IDA7XHJcbiAgICAgIG5vZGUuY2hpbGRyZW5Mb2FkZWQgPSBub2RlLm9wZW47XHJcbiAgICAgIGlmIChYSXNVbmRlZmluZWQobm9kZS5jaGlsZHJlbikpIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuID0gdmFsdWUuZmlsdGVyKCh5KSA9PiB5LnBpZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgICAgaWYgKHRoaXMubGV2ZWxDaGVjayAmJiBub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hlY2tlZCkge1xyXG4gICAgICAgICAgZm9yIChsZXQgbmQgb2Ygbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICBuZC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2VkLnB1c2gobmQuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUubGVhZikpIG5vZGUubGVhZiA9IChub2RlLmNoaWxkcmVuPy5sZW5ndGggYXMgbnVtYmVyKSA9PT0gMDtcclxuICAgICAgaWYgKCFub2RlLmxlYWYpIG5vZGUuY2hpbGRyZW4/Lm1hcCgoeSkgPT4gZ2V0Q2hpbGRyZW4oeSwgbGV2ZWwgKyAxKSk7XHJcbiAgICAgIHJldHVybiBub2RlO1xyXG4gICAgfTtcclxuICAgIHRoaXMudHJlZURhdGEgPSB2YWx1ZTtcclxuICAgIHRoaXMubm9kZXMgPSB2YWx1ZS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSkubWFwKCh4KSA9PiBnZXRDaGlsZHJlbih4LCAwKSk7XHJcbiAgICBmb3IgKGxldCBpdGVtIG9mIHZhbHVlKSB7XHJcbiAgICAgIGlmIChpdGVtLm9wZW4pIHtcclxuICAgICAgICB0aGlzLnNldFBhcmVudE9wZW4odmFsdWUsIGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEV4cGFuZGVkKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTY29ybGxUb3AoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2Nyb2xsRWxlbWVudCB8fCAhdGhpcy5hY3RpdmF0ZWROb2RlKSByZXR1cm47XHJcbiAgICBsZXQgaW54ID0gdGhpcy5ub2Rlcy5pbmRleE9mKHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICBsZXQgY29tID0gdGhpcy5ub2RlQ29tcG9uZW50cy5nZXQoaW54KTtcclxuICAgIGlmICghY29tKSByZXR1cm47XHJcbiAgICBsZXQgZWxlID0gY29tLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGxldCBzY3JvbGxFbGUgPSB0aGlzLnNjcm9sbEVsZW1lbnQ7XHJcbiAgICBsZXQgbWluID0gc2Nyb2xsRWxlLnNjcm9sbFRvcDtcclxuICAgIGxldCBtYXggPSBzY3JvbGxFbGUuc2Nyb2xsVG9wICsgc2Nyb2xsRWxlLmNsaWVudEhlaWdodDtcclxuICAgIGlmIChlbGUub2Zmc2V0VG9wICsgZWxlLmNsaWVudEhlaWdodCA+IG1heCkge1xyXG4gICAgICBsZXQgc2Nyb2xsVG9wID0gZWxlLm9mZnNldFRvcCArIGVsZS5jbGllbnRIZWlnaHQgLSBzY3JvbGxFbGUuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBzY3JvbGxFbGUuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsZS5vZmZzZXRUb3AgPCBtaW4pIHtcclxuICAgICAgc2Nyb2xsRWxlLnNjcm9sbFRvcCA9IGVsZS5vZmZzZXRUb3A7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2VkTm9kZXMoKTogWFRyZWVOb2RlW10ge1xyXG4gICAgbGV0IHJlc3VsdDogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgIGNvbnN0IGdldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICBpZiAoeC5jaGVja2VkICYmICFyZXN1bHQuaW5jbHVkZXMoeCkpIHtcclxuICAgICAgICAgIHJlc3VsdCA9IFsuLi5yZXN1bHQsIHhdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBnZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgZ2V0Q2hpbGRyZW4odGhpcy5ub2Rlcyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tlZEtleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja2VkTm9kZXMoKS5tYXAoKHgpID0+IHguaWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tlZEtleXMoa2V5czogYW55W10gPSBbXSkge1xyXG4gICAgY29uc3Qgc2V0Q2hpbGRyZW4gPSAobm9kZXM6IFhUcmVlTm9kZVtdLCBjbGVhciA9IGZhbHNlKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShub2RlcykpIHJldHVybjtcclxuICAgICAgbm9kZXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgIHguY2hlY2tlZCA9ICFjbGVhciAmJiBrZXlzLmluY2x1ZGVzKHguaWQpO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKHRydWUpO1xyXG4gICAgICAgIHNldENoaWxkcmVuKHguY2hpbGRyZW4gYXMgWFRyZWVOb2RlW10sIGNsZWFyKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy5ub2RlcywgWElzRW1wdHkoa2V5cykpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kZWRBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5leHBhbmRlZEFsbCAmJiB0aGlzLnRyZWVEYXRhLmxlbmd0aCA9PT0gdGhpcy5ub2Rlcy5sZW5ndGgpIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4Lm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKCk7XHJcbiAgICAgICAgc2V0Q2hpbGRyZW4oeC5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHNldENoaWxkcmVuKHRoaXMubm9kZXMpO1xyXG5cclxuICAgIGlmICh0aGlzLmV4cGFuZGVkQWxsID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLm5vZGVzID0gdGhpcy50cmVlRGF0YS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy52aXJ0dWFsTm9kZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy52aXJ0dWFsTm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLnZpcnR1YWxOb2Rlc107XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy52aXJ0dWFsTm9kZXMpIHtcclxuICAgICAgICB0aGlzLnNldFZpcnR1YWxFeHBhbmRlZEFsbChpdGVtLCB0aGlzLmV4cGFuZGVkQWxsIGFzIGJvb2xlYW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZCgpIHtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5ub2Rlcykge1xyXG4gICAgICBpZiAoaXRlbS5vcGVuKSB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5ub2Rlcy5pbmRleE9mKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgLi4uKGl0ZW0uY2hpbGRyZW4gYXMgWFRyZWVOb2RlW10pKTtcclxuICAgICAgfVxyXG4gICAgICBpdGVtLmNoYW5nZSAmJiBpdGVtLmNoYW5nZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICB9XHJcblxyXG4gIHNldFZpcnR1YWxFeHBhbmRlZEFsbChpdGVtOiBYVHJlZU5vZGUsIGV4cGFuZGVkQWxsOiBib29sZWFuKSB7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2YoaXRlbSk7XHJcbiAgICBpZiAoZXhwYW5kZWRBbGwpIHtcclxuICAgICAgbGV0IGFkZE5vZGVzOiBYVHJlZU5vZGVbXSA9IFtdO1xyXG4gICAgICBjb25zdCBnZXROb2RlcyA9IChuZDogWFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgbmQuY2hpbGRyZW4hKSB7XHJcbiAgICAgICAgICBhZGROb2Rlcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgIGdldE5vZGVzKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldE5vZGVzKGl0ZW0pO1xyXG4gICAgICB0aGlzLm5vZGVzLnNwbGljZShpbmRleCArIDEsIDAsIC4uLmFkZE5vZGVzKTtcclxuICAgIH1cclxuICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgfVxyXG5cclxuICB2aXJ0dWFsVG9nZ2xlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5ub2Rlcy5pbmRleE9mKG5vZGUpO1xyXG4gICAgaWYgKG5vZGUub3Blbikge1xyXG4gICAgICBsZXQgYWRkTm9kZXM6IFhUcmVlTm9kZVtdID0gW107XHJcbiAgICAgIGNvbnN0IGdldE5vZGVzID0gKG5kOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBuZC5jaGlsZHJlbiEpIHtcclxuICAgICAgICAgIGFkZE5vZGVzLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgY2hpbGQub3BlbiAmJiBnZXROb2RlcyhjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICBnZXROb2Rlcyhub2RlKTtcclxuICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi5hZGROb2Rlcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZGVsQ291bnQgPSAwO1xyXG4gICAgICBjb25zdCBnZXRDb3VudCA9IChuZDogWFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgICAgZGVsQ291bnQgKz0gbmQuY2hpbGRyZW4hLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBuZC5jaGlsZHJlbiEpIHtcclxuICAgICAgICAgIGNoaWxkLm9wZW4gJiYgZ2V0Q291bnQoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgZ2V0Q291bnQobm9kZSk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgZGVsQ291bnQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICB9XHJcblxyXG4gIHNldEFjdGl2YXRlZE5vZGUobm9kZXM6IFhUcmVlTm9kZVtdKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5hY3RpdmF0ZWRJZCkgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZElkID0gW107XHJcbiAgICB9XHJcbiAgICBsZXQgYmVmb3JlID0gdGhpcy5hY3RpdmF0ZWROb2RlO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZhdGVkSWQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBpZHMgPSB0aGlzLm9iamVjdEFycmF5ID8gdGhpcy5hY3RpdmF0ZWRJZC5tYXAoKHg6IFhUcmVlTm9kZSkgPT4geC5pZCkgOiB0aGlzLmFjdGl2YXRlZElkO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBsZXQgbm9kZSA9IG5vZGVzLmZpbmQoKHgpID0+IHguaWQgPT09IGlkc1tpXSkgYXMgWFRyZWVOb2RlO1xyXG4gICAgICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRQYXJlbnRPcGVuKG5vZGVzLCBub2RlKTtcclxuICAgICAgICAgICAgaWYgKGkgPT09IGlkcy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWROb2RlID0gbm9kZTtcclxuICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZENoYW5nZS5lbWl0KHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBhY3RpdmF0ZWRJZCA9IHRoaXMuYWN0aXZhdGVkSWQ7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkTm9kZSA9IG5vZGVzLmZpbmQoKHgpID0+IHguaWQgPT0gYWN0aXZhdGVkSWQpIGFzIFhUcmVlTm9kZTtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZhdGVkTm9kZSkge1xyXG4gICAgICAgIHRoaXMuc2V0UGFyZW50T3Blbihub2RlcywgdGhpcy5hY3RpdmF0ZWROb2RlKTtcclxuICAgICAgICB0aGlzLmFjdGl2YXRlZENoYW5nZS5lbWl0KHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChiZWZvcmUpIHtcclxuICAgICAgYmVmb3JlLmNoYW5nZSAmJiBiZWZvcmUuY2hhbmdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFYSXNFbXB0eShub2RlcykpIHtcclxuICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKG5vZGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBhcmVudE9wZW4obm9kZXM6IFhUcmVlTm9kZVtdLCBub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGNvbnN0IGdldFBhcmVudCA9IChjaGlsZDogWFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShjaGlsZC5waWQpKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IG5vZGVzLmZpbmQoKHgpID0+IHguaWQgPT09IGNoaWxkLnBpZCkgYXMgWFRyZWVOb2RlO1xyXG4gICAgICBpZiAoIVhJc0VtcHR5KHBhcmVudCkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWQuaW5jbHVkZXMocGFyZW50LmlkKSkge1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRlZCA9IFsuLi50aGlzLmV4cGFuZGVkLCBwYXJlbnQuaWRdO1xyXG4gICAgICAgICAgcGFyZW50Lm9wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgcGFyZW50LmNoYW5nZSAmJiBwYXJlbnQuY2hhbmdlKCk7XHJcbiAgICAgICAgICBnZXRQYXJlbnQocGFyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBnZXRQYXJlbnQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYXJlbnRDaGVjayhub2RlczogWFRyZWVOb2RlW10sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gKGNoaWxkOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkLnBpZCkpIHJldHVybjtcclxuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PT0gY2hpbGQucGlkKSBhcyBYVHJlZU5vZGU7XHJcbiAgICAgIGlmICghWElzRW1wdHkocGFyZW50KSkge1xyXG4gICAgICAgIGlmICghdGhpcy5leHBhbmRlZC5pbmNsdWRlcyhwYXJlbnQuaWQpKSB7XHJcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkID0gWy4uLnRoaXMuZXhwYW5kZWQsIHBhcmVudC5pZF07XHJcbiAgICAgICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgICAgIGdldFBhcmVudChwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGdldFBhcmVudChub2RlKTtcclxuICB9XHJcblxyXG4gIG9uVG9nZ2xlKGV2ZW50OiBFdmVudCwgbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBub2RlLm9wZW4gPSAhbm9kZS5vcGVuO1xyXG4gICAgaWYgKHRoaXMubGF6eSAmJiAhbm9kZS5jaGlsZHJlbkxvYWRlZCkge1xyXG4gICAgICB0aGlzLmdldExhenlEYXRhKG5vZGUsICgpID0+IHRoaXMudmlydHVhbFRvZ2dsZShub2RlKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpcnR1YWxUb2dnbGUobm9kZSk7XHJcbiAgICB9XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRMYXp5RGF0YShub2RlOiBYVHJlZU5vZGUsIGNhbGxCYWNrPzogKCkgPT4gdm9pZCkge1xyXG4gICAgbm9kZS5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIG5vZGUuY2hhbmdlICYmIG5vZGUuY2hhbmdlKCk7XHJcbiAgICAodGhpcy5kYXRhIGFzIChwaWQ/OiBhbnkpID0+IE9ic2VydmFibGU8WFRyZWVOb2RlW10+KShub2RlLmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+XHJcbiAgICAgICAgICB4Lm1hcCgoeSkgPT4ge1xyXG4gICAgICAgICAgICB5LmxldmVsID0gKG5vZGUubGV2ZWwgYXMgbnVtYmVyKSArIDE7XHJcbiAgICAgICAgICAgIHkuY2hlY2tlZCA9IG5vZGUuY2hlY2tlZDtcclxuICAgICAgICAgICAgcmV0dXJuIHk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbiA9IHg7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbkxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgbm9kZS5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGNhbGxCYWNrKSBjYWxsQmFjaygpO1xyXG4gICAgICAgIG5vZGUuY2hhbmdlICYmIG5vZGUuY2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZE5vZGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBsZXQgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKCh4KSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICBjb25zdCBfYWRkTm9kZSA9ICgpID0+IHtcclxuICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuKSBwYXJlbnQuY2hpbGRyZW4gPSBbXTtcclxuICAgICAgICB0aGlzLmV4cGFuZGVkID0gWy4uLnRoaXMuZXhwYW5kZWQsIHBhcmVudC5pZF07XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmF0ZWRJZChub2RlKTtcclxuICAgICAgICBub2RlLmxldmVsID0gTnVtYmVyKHBhcmVudC5sZXZlbCkgKyAxO1xyXG4gICAgICAgIG5vZGUucGlkID0gcGFyZW50LmlkO1xyXG4gICAgICAgIHRoaXMudHJlZURhdGEucHVzaChub2RlKTtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZE5vZGUodGhpcy50cmVlRGF0YSk7XHJcbiAgICAgICAgcGFyZW50Lm9wZW4gPSB0cnVlO1xyXG4gICAgICAgIHBhcmVudC5sZWFmID0gZmFsc2U7XHJcbiAgICAgICAgcGFyZW50LmNoaWxkcmVuID0gWy4uLnBhcmVudC5jaGlsZHJlbiwgbm9kZV07XHJcbiAgICAgICAgdGhpcy52aXJ0dWFsVG9nZ2xlKHBhcmVudCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHBhcmVudC5jaGFuZ2UgJiYgcGFyZW50LmNoYW5nZSgpO1xyXG4gICAgICB9IGVsc2UgaWYgKFhJc0VtcHR5KG5vZGUucGlkKSkge1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkSWQobm9kZSk7XHJcbiAgICAgICAgbm9kZS5sZXZlbCA9IDA7XHJcbiAgICAgICAgdGhpcy50cmVlRGF0YSA9IFsuLi50aGlzLnRyZWVEYXRhLCBub2RlXTtcclxuICAgICAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXMsIG5vZGVdO1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLnRyZWVEYXRhKTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5sYXp5ICYmIHBhcmVudCAmJiAhcGFyZW50LmNoaWxkcmVuTG9hZGVkKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGF6eURhdGEocGFyZW50LCAoKSA9PiB7XHJcbiAgICAgICAgX2FkZE5vZGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBfYWRkTm9kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZhdGVkSWQobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICBpZiAodGhpcy5vYmplY3RBcnJheSkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSBbbm9kZV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRJZCA9IFtub2RlLmlkXTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWRJZCA9IG5vZGUuaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2YXRlZElkQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmF0ZWRJZCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVOb2RlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgbGV0IHBhcmVudCA9IHRoaXMudHJlZURhdGEuZmluZCgoeCkgPT4geC5pZCA9PT0gbm9kZS5waWQpO1xyXG4gICAgaWYgKHBhcmVudCkge1xyXG4gICAgICBpZiAoIXBhcmVudC5jaGlsZHJlbikgcGFyZW50LmNoaWxkcmVuID0gW107XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5zcGxpY2UocGFyZW50LmNoaWxkcmVuLmluZGV4T2Yobm9kZSksIDEpO1xyXG4gICAgICBwYXJlbnQubGVhZiA9IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDA7XHJcbiAgICAgIGlmIChwYXJlbnQubGVhZikge1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkSWQocGFyZW50KTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICAgIGxldCBhaW5kZXggPSBpbmRleCAtIDE7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCAmJiB0aGlzLm5vZGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBhaW5kZXggPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBhY3RpdmF0ZWROb2RlID0gdGhpcy5ub2Rlc1thaW5kZXhdO1xyXG4gICAgICB0aGlzLnNldEFjdGl2YXRlZElkKGFjdGl2YXRlZE5vZGUpO1xyXG4gICAgICB0aGlzLnNldEFjdGl2YXRlZE5vZGUodGhpcy5ub2Rlcyk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICAgICAgaWYgKGFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgICBhY3RpdmF0ZWROb2RlLmNoYW5nZSAmJiBhY3RpdmF0ZWROb2RlLmNoYW5nZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcGFyZW50LmNoYW5nZSAmJiBwYXJlbnQuY2hhbmdlKCk7XHJcbiAgICB9IGVsc2UgaWYgKFhJc0VtcHR5KG5vZGUucGlkKSkge1xyXG4gICAgICB0aGlzLnRyZWVEYXRhLnNwbGljZSh0aGlzLnRyZWVEYXRhLmluZGV4T2Yobm9kZSksIDEpO1xyXG4gICAgICB0aGlzLm5vZGVzLnNwbGljZSh0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSksIDEpO1xyXG4gICAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOb2RlKG5vZGU6IFhUcmVlTm9kZSwgbm93Tm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKG5vZGUsIG5vd05vZGUpO1xyXG4gICAgbm9kZS5jaGFuZ2UgJiYgbm9kZS5jaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVHJlZU5vZGUpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmVlIGNsYXNzPVwieC10cmVlXCIgW2NsYXNzLngtdHJlZS1vbmx5LWxlYWZdPVwib25seUxlYWZcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXZpcnR1YWxTY3JvbGw7IGVsc2UgdmlydHVhbFNjcm9sbFRwbFwiPlxyXG4gICAgPHgtdHJlZS1ub2RlXHJcbiAgICAgICpuZ0Zvcj1cImxldCBub2RlIG9mIG5vZGVzOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgIFtub2RlXT1cIm5vZGVcIlxyXG4gICAgICBbbGF6eV09XCJsYXp5XCJcclxuICAgICAgW2xhenlEYXRhXT1cImRhdGFcIlxyXG4gICAgICBbbm9kZUhlaWdodF09XCJub2RlSGVpZ2h0XCJcclxuICAgICAgW25vZGVOb3dyYXBdPVwibm9kZU5vd3JhcFwiXHJcbiAgICAgIFtub2RlQWxpZ25JdGVtc109XCJub2RlQWxpZ25JdGVtc1wiXHJcbiAgICAgIFt0cmVlXT1cInRoaXNcIlxyXG4gICAgPjwveC10cmVlLW5vZGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICN2aXJ0dWFsU2Nyb2xsVHBsPlxyXG4gIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcclxuICAgICN2aXJ0dWFsQm9keVxyXG4gICAgW2l0ZW1TaXplXT1cIml0ZW1TaXplXCJcclxuICAgIFttaW5CdWZmZXJQeF09XCJtaW5CdWZmZXJQeFwiXHJcbiAgICBbbWF4QnVmZmVyUHhdPVwibWF4QnVmZmVyUHhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJ2aXJ0dWFsU2Nyb2xsSGVpZ2h0XCJcclxuICA+XHJcbiAgICA8eC10cmVlLW5vZGVcclxuICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgbm9kZSBvZiBub2RlczsgdGVtcGxhdGVDYWNoZVNpemU6IDA7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgW25vZGVdPVwibm9kZVwiXHJcbiAgICAgIFtsYXp5XT1cImxhenlcIlxyXG4gICAgICBbbGF6eURhdGFdPVwiZGF0YVwiXHJcbiAgICAgIFtub2RlSGVpZ2h0XT1cIm5vZGVIZWlnaHRcIlxyXG4gICAgICBbbm9kZU5vd3JhcF09XCJub2RlTm93cmFwXCJcclxuICAgICAgW25vZGVBbGlnbkl0ZW1zXT1cIm5vZGVBbGlnbkl0ZW1zXCJcclxuICAgICAgW3RyZWVdPVwidGhpc1wiXHJcbiAgICA+PC94LXRyZWUtbm9kZT5cclxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0g5o+Q5YmN5Yqg6L29bG9hZGluZ+eahOWbvuaghy0tPlxyXG48eC1pY29uICpuZ0lmPVwibGF6eVwiIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiIHR5cGU9XCJmdG8tbG9hZGVyXCI+PC94LWljb24+XHJcbiJdfQ==