@opensumi/ide-components 2.12.1-next-079c1930

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 (360) hide show
  1. package/README.md +65 -0
  2. package/dist/index.css +1 -0
  3. package/dist/index.js +26330 -0
  4. package/lib/badge/index.d.ts +4 -0
  5. package/lib/badge/index.d.ts.map +1 -0
  6. package/lib/badge/index.js +13 -0
  7. package/lib/badge/index.js.map +1 -0
  8. package/lib/badge/styles.less +17 -0
  9. package/lib/button/index.d.ts +54 -0
  10. package/lib/button/index.d.ts.map +1 -0
  11. package/lib/button/index.js +68 -0
  12. package/lib/button/index.js.map +1 -0
  13. package/lib/button/style.less +251 -0
  14. package/lib/checkbox/index.d.ts +9 -0
  15. package/lib/checkbox/index.d.ts.map +1 -0
  16. package/lib/checkbox/index.js +27 -0
  17. package/lib/checkbox/index.js.map +1 -0
  18. package/lib/checkbox/style.less +80 -0
  19. package/lib/common.d.ts +7 -0
  20. package/lib/common.d.ts.map +1 -0
  21. package/lib/common.js +11 -0
  22. package/lib/common.js.map +1 -0
  23. package/lib/dialog/index.d.ts +26 -0
  24. package/lib/dialog/index.d.ts.map +1 -0
  25. package/lib/dialog/index.js +28 -0
  26. package/lib/dialog/index.js.map +1 -0
  27. package/lib/dialog/styles.less +85 -0
  28. package/lib/dropdown/dropdown.d.ts +48 -0
  29. package/lib/dropdown/dropdown.d.ts.map +1 -0
  30. package/lib/dropdown/dropdown.js +80 -0
  31. package/lib/dropdown/dropdown.js.map +1 -0
  32. package/lib/dropdown/index.d.ts +5 -0
  33. package/lib/dropdown/index.d.ts.map +1 -0
  34. package/lib/dropdown/index.js +8 -0
  35. package/lib/dropdown/index.js.map +1 -0
  36. package/lib/dropdown/style.less +254 -0
  37. package/lib/icon/icon.d.ts +33 -0
  38. package/lib/icon/icon.d.ts.map +1 -0
  39. package/lib/icon/icon.js +71 -0
  40. package/lib/icon/icon.js.map +1 -0
  41. package/lib/icon/iconfont/iconManager.d.ts +187 -0
  42. package/lib/icon/iconfont/iconManager.d.ts.map +1 -0
  43. package/lib/icon/iconfont/iconManager.js +67 -0
  44. package/lib/icon/iconfont/iconManager.js.map +1 -0
  45. package/lib/icon/iconfont/iconMap.d.ts +160 -0
  46. package/lib/icon/iconfont/iconMap.d.ts.map +1 -0
  47. package/lib/icon/iconfont/iconMap.js +165 -0
  48. package/lib/icon/iconfont/iconMap.js.map +1 -0
  49. package/lib/icon/iconfont/iconfont.css +646 -0
  50. package/lib/icon/iconfont/iconfont.eot +0 -0
  51. package/lib/icon/iconfont/iconfont.html +1522 -0
  52. package/lib/icon/iconfont/iconfont.svg +333 -0
  53. package/lib/icon/iconfont/iconfont.ttf +0 -0
  54. package/lib/icon/iconfont/iconfont.woff +0 -0
  55. package/lib/icon/iconfont/iconfont.woff2 +0 -0
  56. package/lib/icon/iconfont-cn.d.ts +15 -0
  57. package/lib/icon/iconfont-cn.d.ts.map +1 -0
  58. package/lib/icon/iconfont-cn.js +78 -0
  59. package/lib/icon/iconfont-cn.js.map +1 -0
  60. package/lib/icon/index.d.ts +4 -0
  61. package/lib/icon/index.d.ts.map +1 -0
  62. package/lib/icon/index.js +9 -0
  63. package/lib/icon/index.js.map +1 -0
  64. package/lib/icon/styles.less +105 -0
  65. package/lib/icon/util.d.ts +29 -0
  66. package/lib/icon/util.d.ts.map +1 -0
  67. package/lib/icon/util.js +53 -0
  68. package/lib/icon/util.js.map +1 -0
  69. package/lib/index.d.ts +20 -0
  70. package/lib/index.d.ts.map +1 -0
  71. package/lib/index.js +23 -0
  72. package/lib/index.js.map +1 -0
  73. package/lib/input/HistoryInputBox.d.ts +38 -0
  74. package/lib/input/HistoryInputBox.d.ts.map +1 -0
  75. package/lib/input/HistoryInputBox.js +114 -0
  76. package/lib/input/HistoryInputBox.js.map +1 -0
  77. package/lib/input/Input.d.ts +43 -0
  78. package/lib/input/Input.d.ts.map +1 -0
  79. package/lib/input/Input.js +124 -0
  80. package/lib/input/Input.js.map +1 -0
  81. package/lib/input/ProxiedInput.d.ts +8 -0
  82. package/lib/input/ProxiedInput.d.ts.map +1 -0
  83. package/lib/input/ProxiedInput.js +67 -0
  84. package/lib/input/ProxiedInput.js.map +1 -0
  85. package/lib/input/TextArea.d.ts +6 -0
  86. package/lib/input/TextArea.d.ts.map +1 -0
  87. package/lib/input/TextArea.js +11 -0
  88. package/lib/input/TextArea.js.map +1 -0
  89. package/lib/input/ValidateInput.d.ts +20 -0
  90. package/lib/input/ValidateInput.d.ts.map +1 -0
  91. package/lib/input/ValidateInput.js +59 -0
  92. package/lib/input/ValidateInput.js.map +1 -0
  93. package/lib/input/index.d.ts +5 -0
  94. package/lib/input/index.d.ts.map +1 -0
  95. package/lib/input/index.js +8 -0
  96. package/lib/input/index.js.map +1 -0
  97. package/lib/input/input.less +83 -0
  98. package/lib/input/validate-input.less +88 -0
  99. package/lib/locale-context-provider.d.ts +16 -0
  100. package/lib/locale-context-provider.d.ts.map +1 -0
  101. package/lib/locale-context-provider.js +26 -0
  102. package/lib/locale-context-provider.js.map +1 -0
  103. package/lib/menu/MenuContext.d.ts +8 -0
  104. package/lib/menu/MenuContext.d.ts.map +1 -0
  105. package/lib/menu/MenuContext.js +8 -0
  106. package/lib/menu/MenuContext.js.map +1 -0
  107. package/lib/menu/MenuItem.d.ts +29 -0
  108. package/lib/menu/MenuItem.d.ts.map +1 -0
  109. package/lib/menu/MenuItem.js +32 -0
  110. package/lib/menu/MenuItem.js.map +1 -0
  111. package/lib/menu/SubMenu.d.ts +30 -0
  112. package/lib/menu/SubMenu.d.ts.map +1 -0
  113. package/lib/menu/SubMenu.js +28 -0
  114. package/lib/menu/SubMenu.js.map +1 -0
  115. package/lib/menu/index.d.ts +64 -0
  116. package/lib/menu/index.d.ts.map +1 -0
  117. package/lib/menu/index.js +203 -0
  118. package/lib/menu/index.js.map +1 -0
  119. package/lib/menu/style.less +513 -0
  120. package/lib/message/index.d.ts +10 -0
  121. package/lib/message/index.d.ts.map +1 -0
  122. package/lib/message/index.js +21 -0
  123. package/lib/message/index.js.map +1 -0
  124. package/lib/message/message.d.ts +42 -0
  125. package/lib/message/message.d.ts.map +1 -0
  126. package/lib/message/message.js +128 -0
  127. package/lib/message/message.js.map +1 -0
  128. package/lib/message/style.less +76 -0
  129. package/lib/modal/Modal.d.ts +127 -0
  130. package/lib/modal/Modal.d.ts.map +1 -0
  131. package/lib/modal/Modal.js +87 -0
  132. package/lib/modal/Modal.js.map +1 -0
  133. package/lib/modal/index.d.ts +5 -0
  134. package/lib/modal/index.d.ts.map +1 -0
  135. package/lib/modal/index.js +8 -0
  136. package/lib/modal/index.js.map +1 -0
  137. package/lib/modal/locale.d.ts +8 -0
  138. package/lib/modal/locale.d.ts.map +1 -0
  139. package/lib/modal/locale.js +23 -0
  140. package/lib/modal/locale.js.map +1 -0
  141. package/lib/modal/style.less +168 -0
  142. package/lib/notification/index.d.ts +8 -0
  143. package/lib/notification/index.d.ts.map +1 -0
  144. package/lib/notification/index.js +80 -0
  145. package/lib/notification/index.js.map +1 -0
  146. package/lib/notification/notification.d.ts +44 -0
  147. package/lib/notification/notification.d.ts.map +1 -0
  148. package/lib/notification/notification.js +156 -0
  149. package/lib/notification/notification.js.map +1 -0
  150. package/lib/notification/notification.less +231 -0
  151. package/lib/overlay/index.d.ts +19 -0
  152. package/lib/overlay/index.d.ts.map +1 -0
  153. package/lib/overlay/index.js +13 -0
  154. package/lib/overlay/index.js.map +1 -0
  155. package/lib/overlay/styles.less +44 -0
  156. package/lib/popover/index.d.ts +28 -0
  157. package/lib/popover/index.d.ts.map +1 -0
  158. package/lib/popover/index.js +127 -0
  159. package/lib/popover/index.js.map +1 -0
  160. package/lib/popover/styles.less +135 -0
  161. package/lib/recycle-list/RecycleList.d.ts +105 -0
  162. package/lib/recycle-list/RecycleList.d.ts.map +1 -0
  163. package/lib/recycle-list/RecycleList.js +253 -0
  164. package/lib/recycle-list/RecycleList.js.map +1 -0
  165. package/lib/recycle-list/index.d.ts +2 -0
  166. package/lib/recycle-list/index.d.ts.map +1 -0
  167. package/lib/recycle-list/index.js +5 -0
  168. package/lib/recycle-list/index.js.map +1 -0
  169. package/lib/recycle-tree/RecycleTree.d.ts +254 -0
  170. package/lib/recycle-tree/RecycleTree.d.ts.map +1 -0
  171. package/lib/recycle-tree/RecycleTree.js +635 -0
  172. package/lib/recycle-tree/RecycleTree.js.map +1 -0
  173. package/lib/recycle-tree/TreeNodeRendererWrap.d.ts +37 -0
  174. package/lib/recycle-tree/TreeNodeRendererWrap.d.ts.map +1 -0
  175. package/lib/recycle-tree/TreeNodeRendererWrap.js +18 -0
  176. package/lib/recycle-tree/TreeNodeRendererWrap.js.map +1 -0
  177. package/lib/recycle-tree/decorators/Adaptive/index.d.ts +10 -0
  178. package/lib/recycle-tree/decorators/Adaptive/index.d.ts.map +1 -0
  179. package/lib/recycle-tree/decorators/Adaptive/index.js +97 -0
  180. package/lib/recycle-tree/decorators/Adaptive/index.js.map +1 -0
  181. package/lib/recycle-tree/decorators/Filter/filter.less +11 -0
  182. package/lib/recycle-tree/decorators/Filter/index.d.ts +26 -0
  183. package/lib/recycle-tree/decorators/Filter/index.d.ts.map +1 -0
  184. package/lib/recycle-tree/decorators/Filter/index.js +53 -0
  185. package/lib/recycle-tree/decorators/Filter/index.js.map +1 -0
  186. package/lib/recycle-tree/decorators/index.d.ts +3 -0
  187. package/lib/recycle-tree/decorators/index.d.ts.map +1 -0
  188. package/lib/recycle-tree/decorators/index.js +6 -0
  189. package/lib/recycle-tree/decorators/index.js.map +1 -0
  190. package/lib/recycle-tree/index.d.ts +7 -0
  191. package/lib/recycle-tree/index.d.ts.map +1 -0
  192. package/lib/recycle-tree/index.js +10 -0
  193. package/lib/recycle-tree/index.js.map +1 -0
  194. package/lib/recycle-tree/prompt/NewPromptHandle.d.ts +12 -0
  195. package/lib/recycle-tree/prompt/NewPromptHandle.d.ts.map +1 -0
  196. package/lib/recycle-tree/prompt/NewPromptHandle.js +21 -0
  197. package/lib/recycle-tree/prompt/NewPromptHandle.js.map +1 -0
  198. package/lib/recycle-tree/prompt/PromptHandle.d.ts +59 -0
  199. package/lib/recycle-tree/prompt/PromptHandle.d.ts.map +1 -0
  200. package/lib/recycle-tree/prompt/PromptHandle.js +200 -0
  201. package/lib/recycle-tree/prompt/PromptHandle.js.map +1 -0
  202. package/lib/recycle-tree/prompt/RenamePromptHandle.d.ts +10 -0
  203. package/lib/recycle-tree/prompt/RenamePromptHandle.d.ts.map +1 -0
  204. package/lib/recycle-tree/prompt/RenamePromptHandle.js +21 -0
  205. package/lib/recycle-tree/prompt/RenamePromptHandle.js.map +1 -0
  206. package/lib/recycle-tree/prompt/index.d.ts +4 -0
  207. package/lib/recycle-tree/prompt/index.d.ts.map +1 -0
  208. package/lib/recycle-tree/prompt/index.js +7 -0
  209. package/lib/recycle-tree/prompt/index.js.map +1 -0
  210. package/lib/recycle-tree/tree/Tree.d.ts +20 -0
  211. package/lib/recycle-tree/tree/Tree.d.ts.map +1 -0
  212. package/lib/recycle-tree/tree/Tree.js +43 -0
  213. package/lib/recycle-tree/tree/Tree.js.map +1 -0
  214. package/lib/recycle-tree/tree/TreeNode.d.ts +222 -0
  215. package/lib/recycle-tree/tree/TreeNode.d.ts.map +1 -0
  216. package/lib/recycle-tree/tree/TreeNode.js +1099 -0
  217. package/lib/recycle-tree/tree/TreeNode.js.map +1 -0
  218. package/lib/recycle-tree/tree/decoration/CompositeDecoration.d.ts +60 -0
  219. package/lib/recycle-tree/tree/decoration/CompositeDecoration.d.ts.map +1 -0
  220. package/lib/recycle-tree/tree/decoration/CompositeDecoration.js +328 -0
  221. package/lib/recycle-tree/tree/decoration/CompositeDecoration.js.map +1 -0
  222. package/lib/recycle-tree/tree/decoration/Decoration.d.ts +79 -0
  223. package/lib/recycle-tree/tree/decoration/Decoration.d.ts.map +1 -0
  224. package/lib/recycle-tree/tree/decoration/Decoration.js +183 -0
  225. package/lib/recycle-tree/tree/decoration/Decoration.js.map +1 -0
  226. package/lib/recycle-tree/tree/decoration/DecorationManager.d.ts +34 -0
  227. package/lib/recycle-tree/tree/decoration/DecorationManager.d.ts.map +1 -0
  228. package/lib/recycle-tree/tree/decoration/DecorationManager.js +166 -0
  229. package/lib/recycle-tree/tree/decoration/DecorationManager.js.map +1 -0
  230. package/lib/recycle-tree/tree/decoration/index.d.ts +4 -0
  231. package/lib/recycle-tree/tree/decoration/index.d.ts.map +1 -0
  232. package/lib/recycle-tree/tree/decoration/index.js +7 -0
  233. package/lib/recycle-tree/tree/decoration/index.js.map +1 -0
  234. package/lib/recycle-tree/tree/index.d.ts +5 -0
  235. package/lib/recycle-tree/tree/index.d.ts.map +1 -0
  236. package/lib/recycle-tree/tree/index.js +8 -0
  237. package/lib/recycle-tree/tree/index.js.map +1 -0
  238. package/lib/recycle-tree/tree/model/TreeModel.d.ts +50 -0
  239. package/lib/recycle-tree/tree/model/TreeModel.d.ts.map +1 -0
  240. package/lib/recycle-tree/tree/model/TreeModel.js +81 -0
  241. package/lib/recycle-tree/tree/model/TreeModel.js.map +1 -0
  242. package/lib/recycle-tree/tree/model/index.d.ts +2 -0
  243. package/lib/recycle-tree/tree/model/index.d.ts.map +1 -0
  244. package/lib/recycle-tree/tree/model/index.js +5 -0
  245. package/lib/recycle-tree/tree/model/index.js.map +1 -0
  246. package/lib/recycle-tree/tree/model/treeState/TreeStateManager.d.ts +65 -0
  247. package/lib/recycle-tree/tree/model/treeState/TreeStateManager.d.ts.map +1 -0
  248. package/lib/recycle-tree/tree/model/treeState/TreeStateManager.js +191 -0
  249. package/lib/recycle-tree/tree/model/treeState/TreeStateManager.js.map +1 -0
  250. package/lib/recycle-tree/tree/model/treeState/TreeStateWatcher.d.ts +15 -0
  251. package/lib/recycle-tree/tree/model/treeState/TreeStateWatcher.d.ts.map +1 -0
  252. package/lib/recycle-tree/tree/model/treeState/TreeStateWatcher.js +104 -0
  253. package/lib/recycle-tree/tree/model/treeState/TreeStateWatcher.js.map +1 -0
  254. package/lib/recycle-tree/tree/model/treeState/index.d.ts +4 -0
  255. package/lib/recycle-tree/tree/model/treeState/index.d.ts.map +1 -0
  256. package/lib/recycle-tree/tree/model/treeState/index.js +8 -0
  257. package/lib/recycle-tree/tree/model/treeState/index.js.map +1 -0
  258. package/lib/recycle-tree/tree/model/treeState/types.d.ts +21 -0
  259. package/lib/recycle-tree/tree/model/treeState/types.d.ts.map +1 -0
  260. package/lib/recycle-tree/tree/model/treeState/types.js +18 -0
  261. package/lib/recycle-tree/tree/model/treeState/types.js.map +1 -0
  262. package/lib/recycle-tree/types/index.d.ts +4 -0
  263. package/lib/recycle-tree/types/index.d.ts.map +1 -0
  264. package/lib/recycle-tree/types/index.js +7 -0
  265. package/lib/recycle-tree/types/index.js.map +1 -0
  266. package/lib/recycle-tree/types/tree-node.d.ts +70 -0
  267. package/lib/recycle-tree/types/tree-node.d.ts.map +1 -0
  268. package/lib/recycle-tree/types/tree-node.js +11 -0
  269. package/lib/recycle-tree/types/tree-node.js.map +1 -0
  270. package/lib/recycle-tree/types/tree.d.ts +8 -0
  271. package/lib/recycle-tree/types/tree.d.ts.map +1 -0
  272. package/lib/recycle-tree/types/tree.js +3 -0
  273. package/lib/recycle-tree/types/tree.js.map +1 -0
  274. package/lib/recycle-tree/types/watcher.d.ts +114 -0
  275. package/lib/recycle-tree/types/watcher.d.ts.map +1 -0
  276. package/lib/recycle-tree/types/watcher.js +46 -0
  277. package/lib/recycle-tree/types/watcher.js.map +1 -0
  278. package/lib/scrollbars/index.d.ts +14 -0
  279. package/lib/scrollbars/index.d.ts.map +1 -0
  280. package/lib/scrollbars/index.js +52 -0
  281. package/lib/scrollbars/index.js.map +1 -0
  282. package/lib/scrollbars/styles.less +46 -0
  283. package/lib/select/index.d.ts +119 -0
  284. package/lib/select/index.d.ts.map +1 -0
  285. package/lib/select/index.js +327 -0
  286. package/lib/select/index.js.map +1 -0
  287. package/lib/select/style.less +224 -0
  288. package/lib/style/base.less +542 -0
  289. package/lib/style/index.less +14 -0
  290. package/lib/style/mixins.less +135 -0
  291. package/lib/style/motion/fade.less +31 -0
  292. package/lib/style/motion/move.less +120 -0
  293. package/lib/style/motion/other.less +45 -0
  294. package/lib/style/motion/slide.less +120 -0
  295. package/lib/style/motion/swing.less +34 -0
  296. package/lib/style/motion/zoom.less +162 -0
  297. package/lib/style/variable.less +204 -0
  298. package/lib/tabs/index.d.ts +12 -0
  299. package/lib/tabs/index.d.ts.map +1 -0
  300. package/lib/tabs/index.js +24 -0
  301. package/lib/tabs/index.js.map +1 -0
  302. package/lib/tabs/style.less +34 -0
  303. package/lib/tooltip/index.d.ts +7 -0
  304. package/lib/tooltip/index.d.ts.map +1 -0
  305. package/lib/tooltip/index.js +58 -0
  306. package/lib/tooltip/index.js.map +1 -0
  307. package/lib/tooltip/style.less +41 -0
  308. package/lib/utils/deprecated.d.ts +3 -0
  309. package/lib/utils/deprecated.d.ts.map +1 -0
  310. package/lib/utils/deprecated.js +18 -0
  311. package/lib/utils/deprecated.js.map +1 -0
  312. package/lib/utils/disposable.d.ts +37 -0
  313. package/lib/utils/disposable.d.ts.map +1 -0
  314. package/lib/utils/disposable.js +140 -0
  315. package/lib/utils/disposable.js.map +1 -0
  316. package/lib/utils/event.d.ts +189 -0
  317. package/lib/utils/event.d.ts.map +1 -0
  318. package/lib/utils/event.js +569 -0
  319. package/lib/utils/event.js.map +1 -0
  320. package/lib/utils/index.d.ts +10 -0
  321. package/lib/utils/index.d.ts.map +1 -0
  322. package/lib/utils/index.js +13 -0
  323. package/lib/utils/index.js.map +1 -0
  324. package/lib/utils/iterator.d.ts +14 -0
  325. package/lib/utils/iterator.d.ts.map +1 -0
  326. package/lib/utils/iterator.js +9 -0
  327. package/lib/utils/iterator.js.map +1 -0
  328. package/lib/utils/linkedList.d.ts +18 -0
  329. package/lib/utils/linkedList.d.ts.map +1 -0
  330. package/lib/utils/linkedList.js +139 -0
  331. package/lib/utils/linkedList.js.map +1 -0
  332. package/lib/utils/motion.d.ts +24 -0
  333. package/lib/utils/motion.d.ts.map +1 -0
  334. package/lib/utils/motion.js +17 -0
  335. package/lib/utils/motion.js.map +1 -0
  336. package/lib/utils/os.d.ts +4 -0
  337. package/lib/utils/os.d.ts.map +1 -0
  338. package/lib/utils/os.js +22 -0
  339. package/lib/utils/os.js.map +1 -0
  340. package/lib/utils/path.d.ts +92 -0
  341. package/lib/utils/path.d.ts.map +1 -0
  342. package/lib/utils/path.js +1712 -0
  343. package/lib/utils/path.js.map +1 -0
  344. package/lib/utils/process.d.ts +6 -0
  345. package/lib/utils/process.d.ts.map +1 -0
  346. package/lib/utils/process.js +17 -0
  347. package/lib/utils/process.js.map +1 -0
  348. package/lib/utils/raf.d.ts +10 -0
  349. package/lib/utils/raf.d.ts.map +1 -0
  350. package/lib/utils/raf.js +33 -0
  351. package/lib/utils/raf.js.map +1 -0
  352. package/lib/utils/type.d.ts +4 -0
  353. package/lib/utils/type.d.ts.map +1 -0
  354. package/lib/utils/type.js +9 -0
  355. package/lib/utils/type.js.map +1 -0
  356. package/lib/utils/warning.d.ts +8 -0
  357. package/lib/utils/warning.d.ts.map +1 -0
  358. package/lib/utils/warning.js +40 -0
  359. package/lib/utils/warning.js.map +1 -0
  360. package/package.json +36 -0
