vis.js is a dynamic, browser-based visualization library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

287 lines
7.0 KiB

  1. /**
  2. * __any__
  3. * __type__
  4. */
  5. let string = 'string';
  6. let boolean = 'boolean';
  7. let number = 'number';
  8. let array = 'array';
  9. let object = 'object';
  10. let dom = 'dom';
  11. let fn = 'function';
  12. let undef = 'undefined';
  13. let allOptions = {
  14. canvas: {
  15. width: {string},
  16. height: {string},
  17. __type__: {object}
  18. },
  19. rendering: {
  20. hideEdgesOnDrag: {boolean},
  21. hideNodesOnDrag: {boolean},
  22. __type__: {object}
  23. },
  24. clustering: {},
  25. configuration: {
  26. filter: {boolean,string:['nodes','edges','layout','physics','manipulation','interaction','selection','rendering'],array},
  27. container: {dom},
  28. __type__: {object,string,array,boolean}
  29. },
  30. edges: {
  31. arrows: {
  32. to: {enabled: {boolean}, scaleFactor: {number}, __type__: {object}},
  33. middle: {enabled: {boolean}, scaleFactor: {number}, __type__: {object}},
  34. from: {enabled: {boolean}, scaleFactor: {number}, __type__: {object}},
  35. __type__: {string:['from','to','middle'],object}
  36. },
  37. color: {
  38. color: {string},
  39. highlight: {string},
  40. hover: {string},
  41. inherit: {string:['from','to','both'],boolean},
  42. opacity: {number},
  43. __type__: {object}
  44. },
  45. dashes: {
  46. enabled: {boolean},
  47. pattern: {array},
  48. __type__: {boolean,object}
  49. },
  50. font: {
  51. color: {string},
  52. size: {number}, // px
  53. face: {string},
  54. background: {string},
  55. stroke: {number}, // px
  56. strokeColor: {string},
  57. align: {string:['horizontal','top','middle','bottom']},
  58. __type__: {object}
  59. },
  60. hidden: {boolean},
  61. hoverWidth: {fn,number},
  62. label: {string,undef},
  63. length: {number,undef},
  64. physics: {boolean},
  65. scaling: {
  66. min: {number},
  67. max: {number},
  68. label: {
  69. enabled: {boolean},
  70. min: {number},
  71. max: {number},
  72. maxVisible: {number},
  73. drawThreshold: {number},
  74. __type__: {object,boolean}
  75. },
  76. customScalingFunction: {fn},
  77. __type__: {object}
  78. },
  79. selectionWidth: {fn,number},
  80. selfReferenceSize: {number},
  81. shadow: {
  82. enabled: {boolean},
  83. size: {number},
  84. x: {number},
  85. y: {number},
  86. __type__: {object,boolean}
  87. },
  88. smooth: {
  89. enabled: {boolean},
  90. dynamic: {boolean},
  91. type: {string},
  92. roundness: {number},
  93. __type__: {object,boolean}
  94. },
  95. title: {string, undef},
  96. width: {number},
  97. value: {number, undef},
  98. __type__: {object}
  99. },
  100. groups: {
  101. useDefaultGroups: {boolean},
  102. __any__: ['__ref__','nodes'],
  103. __type__: {object}
  104. },
  105. interaction: {
  106. dragNodes: {boolean},
  107. dragView: {boolean},
  108. zoomView: {boolean},
  109. hoverEnabled: {boolean},
  110. navigationButtons: {boolean},
  111. tooltipDelay: {number},
  112. keyboard: {
  113. enabled: {boolean},
  114. speed: {x: {number}, y: {number}, zoom: {number}, __type__: {object}},
  115. bindToWindow: {boolean},
  116. __type__: {object,boolean}
  117. },
  118. __type__: {object}
  119. },
  120. layout: {
  121. randomSeed: undefined,
  122. hierarchical: {
  123. enabled: {boolean},
  124. levelSeparation: {number},
  125. direction: {string:['UD','DU','LR','RL']}, // UD, DU, LR, RL
  126. sortMethod: {string:['hubsize','directed']}, // hubsize, directed
  127. __type__: {object,boolean}
  128. },
  129. __type__: {object}
  130. },
  131. manipulation: {
  132. enabled: {boolean},
  133. initiallyActive: {boolean},
  134. locale: {string},
  135. locales: {object},
  136. functionality: {
  137. addNode: {boolean},
  138. addEdge: {boolean},
  139. editNode: {boolean},
  140. editEdge: {boolean},
  141. deleteNode: {boolean},
  142. deleteEdge: {boolean},
  143. __type__: {object}
  144. },
  145. handlerFunctions: {
  146. addNode: {fn,undef},
  147. addEdge: {fn,undef},
  148. editNode: {fn,undef},
  149. editEdge: {fn,undef},
  150. deleteNode: {fn,undef},
  151. deleteEdge: {fn,undef},
  152. __type__: {object}
  153. },
  154. controlNodeStyle: ['__ref__','nodes'],
  155. __type__: {object,boolean}
  156. },
  157. nodes: {
  158. borderWidth: {number},
  159. borderWidthSelected: {number,undef},
  160. brokenImage: {string,undef},
  161. color: {
  162. border: {string},
  163. background: {string},
  164. highlight: {
  165. border: {string},
  166. background: {string},
  167. __type__: {object,string}
  168. },
  169. hover: {
  170. border: {string},
  171. background: {string},
  172. __type__: {object,string}
  173. },
  174. __type__: {object,string}
  175. },
  176. fixed: {
  177. x: {boolean},
  178. y: {boolean},
  179. __type__: {object,boolean}
  180. },
  181. font: {
  182. color: {string},
  183. size: {number}, // px
  184. face: {string},
  185. background: {string},
  186. stroke: {number}, // px
  187. strokeColor: {string},
  188. __type__: {object}
  189. },
  190. group: {string,number,undef},
  191. hidden: {boolean},
  192. icon: {
  193. face: {string},
  194. code: {string}, //'\uf007',
  195. size: {number}, //50,
  196. color: {string},
  197. __type__: {object}
  198. },
  199. id: {string, number},
  200. image: {string,undef}, // --> URL
  201. label: {string,undef},
  202. level: {number,undef},
  203. mass: {number},
  204. physics: {boolean},
  205. scaling: {
  206. min: {number},
  207. max: {number},
  208. label: {
  209. enabled: {boolean},
  210. min: {number},
  211. max: {number},
  212. maxVisible: {number},
  213. drawThreshold: {number},
  214. __type__: {object, boolean}
  215. },
  216. customScalingFunction: {fn},
  217. __type__: {object}
  218. },
  219. shadow: {
  220. enabled: {boolean},
  221. size: {number},
  222. x: {number},
  223. y: {number},
  224. __type__: {object,boolean}
  225. },
  226. shape: {string:['ellipse', 'circle', 'database', 'box', 'text','image', 'circularImage','diamond', 'dot', 'star', 'triangle','triangleDown', 'square','icon']},
  227. size: {number},
  228. title: {string,undef},
  229. value: {number,undef},
  230. x: {number},
  231. y: {number},
  232. __type__: {object}
  233. },
  234. physics: {
  235. barnesHut: {
  236. gravitationalConstant: {number},
  237. centralGravity: {number},
  238. springLength: {number},
  239. springConstant: {number},
  240. damping: {number},
  241. __type__: {object}
  242. },
  243. repulsion: {
  244. centralGravity: {number},
  245. springLength: {number},
  246. springConstant: {number},
  247. nodeDistance: {number},
  248. damping: {number},
  249. __type__: {object}
  250. },
  251. hierarchicalRepulsion: {
  252. centralGravity: {number},
  253. springLength: {number},
  254. springConstant: {number},
  255. nodeDistance: {number},
  256. damping: {number},
  257. __type__: {object}
  258. },
  259. maxVelocity: {number},
  260. minVelocity: {number}, // px/s
  261. solver: {string:['barnesHut','repulsion','hierarchicalRepulsion']},
  262. stabilization: {
  263. enabled: {boolean},
  264. iterations: {number}, // maximum number of iteration to stabilize
  265. updateInterval: {number},
  266. onlyDynamicEdges: {boolean},
  267. fit: {boolean},
  268. __type__: {object,boolean}
  269. },
  270. timestep: {number},
  271. __type__: {object,boolean}
  272. },
  273. selection: {
  274. select: {boolean},
  275. selectConnectedEdges: {boolean},
  276. __type__: {object}
  277. },
  278. view: {},
  279. __type__: {object}
  280. };
  281. allOptions.groups.__any__ = allOptions.nodes;
  282. allOptions.manipulation.controlNodeStyle = allOptions.nodes;
  283. export default allOptions;