rete-angular-plugin 0.0.0 → 2.0.0

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 (472) hide show
  1. package/12/bundles/rete-angular-plugin-ng12.umd.js +2197 -0
  2. package/12/bundles/rete-angular-plugin-ng12.umd.js.map +1 -0
  3. package/12/core.d.ts +48 -0
  4. package/12/esm2015/core.js +103 -0
  5. package/12/esm2015/index.js +11 -0
  6. package/12/esm2015/module.js +58 -0
  7. package/12/esm2015/presets/classic/components/connection/connection-wrapper.component.js +84 -0
  8. package/12/esm2015/presets/classic/components/connection/connection.component.js +32 -0
  9. package/12/esm2015/presets/classic/components/control/control.component.js +54 -0
  10. package/12/esm2015/presets/classic/components/index.js +6 -0
  11. package/12/esm2015/presets/classic/components/node/node.component.js +143 -0
  12. package/12/esm2015/presets/classic/components/socket/socket.component.js +34 -0
  13. package/12/esm2015/presets/classic/index.js +108 -0
  14. package/12/esm2015/presets/classic/types.js +2 -0
  15. package/12/esm2015/presets/context-menu/components/index.js +4 -0
  16. package/12/esm2015/presets/context-menu/components/item/item.component.js +116 -0
  17. package/12/esm2015/presets/context-menu/components/menu/menu.component.js +111 -0
  18. package/12/esm2015/presets/context-menu/components/search/search.component.js +28 -0
  19. package/12/esm2015/presets/context-menu/debounce.js +17 -0
  20. package/12/esm2015/presets/context-menu/index.js +38 -0
  21. package/12/esm2015/presets/context-menu/module.js +40 -0
  22. package/12/esm2015/presets/context-menu/types.js +2 -0
  23. package/12/esm2015/presets/index.js +5 -0
  24. package/12/esm2015/presets/minimap/components/index.js +4 -0
  25. package/12/esm2015/presets/minimap/components/mini-node/mini-node.component.js +55 -0
  26. package/12/esm2015/presets/minimap/components/mini-viewport/mini-viewport.component.js +81 -0
  27. package/12/esm2015/presets/minimap/components/minimap/minimap.component.js +104 -0
  28. package/12/esm2015/presets/minimap/index.js +42 -0
  29. package/12/esm2015/presets/minimap/module.js +40 -0
  30. package/12/esm2015/presets/minimap/types.js +2 -0
  31. package/12/esm2015/presets/reroute/components/index.js +3 -0
  32. package/12/esm2015/presets/reroute/components/pin/pin.component.js +86 -0
  33. package/12/esm2015/presets/reroute/components/pins/pins.component.js +52 -0
  34. package/12/esm2015/presets/reroute/index.js +32 -0
  35. package/12/esm2015/presets/reroute/module.js +35 -0
  36. package/12/esm2015/presets/reroute/types.js +2 -0
  37. package/12/esm2015/presets/types.js +2 -0
  38. package/12/esm2015/rete-angular-plugin-ng12.js +5 -0
  39. package/12/esm2015/shared/drag.js +23 -0
  40. package/12/esm2015/types.js +2 -0
  41. package/12/fesm2015/rete-angular-plugin-ng12.js +1475 -0
  42. package/12/fesm2015/rete-angular-plugin-ng12.js.map +1 -0
  43. package/12/index.d.ts +12 -0
  44. package/12/module.d.ts +12 -0
  45. package/12/package.json +17 -0
  46. package/12/presets/classic/components/connection/connection-wrapper.component.d.ts +30 -0
  47. package/12/presets/classic/components/connection/connection.component.d.ts +11 -0
  48. package/12/presets/classic/components/control/control.component.d.ts +14 -0
  49. package/12/presets/classic/components/index.d.ts +5 -0
  50. package/12/presets/classic/components/node/node.component.d.ts +28 -0
  51. package/12/presets/classic/components/socket/socket.component.d.ts +12 -0
  52. package/12/presets/classic/index.d.ts +18 -0
  53. package/12/presets/classic/types.d.ts +49 -0
  54. package/12/presets/context-menu/components/index.d.ts +3 -0
  55. package/12/presets/context-menu/components/item/item.component.d.ts +26 -0
  56. package/12/presets/context-menu/components/menu/menu.component.d.ts +27 -0
  57. package/12/presets/context-menu/components/search/search.component.d.ts +8 -0
  58. package/12/presets/context-menu/debounce.d.ts +5 -0
  59. package/12/presets/context-menu/index.d.ts +6 -0
  60. package/12/presets/context-menu/module.d.ts +10 -0
  61. package/12/presets/context-menu/types.d.ts +12 -0
  62. package/12/presets/index.d.ts +4 -0
  63. package/12/presets/minimap/components/index.d.ts +3 -0
  64. package/12/presets/minimap/components/mini-node/mini-node.component.d.ts +14 -0
  65. package/12/presets/minimap/components/mini-viewport/mini-viewport.component.d.ts +27 -0
  66. package/12/presets/minimap/components/minimap/minimap.component.d.ts +25 -0
  67. package/12/presets/minimap/index.d.ts +6 -0
  68. package/12/presets/minimap/module.d.ts +10 -0
  69. package/12/presets/minimap/types.d.ts +22 -0
  70. package/12/presets/reroute/components/index.d.ts +2 -0
  71. package/12/presets/reroute/components/pin/pin.component.d.ts +30 -0
  72. package/12/presets/reroute/components/pins/pins.component.d.ts +17 -0
  73. package/12/presets/reroute/index.d.ts +10 -0
  74. package/12/presets/reroute/module.d.ts +9 -0
  75. package/12/presets/reroute/types.d.ts +18 -0
  76. package/12/presets/types.d.ts +15 -0
  77. package/12/rete-angular-plugin-ng12.d.ts +5 -0
  78. package/12/shared/drag.d.ts +10 -0
  79. package/12/types.d.ts +29 -0
  80. package/13/core.d.ts +48 -0
  81. package/13/esm2020/core.mjs +109 -0
  82. package/13/esm2020/index.mjs +11 -0
  83. package/13/esm2020/module.mjs +58 -0
  84. package/13/esm2020/presets/classic/components/connection/connection-wrapper.component.mjs +79 -0
  85. package/13/esm2020/presets/classic/components/connection/connection.component.mjs +28 -0
  86. package/13/esm2020/presets/classic/components/control/control.component.mjs +51 -0
  87. package/13/esm2020/presets/classic/components/index.mjs +6 -0
  88. package/13/esm2020/presets/classic/components/node/node.component.mjs +137 -0
  89. package/13/esm2020/presets/classic/components/socket/socket.component.mjs +31 -0
  90. package/13/esm2020/presets/classic/index.mjs +111 -0
  91. package/13/esm2020/presets/classic/types.mjs +2 -0
  92. package/13/esm2020/presets/context-menu/components/index.mjs +4 -0
  93. package/13/esm2020/presets/context-menu/components/item/item.component.mjs +111 -0
  94. package/13/esm2020/presets/context-menu/components/menu/menu.component.mjs +105 -0
  95. package/13/esm2020/presets/context-menu/components/search/search.component.mjs +24 -0
  96. package/13/esm2020/presets/context-menu/debounce.mjs +17 -0
  97. package/13/esm2020/presets/context-menu/index.mjs +38 -0
  98. package/13/esm2020/presets/context-menu/module.mjs +40 -0
  99. package/13/esm2020/presets/context-menu/types.mjs +2 -0
  100. package/13/esm2020/presets/index.mjs +5 -0
  101. package/13/esm2020/presets/minimap/components/index.mjs +4 -0
  102. package/13/esm2020/presets/minimap/components/mini-node/mini-node.component.mjs +50 -0
  103. package/13/esm2020/presets/minimap/components/mini-viewport/mini-viewport.component.mjs +76 -0
  104. package/13/esm2020/presets/minimap/components/minimap/minimap.component.mjs +100 -0
  105. package/13/esm2020/presets/minimap/index.mjs +42 -0
  106. package/13/esm2020/presets/minimap/module.mjs +40 -0
  107. package/13/esm2020/presets/minimap/types.mjs +2 -0
  108. package/13/esm2020/presets/reroute/components/index.mjs +3 -0
  109. package/13/esm2020/presets/reroute/components/pin/pin.component.mjs +81 -0
  110. package/13/esm2020/presets/reroute/components/pins/pins.component.mjs +50 -0
  111. package/13/esm2020/presets/reroute/index.mjs +40 -0
  112. package/13/esm2020/presets/reroute/module.mjs +35 -0
  113. package/13/esm2020/presets/reroute/types.mjs +2 -0
  114. package/13/esm2020/presets/types.mjs +2 -0
  115. package/13/esm2020/rete-angular-plugin-ng13.mjs +5 -0
  116. package/13/esm2020/shared/drag.mjs +23 -0
  117. package/13/esm2020/types.mjs +2 -0
  118. package/13/fesm2015/rete-angular-plugin-ng13.mjs +1545 -0
  119. package/13/fesm2015/rete-angular-plugin-ng13.mjs.map +1 -0
  120. package/13/fesm2020/rete-angular-plugin-ng13.mjs +1436 -0
  121. package/13/fesm2020/rete-angular-plugin-ng13.mjs.map +1 -0
  122. package/13/index.d.ts +12 -0
  123. package/13/module.d.ts +12 -0
  124. package/13/package.json +30 -0
  125. package/13/presets/classic/components/connection/connection-wrapper.component.d.ts +30 -0
  126. package/13/presets/classic/components/connection/connection.component.d.ts +11 -0
  127. package/13/presets/classic/components/control/control.component.d.ts +14 -0
  128. package/13/presets/classic/components/index.d.ts +5 -0
  129. package/13/presets/classic/components/node/node.component.d.ts +28 -0
  130. package/13/presets/classic/components/socket/socket.component.d.ts +12 -0
  131. package/13/presets/classic/index.d.ts +18 -0
  132. package/13/presets/classic/types.d.ts +49 -0
  133. package/13/presets/context-menu/components/index.d.ts +3 -0
  134. package/13/presets/context-menu/components/item/item.component.d.ts +26 -0
  135. package/13/presets/context-menu/components/menu/menu.component.d.ts +27 -0
  136. package/13/presets/context-menu/components/search/search.component.d.ts +8 -0
  137. package/13/presets/context-menu/debounce.d.ts +5 -0
  138. package/13/presets/context-menu/index.d.ts +6 -0
  139. package/13/presets/context-menu/module.d.ts +10 -0
  140. package/13/presets/context-menu/types.d.ts +12 -0
  141. package/13/presets/index.d.ts +4 -0
  142. package/13/presets/minimap/components/index.d.ts +3 -0
  143. package/13/presets/minimap/components/mini-node/mini-node.component.d.ts +14 -0
  144. package/13/presets/minimap/components/mini-viewport/mini-viewport.component.d.ts +27 -0
  145. package/13/presets/minimap/components/minimap/minimap.component.d.ts +25 -0
  146. package/13/presets/minimap/index.d.ts +6 -0
  147. package/13/presets/minimap/module.d.ts +10 -0
  148. package/13/presets/minimap/types.d.ts +22 -0
  149. package/13/presets/reroute/components/index.d.ts +2 -0
  150. package/13/presets/reroute/components/pin/pin.component.d.ts +30 -0
  151. package/13/presets/reroute/components/pins/pins.component.d.ts +17 -0
  152. package/13/presets/reroute/index.d.ts +10 -0
  153. package/13/presets/reroute/module.d.ts +9 -0
  154. package/13/presets/reroute/types.d.ts +18 -0
  155. package/13/presets/types.d.ts +15 -0
  156. package/13/rete-angular-plugin-ng13.d.ts +5 -0
  157. package/13/shared/drag.d.ts +10 -0
  158. package/13/types.d.ts +29 -0
  159. package/14/core.d.ts +48 -0
  160. package/14/esm2020/core.mjs +109 -0
  161. package/14/esm2020/index.mjs +11 -0
  162. package/14/esm2020/module.mjs +56 -0
  163. package/14/esm2020/presets/classic/components/connection/connection-wrapper.component.mjs +79 -0
  164. package/14/esm2020/presets/classic/components/connection/connection.component.mjs +28 -0
  165. package/14/esm2020/presets/classic/components/control/control.component.mjs +51 -0
  166. package/14/esm2020/presets/classic/components/index.mjs +6 -0
  167. package/14/esm2020/presets/classic/components/node/node.component.mjs +137 -0
  168. package/14/esm2020/presets/classic/components/socket/socket.component.mjs +31 -0
  169. package/14/esm2020/presets/classic/index.mjs +111 -0
  170. package/14/esm2020/presets/classic/types.mjs +2 -0
  171. package/14/esm2020/presets/context-menu/components/index.mjs +4 -0
  172. package/14/esm2020/presets/context-menu/components/item/item.component.mjs +111 -0
  173. package/14/esm2020/presets/context-menu/components/menu/menu.component.mjs +105 -0
  174. package/14/esm2020/presets/context-menu/components/search/search.component.mjs +24 -0
  175. package/14/esm2020/presets/context-menu/debounce.mjs +17 -0
  176. package/14/esm2020/presets/context-menu/index.mjs +38 -0
  177. package/14/esm2020/presets/context-menu/module.mjs +38 -0
  178. package/14/esm2020/presets/context-menu/types.mjs +2 -0
  179. package/14/esm2020/presets/index.mjs +5 -0
  180. package/14/esm2020/presets/minimap/components/index.mjs +4 -0
  181. package/14/esm2020/presets/minimap/components/mini-node/mini-node.component.mjs +50 -0
  182. package/14/esm2020/presets/minimap/components/mini-viewport/mini-viewport.component.mjs +76 -0
  183. package/14/esm2020/presets/minimap/components/minimap/minimap.component.mjs +100 -0
  184. package/14/esm2020/presets/minimap/index.mjs +42 -0
  185. package/14/esm2020/presets/minimap/module.mjs +38 -0
  186. package/14/esm2020/presets/minimap/types.mjs +2 -0
  187. package/14/esm2020/presets/reroute/components/index.mjs +3 -0
  188. package/14/esm2020/presets/reroute/components/pin/pin.component.mjs +81 -0
  189. package/14/esm2020/presets/reroute/components/pins/pins.component.mjs +50 -0
  190. package/14/esm2020/presets/reroute/index.mjs +40 -0
  191. package/14/esm2020/presets/reroute/module.mjs +33 -0
  192. package/14/esm2020/presets/reroute/types.mjs +2 -0
  193. package/14/esm2020/presets/types.mjs +2 -0
  194. package/14/esm2020/rete-angular-plugin-ng14.mjs +5 -0
  195. package/14/esm2020/shared/drag.mjs +23 -0
  196. package/14/esm2020/types.mjs +2 -0
  197. package/14/fesm2015/rete-angular-plugin-ng14.mjs +1537 -0
  198. package/14/fesm2015/rete-angular-plugin-ng14.mjs.map +1 -0
  199. package/14/fesm2020/rete-angular-plugin-ng14.mjs +1428 -0
  200. package/14/fesm2020/rete-angular-plugin-ng14.mjs.map +1 -0
  201. package/14/index.d.ts +12 -0
  202. package/14/module.d.ts +12 -0
  203. package/14/package.json +30 -0
  204. package/14/presets/classic/components/connection/connection-wrapper.component.d.ts +30 -0
  205. package/14/presets/classic/components/connection/connection.component.d.ts +11 -0
  206. package/14/presets/classic/components/control/control.component.d.ts +14 -0
  207. package/14/presets/classic/components/index.d.ts +5 -0
  208. package/14/presets/classic/components/node/node.component.d.ts +28 -0
  209. package/14/presets/classic/components/socket/socket.component.d.ts +12 -0
  210. package/14/presets/classic/index.d.ts +18 -0
  211. package/14/presets/classic/types.d.ts +49 -0
  212. package/14/presets/context-menu/components/index.d.ts +3 -0
  213. package/14/presets/context-menu/components/item/item.component.d.ts +26 -0
  214. package/14/presets/context-menu/components/menu/menu.component.d.ts +27 -0
  215. package/14/presets/context-menu/components/search/search.component.d.ts +8 -0
  216. package/14/presets/context-menu/debounce.d.ts +5 -0
  217. package/14/presets/context-menu/index.d.ts +6 -0
  218. package/14/presets/context-menu/module.d.ts +10 -0
  219. package/14/presets/context-menu/types.d.ts +12 -0
  220. package/14/presets/index.d.ts +4 -0
  221. package/14/presets/minimap/components/index.d.ts +3 -0
  222. package/14/presets/minimap/components/mini-node/mini-node.component.d.ts +14 -0
  223. package/14/presets/minimap/components/mini-viewport/mini-viewport.component.d.ts +27 -0
  224. package/14/presets/minimap/components/minimap/minimap.component.d.ts +25 -0
  225. package/14/presets/minimap/index.d.ts +6 -0
  226. package/14/presets/minimap/module.d.ts +10 -0
  227. package/14/presets/minimap/types.d.ts +22 -0
  228. package/14/presets/reroute/components/index.d.ts +2 -0
  229. package/14/presets/reroute/components/pin/pin.component.d.ts +30 -0
  230. package/14/presets/reroute/components/pins/pins.component.d.ts +17 -0
  231. package/14/presets/reroute/index.d.ts +10 -0
  232. package/14/presets/reroute/module.d.ts +9 -0
  233. package/14/presets/reroute/types.d.ts +18 -0
  234. package/14/presets/types.d.ts +15 -0
  235. package/14/shared/drag.d.ts +10 -0
  236. package/14/types.d.ts +29 -0
  237. package/15/core.d.ts +48 -0
  238. package/15/esm2020/core.mjs +109 -0
  239. package/15/esm2020/index.mjs +11 -0
  240. package/15/esm2020/module.mjs +56 -0
  241. package/15/esm2020/presets/classic/components/connection/connection-wrapper.component.mjs +79 -0
  242. package/15/esm2020/presets/classic/components/connection/connection.component.mjs +28 -0
  243. package/15/esm2020/presets/classic/components/control/control.component.mjs +51 -0
  244. package/15/esm2020/presets/classic/components/index.mjs +6 -0
  245. package/15/esm2020/presets/classic/components/node/node.component.mjs +137 -0
  246. package/15/esm2020/presets/classic/components/socket/socket.component.mjs +31 -0
  247. package/15/esm2020/presets/classic/index.mjs +111 -0
  248. package/15/esm2020/presets/classic/types.mjs +2 -0
  249. package/15/esm2020/presets/context-menu/components/index.mjs +4 -0
  250. package/15/esm2020/presets/context-menu/components/item/item.component.mjs +111 -0
  251. package/15/esm2020/presets/context-menu/components/menu/menu.component.mjs +105 -0
  252. package/15/esm2020/presets/context-menu/components/search/search.component.mjs +24 -0
  253. package/15/esm2020/presets/context-menu/debounce.mjs +17 -0
  254. package/15/esm2020/presets/context-menu/index.mjs +38 -0
  255. package/15/esm2020/presets/context-menu/module.mjs +38 -0
  256. package/15/esm2020/presets/context-menu/types.mjs +2 -0
  257. package/15/esm2020/presets/index.mjs +5 -0
  258. package/15/esm2020/presets/minimap/components/index.mjs +4 -0
  259. package/15/esm2020/presets/minimap/components/mini-node/mini-node.component.mjs +50 -0
  260. package/15/esm2020/presets/minimap/components/mini-viewport/mini-viewport.component.mjs +76 -0
  261. package/15/esm2020/presets/minimap/components/minimap/minimap.component.mjs +100 -0
  262. package/15/esm2020/presets/minimap/index.mjs +42 -0
  263. package/15/esm2020/presets/minimap/module.mjs +38 -0
  264. package/15/esm2020/presets/minimap/types.mjs +2 -0
  265. package/15/esm2020/presets/reroute/components/index.mjs +3 -0
  266. package/15/esm2020/presets/reroute/components/pin/pin.component.mjs +81 -0
  267. package/15/esm2020/presets/reroute/components/pins/pins.component.mjs +50 -0
  268. package/15/esm2020/presets/reroute/index.mjs +40 -0
  269. package/15/esm2020/presets/reroute/module.mjs +33 -0
  270. package/15/esm2020/presets/reroute/types.mjs +2 -0
  271. package/15/esm2020/presets/types.mjs +2 -0
  272. package/15/esm2020/rete-angular-plugin-ng15.mjs +5 -0
  273. package/15/esm2020/shared/drag.mjs +23 -0
  274. package/15/esm2020/types.mjs +2 -0
  275. package/15/fesm2015/rete-angular-plugin-ng15.mjs +1537 -0
  276. package/15/fesm2015/rete-angular-plugin-ng15.mjs.map +1 -0
  277. package/15/fesm2020/rete-angular-plugin-ng15.mjs +1428 -0
  278. package/15/fesm2020/rete-angular-plugin-ng15.mjs.map +1 -0
  279. package/15/index.d.ts +12 -0
  280. package/15/module.d.ts +12 -0
  281. package/15/package.json +30 -0
  282. package/15/presets/classic/components/connection/connection-wrapper.component.d.ts +30 -0
  283. package/15/presets/classic/components/connection/connection.component.d.ts +11 -0
  284. package/15/presets/classic/components/control/control.component.d.ts +14 -0
  285. package/15/presets/classic/components/index.d.ts +5 -0
  286. package/15/presets/classic/components/node/node.component.d.ts +28 -0
  287. package/15/presets/classic/components/socket/socket.component.d.ts +12 -0
  288. package/15/presets/classic/index.d.ts +18 -0
  289. package/15/presets/classic/types.d.ts +49 -0
  290. package/15/presets/context-menu/components/index.d.ts +3 -0
  291. package/15/presets/context-menu/components/item/item.component.d.ts +26 -0
  292. package/15/presets/context-menu/components/menu/menu.component.d.ts +27 -0
  293. package/15/presets/context-menu/components/search/search.component.d.ts +8 -0
  294. package/15/presets/context-menu/debounce.d.ts +5 -0
  295. package/15/presets/context-menu/index.d.ts +6 -0
  296. package/15/presets/context-menu/module.d.ts +10 -0
  297. package/15/presets/context-menu/types.d.ts +12 -0
  298. package/15/presets/index.d.ts +4 -0
  299. package/15/presets/minimap/components/index.d.ts +3 -0
  300. package/15/presets/minimap/components/mini-node/mini-node.component.d.ts +14 -0
  301. package/15/presets/minimap/components/mini-viewport/mini-viewport.component.d.ts +27 -0
  302. package/15/presets/minimap/components/minimap/minimap.component.d.ts +25 -0
  303. package/15/presets/minimap/index.d.ts +6 -0
  304. package/15/presets/minimap/module.d.ts +10 -0
  305. package/15/presets/minimap/types.d.ts +22 -0
  306. package/15/presets/reroute/components/index.d.ts +2 -0
  307. package/15/presets/reroute/components/pin/pin.component.d.ts +30 -0
  308. package/15/presets/reroute/components/pins/pins.component.d.ts +17 -0
  309. package/15/presets/reroute/index.d.ts +10 -0
  310. package/15/presets/reroute/module.d.ts +9 -0
  311. package/15/presets/reroute/types.d.ts +18 -0
  312. package/15/presets/types.d.ts +15 -0
  313. package/15/shared/drag.d.ts +10 -0
  314. package/15/types.d.ts +29 -0
  315. package/16/core.d.ts +48 -0
  316. package/16/esm2022/core.mjs +111 -0
  317. package/16/esm2022/index.mjs +11 -0
  318. package/16/esm2022/module.mjs +49 -0
  319. package/16/esm2022/presets/classic/components/connection/connection-wrapper.component.mjs +90 -0
  320. package/16/esm2022/presets/classic/components/connection/connection.component.mjs +32 -0
  321. package/16/esm2022/presets/classic/components/control/control.component.mjs +54 -0
  322. package/16/esm2022/presets/classic/components/index.mjs +6 -0
  323. package/16/esm2022/presets/classic/components/node/node.component.mjs +144 -0
  324. package/16/esm2022/presets/classic/components/socket/socket.component.mjs +34 -0
  325. package/16/esm2022/presets/classic/index.mjs +111 -0
  326. package/16/esm2022/presets/classic/types.mjs +2 -0
  327. package/16/esm2022/presets/context-menu/components/index.mjs +4 -0
  328. package/16/esm2022/presets/context-menu/components/item/item.component.mjs +114 -0
  329. package/16/esm2022/presets/context-menu/components/menu/menu.component.mjs +111 -0
  330. package/16/esm2022/presets/context-menu/components/search/search.component.mjs +23 -0
  331. package/16/esm2022/presets/context-menu/debounce.mjs +17 -0
  332. package/16/esm2022/presets/context-menu/index.mjs +38 -0
  333. package/16/esm2022/presets/context-menu/module.mjs +35 -0
  334. package/16/esm2022/presets/context-menu/types.mjs +2 -0
  335. package/16/esm2022/presets/index.mjs +5 -0
  336. package/16/esm2022/presets/minimap/components/index.mjs +4 -0
  337. package/16/esm2022/presets/minimap/components/mini-node/mini-node.component.mjs +54 -0
  338. package/16/esm2022/presets/minimap/components/mini-viewport/mini-viewport.component.mjs +80 -0
  339. package/16/esm2022/presets/minimap/components/minimap/minimap.component.mjs +109 -0
  340. package/16/esm2022/presets/minimap/index.mjs +42 -0
  341. package/16/esm2022/presets/minimap/module.mjs +35 -0
  342. package/16/esm2022/presets/minimap/types.mjs +2 -0
  343. package/16/esm2022/presets/reroute/components/index.mjs +3 -0
  344. package/16/esm2022/presets/reroute/components/pin/pin.component.mjs +85 -0
  345. package/16/esm2022/presets/reroute/components/pins/pins.component.mjs +57 -0
  346. package/16/esm2022/presets/reroute/index.mjs +40 -0
  347. package/16/esm2022/presets/reroute/module.mjs +30 -0
  348. package/16/esm2022/presets/reroute/types.mjs +2 -0
  349. package/16/esm2022/presets/types.mjs +2 -0
  350. package/16/esm2022/rete-angular-plugin-ng16.mjs +5 -0
  351. package/16/esm2022/shared/drag.mjs +23 -0
  352. package/16/esm2022/types.mjs +2 -0
  353. package/16/fesm2022/rete-angular-plugin-ng16.mjs +1478 -0
  354. package/16/fesm2022/rete-angular-plugin-ng16.mjs.map +1 -0
  355. package/16/index.d.ts +12 -0
  356. package/16/module.d.ts +12 -0
  357. package/16/package.json +24 -0
  358. package/16/presets/classic/components/connection/connection-wrapper.component.d.ts +30 -0
  359. package/16/presets/classic/components/connection/connection.component.d.ts +11 -0
  360. package/16/presets/classic/components/control/control.component.d.ts +14 -0
  361. package/16/presets/classic/components/index.d.ts +5 -0
  362. package/16/presets/classic/components/node/node.component.d.ts +28 -0
  363. package/16/presets/classic/components/socket/socket.component.d.ts +12 -0
  364. package/16/presets/classic/index.d.ts +18 -0
  365. package/16/presets/classic/types.d.ts +49 -0
  366. package/16/presets/context-menu/components/index.d.ts +3 -0
  367. package/16/presets/context-menu/components/item/item.component.d.ts +26 -0
  368. package/16/presets/context-menu/components/menu/menu.component.d.ts +27 -0
  369. package/16/presets/context-menu/components/search/search.component.d.ts +8 -0
  370. package/16/presets/context-menu/debounce.d.ts +5 -0
  371. package/16/presets/context-menu/index.d.ts +6 -0
  372. package/16/presets/context-menu/module.d.ts +10 -0
  373. package/16/presets/context-menu/types.d.ts +12 -0
  374. package/16/presets/index.d.ts +4 -0
  375. package/16/presets/minimap/components/index.d.ts +3 -0
  376. package/16/presets/minimap/components/mini-node/mini-node.component.d.ts +14 -0
  377. package/16/presets/minimap/components/mini-viewport/mini-viewport.component.d.ts +27 -0
  378. package/16/presets/minimap/components/minimap/minimap.component.d.ts +25 -0
  379. package/16/presets/minimap/index.d.ts +6 -0
  380. package/16/presets/minimap/module.d.ts +10 -0
  381. package/16/presets/minimap/types.d.ts +22 -0
  382. package/16/presets/reroute/components/index.d.ts +2 -0
  383. package/16/presets/reroute/components/pin/pin.component.d.ts +30 -0
  384. package/16/presets/reroute/components/pins/pins.component.d.ts +17 -0
  385. package/16/presets/reroute/index.d.ts +10 -0
  386. package/16/presets/reroute/module.d.ts +9 -0
  387. package/16/presets/reroute/types.d.ts +18 -0
  388. package/16/presets/types.d.ts +15 -0
  389. package/16/shared/drag.d.ts +10 -0
  390. package/16/types.d.ts +29 -0
  391. package/LICENSE +21 -0
  392. package/README.md +28 -0
  393. package/bundles/rete-angular-plugin.umd.js +1707 -0
  394. package/bundles/rete-angular-plugin.umd.js.map +1 -0
  395. package/core.d.ts +48 -0
  396. package/esm2015/core.js +103 -0
  397. package/esm2015/index.js +12 -0
  398. package/esm2015/module.js +40 -0
  399. package/esm2015/presets/classic/components/connection/connection-wrapper.component.js +80 -0
  400. package/esm2015/presets/classic/components/connection/connection.component.js +17 -0
  401. package/esm2015/presets/classic/components/control/control.component.js +42 -0
  402. package/esm2015/presets/classic/components/index.js +6 -0
  403. package/esm2015/presets/classic/components/node/node.component.js +62 -0
  404. package/esm2015/presets/classic/components/socket/socket.component.js +29 -0
  405. package/esm2015/presets/classic/index.js +108 -0
  406. package/esm2015/presets/classic/types.js +2 -0
  407. package/esm2015/presets/context-menu/components/index.js +4 -0
  408. package/esm2015/presets/context-menu/components/item/item.component.js +64 -0
  409. package/esm2015/presets/context-menu/components/menu/menu.component.js +62 -0
  410. package/esm2015/presets/context-menu/components/search/search.component.js +18 -0
  411. package/esm2015/presets/context-menu/debounce.js +17 -0
  412. package/esm2015/presets/context-menu/index.js +38 -0
  413. package/esm2015/presets/context-menu/module.js +28 -0
  414. package/esm2015/presets/context-menu/types.js +2 -0
  415. package/esm2015/presets/index.js +9 -0
  416. package/esm2015/presets/minimap/components/index.js +4 -0
  417. package/esm2015/presets/minimap/components/mini-node/mini-node.component.js +39 -0
  418. package/esm2015/presets/minimap/components/mini-viewport/mini-viewport.component.js +59 -0
  419. package/esm2015/presets/minimap/components/minimap/minimap.component.js +70 -0
  420. package/esm2015/presets/minimap/index.js +42 -0
  421. package/esm2015/presets/minimap/module.js +28 -0
  422. package/esm2015/presets/minimap/types.js +2 -0
  423. package/esm2015/presets/reroute/components/index.js +3 -0
  424. package/esm2015/presets/reroute/components/pin/pin.component.js +66 -0
  425. package/esm2015/presets/reroute/components/pins/pins.component.js +31 -0
  426. package/esm2015/presets/reroute/index.js +32 -0
  427. package/esm2015/presets/reroute/module.js +25 -0
  428. package/esm2015/presets/reroute/types.js +2 -0
  429. package/esm2015/presets/types.js +2 -0
  430. package/esm2015/rete-angular-plugin.js +18 -0
  431. package/esm2015/shared/drag.js +23 -0
  432. package/esm2015/types.js +2 -0
  433. package/fesm2015/rete-angular-plugin.js +1111 -0
  434. package/fesm2015/rete-angular-plugin.js.map +1 -0
  435. package/index.d.ts +12 -0
  436. package/module.d.ts +2 -0
  437. package/package.json +37 -5
  438. package/presets/classic/components/connection/connection-wrapper.component.d.ts +27 -0
  439. package/presets/classic/components/connection/connection.component.d.ts +8 -0
  440. package/presets/classic/components/control/control.component.d.ts +11 -0
  441. package/presets/classic/components/index.d.ts +5 -0
  442. package/presets/classic/components/node/node.component.d.ts +23 -0
  443. package/presets/classic/components/socket/socket.component.d.ts +9 -0
  444. package/presets/classic/index.d.ts +18 -0
  445. package/presets/classic/types.d.ts +49 -0
  446. package/presets/context-menu/components/index.d.ts +3 -0
  447. package/presets/context-menu/components/item/item.component.d.ts +23 -0
  448. package/presets/context-menu/components/menu/menu.component.d.ts +24 -0
  449. package/presets/context-menu/components/search/search.component.d.ts +5 -0
  450. package/presets/context-menu/debounce.d.ts +5 -0
  451. package/presets/context-menu/index.d.ts +6 -0
  452. package/presets/context-menu/module.d.ts +2 -0
  453. package/presets/context-menu/types.d.ts +12 -0
  454. package/presets/index.d.ts +4 -0
  455. package/presets/minimap/components/index.d.ts +3 -0
  456. package/presets/minimap/components/mini-node/mini-node.component.d.ts +11 -0
  457. package/presets/minimap/components/mini-viewport/mini-viewport.component.d.ts +24 -0
  458. package/presets/minimap/components/minimap/minimap.component.d.ts +22 -0
  459. package/presets/minimap/index.d.ts +6 -0
  460. package/presets/minimap/module.d.ts +2 -0
  461. package/presets/minimap/types.d.ts +22 -0
  462. package/presets/reroute/components/index.d.ts +2 -0
  463. package/presets/reroute/components/pin/pin.component.d.ts +27 -0
  464. package/presets/reroute/components/pins/pins.component.d.ts +14 -0
  465. package/presets/reroute/index.d.ts +10 -0
  466. package/presets/reroute/module.d.ts +2 -0
  467. package/presets/reroute/types.d.ts +18 -0
  468. package/presets/types.d.ts +15 -0
  469. package/rete-angular-plugin.d.ts +17 -0
  470. package/rete-angular-plugin.metadata.json +1 -0
  471. package/shared/drag.d.ts +10 -0
  472. package/types.d.ts +29 -0