@@ -0,0 +1,569 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WaitUntilEvent = exports.PauseableEmitter = exports.Emitter = exports.setGlobalLeakWarningThreshold = exports.Event = void 0;
4
+ const linkedList_1 = require("./linkedList");
5
+ var Event;
6
+ (function (Event) {
7
+ const _disposable = { dispose() { } };
8
+ Event.None = () => _disposable;
9
+ /**
10
+ * Given an event, returns another event which only fires once.
11
+ */
12
+ function once(event) {
13
+ return (listener, thisArgs = null, disposables) => {
14
+ // we need this, in case the event fires during the listener call
15
+ let didFire = false;
16
+ let result;
17
+ result = event((e) => {
18
+ if (didFire) {
19
+ return;
20
+ }
21
+ else if (result) {
22
+ result.dispose();
23
+ }
24
+ else {
25
+ didFire = true;
26
+ }
27
+ return listener.call(thisArgs, e);
28
+ }, null, disposables);
29
+ if (didFire) {
30
+ result.dispose();
31
+ }
32
+ return result;
33
+ };
34
+ }
35
+ Event.once = once;
36
+ /**
37
+ * Given an event and a `map` function, returns another event which maps each element
38
+ * throught the mapping function.
39
+ */
40
+ function map(event, map) {
41
+ return snapshot((listener, thisArgs = null, disposables) => event((i) => listener.call(thisArgs, map(i)), null, disposables));
42
+ }
43
+ Event.map = map;
44
+ /**
45
+ * Given an event and an `each` function, returns another identical event and calls
46
+ * the `each` function per each element.
47
+ */
48
+ function forEach(event, each) {
49
+ return snapshot((listener, thisArgs = null, disposables) => event((i) => { each(i); listener.call(thisArgs, i); }, null, disposables));
50
+ }
51
+ Event.forEach = forEach;
52
+ function filter(event, filter) {
53
+ return snapshot((listener, thisArgs = null, disposables) => event((e) => filter(e) && listener.call(thisArgs, e), null, disposables));
54
+ }
55
+ Event.filter = filter;
56
+ /**
57
+ * Given an event, returns the same event but typed as `Event<void>`.
58
+ */
59
+ function signal(event) {
60
+ return event;
61
+ }
62
+ Event.signal = signal;
63
+ /**
64
+ * Given an event and a `merge` function, returns another event which maps each element
65
+ * and the cummulative result throught the `merge` function. Similar to `map`, but with memory.
66
+ */
67
+ function reduce(event, merge, initial) {
68
+ let output = initial;
69
+ return map(event, (e) => {
70
+ output = merge(output, e);
71
+ return output;
72
+ });
73
+ }
74
+ Event.reduce = reduce;
75
+ /**
76
+ * Given a chain of event processing functions (filter, map, etc), each
77
+ * function will be invoked per event & per listener. Snapshotting an event
78
+ * chain allows each function to be invoked just once per event.
79
+ */
80
+ function snapshot(event) {
81
+ let listener;
82
+ const emitter = new Emitter({
83
+ onFirstListenerAdd() {
84
+ listener = event(emitter.fire, emitter);
85
+ },
86
+ onLastListenerRemove() {
87
+ listener.dispose();
88
+ },
89
+ });
90
+ return emitter.event;
91
+ }
92
+ Event.snapshot = snapshot;
93
+ function debounce(event, merge, delay = 100, leading = false, leakWarningThreshold) {
94
+ let subscription;
95
+ let output;
96
+ let handle;
97
+ let numDebouncedCalls = 0;
98
+ const emitter = new Emitter({
99
+ leakWarningThreshold,
100
+ onFirstListenerAdd() {
101
+ subscription = event((cur) => {
102
+ numDebouncedCalls++;
103
+ output = merge(output, cur);
104
+ if (leading && !handle) {
105
+ emitter.fire(output);
106
+ }
107
+ clearTimeout(handle);
108
+ handle = setTimeout(() => {
109
+ const _output = output;
110
+ output = undefined;
111
+ handle = undefined;
112
+ if (!leading || numDebouncedCalls > 1) {
113
+ emitter.fire(_output);
114
+ }
115
+ numDebouncedCalls = 0;
116
+ }, delay);
117
+ });
118
+ },
119
+ onLastListenerRemove() {
120
+ subscription.dispose();
121
+ },
122
+ });
123
+ return emitter.event;
124
+ }
125
+ Event.debounce = debounce;
126
+ /**
127
+ * Given an event, it returns another event which fires only once and as soon as
128
+ * the input event emits. The event data is the number of millis it took for the
129
+ * event to fire.
130
+ */
131
+ function stopwatch(event) {
132
+ const start = new Date().getTime();
133
+ return map(once(event), (_) => new Date().getTime() - start);
134
+ }
135
+ Event.stopwatch = stopwatch;
136
+ /**
137
+ * Given an event, it returns another event which fires only when the event
138
+ * element changes.
139
+ */
140
+ function latch(event) {
141
+ let firstCall = true;
142
+ let cache;
143
+ return filter(event, (value) => {
144
+ const shouldEmit = firstCall || value !== cache;
145
+ firstCall = false;
146
+ cache = value;
147
+ return shouldEmit;
148
+ });
149
+ }
150
+ Event.latch = latch;
151
+ /**
152
+ * Buffers the provided event until a first listener comes
153
+ * along, at which point fire all the events at once and
154
+ * pipe the event from then on.
155
+ *
156
+ * ```typescript
157
+ * const emitter = new Emitter<number>();
158
+ * const event = emitter.event;
159
+ * const bufferedEvent = buffer(event);
160
+ *
161
+ * emitter.fire(1);
162
+ * emitter.fire(2);
163
+ * emitter.fire(3);
164
+ * // nothing...
165
+ *
166
+ * const listener = bufferedEvent(num => console.log(num));
167
+ * // 1, 2, 3
168
+ *
169
+ * emitter.fire(4);
170
+ * // 4
171
+ * ```
172
+ */
173
+ function buffer(event, nextTick = false, _buffer = []) {
174
+ let buffer = _buffer.slice();
175
+ let listener = event((e) => {
176
+ if (buffer) {
177
+ buffer.push(e);
178
+ }
179
+ else {
180
+ emitter.fire(e);
181
+ }
182
+ });
183
+ const flush = () => {
184
+ if (buffer) {
185
+ buffer.forEach((e) => emitter.fire(e));
186
+ }
187
+ buffer = null;
188
+ };
189
+ const emitter = new Emitter({
190
+ onFirstListenerAdd() {
191
+ if (!listener) {
192
+ listener = event((e) => emitter.fire(e));
193
+ }
194
+ },
195
+ onFirstListenerDidAdd() {
196
+ if (buffer) {
197
+ if (nextTick) {
198
+ setTimeout(flush);
199
+ }
200
+ else {
201
+ flush();
202
+ }
203
+ }
204
+ },
205
+ onLastListenerRemove() {
206
+ if (listener) {
207
+ listener.dispose();
208
+ }
209
+ listener = null;
210
+ },
211
+ });
212
+ return emitter.event;
213
+ }
214
+ Event.buffer = buffer;
215
+ class ChainableEvent {
216
+ constructor(event) {
217
+ this.event = event;
218
+ }
219
+ map(fn) {
220
+ return new ChainableEvent(map(this.event, fn));
221
+ }
222
+ forEach(fn) {
223
+ return new ChainableEvent(forEach(this.event, fn));
224
+ }
225
+ filter(fn) {
226
+ return new ChainableEvent(filter(this.event, fn));
227
+ }
228
+ reduce(merge, initial) {
229
+ return new ChainableEvent(reduce(this.event, merge, initial));
230
+ }
231
+ latch() {
232
+ return new ChainableEvent(latch(this.event));
233
+ }
234
+ on(listener, thisArgs, disposables) {
235
+ return this.event(listener, thisArgs, disposables);
236
+ }
237
+ once(listener, thisArgs, disposables) {
238
+ return once(this.event)(listener, thisArgs, disposables);
239
+ }
240
+ }
241
+ function chain(event) {
242
+ return new ChainableEvent(event);
243
+ }
244
+ Event.chain = chain;
245
+ function fromNodeEventEmitter(emitter, eventName, map = (id) => id) {
246
+ const fn = (...args) => result.fire(map(...args));
247
+ const onFirstListenerAdd = () => emitter.on(eventName, fn);
248
+ const onLastListenerRemove = () => emitter.removeListener(eventName, fn);
249
+ const result = new Emitter({ onFirstListenerAdd, onLastListenerRemove });
250
+ return result.event;
251
+ }
252
+ Event.fromNodeEventEmitter = fromNodeEventEmitter;
253
+ function fromPromise(promise) {
254
+ const emitter = new Emitter();
255
+ let shouldEmit = false;
256
+ promise
257
+ .then(undefined, () => null)
258
+ .then(() => {
259
+ if (!shouldEmit) {
260
+ setTimeout(() => emitter.fire(undefined), 0);
261
+ }
262
+ else {
263
+ emitter.fire(undefined);
264
+ }
265
+ });
266
+ shouldEmit = true;
267
+ return emitter.event;
268
+ }
269
+ Event.fromPromise = fromPromise;
270
+ function toPromise(event) {
271
+ return new Promise((c) => once(event)(c));
272
+ }
273
+ Event.toPromise = toPromise;
274
+ })(Event = exports.Event || (exports.Event = {}));
275
+ let _globalLeakWarningThreshold = -1;
276
+ function setGlobalLeakWarningThreshold(n) {
277
+ const oldValue = _globalLeakWarningThreshold;
278
+ _globalLeakWarningThreshold = n;
279
+ return {
280
+ dispose() {
281
+ _globalLeakWarningThreshold = oldValue;
282
+ },
283
+ };
284
+ }
285
+ exports.setGlobalLeakWarningThreshold = setGlobalLeakWarningThreshold;
286
+ class LeakageMonitor {
287
+ constructor(customThreshold, name = Math.random().toString(18).slice(2, 5)) {
288
+ this.customThreshold = customThreshold;
289
+ this.name = name;
290
+ this._warnCountdown = 0;
291
+ }
292
+ dispose() {
293
+ if (this._stacks) {
294
+ this._stacks.clear();
295
+ }
296
+ }
297
+ check(listenerCount) {
298
+ let threshold = _globalLeakWarningThreshold;
299
+ if (typeof this.customThreshold === 'number') {
300
+ threshold = this.customThreshold;
301
+ }
302
+ if (threshold <= 0 || listenerCount < threshold) {
303
+ return undefined;
304
+ }
305
+ if (!this._stacks) {
306
+ this._stacks = new Map();
307
+ }
308
+ const stack = new Error().stack.split('\n').slice(3).join('\n');
309
+ const count = (this._stacks.get(stack) || 0);
310
+ this._stacks.set(stack, count + 1);
311
+ this._warnCountdown -= 1;
312
+ if (this._warnCountdown <= 0) {
313
+ // only warn on first exceed and then every time the limit
314
+ // is exceeded by 50% again
315
+ this._warnCountdown = threshold * 0.5;
316
+ // find most frequent listener and print warning
317
+ let topStack;
318
+ let topCount = 0;
319
+ this._stacks.forEach((count, stack) => {
320
+ if (!topStack || topCount < count) {
321
+ topStack = stack;
322
+ topCount = count;
323
+ }
324
+ });
325
+ // tslint:disable-next-line:no-console
326
+ console.warn(`[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`);
327
+ // tslint:disable-next-line:no-console
328
+ console.warn(topStack);
329
+ }
330
+ return () => {
331
+ const count = (this._stacks.get(stack) || 0);
332
+ this._stacks.set(stack, count - 1);
333
+ };
334
+ }
335
+ }
336
+ class Emitter {
337
+ constructor(options) {
338
+ this._disposed = false;
339
+ this._options = options;
340
+ this._leakageMon = _globalLeakWarningThreshold > 0
341
+ ? new LeakageMonitor(this._options && this._options.leakWarningThreshold)
342
+ : undefined;
343
+ }
344
+ /**
345
+ * For the public to allow to subscribe
346
+ * to events from this Emitter
347
+ */
348
+ get event() {
349
+ if (!this._event) {
350
+ this._event = (listener, thisArgs, disposables) => {
351
+ if (!this._listeners) {
352
+ this._listeners = new linkedList_1.LinkedList();
353
+ }
354
+ const firstListener = this._listeners.isEmpty();
355
+ if (firstListener && this._options && this._options.onFirstListenerAdd) {
356
+ this._options.onFirstListenerAdd(this);
357
+ }
358
+ const remove = this._listeners.push(!thisArgs ? listener : [listener, thisArgs]);
359
+ if (firstListener && this._options && this._options.onFirstListenerDidAdd) {
360
+ this._options.onFirstListenerDidAdd(this);
361
+ }
362
+ if (this._options && this._options.onListenerDidAdd) {
363
+ this._options.onListenerDidAdd(this, listener, thisArgs);
364
+ }
365
+ // check and record this emitter for potential leakage
366
+ let removeMonitor;
367
+ if (this._leakageMon) {
368
+ removeMonitor = this._leakageMon.check(this._listeners.size);
369
+ }
370
+ let result;
371
+ result = {
372
+ dispose: () => {
373
+ if (removeMonitor) {
374
+ removeMonitor();
375
+ }
376
+ result.dispose = Emitter._noop;
377
+ if (!this._disposed) {
378
+ remove();
379
+ if (this._options && this._options.onLastListenerRemove) {
380
+ const hasListeners = (this._listeners && !this._listeners.isEmpty());
381
+ if (!hasListeners) {
382
+ this._options.onLastListenerRemove(this);
383
+ }
384
+ }
385
+ }
386
+ },
387
+ };
388
+ if (Array.isArray(disposables)) {
389
+ disposables.push(result);
390
+ }
391
+ return result;
392
+ };
393
+ }
394
+ return this._event;
395
+ }
396
+ /**
397
+ * To be kept private to fire an event to
398
+ * subscribers
399
+ */
400
+ fire(event) {
401
+ if (this._listeners) {
402
+ // put all [listener,event]-pairs into delivery queue
403
+ // then emit all event. an inner/nested event might be
404
+ // the driver of this
405
+ if (!this._deliveryQueue) {
406
+ this._deliveryQueue = new linkedList_1.LinkedList();
407
+ }
408
+ for (let iter = this._listeners.iterator(), e = iter.next(); !e.done; e = iter.next()) {
409
+ this._deliveryQueue.push([e.value, event]);
410
+ }
411
+ while (this._deliveryQueue.size > 0) {
412
+ const [listener, event] = this._deliveryQueue.shift();
413
+ try {
414
+ if (typeof listener === 'function') {
415
+ listener.call(undefined, event);
416
+ }
417
+ else {
418
+ listener[0].call(listener[1], event);
419
+ }
420
+ }
421
+ catch (e) {
422
+ throw (e);
423
+ }
424
+ }
425
+ }
426
+ }
427
+ /**
428
+ * 发送一个异步事件,等待所有监听器返回,并收集返回值
429
+ * @param e
430
+ * @param timeout
431
+ */
432
+ async fireAndAwait(event, timeout = 2000) {
433
+ if (this._listeners) {
434
+ if (!this._deliveryQueue) {
435
+ this._deliveryQueue = new linkedList_1.LinkedList();
436
+ }
437
+ for (let iter = this._listeners.iterator(), e = iter.next(); !e.done; e = iter.next()) {
438
+ this._deliveryQueue.push([e.value, event]);
439
+ }
440
+ const promises = [];
441
+ const timeoutPromise = new Promise((resolve) => {
442
+ setTimeout(() => {
443
+ resolve({
444
+ err: new Error('timeout'),
445
+ });
446
+ }, timeout);
447
+ });
448
+ while (this._deliveryQueue.size > 0) {
449
+ const [listener, event] = this._deliveryQueue.shift();
450
+ try {
451
+ const promise = (async () => {
452
+ try {
453
+ if (typeof listener === 'function') {
454
+ return {
455
+ result: await listener.call(undefined, event),
456
+ };
457
+ }
458
+ else {
459
+ return {
460
+ result: await listener[0].call(listener[1], event),
461
+ };
462
+ }
463
+ }
464
+ catch (e) {
465
+ return {
466
+ err: e,
467
+ };
468
+ }
469
+ })();
470
+ promises.push(Promise.race([timeoutPromise, promise]));
471
+ }
472
+ catch (e) {
473
+ throw (e);
474
+ }
475
+ }
476
+ return Promise.all(promises);
477
+ }
478
+ else {
479
+ return [];
480
+ }
481
+ }
482
+ get listenerSize() {
483
+ return this._listeners ? this._listeners.size : 0;
484
+ }
485
+ dispose() {
486
+ if (this._listeners) {
487
+ this._listeners.clear();
488
+ }
489
+ if (this._deliveryQueue) {
490
+ this._deliveryQueue.clear();
491
+ }
492
+ if (this._leakageMon) {
493
+ this._leakageMon.dispose();
494
+ }
495
+ this._disposed = true;
496
+ }
497
+ }
498
+ exports.Emitter = Emitter;
499
+ Emitter._noop = () => { };
500
+ class PauseableEmitter extends Emitter {
501
+ constructor(options) {
502
+ super(options);
503
+ this._isPaused = 0;
504
+ this._eventQueue = new linkedList_1.LinkedList();
505
+ this._mergeFn = options && options.merge;
506
+ }
507
+ pause() {
508
+ this._isPaused++;
509
+ }
510
+ resume() {
511
+ if (this._isPaused !== 0 && --this._isPaused === 0) {
512
+ if (this._mergeFn) {
513
+ // use the merge function to create a single composite
514
+ // event. make a copy in case firing pauses this emitter
515
+ const events = this._eventQueue.toArray();
516
+ this._eventQueue.clear();
517
+ super.fire(this._mergeFn(events));
518
+ }
519
+ else {
520
+ // no merging, fire each event individually and test
521
+ // that this emitter isn't paused halfway through
522
+ while (!this._isPaused && this._eventQueue.size !== 0) {
523
+ super.fire(this._eventQueue.shift());
524
+ }
525
+ }
526
+ }
527
+ }
528
+ fire(event) {
529
+ if (this._listeners) {
530
+ if (this._isPaused !== 0) {
531
+ this._eventQueue.push(event);
532
+ }
533
+ else {
534
+ super.fire(event);
535
+ }
536
+ }
537
+ }
538
+ }
539
+ exports.PauseableEmitter = PauseableEmitter;
540
+ var WaitUntilEvent;
541
+ (function (WaitUntilEvent) {
542
+ async function fire(emitter, event, timeout) {
543
+ const waitables = [];
544
+ const asyncEvent = Object.assign(event, {
545
+ waitUntil: (thenable) => {
546
+ if (Object.isFrozen(waitables)) {
547
+ throw new Error('waitUntil cannot be called asynchronously.');
548
+ }
549
+ waitables.push(thenable);
550
+ },
551
+ });
552
+ emitter.fire(asyncEvent);
553
+ // Asynchronous calls to `waitUntil` should fail.
554
+ Object.freeze(waitables);
555
+ // @ts-ignore
556
+ delete asyncEvent['waitUntil'];
557
+ if (!waitables.length) {
558
+ return;
559
+ }
560
+ if (timeout !== undefined) {
561
+ await Promise.race([Promise.all(waitables), new Promise((resolve) => setTimeout(resolve, timeout))]);
562
+ }
563
+ else {
564
+ await Promise.all(waitables);
565
+ }
566
+ }
567
+ WaitUntilEvent.fire = fire;
568
+ })(WaitUntilEvent = exports.WaitUntilEvent || (exports.WaitUntilEvent = {}));
569
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/utils/event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export * from './deprecated';
2
+ export * from './disposable';
3
+ export * from './event';
4
+ export * from './iterator';
5
+ export * from './linkedList';
6
+ export * from './warning';
7
+ export * from './os';
8
+ export * from './process';
9
+ export * from './path';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,MAAM,CAAC;AACrB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./deprecated"), exports);
5
+ (0, tslib_1.__exportStar)(require("./disposable"), exports);
6
+ (0, tslib_1.__exportStar)(require("./event"), exports);
7
+ (0, tslib_1.__exportStar)(require("./iterator"), exports);
8
+ (0, tslib_1.__exportStar)(require("./linkedList"), exports);
9
+ (0, tslib_1.__exportStar)(require("./warning"), exports);
10
+ (0, tslib_1.__exportStar)(require("./os"), exports);
11
+ (0, tslib_1.__exportStar)(require("./process"), exports);
12
+ (0, tslib_1.__exportStar)(require("./path"), exports);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,4DAA6B;AAC7B,4DAA6B;AAC7B,uDAAwB;AACxB,0DAA2B;AAC3B,4DAA6B;AAC7B,yDAA0B;AAC1B,oDAAqB;AACrB,yDAA0B;AAC1B,sDAAuB"}
@@ -0,0 +1,14 @@
1
+ export interface IteratorDefinedResult<T> {
2
+ readonly done: false;
3
+ readonly value: T;
4
+ }
5
+ export interface IteratorUndefinedResult {
6
+ readonly done: true;
7
+ readonly value: undefined;
8
+ }
9
+ export declare const FIN: IteratorUndefinedResult;
10
+ export declare type IteratorResult<T> = IteratorDefinedResult<T> | IteratorUndefinedResult;
11
+ export interface Iterator<T> {
12
+ next(): IteratorResult<T>;
13
+ }
14
+ //# sourceMappingURL=iterator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterator.d.ts","sourceRoot":"","sources":["../../src/utils/iterator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AACD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B;AACD,eAAO,MAAM,GAAG,EAAE,uBAA0D,CAAC;AAC7E,oBAAY,cAAc,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC;AAEnF,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;CAC3B"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.FIN = void 0;
8
+ exports.FIN = { done: true, value: undefined };
9
+ //# sourceMappingURL=iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterator.js","sourceRoot":"","sources":["../../src/utils/iterator.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAUnF,QAAA,GAAG,GAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Iterator } from './iterator';
2
+ export declare class LinkedList<E> {
3
+ private _first;
4
+ private _last;
5
+ private _size;
6
+ get size(): number;
7
+ isEmpty(): boolean;
8
+ clear(): void;
9
+ unshift(element: E): () => void;
10
+ push(element: E): () => void;
11
+ private _insert;
12
+ shift(): E | undefined;
13
+ pop(): E | undefined;
14
+ private _remove;
15
+ iterator(): Iterator<E>;
16
+ toArray(): E[];
17
+ }
18
+ //# sourceMappingURL=linkedList.d.ts.map