@logicflow/extension 1.2.27 → 2.0.0-beta.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 (615) hide show
  1. package/.turbo/turbo-build.log +734 -0
  2. package/CHANGELOG.md +1916 -0
  3. package/LICENSE +206 -0
  4. package/README.md +1 -2
  5. package/__test__/bpmn-adapter.test.js +227 -0
  6. package/dist/index.css +215 -0
  7. package/dist/index.js +26 -0
  8. package/dist/index.js.map +1 -0
  9. package/es/NodeResize/BasicShape/Ellipse.d.ts +3 -0
  10. package/es/NodeResize/BasicShape/Ellipse.js +19 -0
  11. package/es/NodeResize/BasicShape/Ellipse.js.map +1 -0
  12. package/es/NodeResize/BasicShape/Polygon.d.ts +1 -9
  13. package/es/NodeResize/BasicShape/Polygon.js +3 -2
  14. package/es/NodeResize/BasicShape/Polygon.js.map +1 -0
  15. package/es/NodeResize/BasicShape/Rect.d.ts +6 -4
  16. package/es/NodeResize/BasicShape/Rect.js +5 -5
  17. package/es/NodeResize/BasicShape/Rect.js.map +1 -0
  18. package/es/NodeResize/control/Control.d.ts +47 -0
  19. package/es/NodeResize/{Control → control}/Control.js +108 -61
  20. package/es/NodeResize/control/Control.js.map +1 -0
  21. package/es/NodeResize/{Control → control}/ControlGroup.d.ts +3 -4
  22. package/es/NodeResize/{Control → control}/ControlGroup.js +9 -8
  23. package/es/NodeResize/control/ControlGroup.js.map +1 -0
  24. package/es/NodeResize/{Control → control}/Util.js +18 -9
  25. package/es/NodeResize/control/Util.js.map +1 -0
  26. package/es/NodeResize/index.d.ts +4 -7
  27. package/es/NodeResize/index.js +11 -26
  28. package/es/NodeResize/index.js.map +1 -0
  29. package/es/NodeResize/node/DiamondResize.d.ts +44 -0
  30. package/es/NodeResize/{Node → node}/DiamondResize.js +28 -16
  31. package/es/NodeResize/node/DiamondResize.js.map +1 -0
  32. package/es/NodeResize/node/EllipseResize.d.ts +44 -0
  33. package/es/NodeResize/{Node → node}/EllipseResize.js +26 -12
  34. package/es/NodeResize/node/EllipseResize.js.map +1 -0
  35. package/es/NodeResize/node/HtmlResize.d.ts +35 -0
  36. package/es/NodeResize/{Node → node}/HtmlResize.js +26 -12
  37. package/es/NodeResize/node/HtmlResize.js.map +1 -0
  38. package/es/NodeResize/node/RectResize.d.ts +58 -0
  39. package/es/NodeResize/{Node → node}/RectResize.js +27 -16
  40. package/es/NodeResize/node/RectResize.js.map +1 -0
  41. package/es/NodeResize/node/index.d.ts +4 -0
  42. package/es/NodeResize/node/index.js +5 -0
  43. package/es/NodeResize/node/index.js.map +1 -0
  44. package/es/bpmn/constant.d.ts +2 -26
  45. package/es/bpmn/constant.js +1 -0
  46. package/es/bpmn/constant.js.map +1 -0
  47. package/es/bpmn/events/EndEvent.d.ts +6 -7
  48. package/es/bpmn/events/EndEvent.js +10 -8
  49. package/es/bpmn/events/EndEvent.js.map +1 -0
  50. package/es/bpmn/events/StartEvent.d.ts +2 -2
  51. package/es/bpmn/events/StartEvent.js +7 -6
  52. package/es/bpmn/events/StartEvent.js.map +1 -0
  53. package/es/bpmn/events/index.d.ts +2 -0
  54. package/es/bpmn/events/index.js +3 -0
  55. package/es/bpmn/events/index.js.map +1 -0
  56. package/es/bpmn/flow/SequenceFlow.d.ts +3 -4
  57. package/es/bpmn/flow/SequenceFlow.js +9 -7
  58. package/es/bpmn/flow/SequenceFlow.js.map +1 -0
  59. package/es/bpmn/flow/index.d.ts +1 -0
  60. package/es/bpmn/flow/index.js +2 -0
  61. package/es/bpmn/flow/index.js.map +1 -0
  62. package/es/bpmn/gateways/ExclusiveGateway.d.ts +7 -7
  63. package/es/bpmn/gateways/ExclusiveGateway.js +14 -10
  64. package/es/bpmn/gateways/ExclusiveGateway.js.map +1 -0
  65. package/es/bpmn/gateways/index.d.ts +1 -0
  66. package/es/bpmn/gateways/index.js +2 -0
  67. package/es/bpmn/gateways/index.js.map +1 -0
  68. package/es/bpmn/getBpmnId.js +2 -3
  69. package/es/bpmn/getBpmnId.js.map +1 -0
  70. package/es/bpmn/index.d.ts +4 -6
  71. package/es/bpmn/index.js +5 -8
  72. package/es/bpmn/index.js.map +1 -0
  73. package/es/bpmn/tasks/ServiceTask.d.ts +6 -7
  74. package/es/bpmn/tasks/ServiceTask.js +10 -9
  75. package/es/bpmn/tasks/ServiceTask.js.map +1 -0
  76. package/es/bpmn/tasks/UserTask.d.ts +6 -7
  77. package/es/bpmn/tasks/UserTask.js +10 -9
  78. package/es/bpmn/tasks/UserTask.js.map +1 -0
  79. package/es/bpmn/tasks/index.d.ts +2 -0
  80. package/es/bpmn/tasks/index.js +3 -0
  81. package/es/bpmn/tasks/index.js.map +1 -0
  82. package/es/bpmn-adapter/bpmnIds.d.ts +6 -0
  83. package/es/bpmn-adapter/bpmnIds.js +9 -9
  84. package/es/bpmn-adapter/bpmnIds.js.map +1 -0
  85. package/es/bpmn-adapter/index.d.ts +44 -7
  86. package/es/bpmn-adapter/index.js +27 -16
  87. package/es/bpmn-adapter/index.js.map +1 -0
  88. package/es/bpmn-adapter/json2xml.js +22 -22
  89. package/es/bpmn-adapter/json2xml.js.map +1 -0
  90. package/es/bpmn-adapter/xml2json.js +1 -0
  91. package/es/bpmn-adapter/xml2json.js.map +1 -0
  92. package/es/bpmn-elements/index.js +2 -3
  93. package/es/bpmn-elements/index.js.map +1 -0
  94. package/es/bpmn-elements/presets/Event/EndEventFactory.js +25 -17
  95. package/es/bpmn-elements/presets/Event/EndEventFactory.js.map +1 -0
  96. package/es/bpmn-elements/presets/Event/IntermediateCatchEvent.js +23 -13
  97. package/es/bpmn-elements/presets/Event/IntermediateCatchEvent.js.map +1 -0
  98. package/es/bpmn-elements/presets/Event/IntermediateThrowEvent.js +23 -14
  99. package/es/bpmn-elements/presets/Event/IntermediateThrowEvent.js.map +1 -0
  100. package/es/bpmn-elements/presets/Event/StartEventFactory.js +23 -15
  101. package/es/bpmn-elements/presets/Event/StartEventFactory.js.map +1 -0
  102. package/es/bpmn-elements/presets/Event/boundaryEventFactory.js +22 -12
  103. package/es/bpmn-elements/presets/Event/boundaryEventFactory.js.map +1 -0
  104. package/es/bpmn-elements/presets/Event/index.js +1 -0
  105. package/es/bpmn-elements/presets/Event/index.js.map +1 -0
  106. package/es/bpmn-elements/presets/Flow/index.js +1 -0
  107. package/es/bpmn-elements/presets/Flow/index.js.map +1 -0
  108. package/es/bpmn-elements/presets/Flow/manhattan.d.ts +39 -0
  109. package/es/bpmn-elements/presets/Flow/manhattan.js +636 -0
  110. package/es/bpmn-elements/presets/Flow/manhattan.js.map +1 -0
  111. package/es/bpmn-elements/presets/Flow/sequenceFlow.js +7 -7
  112. package/es/bpmn-elements/presets/Flow/sequenceFlow.js.map +1 -0
  113. package/es/bpmn-elements/presets/Gateway/gateway.d.ts +5 -0
  114. package/es/bpmn-elements/presets/Gateway/gateway.js +10 -11
  115. package/es/bpmn-elements/presets/Gateway/gateway.js.map +1 -0
  116. package/es/bpmn-elements/presets/Gateway/index.js +1 -0
  117. package/es/bpmn-elements/presets/Gateway/index.js.map +1 -0
  118. package/es/bpmn-elements/presets/Pool/Lane.d.ts +31 -0
  119. package/es/bpmn-elements/presets/Pool/Lane.js +217 -0
  120. package/es/bpmn-elements/presets/Pool/Lane.js.map +1 -0
  121. package/es/bpmn-elements/presets/Pool/Pool.d.ts +32 -0
  122. package/es/bpmn-elements/presets/Pool/Pool.js +298 -0
  123. package/es/bpmn-elements/presets/Pool/Pool.js.map +1 -0
  124. package/es/bpmn-elements/presets/Pool/index.d.ts +4 -0
  125. package/es/bpmn-elements/presets/Pool/index.js +86 -0
  126. package/es/bpmn-elements/presets/Pool/index.js.map +1 -0
  127. package/es/bpmn-elements/presets/Task/index.js +12 -3
  128. package/es/bpmn-elements/presets/Task/index.js.map +1 -0
  129. package/es/bpmn-elements/presets/Task/subProcess.js +22 -16
  130. package/es/bpmn-elements/presets/Task/subProcess.js.map +1 -0
  131. package/es/bpmn-elements/presets/Task/task.js +28 -21
  132. package/es/bpmn-elements/presets/Task/task.js.map +1 -0
  133. package/es/bpmn-elements/presets/icons.d.ts +4 -3
  134. package/es/bpmn-elements/presets/icons.js +1 -0
  135. package/es/bpmn-elements/presets/icons.js.map +1 -0
  136. package/es/bpmn-elements/utils.d.ts +1 -1
  137. package/es/bpmn-elements/utils.js +8 -7
  138. package/es/bpmn-elements/utils.js.map +1 -0
  139. package/es/bpmn-elements-adapter/constant.js +1 -0
  140. package/es/bpmn-elements-adapter/constant.js.map +1 -0
  141. package/es/bpmn-elements-adapter/index.d.ts +6 -6
  142. package/es/bpmn-elements-adapter/index.js +52 -39
  143. package/es/bpmn-elements-adapter/index.js.map +1 -0
  144. package/es/bpmn-elements-adapter/json2xml.js +8 -7
  145. package/es/bpmn-elements-adapter/json2xml.js.map +1 -0
  146. package/es/bpmn-elements-adapter/xml2json.js +13 -11
  147. package/es/bpmn-elements-adapter/xml2json.js.map +1 -0
  148. package/es/components/context-menu/index.d.ts +9 -3
  149. package/es/components/context-menu/index.js +85 -70
  150. package/es/components/context-menu/index.js.map +1 -0
  151. package/es/components/control/index.d.ts +13 -15
  152. package/es/components/control/index.js +20 -10
  153. package/es/components/control/index.js.map +1 -0
  154. package/es/components/dnd-panel/index.d.ts +10 -9
  155. package/es/components/dnd-panel/index.js +15 -7
  156. package/es/components/dnd-panel/index.js.map +1 -0
  157. package/es/components/highlight/index.d.ts +4 -4
  158. package/es/components/highlight/index.js +23 -17
  159. package/es/components/highlight/index.js.map +1 -0
  160. package/es/components/menu/index.d.ts +7 -7
  161. package/es/components/menu/index.js +195 -155
  162. package/es/components/menu/index.js.map +1 -0
  163. package/es/components/mini-map/index.d.ts +196 -48
  164. package/es/components/mini-map/index.js +372 -290
  165. package/es/components/mini-map/index.js.map +1 -0
  166. package/es/components/selection-select/index.d.ts +17 -26
  167. package/es/components/selection-select/index.js +76 -64
  168. package/es/components/selection-select/index.js.map +1 -0
  169. package/es/index.css +215 -0
  170. package/es/index.js +1 -1
  171. package/es/index.js.map +1 -0
  172. package/es/index.less +1 -0
  173. package/es/insert-node-in-polyline/edge.d.ts +3 -2
  174. package/es/insert-node-in-polyline/edge.js +20 -8
  175. package/es/insert-node-in-polyline/edge.js.map +1 -0
  176. package/es/insert-node-in-polyline/index.d.ts +7 -7
  177. package/es/insert-node-in-polyline/index.js +18 -10
  178. package/es/insert-node-in-polyline/index.js.map +1 -0
  179. package/es/materials/curved-edge/__test__/curved-edge.test.d.ts +1 -0
  180. package/es/materials/curved-edge/__test__/curved-edge.test.js +19 -0
  181. package/es/materials/curved-edge/__test__/curved-edge.test.js.map +1 -0
  182. package/es/materials/curved-edge/index.d.ts +2 -2
  183. package/es/materials/curved-edge/index.js +12 -9
  184. package/es/materials/curved-edge/index.js.map +1 -0
  185. package/es/materials/group/GroupNode.d.ts +22 -20
  186. package/es/materials/group/GroupNode.js +90 -58
  187. package/es/materials/group/GroupNode.js.map +1 -0
  188. package/es/materials/group/index.d.ts +28 -30
  189. package/es/materials/group/index.js +153 -112
  190. package/es/materials/group/index.js.map +1 -0
  191. package/es/materials/node-selection/index.d.ts +28 -0
  192. package/es/materials/node-selection/index.js +297 -0
  193. package/es/materials/node-selection/index.js.map +1 -0
  194. package/es/mindmap/fakerRoot.d.ts +13 -0
  195. package/es/mindmap/fakerRoot.js +41 -0
  196. package/es/mindmap/fakerRoot.js.map +1 -0
  197. package/es/mindmap/index.d.ts +41 -0
  198. package/es/mindmap/index.js +314 -0
  199. package/es/mindmap/index.js.map +1 -0
  200. package/es/mindmap/markContent.d.ts +17 -0
  201. package/es/mindmap/markContent.js +91 -0
  202. package/es/mindmap/markContent.js.map +1 -0
  203. package/es/mindmap/markContentOption.d.ts +17 -0
  204. package/es/mindmap/markContentOption.js +92 -0
  205. package/es/mindmap/markContentOption.js.map +1 -0
  206. package/es/mindmap/markEntity.d.ts +17 -0
  207. package/es/mindmap/markEntity.js +92 -0
  208. package/es/mindmap/markEntity.js.map +1 -0
  209. package/es/mindmap/markRoot.d.ts +17 -0
  210. package/es/mindmap/markRoot.js +93 -0
  211. package/es/mindmap/markRoot.js.map +1 -0
  212. package/es/mindmap/theme.d.ts +10 -0
  213. package/es/mindmap/theme.js +12 -0
  214. package/es/mindmap/theme.js.map +1 -0
  215. package/es/rect-label-node/RectLabelNodeView.d.ts +5 -0
  216. package/es/rect-label-node/RectLabelNodeView.js +54 -0
  217. package/es/rect-label-node/RectLabelNodeView.js.map +1 -0
  218. package/es/rect-label-node/index.d.ts +5 -0
  219. package/es/rect-label-node/index.js +14 -0
  220. package/es/rect-label-node/index.js.map +1 -0
  221. package/es/style/index.css +53 -60
  222. package/es/style/index.less +255 -0
  223. package/es/style/raw.d.ts +4 -0
  224. package/es/style/raw.js +6 -0
  225. package/es/style/raw.js.map +1 -0
  226. package/es/tools/auto-layout/index.js +8 -4
  227. package/es/tools/auto-layout/index.js.map +1 -0
  228. package/es/tools/flow-path/index.d.ts +8 -8
  229. package/es/tools/flow-path/index.js +51 -36
  230. package/es/tools/flow-path/index.js.map +1 -0
  231. package/es/tools/snapshot/index.d.ts +4 -5
  232. package/es/tools/snapshot/index.js +41 -29
  233. package/es/tools/snapshot/index.js.map +1 -0
  234. package/es/turbo-adapter/index.d.ts +4 -14
  235. package/es/turbo-adapter/index.js +17 -14
  236. package/es/turbo-adapter/index.js.map +1 -0
  237. package/jest.config.js +198 -0
  238. package/lib/NodeResize/BasicShape/Ellipse.d.ts +3 -0
  239. package/lib/NodeResize/BasicShape/Ellipse.js +21 -0
  240. package/lib/NodeResize/BasicShape/Ellipse.js.map +1 -0
  241. package/lib/NodeResize/BasicShape/Polygon.d.ts +2 -0
  242. package/{cjs → lib}/NodeResize/BasicShape/Polygon.js +3 -2
  243. package/lib/NodeResize/BasicShape/Polygon.js.map +1 -0
  244. package/lib/NodeResize/BasicShape/Rect.d.ts +19 -0
  245. package/{cjs → lib}/NodeResize/BasicShape/Rect.js +5 -5
  246. package/lib/NodeResize/BasicShape/Rect.js.map +1 -0
  247. package/lib/NodeResize/control/Control.d.ts +47 -0
  248. package/{cjs/NodeResize/Control → lib/NodeResize/control}/Control.js +110 -63
  249. package/lib/NodeResize/control/Control.js.map +1 -0
  250. package/lib/NodeResize/control/ControlGroup.d.ts +12 -0
  251. package/{cjs/NodeResize/Control → lib/NodeResize/control}/ControlGroup.js +14 -10
  252. package/lib/NodeResize/control/ControlGroup.js.map +1 -0
  253. package/lib/NodeResize/control/Util.d.ts +33 -0
  254. package/{cjs/NodeResize/Control → lib/NodeResize/control}/Util.js +19 -10
  255. package/lib/NodeResize/control/Util.js.map +1 -0
  256. package/lib/NodeResize/index.d.ts +8 -0
  257. package/lib/NodeResize/index.js +38 -0
  258. package/lib/NodeResize/index.js.map +1 -0
  259. package/lib/NodeResize/node/DiamondResize.d.ts +44 -0
  260. package/{cjs/NodeResize/Node → lib/NodeResize/node}/DiamondResize.js +31 -15
  261. package/lib/NodeResize/node/DiamondResize.js.map +1 -0
  262. package/lib/NodeResize/node/EllipseResize.d.ts +44 -0
  263. package/{cjs/NodeResize/Node → lib/NodeResize/node}/EllipseResize.js +30 -12
  264. package/lib/NodeResize/node/EllipseResize.js.map +1 -0
  265. package/lib/NodeResize/node/HtmlResize.d.ts +35 -0
  266. package/{cjs/NodeResize/Node → lib/NodeResize/node}/HtmlResize.js +30 -12
  267. package/lib/NodeResize/node/HtmlResize.js.map +1 -0
  268. package/lib/NodeResize/node/RectResize.d.ts +58 -0
  269. package/{cjs/NodeResize/Node → lib/NodeResize/node}/RectResize.js +31 -16
  270. package/lib/NodeResize/node/RectResize.js.map +1 -0
  271. package/lib/NodeResize/node/index.d.ts +4 -0
  272. package/lib/NodeResize/node/index.js +21 -0
  273. package/lib/NodeResize/node/index.js.map +1 -0
  274. package/lib/bpmn/constant.d.ts +22 -0
  275. package/{cjs → lib}/bpmn/constant.js +1 -0
  276. package/lib/bpmn/constant.js.map +1 -0
  277. package/lib/bpmn/events/EndEvent.d.ts +20 -0
  278. package/{cjs → lib}/bpmn/events/EndEvent.js +11 -10
  279. package/lib/bpmn/events/EndEvent.js.map +1 -0
  280. package/lib/bpmn/events/StartEvent.d.ts +17 -0
  281. package/{cjs → lib}/bpmn/events/StartEvent.js +9 -8
  282. package/lib/bpmn/events/StartEvent.js.map +1 -0
  283. package/lib/bpmn/events/index.d.ts +2 -0
  284. package/lib/bpmn/events/index.js +19 -0
  285. package/lib/bpmn/events/index.js.map +1 -0
  286. package/lib/bpmn/flow/SequenceFlow.d.ts +14 -0
  287. package/{cjs → lib}/bpmn/flow/SequenceFlow.js +9 -8
  288. package/lib/bpmn/flow/SequenceFlow.js.map +1 -0
  289. package/lib/bpmn/flow/index.d.ts +1 -0
  290. package/lib/bpmn/flow/index.js +18 -0
  291. package/lib/bpmn/flow/index.js.map +1 -0
  292. package/lib/bpmn/gateways/ExclusiveGateway.d.ts +16 -0
  293. package/{cjs → lib}/bpmn/gateways/ExclusiveGateway.js +14 -11
  294. package/lib/bpmn/gateways/ExclusiveGateway.js.map +1 -0
  295. package/lib/bpmn/gateways/index.d.ts +1 -0
  296. package/lib/bpmn/gateways/index.js +18 -0
  297. package/lib/bpmn/gateways/index.js.map +1 -0
  298. package/lib/bpmn/getBpmnId.d.ts +1 -0
  299. package/{cjs → lib}/bpmn/getBpmnId.js +2 -3
  300. package/lib/bpmn/getBpmnId.js.map +1 -0
  301. package/lib/bpmn/index.d.ts +11 -0
  302. package/{cjs → lib}/bpmn/index.js +23 -26
  303. package/lib/bpmn/index.js.map +1 -0
  304. package/lib/bpmn/tasks/ServiceTask.d.ts +16 -0
  305. package/{cjs → lib}/bpmn/tasks/ServiceTask.js +13 -13
  306. package/lib/bpmn/tasks/ServiceTask.js.map +1 -0
  307. package/lib/bpmn/tasks/UserTask.d.ts +16 -0
  308. package/{cjs → lib}/bpmn/tasks/UserTask.js +13 -13
  309. package/lib/bpmn/tasks/UserTask.js.map +1 -0
  310. package/lib/bpmn/tasks/index.d.ts +2 -0
  311. package/lib/bpmn/tasks/index.js +19 -0
  312. package/lib/bpmn/tasks/index.js.map +1 -0
  313. package/lib/bpmn-adapter/bpmnIds.d.ts +7 -0
  314. package/{cjs → lib}/bpmn-adapter/bpmnIds.js +10 -10
  315. package/lib/bpmn-adapter/bpmnIds.js.map +1 -0
  316. package/lib/bpmn-adapter/index.d.ts +100 -0
  317. package/{cjs → lib}/bpmn-adapter/index.js +30 -19
  318. package/lib/bpmn-adapter/index.js.map +1 -0
  319. package/lib/bpmn-adapter/json2xml.d.ts +3 -0
  320. package/{cjs → lib}/bpmn-adapter/json2xml.js +22 -22
  321. package/lib/bpmn-adapter/json2xml.js.map +1 -0
  322. package/lib/bpmn-adapter/xml2json.d.ts +2 -0
  323. package/{cjs → lib}/bpmn-adapter/xml2json.js +1 -0
  324. package/lib/bpmn-adapter/xml2json.js.map +1 -0
  325. package/lib/bpmn-elements/index.d.ts +17 -0
  326. package/{cjs → lib}/bpmn-elements/index.js +26 -11
  327. package/lib/bpmn-elements/index.js.map +1 -0
  328. package/lib/bpmn-elements/presets/Event/EndEventFactory.d.ts +5 -0
  329. package/{cjs → lib}/bpmn-elements/presets/Event/EndEventFactory.js +25 -17
  330. package/lib/bpmn-elements/presets/Event/EndEventFactory.js.map +1 -0
  331. package/lib/bpmn-elements/presets/Event/IntermediateCatchEvent.d.ts +5 -0
  332. package/{cjs → lib}/bpmn-elements/presets/Event/IntermediateCatchEvent.js +23 -13
  333. package/lib/bpmn-elements/presets/Event/IntermediateCatchEvent.js.map +1 -0
  334. package/lib/bpmn-elements/presets/Event/IntermediateThrowEvent.d.ts +5 -0
  335. package/{cjs → lib}/bpmn-elements/presets/Event/IntermediateThrowEvent.js +23 -14
  336. package/lib/bpmn-elements/presets/Event/IntermediateThrowEvent.js.map +1 -0
  337. package/lib/bpmn-elements/presets/Event/StartEventFactory.d.ts +5 -0
  338. package/{cjs → lib}/bpmn-elements/presets/Event/StartEventFactory.js +23 -15
  339. package/lib/bpmn-elements/presets/Event/StartEventFactory.js.map +1 -0
  340. package/lib/bpmn-elements/presets/Event/boundaryEventFactory.d.ts +5 -0
  341. package/{cjs → lib}/bpmn-elements/presets/Event/boundaryEventFactory.js +23 -13
  342. package/lib/bpmn-elements/presets/Event/boundaryEventFactory.js.map +1 -0
  343. package/lib/bpmn-elements/presets/Event/index.d.ts +2 -0
  344. package/{cjs → lib}/bpmn-elements/presets/Event/index.js +6 -5
  345. package/lib/bpmn-elements/presets/Event/index.js.map +1 -0
  346. package/lib/bpmn-elements/presets/Flow/index.d.ts +7 -0
  347. package/{cjs → lib}/bpmn-elements/presets/Flow/index.js +2 -1
  348. package/lib/bpmn-elements/presets/Flow/index.js.map +1 -0
  349. package/lib/bpmn-elements/presets/Flow/manhattan.d.ts +39 -0
  350. package/lib/bpmn-elements/presets/Flow/manhattan.js +641 -0
  351. package/lib/bpmn-elements/presets/Flow/manhattan.js.map +1 -0
  352. package/lib/bpmn-elements/presets/Flow/sequenceFlow.d.ts +5 -0
  353. package/{cjs → lib}/bpmn-elements/presets/Flow/sequenceFlow.js +8 -8
  354. package/lib/bpmn-elements/presets/Flow/sequenceFlow.js.map +1 -0
  355. package/lib/bpmn-elements/presets/Gateway/gateway.d.ts +22 -0
  356. package/{cjs → lib}/bpmn-elements/presets/Gateway/gateway.js +12 -13
  357. package/lib/bpmn-elements/presets/Gateway/gateway.js.map +1 -0
  358. package/lib/bpmn-elements/presets/Gateway/index.d.ts +2 -0
  359. package/{cjs → lib}/bpmn-elements/presets/Gateway/index.js +4 -3
  360. package/lib/bpmn-elements/presets/Gateway/index.js.map +1 -0
  361. package/lib/bpmn-elements/presets/Pool/Lane.d.ts +31 -0
  362. package/lib/bpmn-elements/presets/Pool/Lane.js +219 -0
  363. package/lib/bpmn-elements/presets/Pool/Lane.js.map +1 -0
  364. package/lib/bpmn-elements/presets/Pool/Pool.d.ts +32 -0
  365. package/lib/bpmn-elements/presets/Pool/Pool.js +301 -0
  366. package/lib/bpmn-elements/presets/Pool/Pool.js.map +1 -0
  367. package/lib/bpmn-elements/presets/Pool/index.d.ts +4 -0
  368. package/lib/bpmn-elements/presets/Pool/index.js +95 -0
  369. package/lib/bpmn-elements/presets/Pool/index.js.map +1 -0
  370. package/lib/bpmn-elements/presets/Task/index.d.ts +2 -0
  371. package/{cjs → lib}/bpmn-elements/presets/Task/index.js +15 -6
  372. package/lib/bpmn-elements/presets/Task/index.js.map +1 -0
  373. package/lib/bpmn-elements/presets/Task/subProcess.d.ts +5 -0
  374. package/{cjs → lib}/bpmn-elements/presets/Task/subProcess.js +27 -21
  375. package/lib/bpmn-elements/presets/Task/subProcess.js.map +1 -0
  376. package/lib/bpmn-elements/presets/Task/task.d.ts +12 -0
  377. package/{cjs → lib}/bpmn-elements/presets/Task/task.js +31 -24
  378. package/lib/bpmn-elements/presets/Task/task.js.map +1 -0
  379. package/lib/bpmn-elements/presets/icons.d.ts +26 -0
  380. package/{cjs → lib}/bpmn-elements/presets/icons.js +17 -16
  381. package/lib/bpmn-elements/presets/icons.js.map +1 -0
  382. package/lib/bpmn-elements/utils.d.ts +2 -0
  383. package/{cjs → lib}/bpmn-elements/utils.js +8 -7
  384. package/lib/bpmn-elements/utils.js.map +1 -0
  385. package/lib/bpmn-elements-adapter/constant.d.ts +66 -0
  386. package/{cjs → lib}/bpmn-elements-adapter/constant.js +1 -0
  387. package/lib/bpmn-elements-adapter/constant.js.map +1 -0
  388. package/lib/bpmn-elements-adapter/index.d.ts +103 -0
  389. package/{cjs → lib}/bpmn-elements-adapter/index.js +59 -43
  390. package/lib/bpmn-elements-adapter/index.js.map +1 -0
  391. package/lib/bpmn-elements-adapter/json2xml.d.ts +3 -0
  392. package/{cjs → lib}/bpmn-elements-adapter/json2xml.js +8 -7
  393. package/lib/bpmn-elements-adapter/json2xml.js.map +1 -0
  394. package/lib/bpmn-elements-adapter/xml2json.d.ts +2 -0
  395. package/{cjs → lib}/bpmn-elements-adapter/xml2json.js +13 -11
  396. package/lib/bpmn-elements-adapter/xml2json.js.map +1 -0
  397. package/lib/components/context-menu/index.d.ts +40 -0
  398. package/{cjs → lib}/components/context-menu/index.js +84 -69
  399. package/lib/components/context-menu/index.js.map +1 -0
  400. package/lib/components/control/index.d.ts +24 -0
  401. package/{cjs → lib}/components/control/index.js +19 -9
  402. package/lib/components/control/index.js.map +1 -0
  403. package/lib/components/dnd-panel/index.d.ts +27 -0
  404. package/{cjs → lib}/components/dnd-panel/index.js +14 -6
  405. package/lib/components/dnd-panel/index.js.map +1 -0
  406. package/lib/components/highlight/index.d.ts +21 -0
  407. package/{cjs → lib}/components/highlight/index.js +23 -17
  408. package/lib/components/highlight/index.js.map +1 -0
  409. package/lib/components/menu/index.d.ts +50 -0
  410. package/lib/components/menu/index.js +417 -0
  411. package/lib/components/menu/index.js.map +1 -0
  412. package/lib/components/mini-map/index.d.ts +236 -0
  413. package/lib/components/mini-map/index.js +519 -0
  414. package/lib/components/mini-map/index.js.map +1 -0
  415. package/lib/components/selection-select/index.d.ts +34 -0
  416. package/{cjs → lib}/components/selection-select/index.js +76 -64
  417. package/lib/components/selection-select/index.js.map +1 -0
  418. package/lib/index.css +215 -0
  419. package/lib/index.d.ts +21 -0
  420. package/{cjs → lib}/index.js +7 -3
  421. package/lib/index.js.map +1 -0
  422. package/lib/index.less +1 -0
  423. package/lib/insert-node-in-polyline/edge.d.ts +32 -0
  424. package/{cjs → lib}/insert-node-in-polyline/edge.js +31 -14
  425. package/lib/insert-node-in-polyline/edge.js.map +1 -0
  426. package/lib/insert-node-in-polyline/index.d.ts +28 -0
  427. package/{cjs → lib}/insert-node-in-polyline/index.js +24 -16
  428. package/lib/insert-node-in-polyline/index.js.map +1 -0
  429. package/lib/materials/curved-edge/__test__/curved-edge.test.d.ts +1 -0
  430. package/lib/materials/curved-edge/__test__/curved-edge.test.js +21 -0
  431. package/lib/materials/curved-edge/__test__/curved-edge.test.js.map +1 -0
  432. package/lib/materials/curved-edge/index.d.ts +14 -0
  433. package/{cjs → lib}/materials/curved-edge/index.js +12 -9
  434. package/lib/materials/curved-edge/index.js.map +1 -0
  435. package/lib/materials/group/GroupNode.d.ts +127 -0
  436. package/{cjs → lib}/materials/group/GroupNode.js +95 -62
  437. package/lib/materials/group/GroupNode.js.map +1 -0
  438. package/lib/materials/group/index.d.ts +65 -0
  439. package/{cjs → lib}/materials/group/index.js +171 -114
  440. package/lib/materials/group/index.js.map +1 -0
  441. package/lib/materials/node-selection/index.d.ts +28 -0
  442. package/lib/materials/node-selection/index.js +300 -0
  443. package/lib/materials/node-selection/index.js.map +1 -0
  444. package/lib/mindmap/fakerRoot.d.ts +13 -0
  445. package/lib/mindmap/fakerRoot.js +43 -0
  446. package/lib/mindmap/fakerRoot.js.map +1 -0
  447. package/lib/mindmap/index.d.ts +41 -0
  448. package/lib/mindmap/index.js +320 -0
  449. package/lib/mindmap/index.js.map +1 -0
  450. package/lib/mindmap/markContent.d.ts +17 -0
  451. package/lib/mindmap/markContent.js +93 -0
  452. package/lib/mindmap/markContent.js.map +1 -0
  453. package/lib/mindmap/markContentOption.d.ts +17 -0
  454. package/lib/mindmap/markContentOption.js +95 -0
  455. package/lib/mindmap/markContentOption.js.map +1 -0
  456. package/lib/mindmap/markEntity.d.ts +17 -0
  457. package/lib/mindmap/markEntity.js +94 -0
  458. package/lib/mindmap/markEntity.js.map +1 -0
  459. package/lib/mindmap/markRoot.d.ts +17 -0
  460. package/lib/mindmap/markRoot.js +95 -0
  461. package/lib/mindmap/markRoot.js.map +1 -0
  462. package/lib/mindmap/theme.d.ts +10 -0
  463. package/lib/mindmap/theme.js +15 -0
  464. package/lib/mindmap/theme.js.map +1 -0
  465. package/lib/rect-label-node/RectLabelNodeView.d.ts +5 -0
  466. package/lib/rect-label-node/RectLabelNodeView.js +57 -0
  467. package/lib/rect-label-node/RectLabelNodeView.js.map +1 -0
  468. package/lib/rect-label-node/index.d.ts +5 -0
  469. package/lib/rect-label-node/index.js +17 -0
  470. package/lib/rect-label-node/index.js.map +1 -0
  471. package/lib/style/index.css +53 -60
  472. package/lib/style/index.less +255 -0
  473. package/lib/style/raw.d.ts +4 -0
  474. package/lib/style/raw.js +9 -0
  475. package/lib/style/raw.js.map +1 -0
  476. package/lib/tools/auto-layout/index.d.ts +40 -0
  477. package/{cjs → lib}/tools/auto-layout/index.js +8 -4
  478. package/lib/tools/auto-layout/index.js.map +1 -0
  479. package/lib/tools/flow-path/index.d.ts +47 -0
  480. package/{cjs → lib}/tools/flow-path/index.js +50 -35
  481. package/lib/tools/flow-path/index.js.map +1 -0
  482. package/lib/tools/snapshot/index.d.ts +25 -0
  483. package/{cjs → lib}/tools/snapshot/index.js +42 -30
  484. package/lib/tools/snapshot/index.js.map +1 -0
  485. package/lib/turbo-adapter/index.d.ts +11 -0
  486. package/{cjs → lib}/turbo-adapter/index.js +17 -14
  487. package/lib/turbo-adapter/index.js.map +1 -0
  488. package/package.json +29 -83
  489. package/rollup.config.js +3 -0
  490. package/src/NodeResize/BasicShape/Ellipse.tsx +22 -0
  491. package/src/NodeResize/BasicShape/Polygon.tsx +24 -0
  492. package/src/NodeResize/BasicShape/Rect.tsx +44 -0
  493. package/src/NodeResize/control/Control.tsx +527 -0
  494. package/src/NodeResize/control/ControlGroup.tsx +76 -0
  495. package/src/NodeResize/control/Util.ts +206 -0
  496. package/src/NodeResize/index.ts +22 -0
  497. package/src/NodeResize/node/DiamondResize.tsx +148 -0
  498. package/src/NodeResize/node/EllipseResize.tsx +139 -0
  499. package/src/NodeResize/node/HtmlResize.tsx +124 -0
  500. package/src/NodeResize/node/RectResize.tsx +146 -0
  501. package/src/NodeResize/node/index.ts +4 -0
  502. package/src/bpmn/constant.ts +53 -0
  503. package/src/bpmn/events/EndEvent.ts +73 -0
  504. package/src/bpmn/events/StartEvent.ts +52 -0
  505. package/src/bpmn/events/index.ts +2 -0
  506. package/src/bpmn/flow/SequenceFlow.ts +25 -0
  507. package/src/bpmn/flow/index.ts +1 -0
  508. package/src/bpmn/gateways/ExclusiveGateway.ts +71 -0
  509. package/src/bpmn/gateways/index.ts +1 -0
  510. package/src/bpmn/getBpmnId.ts +31 -0
  511. package/src/bpmn/index.ts +57 -0
  512. package/src/bpmn/tasks/ServiceTask.ts +63 -0
  513. package/src/bpmn/tasks/UserTask.ts +64 -0
  514. package/src/bpmn/tasks/index.ts +2 -0
  515. package/src/bpmn-adapter/bpmnIds.ts +31 -0
  516. package/src/bpmn-adapter/index.ts +596 -0
  517. package/src/bpmn-adapter/json2xml.ts +90 -0
  518. package/src/bpmn-adapter/xml2json.ts +544 -0
  519. package/src/bpmn-elements/README.md +223 -0
  520. package/src/bpmn-elements/__tests__/definition.test.js +72 -0
  521. package/src/bpmn-elements/index.d.ts +26 -0
  522. package/src/bpmn-elements/index.ts +107 -0
  523. package/src/bpmn-elements/presets/Event/EndEventFactory.ts +114 -0
  524. package/src/bpmn-elements/presets/Event/IntermediateCatchEvent.ts +108 -0
  525. package/src/bpmn-elements/presets/Event/IntermediateThrowEvent.ts +109 -0
  526. package/src/bpmn-elements/presets/Event/StartEventFactory.ts +114 -0
  527. package/src/bpmn-elements/presets/Event/boundaryEventFactory.ts +117 -0
  528. package/src/bpmn-elements/presets/Event/index.ts +14 -0
  529. package/src/bpmn-elements/presets/Flow/flow.d.ts +6 -0
  530. package/src/bpmn-elements/presets/Flow/index.ts +8 -0
  531. package/src/bpmn-elements/presets/Flow/manhattan.ts +691 -0
  532. package/src/bpmn-elements/presets/Flow/sequenceFlow.ts +65 -0
  533. package/src/bpmn-elements/presets/Gateway/gateway.ts +107 -0
  534. package/src/bpmn-elements/presets/Gateway/index.ts +23 -0
  535. package/src/bpmn-elements/presets/Pool/Lane.ts +211 -0
  536. package/src/bpmn-elements/presets/Pool/Pool.ts +284 -0
  537. package/src/bpmn-elements/presets/Pool/index.ts +89 -0
  538. package/src/bpmn-elements/presets/Task/index.ts +122 -0
  539. package/src/bpmn-elements/presets/Task/subProcess.ts +190 -0
  540. package/src/bpmn-elements/presets/Task/task.ts +193 -0
  541. package/src/bpmn-elements/presets/icons.ts +155 -0
  542. package/src/bpmn-elements/utils.ts +52 -0
  543. package/src/bpmn-elements-adapter/README.md +295 -0
  544. package/src/bpmn-elements-adapter/__tests__/adapter_in.test.js +526 -0
  545. package/src/bpmn-elements-adapter/__tests__/adapter_out.test.js +569 -0
  546. package/src/bpmn-elements-adapter/constant.ts +76 -0
  547. package/src/bpmn-elements-adapter/index.ts +1134 -0
  548. package/src/bpmn-elements-adapter/json2xml.ts +91 -0
  549. package/src/bpmn-elements-adapter/xml2json.ts +548 -0
  550. package/src/components/context-menu/index.ts +253 -0
  551. package/src/components/control/index.ts +141 -0
  552. package/src/components/dnd-panel/index.ts +129 -0
  553. package/src/components/highlight/index.ts +173 -0
  554. package/src/components/menu/index.ts +435 -0
  555. package/src/components/mini-map/index.ts +666 -0
  556. package/src/components/selection-select/index.ts +184 -0
  557. package/src/index.less +1 -0
  558. package/src/index.ts +22 -0
  559. package/src/insert-node-in-polyline/edge.ts +175 -0
  560. package/src/insert-node-in-polyline/index.ts +187 -0
  561. package/src/materials/curved-edge/__test__/curved-edge.test.ts +43 -0
  562. package/src/materials/curved-edge/index.ts +185 -0
  563. package/src/materials/group/GroupNode.ts +443 -0
  564. package/src/materials/group/index.ts +542 -0
  565. package/src/materials/node-selection/index.ts +271 -0
  566. package/src/mindmap/fakerRoot.ts +19 -0
  567. package/src/mindmap/index.ts +328 -0
  568. package/src/mindmap/markContent.ts +81 -0
  569. package/src/mindmap/markContentOption.ts +81 -0
  570. package/src/mindmap/markEntity.ts +82 -0
  571. package/src/mindmap/markRoot.ts +83 -0
  572. package/src/mindmap/theme.ts +11 -0
  573. package/src/rect-label-node/RectLabelNodeView.ts +33 -0
  574. package/src/rect-label-node/index.ts +15 -0
  575. package/src/style/index.less +255 -0
  576. package/src/style/raw.ts +222 -0
  577. package/src/tools/auto-layout/index.ts +282 -0
  578. package/src/tools/flow-path/index.ts +234 -0
  579. package/src/tools/snapshot/README.md +9 -0
  580. package/src/tools/snapshot/index.ts +275 -0
  581. package/src/turbo-adapter/index.ts +212 -0
  582. package/tsconfig.json +18 -0
  583. package/cjs/NodeResize/index.js +0 -40
  584. package/cjs/components/menu/index.js +0 -377
  585. package/cjs/components/mini-map/index.js +0 -437
  586. package/cjs/style/index.css +0 -222
  587. package/cjs/type/index.js +0 -2
  588. package/es/NodeResize/Control/Control.d.ts +0 -68
  589. package/es/NodeResize/Node/DiamondResize.d.ts +0 -30
  590. package/es/NodeResize/Node/EllipseResize.d.ts +0 -30
  591. package/es/NodeResize/Node/HtmlResize.d.ts +0 -30
  592. package/es/NodeResize/Node/RectResize.d.ts +0 -32
  593. package/es/type/index.d.ts +0 -6
  594. package/es/type/index.js +0 -0
  595. package/lib/AutoLayout.js +0 -1
  596. package/lib/BpmnAdapter.js +0 -1
  597. package/lib/BpmnElement.js +0 -1
  598. package/lib/ContextMenu.js +0 -1
  599. package/lib/Control.js +0 -1
  600. package/lib/CurvedEdge.js +0 -1
  601. package/lib/DndPanel.js +0 -1
  602. package/lib/FlowPath.js +0 -1
  603. package/lib/Group.js +0 -1
  604. package/lib/Highlight.js +0 -1
  605. package/lib/InsertNodeInPolyline.js +0 -1
  606. package/lib/Menu.js +0 -1
  607. package/lib/MiniMap.js +0 -1
  608. package/lib/NodeResize.js +0 -1
  609. package/lib/RectLabelNode.js +0 -1
  610. package/lib/SelectionSelect.js +0 -1
  611. package/lib/Snapshot.js +0 -1
  612. package/lib/TurboAdapter.js +0 -1
  613. package/lib/lfJson2Xml.js +0 -1
  614. package/lib/lfXml2Json.js +0 -1
  615. /package/es/NodeResize/{Control → control}/Util.d.ts +0 -0