@@ -0,0 +1,54 @@
1
+ import { Component, Input, ChangeDetectorRef, HostListener } from '@angular/core';
2
+ import { ClassicPreset } from 'rete';
3
+ import * as i0 from "@angular/core";
4
+ export class ControlComponent {
5
+ cdr;
6
+ data;
7
+ rendered;
8
+ pointerdown(event) {
9
+ event.stopPropagation();
10
+ }
11
+ constructor(cdr) {
12
+ this.cdr = cdr;
13
+ this.cdr.detach();
14
+ }
15
+ ngOnChanges(changes) {
16
+ const seed = changes['seed'];
17
+ const data = changes['data'];
18
+ if ((seed && seed.currentValue !== seed.previousValue)
19
+ || (data && data.currentValue !== data.previousValue)) {
20
+ this.cdr.detectChanges();
21
+ }
22
+ requestAnimationFrame(() => this.rendered());
23
+ }
24
+ onChange(e) {
25
+ const target = e.target;
26
+ const value = (this.data.type === 'number'
27
+ ? +target.value
28
+ : target.value);
29
+ this.data.setValue(value);
30
+ this.cdr.detectChanges();
31
+ }
32
+ static ɵfac = function ControlComponent_Factory(t) { return new (t || ControlComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
33
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ControlComponent, selectors: [["ng-component"]], hostBindings: function ControlComponent_HostBindings(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵlistener("pointerdown", function ControlComponent_pointerdown_HostBindingHandler($event) { return ctx.pointerdown($event); });
35
+ } }, inputs: { data: "data", rendered: "rendered" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 3, consts: [[3, "value", "readonly", "type", "input"]], template: function ControlComponent_Template(rf, ctx) { if (rf & 1) {
36
+ i0.ɵɵelementStart(0, "input", 0);
37
+ i0.ɵɵlistener("input", function ControlComponent_Template_input_input_0_listener($event) { return ctx.onChange($event); });
38
+ i0.ɵɵelementEnd();
39
+ } if (rf & 2) {
40
+ i0.ɵɵproperty("value", ctx.data.value)("readonly", ctx.data.readonly)("type", ctx.data.type);
41
+ } }, styles: ["input[_ngcontent-%COMP%]{width:130px;border-radius:30px;background-color:#fff;padding:2px 6px;border:1px solid #999;font-size:110%}"] });
42
+ }
43
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ControlComponent, [{
44
+ type: Component,
45
+ args: [{ template: "<input\n [value]=\"data.value\"\n [readonly]=\"data.readonly\"\n [type]=\"data.type\"\n (input)=\"onChange($event)\"\n/>\n", styles: ["input{width:130px;border-radius:30px;background-color:#fff;padding:2px 6px;border:1px solid #999;font-size:110%}\n"] }]
46
+ }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { data: [{
47
+ type: Input
48
+ }], rendered: [{
49
+ type: Input
50
+ }], pointerdown: [{
51
+ type: HostListener,
52
+ args: ['pointerdown', ['$event']]
53
+ }] }); })();
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZzE2Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvY29udHJvbC9jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTYvLnNyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb250cm9sL2NvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXNGLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU1yQyxNQUFNLE9BQU8sZ0JBQWdCO0lBVVA7SUFUWCxJQUFJLENBQWlDO0lBQ3JDLFFBQVEsQ0FBTztJQUlqQixXQUFXLENBQUMsS0FBVTtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDNUIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTVCLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDO2VBQ2pELENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7U0FDekI7UUFDRCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQsUUFBUSxDQUFDLENBQVE7UUFDZixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBMEIsQ0FBQTtRQUMzQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDdEMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDZixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBMkMsQ0FBQTtRQUU3RCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7MEVBakNVLGdCQUFnQjs2REFBaEIsZ0JBQWdCO21IQUFoQix1QkFBbUI7O1lDUGhDLGdDQUtFO1lBREEsa0dBQVMsb0JBQWdCLElBQUM7WUFKNUIsaUJBS0U7O1lBSkEsc0NBQW9CLCtCQUFBLHVCQUFBOzs7dUZETVQsZ0JBQWdCO2NBSjVCLFNBQVM7O29FQUtDLElBQUk7a0JBQVosS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFJQyxXQUFXO2tCQURqQixZQUFZO21CQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsYXNzaWNQcmVzZXQgfSBmcm9tICdyZXRlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiBgLi9jb250cm9sLmNvbXBvbmVudC5odG1sYCxcbiAgc3R5bGVVcmxzOiBbJy4vY29udHJvbC5jb21wb25lbnQuc2FzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnRyb2xDb21wb25lbnQ8VCBleHRlbmRzICd0ZXh0JyB8ICdudW1iZXInPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRhdGEhOiBDbGFzc2ljUHJlc2V0LklucHV0Q29udHJvbDxUPjtcbiAgQElucHV0KCkgcmVuZGVyZWQhOiBhbnk7XG5cblxuICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBwb2ludGVyZG93bihldmVudDogYW55KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpICB7XG4gICAgdGhpcy5jZHIuZGV0YWNoKClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBzZWVkID0gY2hhbmdlc1snc2VlZCddXG4gICAgY29uc3QgZGF0YSA9IGNoYW5nZXNbJ2RhdGEnXVxuXG4gICAgaWYgKChzZWVkICYmIHNlZWQuY3VycmVudFZhbHVlICE9PSBzZWVkLnByZXZpb3VzVmFsdWUpXG4gICAgICB8fCAoZGF0YSAmJiBkYXRhLmN1cnJlbnRWYWx1ZSAhPT0gZGF0YS5wcmV2aW91c1ZhbHVlKSkge1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLnJlbmRlcmVkKCkpXG4gIH1cblxuICBvbkNoYW5nZShlOiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnRcbiAgICBjb25zdCB2YWx1ZSA9ICh0aGlzLmRhdGEudHlwZSA9PT0gJ251bWJlcidcbiAgICAgICAgPyArdGFyZ2V0LnZhbHVlXG4gICAgICAgIDogdGFyZ2V0LnZhbHVlKSBhcyBDbGFzc2ljUHJlc2V0LklucHV0Q29udHJvbDxUPlsndmFsdWUnXVxuXG4gICAgdGhpcy5kYXRhLnNldFZhbHVlKHZhbHVlKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG59XG4iLCI8aW5wdXRcbiAgW3ZhbHVlXT1cImRhdGEudmFsdWVcIlxuICBbcmVhZG9ubHldPVwiZGF0YS5yZWFkb25seVwiXG4gIFt0eXBlXT1cImRhdGEudHlwZVwiXG4gIChpbnB1dCk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbi8+XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export * from './node/node.component';
2
+ export * from './connection/connection-wrapper.component';
3
+ export * from './connection/connection.component';
4
+ export * from './control/control.component';
5
+ export * from './socket/socket.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9uZzE2Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLDJCQUEyQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgKiBmcm9tICcuL25vZGUvbm9kZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGlvbi9jb25uZWN0aW9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbC9jb250cm9sLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vc29ja2V0L3NvY2tldC5jb21wb25lbnQnXG4iXX0=
@@ -0,0 +1,144 @@
1
+ import { Component, Input, HostBinding, ElementRef, ChangeDetectorRef } from '@angular/core';
2
+ import { ClassicPreset as Classic } from 'rete';
3
+ import { Directive } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ const _c0 = function (a2, a3, a4, a5) { return { type: "socket", side: "output", key: a2, nodeId: a3, payload: a4, seed: a5 }; };
7
+ function NodeComponent_div_2_Template(rf, ctx) { if (rf & 1) {
8
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 5);
9
+ i0.ɵɵtext(2);
10
+ i0.ɵɵelementEnd();
11
+ i0.ɵɵelement(3, "div", 6);
12
+ i0.ɵɵelementEnd();
13
+ } if (rf & 2) {
14
+ const output_r3 = ctx.$implicit;
15
+ const ctx_r0 = i0.ɵɵnextContext();
16
+ i0.ɵɵattribute("data-testid", "output-" + output_r3.key);
17
+ i0.ɵɵadvance(2);
18
+ i0.ɵɵtextInterpolate(output_r3.value == null ? null : output_r3.value.label);
19
+ i0.ɵɵadvance(1);
20
+ i0.ɵɵproperty("data", i0.ɵɵpureFunction4(4, _c0, output_r3.key, ctx_r0.data.id, output_r3.value == null ? null : output_r3.value.socket, ctx_r0.seed))("emit", ctx_r0.emit);
21
+ } }
22
+ const _c1 = function (a1) { return { type: "control", payload: a1 }; };
23
+ function NodeComponent_div_4_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelement(0, "div", 7);
25
+ } if (rf & 2) {
26
+ const control_r4 = ctx.$implicit;
27
+ const ctx_r1 = i0.ɵɵnextContext();
28
+ i0.ɵɵproperty("data", i0.ɵɵpureFunction1(3, _c1, control_r4.value))("emit", ctx_r1.emit);
29
+ i0.ɵɵattribute("data-testid", "control-" + control_r4.key);
30
+ } }
31
+ function NodeComponent_div_6_div_2_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelementStart(0, "div", 12);
33
+ i0.ɵɵtext(1);
34
+ i0.ɵɵelementEnd();
35
+ } if (rf & 2) {
36
+ const input_r5 = i0.ɵɵnextContext().$implicit;
37
+ i0.ɵɵadvance(1);
38
+ i0.ɵɵtextInterpolate(input_r5.value == null ? null : input_r5.value.label);
39
+ } }
40
+ const _c2 = function (a2, a3, a4, a5) { return { type: "socket", side: "input", key: a2, nodeId: a3, payload: a4, seed: a5 }; };
41
+ function NodeComponent_div_6_Template(rf, ctx) { if (rf & 1) {
42
+ i0.ɵɵelementStart(0, "div", 8);
43
+ i0.ɵɵelement(1, "div", 9);
44
+ i0.ɵɵtemplate(2, NodeComponent_div_6_div_2_Template, 2, 1, "div", 10);
45
+ i0.ɵɵelement(3, "div", 11);
46
+ i0.ɵɵelementEnd();
47
+ } if (rf & 2) {
48
+ const input_r5 = ctx.$implicit;
49
+ const ctx_r2 = i0.ɵɵnextContext();
50
+ i0.ɵɵattribute("data-testid", "input-" + input_r5.key);
51
+ i0.ɵɵadvance(1);
52
+ i0.ɵɵproperty("data", i0.ɵɵpureFunction4(8, _c2, input_r5.key, ctx_r2.data.id, input_r5.value == null ? null : input_r5.value.socket, ctx_r2.seed))("emit", ctx_r2.emit);
53
+ i0.ɵɵadvance(1);
54
+ i0.ɵɵproperty("ngIf", !(input_r5.value == null ? null : input_r5.value.control) || !(input_r5.value == null ? null : input_r5.value.showControl));
55
+ i0.ɵɵadvance(1);
56
+ i0.ɵɵstyleProp("display", (input_r5.value == null ? null : input_r5.value.control) && (input_r5.value == null ? null : input_r5.value.showControl) ? "" : "none");
57
+ i0.ɵɵproperty("data", i0.ɵɵpureFunction1(13, _c1, input_r5.value == null ? null : input_r5.value.control))("emit", ctx_r2.emit);
58
+ } }
59
+ export class RefDirective {
60
+ el;
61
+ data;
62
+ emit;
63
+ constructor(el) {
64
+ this.el = el;
65
+ }
66
+ ngOnChanges() {
67
+ this.emit({ type: 'render', data: { ...this.data, element: this.el.nativeElement } });
68
+ }
69
+ static ɵfac = function RefDirective_Factory(t) { return new (t || RefDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
70
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: RefDirective, selectors: [["", "refComponent", ""]], inputs: { data: "data", emit: "emit" }, features: [i0.ɵɵNgOnChangesFeature] });
71
+ }
72
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RefDirective, [{
73
+ type: Directive,
74
+ args: [{
75
+ selector: '[refComponent]'
76
+ }]
77
+ }], function () { return [{ type: i0.ElementRef }]; }, { data: [{
78
+ type: Input
79
+ }], emit: [{
80
+ type: Input
81
+ }] }); })();
82
+ export class NodeComponent {
83
+ cdr;
84
+ data;
85
+ emit;
86
+ rendered;
87
+ seed = 0;
88
+ get selected() {
89
+ return this.data.selected;
90
+ }
91
+ constructor(cdr) {
92
+ this.cdr = cdr;
93
+ this.cdr.detach();
94
+ }
95
+ ngOnChanges() {
96
+ this.cdr.detectChanges();
97
+ requestAnimationFrame(() => this.rendered());
98
+ this.seed++; // force render sockets
99
+ }
100
+ sortByIndex(a, b) {
101
+ const ai = a.value?.index || 0;
102
+ const bi = b.value?.index || 0;
103
+ return ai - bi;
104
+ }
105
+ static ɵfac = function NodeComponent_Factory(t) { return new (t || NodeComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
106
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NodeComponent, selectors: [["ng-component"]], hostAttrs: ["data-testid", "node"], hostVars: 2, hostBindings: function NodeComponent_HostBindings(rf, ctx) { if (rf & 2) {
107
+ i0.ɵɵclassProp("selected", ctx.selected);
108
+ } }, inputs: { data: "data", emit: "emit", rendered: "rendered" }, features: [i0.ɵɵNgOnChangesFeature], decls: 8, vars: 13, consts: [["data-testid", "title", 1, "title"], ["class", "output", 4, "ngFor", "ngForOf"], ["class", "control", "refComponent", "", 3, "data", "emit", 4, "ngFor", "ngForOf"], ["class", "input", 4, "ngFor", "ngForOf"], [1, "output"], ["data-testid", "output-title", 1, "output-title"], ["refComponent", "", "data-testid", "output-socket", 1, "output-socket", 3, "data", "emit"], ["refComponent", "", 1, "control", 3, "data", "emit"], [1, "input"], ["refComponent", "", "data-testid", "input-socket", 1, "input-socket", 3, "data", "emit"], ["class", "input-title", "data-testid", "input-title", 4, "ngIf"], ["refComponent", "", "data-testid", "input-control", 1, "input-control", 3, "data", "emit"], ["data-testid", "input-title", 1, "input-title"]], template: function NodeComponent_Template(rf, ctx) { if (rf & 1) {
109
+ i0.ɵɵelementStart(0, "div", 0);
110
+ i0.ɵɵtext(1);
111
+ i0.ɵɵelementEnd();
112
+ i0.ɵɵtemplate(2, NodeComponent_div_2_Template, 4, 9, "div", 1);
113
+ i0.ɵɵpipe(3, "keyvalue");
114
+ i0.ɵɵtemplate(4, NodeComponent_div_4_Template, 1, 5, "div", 2);
115
+ i0.ɵɵpipe(5, "keyvalue");
116
+ i0.ɵɵtemplate(6, NodeComponent_div_6_Template, 4, 15, "div", 3);
117
+ i0.ɵɵpipe(7, "keyvalue");
118
+ } if (rf & 2) {
119
+ i0.ɵɵadvance(1);
120
+ i0.ɵɵtextInterpolate(ctx.data.label);
121
+ i0.ɵɵadvance(1);
122
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(3, 4, ctx.data.outputs, ctx.sortByIndex));
123
+ i0.ɵɵadvance(2);
124
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(5, 7, ctx.data.controls, ctx.sortByIndex));
125
+ i0.ɵɵadvance(2);
126
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(7, 10, ctx.data.inputs, ctx.sortByIndex));
127
+ } }, dependencies: [i1.NgForOf, i1.NgIf, RefDirective, i1.KeyValuePipe], styles: ["[_nghost-%COMP%]{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;min-width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}[_nghost-%COMP%]:hover{background:rgba(130,153,255,.8)}.selected[_nghost-%COMP%]{background:#ffd92c;border-color:#e3c000}[_nghost-%COMP%] .title[_ngcontent-%COMP%]{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}[_nghost-%COMP%] .output[_ngcontent-%COMP%]{text-align:right}[_nghost-%COMP%] .input[_ngcontent-%COMP%]{text-align:left}[_nghost-%COMP%] .input-title[_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[_ngcontent-%COMP%]{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}[_nghost-%COMP%] .input-title[hidden][_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[hidden][_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] .output-socket[_ngcontent-%COMP%]{text-align:right;margin-right:-18px;display:inline-block}[_nghost-%COMP%] .input-socket[_ngcontent-%COMP%]{text-align:left;margin-left:-18px;display:inline-block}[_nghost-%COMP%] .input-control[_ngcontent-%COMP%]{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}[_nghost-%COMP%] .control[_ngcontent-%COMP%]{padding:6px 18px}"] });
128
+ }
129
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NodeComponent, [{
130
+ type: Component,
131
+ args: [{ host: {
132
+ 'data-testid': 'node'
133
+ }, template: "<div class=\"title\" data-testid=\"title\">{{data.label}}</div>\n<div class=\"output\" *ngFor=\"let output of data.outputs | keyvalue: sortByIndex\" [attr.data-testid]=\"'output-'+output.key\">\n <div class=\"output-title\" data-testid=\"output-title\">{{output.value?.label}}</div>\n <div\n class=\"output-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'output', key: output.key, nodeId: data.id, payload: output.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"output-socket\"\n ></div>\n</div>\n<div\n class=\"control\"\n *ngFor=\"let control of data.controls | keyvalue: sortByIndex\"\n refComponent\n [data]=\"{type: 'control', payload: control.value }\"\n [emit]=\"emit\"\n [attr.data-testid]=\"'control-'+control.key\"\n></div>\n<div class=\"input\" *ngFor=\"let input of data.inputs | keyvalue: sortByIndex\" [attr.data-testid]=\"'input-'+input.key\">\n <div\n class=\"input-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'input', key: input.key, nodeId: data.id, payload: input.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"input-socket\"\n ></div>\n <div class=\"input-title\" data-testid=\"input-title\" *ngIf=\"!input.value?.control || !input.value?.showControl\">{{input.value?.label}}</div>\n <div\n class=\"input-control\"\n [style.display]=\"input.value?.control && input.value?.showControl ? '' : 'none'\"\n refComponent\n [data]=\"{type: 'control', payload: input.value?.control }\"\n [emit]=\"emit\"\n data-testid=\"input-control\"\n ></div>\n</div>\n", styles: [":host{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;min-width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}:host:hover{background:rgba(130,153,255,.8)}:host.selected{background:#ffd92c;border-color:#e3c000}:host .title{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}:host .output{text-align:right}:host .input{text-align:left}:host .input-title,:host .output-title{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}:host .input-title[hidden],:host .output-title[hidden]{display:none}:host .output-socket{text-align:right;margin-right:-18px;display:inline-block}:host .input-socket{text-align:left;margin-left:-18px;display:inline-block}:host .input-control{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}:host .control{padding:6px 18px}\n"] }]
134
+ }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { data: [{
135
+ type: Input
136
+ }], emit: [{
137
+ type: Input
138
+ }], rendered: [{
139
+ type: Input
140
+ }], selected: [{
141
+ type: HostBinding,
142
+ args: ['class.selected']
143
+ }] }); })();
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZzE2Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTYvLnNyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9ub2RlL25vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsYUFBYSxJQUFJLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztJQ0QxQyw4QkFBMEgsYUFBQTtJQUNqRSxZQUF1QjtJQUFBLGlCQUFNO0lBQ2xGLHlCQU1PO0lBQ1gsaUJBQU07Ozs7SUFUMEUsd0RBQXlDO0lBQ2hFLGVBQXVCO0lBQXZCLDRFQUF1QjtJQUl4RSxlQUF1SDtJQUF2SCxzSkFBdUgscUJBQUE7Ozs7SUFLL0gseUJBT087Ozs7SUFISCxtRUFBbUQscUJBQUE7SUFFbkQsMERBQTJDOzs7SUFVM0MsK0JBQThHO0lBQUEsWUFBc0I7SUFBQSxpQkFBTTs7O0lBQTVCLGVBQXNCO0lBQXRCLDBFQUFzQjs7OztJQVJ4SSw4QkFBcUg7SUFDakgseUJBTU87SUFDUCxxRUFBMEk7SUFDMUksMEJBT087SUFDWCxpQkFBTTs7OztJQWpCdUUsc0RBQXVDO0lBSTVHLGVBQW9IO0lBQXBILG1KQUFvSCxxQkFBQTtJQUlwRSxlQUF3RDtJQUF4RCxpSkFBd0Q7SUFHeEcsZUFBZ0Y7SUFBaEYsaUtBQWdGO0lBRWhGLDBHQUEwRCxxQkFBQTs7QUR4QmxFLE1BQU0sT0FBTyxZQUFZO0lBSUg7SUFIWCxJQUFJLENBQU07SUFDVixJQUFJLENBQU07SUFFbkIsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7SUFBSSxDQUFDO0lBRXZDLFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZGLENBQUM7c0VBUlUsWUFBWTs2REFBWixZQUFZOzt1RkFBWixZQUFZO2NBSHhCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCOzZEQUVVLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSzs7QUFrQlIsTUFBTSxPQUFPLGFBQWE7SUFXSjtJQVZYLElBQUksQ0FBZ0I7SUFDcEIsSUFBSSxDQUFzQjtJQUMxQixRQUFRLENBQWE7SUFFOUIsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUVSLElBQW1DLFFBQVE7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUMzQixDQUFDO0lBRUQsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDeEIscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBLENBQUMsdUJBQXVCO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQW1FLENBQUksRUFBRSxDQUFJO1FBQ3RGLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUM5QixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUE7UUFFOUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFBO0lBQ2hCLENBQUM7dUVBMUJVLGFBQWE7NkRBQWIsYUFBYTs7O1lDNUIxQiw4QkFBdUM7WUFBQSxZQUFjO1lBQUEsaUJBQU07WUFDM0QsOERBU007O1lBQ04sOERBT087O1lBQ1AsK0RBaUJNOzs7WUFwQ2lDLGVBQWM7WUFBZCxvQ0FBYztZQUNkLGVBQXVDO1lBQXZDLGlGQUF1QztZQVl0RCxlQUF3QztZQUF4QyxrRkFBd0M7WUFNM0IsZUFBc0M7WUFBdEMsaUZBQXNDO2lERFg5RCxZQUFZOzt1RkFvQlosYUFBYTtjQVB6QixTQUFTO3VCQUdGO29CQUNKLGFBQWEsRUFBRSxNQUFNO2lCQUN0QjtvRUFHUSxJQUFJO2tCQUFaLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBSTZCLFFBQVE7a0JBQTFDLFdBQVc7bUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsYXNzaWNQcmVzZXQgYXMgQ2xhc3NpYyB9IGZyb20gJ3JldGUnO1xuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZWZDb21wb25lbnRdJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWZEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRhITogYW55XG4gIEBJbnB1dCgpIGVtaXQhOiBhbnlcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7IH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLmVtaXQoeyB0eXBlOiAncmVuZGVyJywgZGF0YTogeyAuLi50aGlzLmRhdGEsIGVsZW1lbnQ6IHRoaXMuZWwubmF0aXZlRWxlbWVudCB9IH0pXG4gIH1cbn1cblxudHlwZSBTb3J0VmFsdWU8TiBleHRlbmRzIENsYXNzaWMuTm9kZT4gPSAoTlsnY29udHJvbHMnXSB8IE5bJ2lucHV0cyddICB8IE5bJ291dHB1dHMnXSlbc3RyaW5nXVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL25vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub2RlLmNvbXBvbmVudC5zYXNzJ10sXG4gIGhvc3Q6IHtcbiAgICAnZGF0YS10ZXN0aWQnOiAnbm9kZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YSE6IENsYXNzaWMuTm9kZTtcbiAgQElucHV0KCkgZW1pdCE6IChkYXRhOiBhbnkpID0+IHZvaWRcbiAgQElucHV0KCkgcmVuZGVyZWQhOiAoKSA9PiB2b2lkXG5cbiAgc2VlZCA9IDBcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJykgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuc2VsZWN0ZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgIHtcbiAgICB0aGlzLmNkci5kZXRhY2goKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMucmVuZGVyZWQoKSlcbiAgICB0aGlzLnNlZWQrKyAvLyBmb3JjZSByZW5kZXIgc29ja2V0c1xuICB9XG5cbiAgc29ydEJ5SW5kZXg8TiBleHRlbmRzIENsYXNzaWMuTm9kZSwgSSBleHRlbmRzIEtleVZhbHVlPHN0cmluZywgU29ydFZhbHVlPE4+Pj4oYTogSSwgYjogSSkge1xuICAgIGNvbnN0IGFpID0gYS52YWx1ZT8uaW5kZXggfHwgMFxuICAgIGNvbnN0IGJpID0gYi52YWx1ZT8uaW5kZXggfHwgMFxuXG4gICAgcmV0dXJuIGFpIC0gYmlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRpdGxlXCIgZGF0YS10ZXN0aWQ9XCJ0aXRsZVwiPnt7ZGF0YS5sYWJlbH19PC9kaXY+XG48ZGl2IGNsYXNzPVwib3V0cHV0XCIgKm5nRm9yPVwibGV0IG91dHB1dCBvZiBkYXRhLm91dHB1dHMgfCBrZXl2YWx1ZTogc29ydEJ5SW5kZXhcIiBbYXR0ci5kYXRhLXRlc3RpZF09XCInb3V0cHV0LScrb3V0cHV0LmtleVwiPlxuICAgIDxkaXYgY2xhc3M9XCJvdXRwdXQtdGl0bGVcIiBkYXRhLXRlc3RpZD1cIm91dHB1dC10aXRsZVwiPnt7b3V0cHV0LnZhbHVlPy5sYWJlbH19PC9kaXY+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm91dHB1dC1zb2NrZXRcIlxuICAgICAgICByZWZDb21wb25lbnRcbiAgICAgICAgW2RhdGFdPVwie3R5cGU6ICdzb2NrZXQnLCBzaWRlOiAnb3V0cHV0Jywga2V5OiBvdXRwdXQua2V5LCBub2RlSWQ6IGRhdGEuaWQsIHBheWxvYWQ6IG91dHB1dC52YWx1ZT8uc29ja2V0LCBzZWVkOiBzZWVkIH1cIlxuICAgICAgICBbZW1pdF09XCJlbWl0XCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJvdXRwdXQtc29ja2V0XCJcbiAgICA+PC9kaXY+XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cImNvbnRyb2xcIlxuICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGRhdGEuY29udHJvbHMgfCBrZXl2YWx1ZTogc29ydEJ5SW5kZXhcIlxuICAgIHJlZkNvbXBvbmVudFxuICAgIFtkYXRhXT1cInt0eXBlOiAnY29udHJvbCcsIHBheWxvYWQ6IGNvbnRyb2wudmFsdWUgfVwiXG4gICAgW2VtaXRdPVwiZW1pdFwiXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2NvbnRyb2wtJytjb250cm9sLmtleVwiXG4+PC9kaXY+XG48ZGl2IGNsYXNzPVwiaW5wdXRcIiAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgZGF0YS5pbnB1dHMgfCBrZXl2YWx1ZTogc29ydEJ5SW5kZXhcIiBbYXR0ci5kYXRhLXRlc3RpZF09XCInaW5wdXQtJytpbnB1dC5rZXlcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaW5wdXQtc29ja2V0XCJcbiAgICAgICAgcmVmQ29tcG9uZW50XG4gICAgICAgIFtkYXRhXT1cInt0eXBlOiAnc29ja2V0Jywgc2lkZTogJ2lucHV0Jywga2V5OiBpbnB1dC5rZXksIG5vZGVJZDogZGF0YS5pZCwgcGF5bG9hZDogaW5wdXQudmFsdWU/LnNvY2tldCwgc2VlZDogc2VlZCB9XCJcbiAgICAgICAgW2VtaXRdPVwiZW1pdFwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiaW5wdXQtc29ja2V0XCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LXRpdGxlXCIgZGF0YS10ZXN0aWQ9XCJpbnB1dC10aXRsZVwiICpuZ0lmPVwiIWlucHV0LnZhbHVlPy5jb250cm9sIHx8ICFpbnB1dC52YWx1ZT8uc2hvd0NvbnRyb2xcIj57e2lucHV0LnZhbHVlPy5sYWJlbH19PC9kaXY+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2xcIlxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpbnB1dC52YWx1ZT8uY29udHJvbCAmJiBpbnB1dC52YWx1ZT8uc2hvd0NvbnRyb2wgPyAnJyA6ICdub25lJ1wiXG4gICAgICAgIHJlZkNvbXBvbmVudFxuICAgICAgICBbZGF0YV09XCJ7dHlwZTogJ2NvbnRyb2wnLCBwYXlsb2FkOiBpbnB1dC52YWx1ZT8uY29udHJvbCB9XCJcbiAgICAgICAgW2VtaXRdPVwiZW1pdFwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiaW5wdXQtY29udHJvbFwiXG4gICAgPjwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { Component, Input, HostBinding, ChangeDetectorRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SocketComponent {
4
+ cdr;
5
+ data;
6
+ rendered;
7
+ get title() {
8
+ return this.data.name;
9
+ }
10
+ constructor(cdr) {
11
+ this.cdr = cdr;
12
+ this.cdr.detach();
13
+ }
14
+ ngOnChanges() {
15
+ this.cdr.detectChanges();
16
+ requestAnimationFrame(() => this.rendered());
17
+ }
18
+ static ɵfac = function SocketComponent_Factory(t) { return new (t || SocketComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
19
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SocketComponent, selectors: [["ng-component"]], hostVars: 1, hostBindings: function SocketComponent_HostBindings(rf, ctx) { if (rf & 2) {
20
+ i0.ɵɵhostProperty("title", ctx.title);
21
+ } }, inputs: { data: "data", rendered: "rendered" }, features: [i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function SocketComponent_Template(rf, ctx) { }, styles: ["[_nghost-%COMP%]{display:inline-block;cursor:pointer;border:1px solid white;border-radius:12px;width:24px;height:24px;margin:6px;vertical-align:middle;background:#96b38a;z-index:2;box-sizing:border-box}[_nghost-%COMP%]:hover{border-width:4px}.multiple[_nghost-%COMP%]{border-color:#ff0}.output[_nghost-%COMP%]{margin-right:-12px}.input[_nghost-%COMP%]{margin-left:-12px}"] });
22
+ }
23
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SocketComponent, [{
24
+ type: Component,
25
+ args: [{ template: ``, styles: [":host{display:inline-block;cursor:pointer;border:1px solid white;border-radius:12px;width:24px;height:24px;margin:6px;vertical-align:middle;background:#96b38a;z-index:2;box-sizing:border-box}:host:hover{border-width:4px}:host.multiple{border-color:#ff0}:host.output{margin-right:-12px}:host.input{margin-left:-12px}\n"] }]
26
+ }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { data: [{
27
+ type: Input
28
+ }], rendered: [{
29
+ type: Input
30
+ }], title: [{
31
+ type: HostBinding,
32
+ args: ['title']
33
+ }] }); })();
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTYvLnNyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9zb2NrZXQvc29ja2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQW9CLGlCQUFpQixFQUFhLE1BQU0sZUFBZSxDQUFDOztBQU05RyxNQUFNLE9BQU8sZUFBZTtJQVNOO0lBUlgsSUFBSSxDQUFPO0lBQ1gsUUFBUSxDQUFPO0lBR3hCLElBQTBCLEtBQUs7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBRUQsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDeEIscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDOUMsQ0FBQzt5RUFoQlUsZUFBZTs2REFBZixlQUFlOzs7O3VGQUFmLGVBQWU7Y0FKM0IsU0FBUzsyQkFDRSxFQUFFO29FQUlILElBQUk7a0JBQVosS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFHb0IsS0FBSztrQkFBOUIsV0FBVzttQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3R5bGVVcmxzOiBbJy4vc29ja2V0LmNvbXBvbmVudC5zYXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgU29ja2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YSE6IGFueTtcbiAgQElucHV0KCkgcmVuZGVyZWQhOiBhbnk7XG5cblxuICBASG9zdEJpbmRpbmcoJ3RpdGxlJykgZ2V0IHRpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEubmFtZVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSAge1xuICAgIHRoaXMuY2RyLmRldGFjaCgpXG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5yZW5kZXJlZCgpKVxuICB9XG59XG4iXX0=
@@ -0,0 +1,111 @@
1
+ import { ClassicPreset, getUID } from 'rete';
2
+ import { classicConnectionPath, loopConnectionPath, getDOMSocketPosition } from 'rete-render-utils';
3
+ import { NodeComponent } from './components/node/node.component';
4
+ import { SocketComponent } from './components/socket/socket.component';
5
+ import { ControlComponent } from './components/control/control.component';
6
+ import { ConnectionComponent } from './components/connection/connection.component';
7
+ import { ConnectionWrapperComponent } from './components/connection/connection-wrapper.component';
8
+ export function setup(props) {
9
+ const positionWatcher = typeof props?.socketPositionWatcher === 'undefined'
10
+ ? getDOMSocketPosition() // fix Type instantiation is excessively deep and possibly infinite.
11
+ : props?.socketPositionWatcher;
12
+ const { node, connection, socket, control } = props?.customize || {};
13
+ return {
14
+ attach(plugin) {
15
+ positionWatcher.attach(plugin);
16
+ },
17
+ update(context) {
18
+ const data = context.data.payload;
19
+ if (context.data.type === 'connection') {
20
+ const { start, end } = context.data;
21
+ return {
22
+ data,
23
+ ...(start ? { start } : {}),
24
+ ...(end ? { end } : {}),
25
+ };
26
+ }
27
+ return { data };
28
+ },
29
+ mount(context, plugin) {
30
+ const parent = plugin.parentScope();
31
+ const emit = parent.emit.bind(parent);
32
+ const rendered = () => {
33
+ emit({ type: 'rendered', data: context.data });
34
+ };
35
+ if (context.data.type === 'node') {
36
+ const component = node ? node(context.data) : NodeComponent;
37
+ return {
38
+ key: `node-${context.data.payload.id}`,
39
+ component,
40
+ props: {
41
+ data: context.data.payload,
42
+ emit,
43
+ rendered
44
+ }
45
+ };
46
+ }
47
+ if (context.data.type === 'connection') {
48
+ const component = connection ? connection(context.data) : ConnectionComponent;
49
+ const id = context.data.payload.id;
50
+ const { sourceOutput, targetInput, source, target } = context.data.payload;
51
+ const { start, end, payload } = context.data;
52
+ return {
53
+ key: `connection-${id}`,
54
+ component: ConnectionWrapperComponent,
55
+ props: {
56
+ connectionComponent: component,
57
+ data: payload,
58
+ start: start || ((change) => positionWatcher.listen(source, 'output', sourceOutput, change)),
59
+ end: end || ((change) => positionWatcher.listen(target, 'input', targetInput, change)),
60
+ path: async (start, end) => {
61
+ const response = await plugin.emit({ type: 'connectionpath', data: { payload, points: [start, end] } });
62
+ if (!response)
63
+ return '';
64
+ const { path, points } = response.data;
65
+ const curvature = 0.3;
66
+ if (!path && points.length !== 2)
67
+ throw new Error('cannot render connection with a custom number of points');
68
+ if (!path)
69
+ return payload.isLoop
70
+ ? loopConnectionPath(points, curvature, 120)
71
+ : classicConnectionPath(points, curvature);
72
+ return path;
73
+ },
74
+ rendered
75
+ }
76
+ };
77
+ }
78
+ if (context.data.type === 'socket') {
79
+ const component = socket ? socket(context.data) : SocketComponent;
80
+ return {
81
+ key: `socket-${getUID()}`,
82
+ component,
83
+ props: {
84
+ data: context.data.payload,
85
+ rendered
86
+ }
87
+ };
88
+ }
89
+ if (context.data.type === 'control') {
90
+ const component = control
91
+ ? control(context.data)
92
+ : (context.data.payload instanceof ClassicPreset.InputControl
93
+ ? ControlComponent
94
+ : null);
95
+ if (component) {
96
+ return {
97
+ key: `control-${context.data.payload.id}`,
98
+ component,
99
+ props: {
100
+ data: context.data.payload,
101
+ rendered
102
+ }
103
+ };
104
+ }
105
+ return;
106
+ }
107
+ return;
108
+ }
109
+ };
110
+ }
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uZzE2Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFTLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBeUIsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBaUJsRyxNQUFNLFVBQVUsS0FBSyxDQUNuQixLQUFnQztJQUVoQyxNQUFNLGVBQWUsR0FBRyxPQUFPLEtBQUssRUFBRSxxQkFBcUIsS0FBSyxXQUFXO1FBQ3pFLENBQUMsQ0FBQyxvQkFBb0IsRUFBZ0IsQ0FBQyxvRUFBb0U7UUFDM0csQ0FBQyxDQUFDLEtBQUssRUFBRSxxQkFBcUIsQ0FBQTtJQUNoQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUE7SUFHcEUsT0FBTztRQUNMLE1BQU0sQ0FBQyxNQUFNO1lBQ1gsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFzQyxDQUFDLENBQUE7UUFDaEUsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUFPO1lBQ1osTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7WUFFakMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQTtnQkFFbkMsT0FBTztvQkFDTCxJQUFJO29CQUNKLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN4QixDQUFBO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUE7UUFDakIsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTTtZQUNuQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDbkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDckMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO2dCQUNwQixJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUNoRCxDQUFDLENBQUE7WUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDaEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUE7Z0JBRTNELE9BQU87b0JBQ0wsR0FBRyxFQUFFLFFBQVEsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO29CQUN0QyxTQUFTO29CQUNULEtBQUssRUFBRTt3QkFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPO3dCQUMxQixJQUFJO3dCQUNKLFFBQVE7cUJBQ1Q7aUJBQ0YsQ0FBQTthQUNGO1lBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUU7Z0JBQ3RDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUE7Z0JBQzdFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQTtnQkFDbEMsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO2dCQUMxRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFBO2dCQUU1QyxPQUFPO29CQUNMLEdBQUcsRUFBRSxjQUFjLEVBQUUsRUFBRTtvQkFDdkIsU0FBUyxFQUFFLDBCQUEwQjtvQkFDckMsS0FBSyxFQUFFO3dCQUNMLG1CQUFtQixFQUFFLFNBQVM7d0JBQzlCLElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQzt3QkFDakcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO3dCQUMzRixJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTs0QkFDekIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7NEJBRXZHLElBQUksQ0FBQyxRQUFRO2dDQUFFLE9BQU8sRUFBRSxDQUFBOzRCQUV4QixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7NEJBQ3RDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQTs0QkFFckIsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7Z0NBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFBOzRCQUM1RyxJQUFJLENBQUMsSUFBSTtnQ0FBRSxPQUFPLE9BQU8sQ0FBQyxNQUFNO29DQUM5QixDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBOEIsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDO29DQUNwRSxDQUFDLENBQUMscUJBQXFCLENBQUMsTUFBOEIsRUFBRSxTQUFTLENBQUMsQ0FBQTs0QkFFcEUsT0FBTyxJQUFJLENBQUE7d0JBQ2IsQ0FBQzt3QkFDRCxRQUFRO3FCQUNUO2lCQUNGLENBQUE7YUFDRjtZQUNELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUNsQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtnQkFFakUsT0FBTztvQkFDTCxHQUFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsRUFBRTtvQkFDekIsU0FBUztvQkFDVCxLQUFLLEVBQUU7d0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTzt3QkFDMUIsUUFBUTtxQkFDVDtpQkFDRixDQUFBO2FBQ0Y7WUFDRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDbkMsTUFBTSxTQUFTLEdBQUcsT0FBTztvQkFDdkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUN2QixDQUFDLENBQUMsQ0FDQSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sWUFBWSxhQUFhLENBQUMsWUFBWTt3QkFDeEQsQ0FBQyxDQUFDLGdCQUFnQjt3QkFDbEIsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFBO2dCQUVILElBQUksU0FBUyxFQUFFO29CQUNiLE9BQU87d0JBQ0wsR0FBRyxFQUFFLFdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO3dCQUN6QyxTQUFTO3dCQUNULEtBQUssRUFBRTs0QkFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPOzRCQUMxQixRQUFRO3lCQUNUO3FCQUNGLENBQUE7aUJBQ0Y7Z0JBQ0QsT0FBTTthQUNQO1lBQ0QsT0FBTTtRQUNSLENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsYXNzaWNQcmVzZXQsIGdldFVJRCwgU2NvcGUgfSBmcm9tICdyZXRlJztcbmltcG9ydCB7IGNsYXNzaWNDb25uZWN0aW9uUGF0aCwgbG9vcENvbm5lY3Rpb25QYXRoLCBTb2NrZXRQb3NpdGlvbldhdGNoZXIsIGdldERPTVNvY2tldFBvc2l0aW9uIH0gZnJvbSAncmV0ZS1yZW5kZXItdXRpbHMnO1xuaW1wb3J0IHsgQW5ndWxhckFyZWEyRCwgQ2xhc3NpY1NjaGVtZSwgRXh0cmFjdFBheWxvYWQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IE5vZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTb2NrZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc29ja2V0L3NvY2tldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250cm9sL2NvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IENvbm5lY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29ubmVjdGlvbi9jb25uZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24td3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBSZW5kZXJQcmVzZXQgfSBmcm9tICcuLi90eXBlcydcblxudHlwZSBBbmd1bGFyQ29tcG9uZW50ID0gVHlwZTxhbnk+XG50eXBlIEN1c3RvbWl6YXRpb25Qcm9wczxTY2hlbWVzIGV4dGVuZHMgQ2xhc3NpY1NjaGVtZT4gPSB7XG4gIG5vZGU/OiAoZGF0YTogRXh0cmFjdFBheWxvYWQ8U2NoZW1lcywgJ25vZGUnPikgPT4gQW5ndWxhckNvbXBvbmVudCB8IG51bGxcbiAgY29ubmVjdGlvbj86IChkYXRhOiBFeHRyYWN0UGF5bG9hZDxTY2hlbWVzLCAnY29ubmVjdGlvbic+KSA9PiBBbmd1bGFyQ29tcG9uZW50IHwgbnVsbFxuICBzb2NrZXQ/OiAoZGF0YTogRXh0cmFjdFBheWxvYWQ8U2NoZW1lcywgJ3NvY2tldCc+KSA9PiBBbmd1bGFyQ29tcG9uZW50IHwgbnVsbFxuICBjb250cm9sPzogKGRhdGE6IEV4dHJhY3RQYXlsb2FkPFNjaGVtZXMsICdjb250cm9sJz4pID0+IEFuZ3VsYXJDb21wb25lbnQgfCBudWxsXG59XG5cbnR5cGUgQ2xhc3NpY1Byb3BzPFNjaGVtZXMgZXh0ZW5kcyBDbGFzc2ljU2NoZW1lLCBLPiA9IHtcbiAgc29ja2V0UG9zaXRpb25XYXRjaGVyPzogU29ja2V0UG9zaXRpb25XYXRjaGVyPFNjb3BlPG5ldmVyLCBbS10+PlxuICBjdXN0b21pemU/OiBDdXN0b21pemF0aW9uUHJvcHM8U2NoZW1lcz5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwPFNjaGVtZXMgZXh0ZW5kcyBDbGFzc2ljU2NoZW1lLCBLIGV4dGVuZHMgQW5ndWxhckFyZWEyRDxTY2hlbWVzPj4oXG4gIHByb3BzPzogQ2xhc3NpY1Byb3BzPFNjaGVtZXMsIEs+XG4pOiBSZW5kZXJQcmVzZXQ8U2NoZW1lcywgSz4ge1xuICBjb25zdCBwb3NpdGlvbldhdGNoZXIgPSB0eXBlb2YgcHJvcHM/LnNvY2tldFBvc2l0aW9uV2F0Y2hlciA9PT0gJ3VuZGVmaW5lZCdcbiAgICA/IGdldERPTVNvY2tldFBvc2l0aW9uPFNjaGVtZXMsIGFueT4oKSAvLyBmaXggVHlwZSBpbnN0YW50aWF0aW9uIGlzIGV4Y2Vzc2l2ZWx5IGRlZXAgYW5kIHBvc3NpYmx5IGluZmluaXRlLlxuICAgIDogcHJvcHM/LnNvY2tldFBvc2l0aW9uV2F0Y2hlclxuICBjb25zdCB7IG5vZGUsIGNvbm5lY3Rpb24sIHNvY2tldCwgY29udHJvbCB9ID0gcHJvcHM/LmN1c3RvbWl6ZSB8fCB7fVxuXG5cbiAgcmV0dXJuIHtcbiAgICBhdHRhY2gocGx1Z2luKSB7XG4gICAgICBwb3NpdGlvbldhdGNoZXIuYXR0YWNoKHBsdWdpbiBhcyB1bmtub3duIGFzIFNjb3BlPG5ldmVyLCBbS10+KVxuICAgIH0sXG4gICAgdXBkYXRlKGNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmRhdGEucGF5bG9hZFxuXG4gICAgICBpZiAoY29udGV4dC5kYXRhLnR5cGUgPT09ICdjb25uZWN0aW9uJykge1xuICAgICAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IGNvbnRleHQuZGF0YVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICAuLi4oc3RhcnQgPyB7IHN0YXJ0IH0gOiB7fSksXG4gICAgICAgICAgLi4uKGVuZCA/IHsgZW5kIH0gOiB7fSksXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGRhdGEgfVxuICAgIH0sXG4gICAgbW91bnQoY29udGV4dCwgcGx1Z2luKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBwbHVnaW4ucGFyZW50U2NvcGUoKVxuICAgICAgY29uc3QgZW1pdCA9IHBhcmVudC5lbWl0LmJpbmQocGFyZW50KVxuICAgICAgY29uc3QgcmVuZGVyZWQgPSAoKSA9PiB7XG4gICAgICAgIGVtaXQoeyB0eXBlOiAncmVuZGVyZWQnLCBkYXRhOiBjb250ZXh0LmRhdGEgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRleHQuZGF0YS50eXBlID09PSAnbm9kZScpIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gbm9kZSA/IG5vZGUoY29udGV4dC5kYXRhKSA6IE5vZGVDb21wb25lbnRcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogYG5vZGUtJHtjb250ZXh0LmRhdGEucGF5bG9hZC5pZH1gLFxuICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgZGF0YTogY29udGV4dC5kYXRhLnBheWxvYWQsXG4gICAgICAgICAgICBlbWl0LFxuICAgICAgICAgICAgcmVuZGVyZWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb250ZXh0LmRhdGEudHlwZSA9PT0gJ2Nvbm5lY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGNvbm5lY3Rpb24gPyBjb25uZWN0aW9uKGNvbnRleHQuZGF0YSkgOiBDb25uZWN0aW9uQ29tcG9uZW50XG4gICAgICAgIGNvbnN0IGlkID0gY29udGV4dC5kYXRhLnBheWxvYWQuaWRcbiAgICAgICAgY29uc3QgeyBzb3VyY2VPdXRwdXQsIHRhcmdldElucHV0LCBzb3VyY2UsIHRhcmdldCB9ID0gY29udGV4dC5kYXRhLnBheWxvYWRcbiAgICAgICAgY29uc3QgeyBzdGFydCwgZW5kLCBwYXlsb2FkIH0gPSBjb250ZXh0LmRhdGFcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogYGNvbm5lY3Rpb24tJHtpZH1gLFxuICAgICAgICAgIGNvbXBvbmVudDogQ29ubmVjdGlvbldyYXBwZXJDb21wb25lbnQsXG4gICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGNvbm5lY3Rpb25Db21wb25lbnQ6IGNvbXBvbmVudCxcbiAgICAgICAgICAgIGRhdGE6IHBheWxvYWQsXG4gICAgICAgICAgICBzdGFydDogc3RhcnQgfHwgKChjaGFuZ2U6IGFueSkgPT4gcG9zaXRpb25XYXRjaGVyLmxpc3Rlbihzb3VyY2UsICdvdXRwdXQnLCBzb3VyY2VPdXRwdXQsIGNoYW5nZSkpLFxuICAgICAgICAgICAgZW5kOiBlbmQgfHwgKChjaGFuZ2U6IGFueSkgPT4gcG9zaXRpb25XYXRjaGVyLmxpc3Rlbih0YXJnZXQsICdpbnB1dCcsIHRhcmdldElucHV0LCBjaGFuZ2UpKSxcbiAgICAgICAgICAgIHBhdGg6IGFzeW5jIChzdGFydCwgZW5kKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcGx1Z2luLmVtaXQoeyB0eXBlOiAnY29ubmVjdGlvbnBhdGgnLCBkYXRhOiB7IHBheWxvYWQsIHBvaW50czogW3N0YXJ0LCBlbmRdIH0gfSlcblxuICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm4gJydcblxuICAgICAgICAgICAgICBjb25zdCB7IHBhdGgsIHBvaW50cyB9ID0gcmVzcG9uc2UuZGF0YVxuICAgICAgICAgICAgICBjb25zdCBjdXJ2YXR1cmUgPSAwLjNcblxuICAgICAgICAgICAgICBpZiAoIXBhdGggJiYgcG9pbnRzLmxlbmd0aCAhPT0gMikgdGhyb3cgbmV3IEVycm9yKCdjYW5ub3QgcmVuZGVyIGNvbm5lY3Rpb24gd2l0aCBhIGN1c3RvbSBudW1iZXIgb2YgcG9pbnRzJylcbiAgICAgICAgICAgICAgaWYgKCFwYXRoKSByZXR1cm4gcGF5bG9hZC5pc0xvb3BcbiAgICAgICAgICAgICAgICA/IGxvb3BDb25uZWN0aW9uUGF0aChwb2ludHMgYXMgW1Bvc2l0aW9uLCBQb3NpdGlvbl0sIGN1cnZhdHVyZSwgMTIwKVxuICAgICAgICAgICAgICAgIDogY2xhc3NpY0Nvbm5lY3Rpb25QYXRoKHBvaW50cyBhcyBbUG9zaXRpb24sIFBvc2l0aW9uXSwgY3VydmF0dXJlKVxuXG4gICAgICAgICAgICAgIHJldHVybiBwYXRoXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVuZGVyZWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb250ZXh0LmRhdGEudHlwZSA9PT0gJ3NvY2tldCcpIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gc29ja2V0ID8gc29ja2V0KGNvbnRleHQuZGF0YSkgOiBTb2NrZXRDb21wb25lbnRcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogYHNvY2tldC0ke2dldFVJRCgpfWAsXG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBkYXRhOiBjb250ZXh0LmRhdGEucGF5bG9hZCxcbiAgICAgICAgICAgIHJlbmRlcmVkXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29udGV4dC5kYXRhLnR5cGUgPT09ICdjb250cm9sJykge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBjb250cm9sXG4gICAgICAgICAgPyBjb250cm9sKGNvbnRleHQuZGF0YSlcbiAgICAgICAgICA6IChcbiAgICAgICAgICAgIGNvbnRleHQuZGF0YS5wYXlsb2FkIGluc3RhbmNlb2YgQ2xhc3NpY1ByZXNldC5JbnB1dENvbnRyb2xcbiAgICAgICAgICAgICAgPyBDb250cm9sQ29tcG9uZW50XG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgIClcblxuICAgICAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleTogYGNvbnRyb2wtJHtjb250ZXh0LmRhdGEucGF5bG9hZC5pZH1gLFxuICAgICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgZGF0YTogY29udGV4dC5kYXRhLnBheWxvYWQsXG4gICAgICAgICAgICAgIHJlbmRlcmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uZzE2Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlSWQsIENsYXNzaWNQcmVzZXQgYXMgQ2xhc3NpYywgR2V0U2NoZW1lcyB9IGZyb20gJ3JldGUnXG5pbXBvcnQgeyBQb3NpdGlvbiwgUmVuZGVyU2lnbmFsIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbnR5cGUgVW5pb25Ub0ludGVyc2VjdGlvbjxVPiA9IChVIGV4dGVuZHMgYW55ID8gKGs6IFUpID0+IHZvaWQgOiBuZXZlcikgZXh0ZW5kcyAoKGs6IGluZmVyIEkpID0+IHZvaWQpXG4gID8gSVxuICA6IG5ldmVyXG50eXBlIEdldENvbnRyb2xzPFxuICBUIGV4dGVuZHMgQ2xhc3NpY1NjaGVtZVsnTm9kZSddLFxuICBJbnRlcnNlY3Rpb24gPSBVbmlvblRvSW50ZXJzZWN0aW9uPFRbJ2NvbnRyb2xzJ10+XG4+ID0gSW50ZXJzZWN0aW9uW2tleW9mIEludGVyc2VjdGlvbl0gZXh0ZW5kcyBDbGFzc2ljLkNvbnRyb2wgPyBJbnRlcnNlY3Rpb25ba2V5b2YgSW50ZXJzZWN0aW9uXSA6IENsYXNzaWMuQ29udHJvbFxudHlwZSBHZXRTb2NrZXRzPFxuICBUIGV4dGVuZHMgQ2xhc3NpY1NjaGVtZVsnTm9kZSddLFxuICBJbnRlcnNlY3Rpb24gPSBVbmlvblRvSW50ZXJzZWN0aW9uPFRbJ2lucHV0cyddIHwgVFsnb3V0cHV0cyddPixcbiAgVW5pb24gPSBFeGNsdWRlPEludGVyc2VjdGlvbltrZXlvZiBJbnRlcnNlY3Rpb25dLCB1bmRlZmluZWQ+XG4+ID0gVW5pb24gZXh0ZW5kcyB7IHNvY2tldDogYW55IH0gPyBVbmlvblsnc29ja2V0J10gOiBDbGFzc2ljLlNvY2tldFxuXG5cbmV4cG9ydCB0eXBlIFNpZGUgPSAnaW5wdXQnIHwgJ291dHB1dCdcbmV4cG9ydCB0eXBlIEFuZ3VsYXJSZW5kZXJEYXRhPFQgZXh0ZW5kcyBDbGFzc2ljU2NoZW1lPiA9XG4gIHwge1xuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHR5cGU6ICdzb2NrZXQnLFxuICAgIHBheWxvYWQ6IEdldFNvY2tldHM8VFsnTm9kZSddPlxuICAgIG5vZGVJZDogTm9kZUlkXG4gICAgc2lkZTogU2lkZVxuICAgIGtleTogc3RyaW5nXG4gIH1cbiAgfCB7XG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgdHlwZTogJ2NvbnRyb2wnLFxuICAgIHBheWxvYWQ6IEdldENvbnRyb2xzPFRbJ05vZGUnXT5cbiAgfVxuXG5leHBvcnQgdHlwZSBFeHRyYWN0UGF5bG9hZDxUIGV4dGVuZHMgQ2xhc3NpY1NjaGVtZSwgSyBleHRlbmRzIHN0cmluZz4gPSBFeHRyYWN0PEFuZ3VsYXJBcmVhMkQ8VD4sIHsgdHlwZTogJ3JlbmRlcicsIGRhdGE6IHsgdHlwZTogSyB9IH0+WydkYXRhJ11cbmV4cG9ydCB0eXBlIEFuZ3VsYXJBcmVhMkQ8VCBleHRlbmRzIENsYXNzaWNTY2hlbWU+ID1cbiAgfCBSZW5kZXJTaWduYWw8J25vZGUnLCB7IHBheWxvYWQ6IFRbJ05vZGUnXSB9PlxuICB8IFJlbmRlclNpZ25hbDwnY29ubmVjdGlvbicsIHsgcGF5bG9hZDogVFsnQ29ubmVjdGlvbiddLCBzdGFydD86IFBvc2l0aW9uLCBlbmQ/OiBQb3NpdGlvbiB9PlxuICB8IFJlbmRlclNpZ25hbDwnc29ja2V0Jywge1xuICAgIHBheWxvYWQ6IEdldFNvY2tldHM8VFsnTm9kZSddPlxuICAgIG5vZGVJZDogTm9kZUlkXG4gICAgc2lkZTogU2lkZVxuICAgIGtleTogc3RyaW5nXG4gIH0+XG4gIHwgUmVuZGVyU2lnbmFsPCdjb250cm9sJywge1xuICAgIHBheWxvYWQ6IEdldENvbnRyb2xzPFRbJ05vZGUnXT5cbiAgfT5cbiAgfCB7IHR5cGU6ICd1bm1vdW50JywgZGF0YTogeyBlbGVtZW50OiBIVE1MRWxlbWVudCB9IH1cblxuZXhwb3J0IHR5cGUgQ2xhc3NpY1NjaGVtZSA9IEdldFNjaGVtZXM8Q2xhc3NpYy5Ob2RlLCBDbGFzc2ljLkNvbm5lY3Rpb248Q2xhc3NpYy5Ob2RlLCBDbGFzc2ljLk5vZGU+ICYgeyBpc0xvb3A/OiBib29sZWFuIH0+XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './item/item.component';
2
+ export * from './menu/menu.component';
3
+ export * from './search/search.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9uZzE2Ly5zcmMvcHJlc2V0cy9jb250ZXh0LW1lbnUvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYywyQkFBMkIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaXRlbS9pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbWVudS9tZW51LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnXG4iXX0=
@@ -0,0 +1,114 @@
1
+ import { ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
2
+ import { debounce } from '../../debounce';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ function ContextMenuItemComponent_div_1_context_menu_item_1_Template(rf, ctx) { if (rf & 1) {
6
+ const _r4 = i0.ɵɵgetCurrentView();
7
+ i0.ɵɵelementStart(0, "context-menu-item", 3);
8
+ i0.ɵɵlistener("select", function ContextMenuItemComponent_div_1_context_menu_item_1_Template_context_menu_item_select_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r4); const item_r2 = restoredCtx.$implicit; return i0.ɵɵresetView(item_r2.handler()); })("hide", function ContextMenuItemComponent_div_1_context_menu_item_1_Template_context_menu_item_hide_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r5.hide.emit()); });
9
+ i0.ɵɵtext(1);
10
+ i0.ɵɵelementEnd();
11
+ } if (rf & 2) {
12
+ const item_r2 = ctx.$implicit;
13
+ const ctx_r1 = i0.ɵɵnextContext(2);
14
+ i0.ɵɵproperty("delay", ctx_r1.delay);
15
+ i0.ɵɵadvance(1);
16
+ i0.ɵɵtextInterpolate1(" ", item_r2.label, " ");
17
+ } }
18
+ function ContextMenuItemComponent_div_1_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵelementStart(0, "div", 1);
20
+ i0.ɵɵtemplate(1, ContextMenuItemComponent_div_1_context_menu_item_1_Template, 2, 2, "context-menu-item", 2);
21
+ i0.ɵɵelementEnd();
22
+ } if (rf & 2) {
23
+ const ctx_r0 = i0.ɵɵnextContext();
24
+ i0.ɵɵadvance(1);
25
+ i0.ɵɵproperty("ngForOf", ctx_r0.subitems);
26
+ } }
27
+ const _c0 = ["*"];
28
+ export class ContextMenuItemComponent {
29
+ cdr;
30
+ subitems;
31
+ delay;
32
+ select = new EventEmitter();
33
+ hide = new EventEmitter();
34
+ get block() { return true; }
35
+ get hasSubitems() { return this.subitems; }
36
+ click(event) {
37
+ event.stopPropagation();
38
+ this.select.emit();
39
+ this.hide.emit();
40
+ }
41
+ pointerdown(event) {
42
+ event.stopPropagation();
43
+ }
44
+ wheel(event) {
45
+ event.stopPropagation();
46
+ }
47
+ hideSubitems = debounce(() => {
48
+ this.visibleSubitems = false;
49
+ this.cdr.detectChanges();
50
+ });
51
+ visibleSubitems = false;
52
+ pointerover() {
53
+ this.hideSubitems.cancel();
54
+ this.visibleSubitems = true;
55
+ this.cdr.detectChanges();
56
+ }
57
+ pointerleave() {
58
+ this.hideSubitems.call(this.delay);
59
+ this.cdr.detectChanges();
60
+ }
61
+ constructor(cdr) {
62
+ this.cdr = cdr;
63
+ this.cdr.detach();
64
+ }
65
+ static ɵfac = function ContextMenuItemComponent_Factory(t) { return new (t || ContextMenuItemComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
66
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContextMenuItemComponent, selectors: [["context-menu-item"]], hostAttrs: ["data-testid", "context-menu-item"], hostVars: 4, hostBindings: function ContextMenuItemComponent_HostBindings(rf, ctx) { if (rf & 1) {
67
+ i0.ɵɵlistener("click", function ContextMenuItemComponent_click_HostBindingHandler($event) { return ctx.click($event); })("pointerdown", function ContextMenuItemComponent_pointerdown_HostBindingHandler($event) { return ctx.pointerdown($event); })("wheel", function ContextMenuItemComponent_wheel_HostBindingHandler($event) { return ctx.wheel($event); })("pointerover", function ContextMenuItemComponent_pointerover_HostBindingHandler() { return ctx.pointerover(); })("pointerleave", function ContextMenuItemComponent_pointerleave_HostBindingHandler() { return ctx.pointerleave(); });
68
+ } if (rf & 2) {
69
+ i0.ɵɵclassProp("block", ctx.block)("hasSubitems", ctx.hasSubitems);
70
+ } }, inputs: { subitems: "subitems", delay: "delay" }, outputs: { select: "select", hide: "hide" }, ngContentSelectors: _c0, decls: 2, vars: 1, consts: [["class", "subitems", 4, "ngIf"], [1, "subitems"], [3, "delay", "select", "hide", 4, "ngFor", "ngForOf"], [3, "delay", "select", "hide"]], template: function ContextMenuItemComponent_Template(rf, ctx) { if (rf & 1) {
71
+ i0.ɵɵprojectionDef();
72
+ i0.ɵɵprojection(0);
73
+ i0.ɵɵtemplate(1, ContextMenuItemComponent_div_1_Template, 2, 1, "div", 0);
74
+ } if (rf & 2) {
75
+ i0.ɵɵadvance(1);
76
+ i0.ɵɵproperty("ngIf", ctx.subitems && ctx.visibleSubitems);
77
+ } }, dependencies: [i1.NgForOf, i1.NgIf, ContextMenuItemComponent], styles: ["@charset \"UTF-8\";.hasSubitems[_nghost-%COMP%]:after{content:\"\\25ba\";position:absolute;opacity:.6;right:5px;top:5px;font-family:initial}.subitems[_ngcontent-%COMP%]{position:absolute;top:0;left:100%;width:120px}", ".block[_ngcontent-%COMP%]{display:block;color:#fff;padding:4px;border-bottom:1px solid rgba(69,103,255,.8);background-color:#6e88ffcc;cursor:pointer;width:100%;position:relative}.block[_ngcontent-%COMP%]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.block[_ngcontent-%COMP%]:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.block[_ngcontent-%COMP%]:hover{background-color:#8299ffcc}"] });
78
+ }
79
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextMenuItemComponent, [{
80
+ type: Component,
81
+ args: [{ selector: 'context-menu-item', host: {
82
+ 'data-testid': 'context-menu-item'
83
+ }, template: "<ng-content></ng-content>\n<div class=\"subitems\" *ngIf=\"subitems && visibleSubitems\">\n <context-menu-item *ngFor=\"let item of subitems\" [delay]=\"delay\" (select)=\"item.handler()\" (hide)=\"hide.emit()\">\n {{ item.label }}\n </context-menu-item>\n</div>\n", styles: ["@charset \"UTF-8\";:host(.hasSubitems):after{content:\"\\25ba\";position:absolute;opacity:.6;right:5px;top:5px;font-family:initial}.subitems{position:absolute;top:0;left:100%;width:120px}\n", ".block{display:block;color:#fff;padding:4px;border-bottom:1px solid rgba(69,103,255,.8);background-color:#6e88ffcc;cursor:pointer;width:100%;position:relative}.block:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.block:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.block:hover{background-color:#8299ffcc}\n"] }]
84
+ }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { subitems: [{
85
+ type: Input
86
+ }], delay: [{
87
+ type: Input
88
+ }], select: [{
89
+ type: Output
90
+ }], hide: [{
91
+ type: Output
92
+ }], block: [{
93
+ type: HostBinding,
94
+ args: ['class.block']
95
+ }], hasSubitems: [{
96
+ type: HostBinding,
97
+ args: ['class.hasSubitems']
98
+ }], click: [{
99
+ type: HostListener,
100
+ args: ['click', ['$event']]
101
+ }], pointerdown: [{
102
+ type: HostListener,
103
+ args: ['pointerdown', ['$event']]
104
+ }], wheel: [{
105
+ type: HostListener,
106
+ args: ['wheel', ['$event']]
107
+ }], pointerover: [{
108
+ type: HostListener,
109
+ args: ['pointerover']
110
+ }], pointerleave: [{
111
+ type: HostListener,
112
+ args: ['pointerleave']
113
+ }] }); })();
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZzE2Ly5zcmMvcHJlc2V0cy9jb250ZXh0LW1lbnUvY29tcG9uZW50cy9pdGVtL2l0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbmcxNi8uc3JjL3ByZXNldHMvY29udGV4dC1tZW51L2NvbXBvbmVudHMvaXRlbS9pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVySCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0lDQXhDLDRDQUFnSDtJQUEvQyw4TkFBVSxlQUFBLGlCQUFjLENBQUEsSUFBQyxzTEFBUyxlQUFBLGtCQUFXLENBQUEsSUFBcEI7SUFDeEYsWUFDRjtJQUFBLGlCQUFvQjs7OztJQUY2QixvQ0FBZTtJQUM5RCxlQUNGO0lBREUsOENBQ0Y7OztJQUhGLDhCQUEwRDtJQUN4RCwyR0FFb0I7SUFDdEIsaUJBQU07OztJQUhnQyxlQUFXO0lBQVgseUNBQVc7OztBRFVqRCxNQUFNLE9BQU8sd0JBQXdCO0lBcUNmO0lBcENYLFFBQVEsQ0FBUztJQUNqQixLQUFLLENBQVM7SUFDYixNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUNsQyxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUUxQyxJQUFnQyxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUEsQ0FBQyxDQUFDO0lBQ3ZELElBQXNDLFdBQVcsS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDO0lBRXpDLEtBQUssQ0FBQyxLQUFpQjtRQUN4RCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFDd0MsV0FBVyxDQUFDLEtBQW1CO1FBQ3RFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0lBQ2tDLEtBQUssQ0FBQyxLQUFpQjtRQUN4RCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzNCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFBO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQyxDQUFDLENBQUE7SUFDRixlQUFlLEdBQUcsS0FBSyxDQUFBO0lBRU0sV0FBVztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUM2QixZQUFZO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ25CLENBQUM7a0ZBdkNVLHdCQUF3Qjs2REFBeEIsd0JBQXdCOytHQUF4QixpQkFBYSxzR0FBYix1QkFBbUIsMEZBQW5CLGlCQUFhLGdHQUFiLGlCQUFhLGtHQUFiLGtCQUFjOzs7OztZQ1ozQixrQkFBeUI7WUFDekIseUVBSU07O1lBSmlCLGVBQWlDO1lBQWpDLDBEQUFpQztpRERXM0Msd0JBQXdCOzt1RkFBeEIsd0JBQXdCO2NBUnBDLFNBQVM7MkJBQ0UsbUJBQW1CLFFBR3ZCO29CQUNKLGFBQWEsRUFBRSxtQkFBbUI7aUJBQ25DO29FQUdRLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDSSxNQUFNO2tCQUFmLE1BQU07WUFDRyxJQUFJO2tCQUFiLE1BQU07WUFFeUIsS0FBSztrQkFBcEMsV0FBVzttQkFBQyxhQUFhO1lBQ1ksV0FBVztrQkFBaEQsV0FBVzttQkFBQyxtQkFBbUI7WUFFRyxLQUFLO2tCQUF2QyxZQUFZO21CQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUtRLFdBQVc7a0JBQW5ELFlBQVk7bUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBR0osS0FBSztrQkFBdkMsWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFVSixXQUFXO2tCQUF2QyxZQUFZO21CQUFDLGFBQWE7WUFLRyxZQUFZO2tCQUF6QyxZQUFZO21CQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJy4uLy4uL2RlYm91bmNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29udGV4dC1tZW51LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2l0ZW0uY29tcG9uZW50LnNhc3MnLCAnLi4vLi4vYmxvY2suc2FzcyddLFxuICBob3N0OiB7XG4gICAgJ2RhdGEtdGVzdGlkJzogJ2NvbnRleHQtbWVudS1pdGVtJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRNZW51SXRlbUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHN1Yml0ZW1zPzogSXRlbVtdXG4gIEBJbnB1dCgpIGRlbGF5ITogbnVtYmVyXG4gIEBPdXRwdXQoKSBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBoaWRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYmxvY2snKSBnZXQgYmxvY2soKSB7IHJldHVybiB0cnVlIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXNTdWJpdGVtcycpIGdldCBoYXNTdWJpdGVtcygpIHsgcmV0dXJuIHRoaXMuc3ViaXRlbXMgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgY2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHRoaXMuc2VsZWN0LmVtaXQoKVxuICAgIHRoaXMuaGlkZS5lbWl0KClcbiAgfVxuICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicsIFsnJGV2ZW50J10pIHBvaW50ZXJkb3duKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ3doZWVsJywgWyckZXZlbnQnXSkgd2hlZWwoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICB9XG5cbiAgaGlkZVN1Yml0ZW1zID0gZGVib3VuY2UoKCkgPT4ge1xuICAgIHRoaXMudmlzaWJsZVN1Yml0ZW1zID0gZmFsc2VcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfSlcbiAgdmlzaWJsZVN1Yml0ZW1zID0gZmFsc2VcblxuICBASG9zdExpc3RlbmVyKCdwb2ludGVyb3ZlcicpIHBvaW50ZXJvdmVyKCkge1xuICAgIHRoaXMuaGlkZVN1Yml0ZW1zLmNhbmNlbCgpXG4gICAgdGhpcy52aXNpYmxlU3ViaXRlbXMgPSB0cnVlXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbiAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmxlYXZlJykgcG9pbnRlcmxlYXZlKCkge1xuICAgIHRoaXMuaGlkZVN1Yml0ZW1zLmNhbGwodGhpcy5kZWxheSlcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuY2RyLmRldGFjaCgpXG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJzdWJpdGVtc1wiICpuZ0lmPVwic3ViaXRlbXMgJiYgdmlzaWJsZVN1Yml0ZW1zXCI+XG4gIDxjb250ZXh0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdWJpdGVtc1wiIFtkZWxheV09XCJkZWxheVwiIChzZWxlY3QpPVwiaXRlbS5oYW5kbGVyKClcIiAoaGlkZSk9XCJoaWRlLmVtaXQoKVwiPlxuICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgPC9jb250ZXh0LW1lbnUtaXRlbT5cbjwvZGl2PlxuIl19