@@ -0,0 +1,91 @@
1
+ /* eslint-disable guard-for-in */
2
+ function type(obj: any) {
3
+ return Object.prototype.toString.call(obj);
4
+ }
5
+
6
+ function addSpace(depth: number) {
7
+ return ' '.repeat(depth);
8
+ }
9
+
10
+ function handleAttributes(obj: any): any {
11
+ if (type(obj) === '[object Object]') {
12
+ return Object.keys(obj).reduce((tmp: any, key: string) => {
13
+ let tmpKey = key;
14
+ if (key.charAt(0) === '-') {
15
+ tmpKey = key.substring(1);
16
+ }
17
+ tmp[tmpKey] = handleAttributes(obj[key]);
18
+ return tmp;
19
+ }, {});
20
+ } if (Array.isArray(obj)) {
21
+ return obj.map((item) => handleAttributes(item));
22
+ }
23
+ return obj;
24
+ }
25
+
26
+ function getAttributes(obj: any) {
27
+ let tmp = obj;
28
+ try {
29
+ if (typeof tmp !== 'string') {
30
+ tmp = JSON.parse(obj);
31
+ }
32
+ } catch (error) {
33
+ tmp = JSON.stringify(handleAttributes(obj)).replace(/"/g, '\'');
34
+ }
35
+ return tmp;
36
+ }
37
+
38
+ const tn = '\t\n';
39
+
40
+ // @see issue https://github.com/didi/LogicFlow/issues/718, refactoring of function toXml
41
+ function toXml(obj: any, name: string, depth: number) {
42
+ const frontSpace = addSpace(depth);
43
+ let str = '';
44
+ const prefix = tn + frontSpace;
45
+ if (name === '-json') return '';
46
+ if (name === '#text') {
47
+ return prefix + obj;
48
+ } if (name === '#cdata-section') {
49
+ return `${prefix}<![CDATA[${obj}]]>`;
50
+ } if (name === '#comment') {
51
+ return `${prefix}<!--${obj}-->`;
52
+ }
53
+ if (`${name}`.charAt(0) === '-') {
54
+ return ` ${name.substring(1)}="${getAttributes(obj)}"`;
55
+ }
56
+ if (Array.isArray(obj)) {
57
+ str += obj.map((item) => toXml(item, name, depth + 1)).join('');
58
+ } else if (type(obj) === '[object Object]') {
59
+ const keys = Object.keys(obj);
60
+ let attributes = '';
61
+ let children = obj['-json']
62
+ ? tn + addSpace(depth + 1) + obj['-json']
63
+ : '';
64
+
65
+ str += `${depth === 0 ? '' : prefix}<${name}`;
66
+
67
+ keys.forEach((k) => {
68
+ k.charAt(0) === '-'
69
+ ? (attributes += toXml(obj[k], k, depth + 1))
70
+ : (children += toXml(obj[k], k, depth + 1));
71
+ });
72
+
73
+ str
74
+ += attributes
75
+ + (children !== '' ? `>${children}${prefix}</${name}>` : ' />');
76
+ } else {
77
+ str += `${prefix}<${name}>${obj.toString()}</${name}>`;
78
+ }
79
+
80
+ return str;
81
+ }
82
+
83
+ function lfJson2Xml(obj: any) {
84
+ let xmlStr = '';
85
+ for (const key in obj) {
86
+ xmlStr += toXml(obj[key], key, 0);
87
+ }
88
+ return xmlStr;
89
+ }
90
+
91
+ export { lfJson2Xml, handleAttributes };
@@ -0,0 +1,548 @@
1
+ /* eslint-disable no-continue */
2
+ /* eslint-disable @typescript-eslint/no-this-alias */
3
+ /* eslint-disable @typescript-eslint/naming-convention */
4
+ /* eslint-disable guard-for-in */
5
+ /* eslint-disable func-names */
6
+ // @ts-nocheck
7
+
8
+ import { has } from 'lodash-es'
9
+ // ========================================================================
10
+ // XML.ObjTree -- XML source code from/to JavaScript object like E4X
11
+ // ========================================================================
12
+
13
+ const XML = function () {}
14
+
15
+ // constructor
16
+ XML.ObjTree = function () {
17
+ // @ts-ignore
18
+ return this
19
+ }
20
+
21
+ // class variables
22
+
23
+ XML.ObjTree.VERSION = '0.23'
24
+
25
+ // object prototype
26
+
27
+ XML.ObjTree.prototype.xmlDecl = '<?xml version="1.0" encoding="UTF-8" ?>\n'
28
+ XML.ObjTree.prototype.attr_prefix = '-'
29
+
30
+ // method: parseXML( xmlsource )
31
+
32
+ XML.ObjTree.prototype.parseXML = function (xml) {
33
+ let root
34
+ if (window.DOMParser) {
35
+ const xmldom = new DOMParser()
36
+ // xmldom.async = false; // DOMParser is always sync-mode
37
+ const dom = xmldom.parseFromString(xml, 'application/xml')
38
+ if (!dom) return
39
+ root = dom.documentElement
40
+ } else if (window.ActiveXObject) {
41
+ xmldom = new ActiveXObject('Microsoft.XMLDOM')
42
+ xmldom.async = false
43
+ xmldom.loadXML(xml)
44
+ root = xmldom.documentElement
45
+ }
46
+ if (!root) return
47
+ const data = this.parseDOM(root)
48
+ return data
49
+ }
50
+
51
+ // method: parseHTTP( url, options, callback )
52
+
53
+ XML.ObjTree.prototype.parseHTTP = function (url, options, callback) {
54
+ const myOpt = {}
55
+ for (const key in options) {
56
+ myOpt[key] = options[key] // copy object
57
+ }
58
+ if (!myOpt.method) {
59
+ if (
60
+ typeof myOpt.postBody === 'undefined' &&
61
+ typeof myOpt.postbody === 'undefined' &&
62
+ typeof myOpt.parameters === 'undefined'
63
+ ) {
64
+ myOpt.method = 'get'
65
+ } else {
66
+ myOpt.method = 'post'
67
+ }
68
+ }
69
+ if (callback) {
70
+ myOpt.asynchronous = true // async-mode
71
+ const __this = this
72
+ const __func = callback
73
+ const __save = myOpt.onComplete
74
+ myOpt.onComplete = function (trans) {
75
+ let tree
76
+ if (trans && trans.responseXML && trans.responseXML.documentElement) {
77
+ tree = __this.parseDOM(trans.responseXML.documentElement)
78
+ }
79
+ __func(tree, trans)
80
+ if (__save) __save(trans)
81
+ }
82
+ } else {
83
+ myOpt.asynchronous = false // sync-mode
84
+ }
85
+ let trans
86
+ if (typeof HTTP !== 'undefined' && HTTP.Request) {
87
+ myOpt.uri = url
88
+ const req = new HTTP.Request(myOpt)
89
+ if (req) trans = req.transport
90
+ } else if (typeof Ajax !== 'undefined' && Ajax.Request) {
91
+ const req = new Ajax.Request(url, myOpt)
92
+ if (req) trans = req.transport
93
+ }
94
+ if (callback) return trans
95
+ if (trans && trans.responseXML && trans.responseXML.documentElement) {
96
+ return this.parseDOM(trans.responseXML.documentElement)
97
+ }
98
+ }
99
+
100
+ XML.ObjTree.prototype.parseDOM = function (root) {
101
+ if (!root) return
102
+
103
+ this.__force_array = {}
104
+ if (this.force_array) {
105
+ for (let i = 0; i < this.force_array.length; i++) {
106
+ this.__force_array[this.force_array[i]] = 1
107
+ }
108
+ }
109
+
110
+ let json = this.parseElement(root) // parse root node
111
+ if (this.__force_array[root.nodeName]) {
112
+ json = [json]
113
+ }
114
+ if (root.nodeType !== 11) {
115
+ // DOCUMENT_FRAGMENT_NODE
116
+ const tmp = {}
117
+ tmp[root.nodeName] = json // root nodeName
118
+ json = tmp
119
+ }
120
+ return json
121
+ }
122
+
123
+ // method: parseElement( element )
124
+ /**
125
+ * @reference node type reference https://www.w3schools.com/xml/dom_nodetype.asp
126
+ */
127
+ XML.ObjTree.prototype.parseElement = function (elem) {
128
+ // PROCESSING_INSTRUCTION_NODE
129
+ if (elem.nodeType === 7) {
130
+ return
131
+ }
132
+
133
+ // TEXT_NODE CDATA_SECTION_NODE COMMENT_NODE
134
+ if (elem.nodeType === 3 || elem.nodeType === 4 || elem.nodeType === 8) {
135
+ // eslint-disable-next-line no-control-regex
136
+ const bool = elem.nodeValue.match(/[^\x00-\x20]/)
137
+ if (bool == null) return // ignore white spaces
138
+ return elem.nodeValue
139
+ }
140
+
141
+ let retVal = null
142
+ const cnt = {}
143
+
144
+ if (elem.attributes && elem.attributes.length) {
145
+ retVal = {}
146
+ for (let i = 0; i < elem.attributes.length; i++) {
147
+ let key = elem.attributes[i].nodeName
148
+ if (typeof key !== 'string') continue
149
+ let val = elem.attributes[i].nodeValue
150
+ try {
151
+ val = JSON.parse(elem.attributes[i].nodeValue.replace(/'/g, '"'))
152
+ } catch (error) {
153
+ val = elem.attributes[i].nodeValue
154
+ }
155
+ if (val === null || val === undefined) continue
156
+ key = this.attr_prefix + key
157
+ if (typeof cnt[key] === 'undefined') cnt[key] = 0
158
+ cnt[key]++
159
+ this.addNode(retVal, key, cnt[key], val)
160
+ }
161
+ }
162
+
163
+ // parse child nodes (recursive)
164
+ if (elem.childNodes && elem.childNodes.length) {
165
+ let textOnly = true
166
+ if (retVal) textOnly = false // some attributes exists
167
+ for (let i = 0; i < elem.childNodes.length && textOnly; i++) {
168
+ const nType = elem.childNodes[i].nodeType
169
+ if (nType === 3 || nType === 4 || nType === 8) continue
170
+ textOnly = false
171
+ }
172
+ if (textOnly) {
173
+ if (!retVal) retVal = ''
174
+ for (let i = 0; i < elem.childNodes.length; i++) {
175
+ retVal += elem.childNodes[i].nodeValue
176
+ }
177
+ } else {
178
+ if (!retVal) retVal = {}
179
+ for (let i = 0; i < elem.childNodes.length; i++) {
180
+ const key = elem.childNodes[i].nodeName
181
+ if (typeof key !== 'string') continue
182
+ const val = this.parseElement(elem.childNodes[i])
183
+ if (!val) continue
184
+ if (typeof cnt[key] === 'undefined') cnt[key] = 0
185
+ cnt[key]++
186
+ this.addNode(retVal, key, cnt[key], val)
187
+ }
188
+ }
189
+ } else {
190
+ // @see issue https://github.com/didi/LogicFlow/issues/1068
191
+ // if retVal is null, that means the elem doesn't have any attributes and children,
192
+ // the elem would be like: <a /> or <a></a>, so set retVal to empty object {}
193
+ retVal === null && (retVal = {})
194
+ }
195
+ return retVal
196
+ }
197
+
198
+ // method: addNode( hash, key, count, value )
199
+
200
+ XML.ObjTree.prototype.addNode = function (hash, key, counts, val) {
201
+ if (this.__force_array[key]) {
202
+ if (counts === 1) hash[key] = []
203
+ hash[key][hash[key].length] = val // push
204
+ } else if (counts === 1) {
205
+ // 1st sibling
206
+ hash[key] = val
207
+ } else if (counts === 2) {
208
+ // 2nd sibling
209
+ hash[key] = [hash[key], val]
210
+ } else {
211
+ // 3rd sibling and more
212
+ hash[key][hash[key].length] = val
213
+ }
214
+ }
215
+
216
+ // method: writeXML( tree )
217
+
218
+ XML.ObjTree.prototype.writeXML = function (tree) {
219
+ const xml = this.hash_to_xml(null, tree)
220
+ return this.xmlDecl + xml
221
+ }
222
+
223
+ // method: hash_to_xml( tagName, tree )
224
+
225
+ XML.ObjTree.prototype.hash_to_xml = function (name, tree) {
226
+ const elem = []
227
+ const attr = []
228
+ for (const key in tree) {
229
+ if (!has(tree, key)) continue
230
+ const val = tree[key]
231
+ if (key.charAt(0) !== this.attr_prefix) {
232
+ if (typeof val === 'undefined' || val == null) {
233
+ elem[elem.length] = `<${key} />`
234
+ } else if (typeof val === 'object' && val.constructor === Array) {
235
+ elem[elem.length] = this.array_to_xml(key, val)
236
+ } else if (typeof val === 'object') {
237
+ elem[elem.length] = this.hash_to_xml(key, val)
238
+ } else {
239
+ elem[elem.length] = this.scalar_to_xml(key, val)
240
+ }
241
+ } else {
242
+ attr[attr.length] = ` ${key.substring(1)}="${this.xml_escape(val)}"`
243
+ }
244
+ }
245
+ const jattr = attr.join('')
246
+ let jelem = elem.join('')
247
+ if (typeof name === 'undefined' || name == null) {
248
+ // no tag
249
+ } else if (elem.length > 0) {
250
+ if (jelem.match(/\n/)) {
251
+ jelem = `<${name}${jattr}>\n${jelem}</${name}>\n`
252
+ } else {
253
+ jelem = `<${name}${jattr}>${jelem}</${name}>\n`
254
+ }
255
+ } else {
256
+ jelem = `<${name}${jattr} />\n`
257
+ }
258
+ return jelem
259
+ }
260
+
261
+ // method: array_to_xml( tagName, array )
262
+
263
+ XML.ObjTree.prototype.array_to_xml = function (name, array) {
264
+ const out = []
265
+ for (let i = 0; i < array.length; i++) {
266
+ const val = array[i]
267
+ if (typeof val === 'undefined' || val == null) {
268
+ out[out.length] = `<${name} />`
269
+ } else if (typeof val === 'object' && val.constructor === Array) {
270
+ out[out.length] = this.array_to_xml(name, val)
271
+ } else if (typeof val === 'object') {
272
+ out[out.length] = this.hash_to_xml(name, val)
273
+ } else {
274
+ out[out.length] = this.scalar_to_xml(name, val)
275
+ }
276
+ }
277
+ return out.join('')
278
+ }
279
+
280
+ // method: scalar_to_xml( tagName, text )
281
+
282
+ XML.ObjTree.prototype.scalar_to_xml = function (name, text) {
283
+ if (name === '#text') {
284
+ return this.xml_escape(text)
285
+ }
286
+ return `<${name}>${this.xml_escape(text)}</${name}>\n`
287
+ }
288
+
289
+ // method: xml_escape( text )
290
+
291
+ XML.ObjTree.prototype.xml_escape = function (text) {
292
+ return text
293
+ .replace(/&/g, '&')
294
+ .replace(/</g, '<')
295
+ .replace(/>/g, '>')
296
+ .replace(/"/g, '"')
297
+ }
298
+
299
+ /*
300
+ // ========================================================================
301
+
302
+ =head1 NAME
303
+
304
+ XML.ObjTree -- XML source code from/to JavaScript object like E4X
305
+
306
+ =head1 SYNOPSIS
307
+
308
+ var xotree = new XML.ObjTree();
309
+ var tree1 = {
310
+ root: {
311
+ node: "Hello, World!"
312
+ }
313
+ };
314
+ var xml1 = xotree.writeXML( tree1 ); // object tree to XML source
315
+ alert( "xml1: "+xml1 );
316
+
317
+ var xml2 = '<?xml version="1.0"?><response><error>0</error></response>';
318
+ var tree2 = xotree.parseXML( xml2 ); // XML source to object tree
319
+ alert( "error: "+tree2.response.error );
320
+
321
+ =head1 DESCRIPTION
322
+
323
+ XML.ObjTree class is a parser/generator between XML source code
324
+ and JavaScript object like E4X, ECMAScript for XML.
325
+ This is a JavaScript version of the XML::TreePP module for Perl.
326
+ This also works as a wrapper for XMLHTTPRequest and successor to JKL.ParseXML class
327
+ when this is used with prototype.js or JSAN's HTTP.Request class.
328
+
329
+ =head2 JavaScript object tree format
330
+
331
+ A sample XML source:
332
+
333
+ <?xml version="1.0" encoding="UTF-8"?>
334
+ <family name="Kawasaki">
335
+ <father>Yasuhisa</father>
336
+ <mother>Chizuko</mother>
337
+ <children>
338
+ <girl>Shiori</girl>
339
+ <boy>Yusuke</boy>
340
+ <boy>Kairi</boy>
341
+ </children>
342
+ </family>
343
+
344
+ Its JavaScript object tree like JSON/E4X:
345
+
346
+ {
347
+ 'family': {
348
+ '-name': 'Kawasaki',
349
+ 'father': 'Yasuhisa',
350
+ 'mother': 'Chizuko',
351
+ 'children': {
352
+ 'girl': 'Shiori'
353
+ 'boy': [
354
+ 'Yusuke',
355
+ 'Kairi'
356
+ ]
357
+ }
358
+ }
359
+ };
360
+
361
+ Each elements are parsed into objects:
362
+
363
+ tree.family.father; # the father's given name.
364
+
365
+ Prefix '-' is inserted before every attributes' name.
366
+
367
+ tree.family["-name"]; # this family's family name
368
+
369
+ A array is used because this family has two boys.
370
+
371
+ tree.family.children.boy[0]; # first boy's name
372
+ tree.family.children.boy[1]; # second boy's name
373
+ tree.family.children.girl; # (girl has no other sisters)
374
+
375
+ =head1 METHODS
376
+
377
+ =head2 xotree = new XML.ObjTree()
378
+
379
+ This constructor method returns a new XML.ObjTree object.
380
+
381
+ =head2 xotree.force_array = [ "rdf:li", "item", "-xmlns" ];
382
+
383
+ This property allows you to specify a list of element names
384
+ which should always be forced into an array representation.
385
+ The default value is null, it means that context of the elements
386
+ will determine to make array or to keep it scalar.
387
+
388
+ =head2 xotree.attr_prefix = '@';
389
+
390
+ This property allows you to specify a prefix character which is
391
+ inserted before each attribute names.
392
+ Instead of default prefix '-', E4X-style prefix '@' is also available.
393
+ The default character is '-'.
394
+ Or set '@' to access attribute values like E4X, ECMAScript for XML.
395
+ The length of attr_prefix must be just one character and not be empty.
396
+
397
+ =head2 tree = xotree.parseXML( xmlSrc );
398
+
399
+ This method loads an XML document using the supplied string
400
+ and returns its JavaScript object converted.
401
+
402
+ =head2 tree = xotree.parseDOM( domNode );
403
+
404
+ This method parses a DOM tree (ex. responseXML.documentElement)
405
+ and returns its JavaScript object converted.
406
+
407
+ =head2 tree = xotree.parseHTTP( url, options );
408
+
409
+ This method loads a XML file from remote web server
410
+ and returns its JavaScript object converted.
411
+ XMLHTTPRequest's synchronous mode is always used.
412
+ This mode blocks the process until the response is completed.
413
+
414
+ First argument is a XML file's URL
415
+ which must exist in the same domain as parent HTML file's.
416
+ Cross-domain loading is not available for security reasons.
417
+
418
+ Second argument is options' object which can contains some parameters:
419
+ method, postBody, parameters, onLoading, etc.
420
+
421
+ This method requires JSAN's L<HTTP.Request> class or prototype.js's Ajax.Request class.
422
+
423
+ =head2 xotree.parseHTTP( url, options, callback );
424
+
425
+ If a callback function is set as third argument,
426
+ XMLHTTPRequest's asynchronous mode is used.
427
+
428
+ This mode calls a callback function with XML file's JavaScript object converted
429
+ after the response is completed.
430
+
431
+ =head2 xmlSrc = xotree.writeXML( tree );
432
+
433
+ This method parses a JavaScript object tree
434
+ and returns its XML source generated.
435
+
436
+ =head1 EXAMPLES
437
+
438
+ =head2 Text node and attributes
439
+
440
+ If a element has both of a text node and attributes
441
+ or both of a text node and other child nodes,
442
+ text node's value is moved to a special node named "#text".
443
+
444
+ var xotree = new XML.ObjTree();
445
+ var xmlSrc = '<span class="author">Kawasaki Yusuke</span>';
446
+ var tree = xotree.parseXML( xmlSrc );
447
+ var class = tree.span["-class"]; # attribute
448
+ var name = tree.span["#text"]; # text node
449
+
450
+ =head2 parseHTTP() method with HTTP-GET and sync-mode
451
+
452
+ HTTP/Request.js or prototype.js must be loaded before calling this method.
453
+
454
+ var xotree = new XML.ObjTree();
455
+ var url = "http://example.com/index.html";
456
+ var tree = xotree.parseHTTP( url );
457
+ xotree.attr_prefix = '@'; // E4X-style
458
+ alert( tree.html["@lang"] );
459
+
460
+ This code shows C<lang=""> attribute from a X-HTML source code.
461
+
462
+ =head2 parseHTTP() method with HTTP-POST and async-mode
463
+
464
+ Third argument is a callback function which is called on onComplete.
465
+
466
+ var xotree = new XML.ObjTree();
467
+ var url = "http://example.com/mt-tb.cgi";
468
+ var opts = {
469
+ postBody: "title=...&excerpt=...&url=...&blog_name=..."
470
+ };
471
+ var func = function ( tree ) {
472
+ alert( tree.response.error );
473
+ };
474
+ xotree.parseHTTP( url, opts, func );
475
+
476
+ This code send a track back ping and shows its response code.
477
+
478
+ =head2 Simple RSS reader
479
+
480
+ This is a RSS reader which loads RDF file and displays all items.
481
+
482
+ var xotree = new XML.ObjTree();
483
+ xotree.force_array = [ "rdf:li", "item" ];
484
+ var url = "http://example.com/news-rdf.xml";
485
+ var func = function( tree ) {
486
+ var elem = document.getElementById("rss_here");
487
+ for( var i=0; i<tree["rdf:RDF"].item.length; i++ ) {
488
+ var divTag = document.createElement( "div" );
489
+ var aTag = document.createElement( "a" );
490
+ aTag.href = tree["rdf:RDF"].item[i].link;
491
+ var title = tree["rdf:RDF"].item[i].title;
492
+ var tNode = document.createTextNode( title );
493
+ aTag.appendChild( tNode );
494
+ divTag.appendChild( aTag );
495
+ elem.appendChild( divTag );
496
+ }
497
+ };
498
+ xotree.parseHTTP( url, {}, func );
499
+
500
+ =head2 XML-RPC using writeXML, prototype.js and parseDOM
501
+
502
+ If you wish to use prototype.js's Ajax.Request class by yourself:
503
+
504
+ var xotree = new XML.ObjTree();
505
+ var reqTree = {
506
+ methodCall: {
507
+ methodName: "weblogUpdates.ping",
508
+ params: {
509
+ param: [
510
+ { value: "Kawa.net xp top page" }, // 1st param
511
+ { value: "http://www.kawa.net/" } // 2nd param
512
+ ]
513
+ }
514
+ }
515
+ };
516
+ var reqxml = xotree.writeXML( reqTree ); // JS-Object to XML code
517
+ var url = "http://example.com/xmlrpc";
518
+ var func = function( req ) {
519
+ var resDom = req.responseXML.documentElement;
520
+ xotree.force_array = [ "member" ];
521
+ var resTree = xotree.parseDOM( resDom ); // XML-DOM to JS-Object
522
+ alert( resTree.methodResponse.params.param.value.struct.member[0].value.string );
523
+ };
524
+ var opt = {
525
+ method: "post",
526
+ postBody: reqxml,
527
+ asynchronous: true,
528
+ onComplete: func
529
+ };
530
+ new Ajax.Request( url, opt );
531
+
532
+ =head1 AUTHOR
533
+
534
+ Yusuke Kawasaki http://www.kawa.net/
535
+ =head1 COPYRIGHT AND LICENSE
536
+
537
+ Copyright (c) 2005-2006 Yusuke Kawasaki. All rights reserved.
538
+ This program is free software; you can redistribute it and/or
539
+ modify it under the Artistic license. Or whatever license I choose,
540
+ which I will do instead of keeping this documentation like it is.
541
+
542
+ =cut
543
+ // ========================================================================
544
+ */
545
+
546
+ const lfXml2Json = (xmlData) => new XML.ObjTree().parseXML(xmlData)
547
+
548
+ export { lfXml2Json }