@visuallyjs/browser-ui 1.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 (427) hide show
  1. package/css/visuallyjs-theme.css +148 -0
  2. package/css/visuallyjs.css +1879 -0
  3. package/js/visuallyjs.browser-ui.cjs.js +143 -0
  4. package/js/visuallyjs.browser-ui.esm.js +143 -0
  5. package/package.json +16 -0
  6. package/types/browser-ui/base-dom-ui-layout-adapter.d.ts +14 -0
  7. package/types/browser-ui/browser-ui.d.ts +95 -0
  8. package/types/browser-ui/browser-util.d.ts +233 -0
  9. package/types/browser-ui/browser-visuallyjs-instance.d.ts +881 -0
  10. package/types/browser-ui/canvas-layout-adapter.d.ts +15 -0
  11. package/types/browser-ui/collicat.d.ts +245 -0
  12. package/types/browser-ui/components/controls/controls-component.d.ts +137 -0
  13. package/types/browser-ui/components/controls/copy-paste-controls-component.d.ts +9 -0
  14. package/types/browser-ui/components/controls/css-classes.d.ts +79 -0
  15. package/types/browser-ui/components/controls/index.d.ts +4 -0
  16. package/types/browser-ui/components/controls/svg-export-component.d.ts +60 -0
  17. package/types/browser-ui/components/edge-type-picker/edge-type-picker.d.ts +37 -0
  18. package/types/browser-ui/components/edge-type-picker/index.d.ts +1 -0
  19. package/types/browser-ui/components/index.d.ts +4 -0
  20. package/types/browser-ui/components/inspector/color-picker-tag.d.ts +32 -0
  21. package/types/browser-ui/components/inspector/definitions.d.ts +114 -0
  22. package/types/browser-ui/components/inspector/edge-type-tag.d.ts +15 -0
  23. package/types/browser-ui/components/inspector/index.d.ts +6 -0
  24. package/types/browser-ui/components/inspector/inspector.d.ts +138 -0
  25. package/types/browser-ui/components/inspector/shape-type-inspector.d.ts +43 -0
  26. package/types/browser-ui/components/inspector/vanilla-inspector.d.ts +39 -0
  27. package/types/browser-ui/components/palette/index.d.ts +2 -0
  28. package/types/browser-ui/components/palette/palette-content-generator.d.ts +14 -0
  29. package/types/browser-ui/components/palette/palette-options.d.ts +159 -0
  30. package/types/browser-ui/components/palette/palette.d.ts +126 -0
  31. package/types/browser-ui/connector-editor.d.ts +65 -0
  32. package/types/browser-ui/connector-editors/anchors.d.ts +31 -0
  33. package/types/browser-ui/connector-editors/css-constants.d.ts +33 -0
  34. package/types/browser-ui/connector-editors/definitions.d.ts +74 -0
  35. package/types/browser-ui/connector-editors/editor-base.d.ts +177 -0
  36. package/types/browser-ui/connector-editors/index.d.ts +52 -0
  37. package/types/browser-ui/connector-editors/util.d.ts +33 -0
  38. package/types/browser-ui/connector-editors-bezier/bezier-editor.d.ts +82 -0
  39. package/types/browser-ui/connector-editors-bezier/css-constants.d.ts +42 -0
  40. package/types/browser-ui/connector-editors-bezier/index.d.ts +9 -0
  41. package/types/browser-ui/connector-editors-orthogonal/css-constants.d.ts +28 -0
  42. package/types/browser-ui/connector-editors-orthogonal/index.d.ts +9 -0
  43. package/types/browser-ui/connector-editors-orthogonal/orthogonal-editor.d.ts +86 -0
  44. package/types/browser-ui/connector-editors-straight/auto-split-mode.d.ts +24 -0
  45. package/types/browser-ui/connector-editors-straight/click-split-mode.d.ts +20 -0
  46. package/types/browser-ui/connector-editors-straight/css-constants.d.ts +30 -0
  47. package/types/browser-ui/connector-editors-straight/definitions.d.ts +69 -0
  48. package/types/browser-ui/connector-editors-straight/index.d.ts +11 -0
  49. package/types/browser-ui/connector-editors-straight/straight-editor.d.ts +42 -0
  50. package/types/browser-ui/constants.d.ts +79 -0
  51. package/types/browser-ui/copy-paste/clipboard.d.ts +34 -0
  52. package/types/browser-ui/copy-paste/index.d.ts +2 -0
  53. package/types/browser-ui/copy-paste/transformer.d.ts +14 -0
  54. package/types/browser-ui/css-constants.d.ts +436 -0
  55. package/types/browser-ui/d.d.ts +2 -0
  56. package/types/browser-ui/definitions.d.ts +442 -0
  57. package/types/browser-ui/dialogs/binder.d.ts +49 -0
  58. package/types/browser-ui/dialogs/constants.d.ts +51 -0
  59. package/types/browser-ui/dialogs/dialogs.d.ts +30 -0
  60. package/types/browser-ui/dialogs/index.d.ts +3 -0
  61. package/types/browser-ui/drag-manager-2.d.ts +54 -0
  62. package/types/browser-ui/edge-handler-base.d.ts +168 -0
  63. package/types/browser-ui/edge-input-handler.d.ts +116 -0
  64. package/types/browser-ui/edge-mappings/flowchart-basic.d.ts +22 -0
  65. package/types/browser-ui/edge-mappings/index.d.ts +1 -0
  66. package/types/browser-ui/edge-relocate-handler.d.ts +51 -0
  67. package/types/browser-ui/element-drag-handler-2.d.ts +254 -0
  68. package/types/browser-ui/element-dragger.d.ts +45 -0
  69. package/types/browser-ui/element-facade.d.ts +11 -0
  70. package/types/browser-ui/event-manager.d.ts +50 -0
  71. package/types/browser-ui/fixed-layer.d.ts +107 -0
  72. package/types/browser-ui/group-layout-adapter.d.ts +19 -0
  73. package/types/browser-ui/html-element-overlay.d.ts +32 -0
  74. package/types/browser-ui/icons/definitions.d.ts +59 -0
  75. package/types/browser-ui/icons/icon-renderer.d.ts +43 -0
  76. package/types/browser-ui/icons/index.d.ts +2 -0
  77. package/types/browser-ui/index.d.ts +48 -0
  78. package/types/browser-ui/pan-zoom-options.d.ts +262 -0
  79. package/types/browser-ui/pan-zoom.d.ts +674 -0
  80. package/types/browser-ui/paper-renderer/definitions.d.ts +83 -0
  81. package/types/browser-ui/paper-renderer/index.d.ts +2 -0
  82. package/types/browser-ui/paper-renderer/paper.d.ts +50 -0
  83. package/types/browser-ui/pinch-listener.d.ts +33 -0
  84. package/types/browser-ui/plugins/background/available-backgrounds.d.ts +12 -0
  85. package/types/browser-ui/plugins/background/background-options.d.ts +62 -0
  86. package/types/browser-ui/plugins/background/background-plugin.d.ts +62 -0
  87. package/types/browser-ui/plugins/background/generated-grid-background.d.ts +230 -0
  88. package/types/browser-ui/plugins/background/index.d.ts +6 -0
  89. package/types/browser-ui/plugins/background/simple-background.d.ts +33 -0
  90. package/types/browser-ui/plugins/background/tiled-background.d.ts +118 -0
  91. package/types/browser-ui/plugins/browser-ui-plugin.d.ts +90 -0
  92. package/types/browser-ui/plugins/edge-routing/index.d.ts +66 -0
  93. package/types/browser-ui/plugins/index.d.ts +5 -0
  94. package/types/browser-ui/plugins/selected-edge-highlight/index.d.ts +1 -0
  95. package/types/browser-ui/plugins/selected-edge-highlight/selected-edge-highlight-plugin.d.ts +36 -0
  96. package/types/browser-ui/plugins/ui-states/index.d.ts +2 -0
  97. package/types/browser-ui/plugins/ui-states/ui-state.d.ts +14 -0
  98. package/types/browser-ui/plugins/ui-states/ui-states-plugin.d.ts +69 -0
  99. package/types/browser-ui/positioning-and-sizing-utils.d.ts +103 -0
  100. package/types/browser-ui/shape-library/index.d.ts +4 -0
  101. package/types/browser-ui/shape-library/shape-library-definitions.d.ts +243 -0
  102. package/types/browser-ui/shape-library/shape-library.d.ts +266 -0
  103. package/types/browser-ui/shape-library/shapes-basic.d.ts +7 -0
  104. package/types/browser-ui/shape-library/shapes-flowchart.d.ts +7 -0
  105. package/types/browser-ui/storage.d.ts +8 -0
  106. package/types/browser-ui/surface-renderer/anim/anim.d.ts +64 -0
  107. package/types/browser-ui/surface-renderer/anim/constants.d.ts +74 -0
  108. package/types/browser-ui/surface-renderer/anim/definitions.d.ts +134 -0
  109. package/types/browser-ui/surface-renderer/anim/index.d.ts +4 -0
  110. package/types/browser-ui/surface-renderer/anim/path-transport.d.ts +23 -0
  111. package/types/browser-ui/surface-renderer/css-classes.d.ts +64 -0
  112. package/types/browser-ui/surface-renderer/decorators.d.ts +162 -0
  113. package/types/browser-ui/surface-renderer/definitions.d.ts +83 -0
  114. package/types/browser-ui/surface-renderer/diagrams/constants.d.ts +28 -0
  115. package/types/browser-ui/surface-renderer/diagrams/definitions.d.ts +528 -0
  116. package/types/browser-ui/surface-renderer/diagrams/diagram-cell.d.ts +123 -0
  117. package/types/browser-ui/surface-renderer/diagrams/diagram-link.d.ts +116 -0
  118. package/types/browser-ui/surface-renderer/diagrams/diagram-palette.d.ts +11 -0
  119. package/types/browser-ui/surface-renderer/diagrams/diagram-tools.d.ts +112 -0
  120. package/types/browser-ui/surface-renderer/diagrams/diagram.d.ts +221 -0
  121. package/types/browser-ui/surface-renderer/diagrams/index.d.ts +25 -0
  122. package/types/browser-ui/surface-renderer/diagrams/mediator.d.ts +59 -0
  123. package/types/browser-ui/surface-renderer/diagrams/util.d.ts +15 -0
  124. package/types/browser-ui/surface-renderer/elastic-group-manager.d.ts +102 -0
  125. package/types/browser-ui/surface-renderer/index.d.ts +34 -0
  126. package/types/browser-ui/surface-renderer/params.d.ts +175 -0
  127. package/types/browser-ui/surface-renderer/plugins/controls/controls-plugin.d.ts +26 -0
  128. package/types/browser-ui/surface-renderer/plugins/controls/index.d.ts +1 -0
  129. package/types/browser-ui/surface-renderer/plugins/drag-groups/drag-groups-plugin.d.ts +78 -0
  130. package/types/browser-ui/surface-renderer/plugins/drag-groups/index.d.ts +1 -0
  131. package/types/browser-ui/surface-renderer/plugins/export-controls/export-controls-plugin.d.ts +25 -0
  132. package/types/browser-ui/surface-renderer/plugins/export-controls/index.d.ts +1 -0
  133. package/types/browser-ui/surface-renderer/plugins/index.d.ts +10 -0
  134. package/types/browser-ui/surface-renderer/plugins/lasso/index.d.ts +2 -0
  135. package/types/browser-ui/surface-renderer/plugins/lasso/lasso-plugin.d.ts +78 -0
  136. package/types/browser-ui/surface-renderer/plugins/lasso/lasso.d.ts +74 -0
  137. package/types/browser-ui/surface-renderer/plugins/miniview/index.d.ts +1 -0
  138. package/types/browser-ui/surface-renderer/plugins/miniview/miniview-plugin.d.ts +235 -0
  139. package/types/browser-ui/surface-renderer/plugins/palette/index.d.ts +1 -0
  140. package/types/browser-ui/surface-renderer/plugins/palette/palette-plugin.d.ts +17 -0
  141. package/types/browser-ui/surface-renderer/plugins/pan-buttons/index.d.ts +1 -0
  142. package/types/browser-ui/surface-renderer/plugins/pan-buttons/pan-buttons-plugin.d.ts +55 -0
  143. package/types/browser-ui/surface-renderer/plugins/resizing-tools/border-drag-handlers.d.ts +3 -0
  144. package/types/browser-ui/surface-renderer/plugins/resizing-tools/definitions.d.ts +411 -0
  145. package/types/browser-ui/surface-renderer/plugins/resizing-tools/drag-handlers.d.ts +3 -0
  146. package/types/browser-ui/surface-renderer/plugins/resizing-tools/handle-gen.d.ts +15 -0
  147. package/types/browser-ui/surface-renderer/plugins/resizing-tools/index.d.ts +4 -0
  148. package/types/browser-ui/surface-renderer/plugins/resizing-tools/resizing-tools-plugin.d.ts +185 -0
  149. package/types/browser-ui/surface-renderer/plugins/resizing-tools/util.d.ts +16 -0
  150. package/types/browser-ui/surface-renderer/plugins/snaplines/index.d.ts +1 -0
  151. package/types/browser-ui/surface-renderer/plugins/snaplines/snaplines-plugin.d.ts +128 -0
  152. package/types/browser-ui/surface-renderer/plugins/vertex-drawing/definitions.d.ts +90 -0
  153. package/types/browser-ui/surface-renderer/plugins/vertex-drawing/index.d.ts +2 -0
  154. package/types/browser-ui/surface-renderer/plugins/vertex-drawing/vertex-drawing-plugin.d.ts +64 -0
  155. package/types/browser-ui/surface-renderer/shape-palette-options.d.ts +127 -0
  156. package/types/browser-ui/surface-renderer/shape-palette.d.ts +55 -0
  157. package/types/browser-ui/surface-renderer/surface-decorator.d.ts +35 -0
  158. package/types/browser-ui/surface-renderer/surface-events.d.ts +9 -0
  159. package/types/browser-ui/surface-renderer/surface-render-options.d.ts +125 -0
  160. package/types/browser-ui/surface-renderer/surface.d.ts +665 -0
  161. package/types/browser-ui/svg-component.d.ts +6 -0
  162. package/types/browser-ui/svg-element-connector.d.ts +16 -0
  163. package/types/browser-ui/svg-element-overlay.d.ts +55 -0
  164. package/types/browser-ui/svg-export/definitions.d.ts +153 -0
  165. package/types/browser-ui/svg-export/image-export-ui.d.ts +20 -0
  166. package/types/browser-ui/svg-export/image-exporter.d.ts +15 -0
  167. package/types/browser-ui/svg-export/index.d.ts +6 -0
  168. package/types/browser-ui/svg-export/svg-export-ui.d.ts +11 -0
  169. package/types/browser-ui/svg-export/svg-exporter.d.ts +8 -0
  170. package/types/browser-ui/svg-export/util.d.ts +23 -0
  171. package/types/browser-ui/svg-util.d.ts +27 -0
  172. package/types/browser-ui/templating/browser-ui-recado.d.ts +48 -0
  173. package/types/browser-ui/templating/custom-tag-definition.d.ts +32 -0
  174. package/types/browser-ui/templating/index.d.ts +11 -0
  175. package/types/browser-ui/templating/recado-template-renderer.d.ts +69 -0
  176. package/types/browser-ui/ui-path.d.ts +57 -0
  177. package/types/browser-ui/util.d.ts +4 -0
  178. package/types/browser-ui/wheel-listener.d.ts +2 -0
  179. package/types/charts/area/area-chart.d.ts +85 -0
  180. package/types/charts/area/index.d.ts +1 -0
  181. package/types/charts/bar-and-column/bar-chart.d.ts +34 -0
  182. package/types/charts/bar-and-column/bar-plot.d.ts +90 -0
  183. package/types/charts/bar-and-column/column-chart.d.ts +35 -0
  184. package/types/charts/bar-and-column/index.d.ts +3 -0
  185. package/types/charts/base-chart.d.ts +395 -0
  186. package/types/charts/base-xy-chart.d.ts +224 -0
  187. package/types/charts/bubble/bubble-chart.d.ts +30 -0
  188. package/types/charts/bubble/definitions.d.ts +32 -0
  189. package/types/charts/bubble/index.d.ts +2 -0
  190. package/types/charts/category-value-chart.d.ts +146 -0
  191. package/types/charts/chart-exporter.d.ts +38 -0
  192. package/types/charts/chart-zoom-controls.d.ts +23 -0
  193. package/types/charts/constants.d.ts +16 -0
  194. package/types/charts/css-classes.d.ts +312 -0
  195. package/types/charts/datasource.d.ts +61 -0
  196. package/types/charts/definitions.d.ts +261 -0
  197. package/types/charts/domain_scale_utilities.d.ts +72 -0
  198. package/types/charts/dual-value-chart.d.ts +60 -0
  199. package/types/charts/gauge/definitions.d.ts +108 -0
  200. package/types/charts/gauge/gauge-chart.d.ts +91 -0
  201. package/types/charts/gauge/index.d.ts +2 -0
  202. package/types/charts/index.d.ts +25 -0
  203. package/types/charts/legend.d.ts +120 -0
  204. package/types/charts/line/index.d.ts +1 -0
  205. package/types/charts/line/line-chart.d.ts +79 -0
  206. package/types/charts/markers.d.ts +13 -0
  207. package/types/charts/pie/index.d.ts +1 -0
  208. package/types/charts/pie/pie-chart.d.ts +146 -0
  209. package/types/charts/plot.d.ts +75 -0
  210. package/types/charts/sankey/index.d.ts +1 -0
  211. package/types/charts/sankey/preprocessor.d.ts +37 -0
  212. package/types/charts/sankey/sankey.d.ts +208 -0
  213. package/types/charts/scatter/definitions.d.ts +6 -0
  214. package/types/charts/scatter/index.d.ts +2 -0
  215. package/types/charts/scatter/scatter-chart.d.ts +16 -0
  216. package/types/charts/series/array-based-series.d.ts +95 -0
  217. package/types/charts/series/collation-series.d.ts +24 -0
  218. package/types/charts/series/definitions.d.ts +52 -0
  219. package/types/charts/series/dual-value-chart-series.d.ts +26 -0
  220. package/types/charts/series/index.d.ts +7 -0
  221. package/types/charts/series/record-based-series.d.ts +58 -0
  222. package/types/charts/series/series.d.ts +66 -0
  223. package/types/charts/series/summing-collation-series.d.ts +31 -0
  224. package/types/charts/series/summing-series.d.ts +19 -0
  225. package/types/charts/series-based-chart.d.ts +59 -0
  226. package/types/charts/tooltip.d.ts +167 -0
  227. package/types/charts/util.d.ts +149 -0
  228. package/types/core/astar/astar-path-finder.d.ts +37 -0
  229. package/types/core/astar/astar-util.d.ts +100 -0
  230. package/types/core/astar/candidate-finder.d.ts +16 -0
  231. package/types/core/astar/candidate-sorter.d.ts +10 -0
  232. package/types/core/astar/definitions.d.ts +185 -0
  233. package/types/core/astar/index.d.ts +3 -0
  234. package/types/core/astar/path-to-segments.d.ts +45 -0
  235. package/types/core/autosaver.d.ts +67 -0
  236. package/types/core/color-generator.d.ts +66 -0
  237. package/types/core/constants.d.ts +181 -0
  238. package/types/core/csv-loader.d.ts +84 -0
  239. package/types/core/datamodel/data-model.d.ts +23 -0
  240. package/types/core/datamodel/vertex-definition.d.ts +40 -0
  241. package/types/core/datasource.d.ts +87 -0
  242. package/types/core/event-constants.d.ts +308 -0
  243. package/types/core/event-generator.d.ts +102 -0
  244. package/types/core/filterable-dataset.d.ts +38 -0
  245. package/types/core/geom.d.ts +278 -0
  246. package/types/core/index.d.ts +39 -0
  247. package/types/core/io.d.ts +106 -0
  248. package/types/core/layout/absolute-layout.d.ts +91 -0
  249. package/types/core/layout/abstract-layout-adapter.d.ts +17 -0
  250. package/types/core/layout/abstract-layout.d.ts +192 -0
  251. package/types/core/layout/circular/circular-layout.d.ts +31 -0
  252. package/types/core/layout/circular/index.d.ts +1 -0
  253. package/types/core/layout/empty-layout.d.ts +17 -0
  254. package/types/core/layout/force-directed/force-directed-layout.d.ts +148 -0
  255. package/types/core/layout/force-directed/index.d.ts +1 -0
  256. package/types/core/layout/grid/definitions.d.ts +81 -0
  257. package/types/core/layout/grid/grid-layout.d.ts +60 -0
  258. package/types/core/layout/grid/index.d.ts +2 -0
  259. package/types/core/layout/hierarchical/abstract-hierarchical-layout.d.ts +90 -0
  260. package/types/core/layout/hierarchical/balloon-layout.d.ts +62 -0
  261. package/types/core/layout/hierarchical/definitions.d.ts +45 -0
  262. package/types/core/layout/hierarchical/hierarchical-layout.d.ts +102 -0
  263. package/types/core/layout/hierarchical/index.d.ts +5 -0
  264. package/types/core/layout/hierarchical/parent-relative-placement.d.ts +96 -0
  265. package/types/core/layout/hierarchy/assign-layers-stage.d.ts +26 -0
  266. package/types/core/layout/hierarchy/crossing-stage.d.ts +78 -0
  267. package/types/core/layout/hierarchy/definitions.d.ts +261 -0
  268. package/types/core/layout/hierarchy/edge-routing.d.ts +25 -0
  269. package/types/core/layout/hierarchy/hierarchy-layout-stage.d.ts +9 -0
  270. package/types/core/layout/hierarchy/hierarchy-layout.d.ts +87 -0
  271. package/types/core/layout/hierarchy/index.d.ts +11 -0
  272. package/types/core/layout/hierarchy/model.d.ts +167 -0
  273. package/types/core/layout/hierarchy/parent-relative-placement.d.ts +69 -0
  274. package/types/core/layout/hierarchy/placement-stage.d.ts +82 -0
  275. package/types/core/layout/hierarchy/util.d.ts +13 -0
  276. package/types/core/layout/hierarchy/vertex-set.d.ts +45 -0
  277. package/types/core/layout/index.d.ts +10 -0
  278. package/types/core/layout/layouts.d.ts +10 -0
  279. package/types/core/magnetizer.d.ts +232 -0
  280. package/types/core/model/anchor.d.ts +38 -0
  281. package/types/core/model/cluster.d.ts +19 -0
  282. package/types/core/model/defs.d.ts +8 -0
  283. package/types/core/model/djikstra.d.ts +26 -0
  284. package/types/core/model/floyd-warshall.d.ts +15 -0
  285. package/types/core/model/graph.d.ts +1166 -0
  286. package/types/core/model/path.d.ts +227 -0
  287. package/types/core/params.d.ts +476 -0
  288. package/types/core/renderer.d.ts +74 -0
  289. package/types/core/router/common.d.ts +104 -0
  290. package/types/core/router/direct-router.d.ts +12 -0
  291. package/types/core/router/index.d.ts +3 -0
  292. package/types/core/router/orthogonal-router.d.ts +46 -0
  293. package/types/core/rtree/definitions.d.ts +24 -0
  294. package/types/core/rtree/hilbert.d.ts +9 -0
  295. package/types/core/rtree/index.d.ts +4 -0
  296. package/types/core/rtree/rtree.d.ts +102 -0
  297. package/types/core/rtree/util.d.ts +55 -0
  298. package/types/core/search/index.d.ts +1 -0
  299. package/types/core/search/visuallyjs-search.d.ts +167 -0
  300. package/types/core/selection.d.ts +394 -0
  301. package/types/core/templates/abstract-entry.d.ts +19 -0
  302. package/types/core/templates/comment-entry.d.ts +11 -0
  303. package/types/core/templates/core.d.ts +162 -0
  304. package/types/core/templates/custom-tag.d.ts +74 -0
  305. package/types/core/templates/defs.d.ts +123 -0
  306. package/types/core/templates/each-entry.d.ts +23 -0
  307. package/types/core/templates/element-entry.d.ts +18 -0
  308. package/types/core/templates/elements.d.ts +14 -0
  309. package/types/core/templates/executions.d.ts +100 -0
  310. package/types/core/templates/expressions.d.ts +47 -0
  311. package/types/core/templates/fake-dom.d.ts +42 -0
  312. package/types/core/templates/headless.d.ts +15 -0
  313. package/types/core/templates/if-entry.d.ts +25 -0
  314. package/types/core/templates/index.d.ts +14 -0
  315. package/types/core/templates/parser.d.ts +84 -0
  316. package/types/core/templates/text-entry.d.ts +17 -0
  317. package/types/core/templates/tmpl-entry.d.ts +13 -0
  318. package/types/core/toolkit.d.ts +1314 -0
  319. package/types/core/undo-redo/compound-action.d.ts +19 -0
  320. package/types/core/undo-redo/edge-action.d.ts +62 -0
  321. package/types/core/undo-redo/group-action.d.ts +60 -0
  322. package/types/core/undo-redo/move-action.d.ts +18 -0
  323. package/types/core/undo-redo/node-group-action.d.ts +62 -0
  324. package/types/core/undo-redo/port-action.d.ts +29 -0
  325. package/types/core/undo-redo/renderer-vertex-removed-action.d.ts +17 -0
  326. package/types/core/undo-redo/set-type-action.d.ts +14 -0
  327. package/types/core/undo-redo/undo-redo.d.ts +203 -0
  328. package/types/core/undo-redo/update-action.d.ts +20 -0
  329. package/types/core/undo-redo/vertex-update-action.d.ts +12 -0
  330. package/types/core/util.d.ts +661 -0
  331. package/types/index.d.ts +16 -0
  332. package/types/l.d.ts +2 -0
  333. package/types/test-support/index.d.ts +1 -0
  334. package/types/test-support/test-support.d.ts +833 -0
  335. package/types/ui/common/abstract-segment.d.ts +88 -0
  336. package/types/ui/common/anchor.d.ts +280 -0
  337. package/types/ui/common/connector.d.ts +106 -0
  338. package/types/ui/common/index.d.ts +5 -0
  339. package/types/ui/common/overlay.d.ts +117 -0
  340. package/types/ui/common/paint-style.d.ts +33 -0
  341. package/types/ui/connector-bezier/abstract-bezier-connector.d.ts +68 -0
  342. package/types/ui/connector-bezier/bezier-connector.d.ts +34 -0
  343. package/types/ui/connector-bezier/bezier-segment.d.ts +31 -0
  344. package/types/ui/connector-bezier/bezier.d.ts +129 -0
  345. package/types/ui/connector-bezier/index.d.ts +6 -0
  346. package/types/ui/connector-bezier/operations.d.ts +18 -0
  347. package/types/ui/connector-bezier/quadratic-bezier-connector.d.ts +35 -0
  348. package/types/ui/connector-orthogonal/default-orthogonal-path-compute.d.ts +11 -0
  349. package/types/ui/connector-orthogonal/definitions.d.ts +120 -0
  350. package/types/ui/connector-orthogonal/index.d.ts +7 -0
  351. package/types/ui/connector-orthogonal/modern-source-target-relocator.d.ts +37 -0
  352. package/types/ui/connector-orthogonal/operations.d.ts +49 -0
  353. package/types/ui/connector-orthogonal/stub-calculators.d.ts +12 -0
  354. package/types/ui/connector-orthogonal/utils.d.ts +134 -0
  355. package/types/ui/connector-orthogonal/vertex-avoidance.d.ts +29 -0
  356. package/types/ui/connector-straight/index.d.ts +2 -0
  357. package/types/ui/connector-straight/operations.d.ts +55 -0
  358. package/types/ui/connector-straight/straight-connector.d.ts +121 -0
  359. package/types/ui/copy-paste/clipboard.d.ts +45 -0
  360. package/types/ui/copy-paste/copy-data.d.ts +93 -0
  361. package/types/ui/copy-paste/index.d.ts +2 -0
  362. package/types/ui/core/callbacks.d.ts +48 -0
  363. package/types/ui/core/component/component.d.ts +115 -0
  364. package/types/ui/core/connector/abstract-connector.d.ts +66 -0
  365. package/types/ui/core/connector/arc-segment.d.ts +39 -0
  366. package/types/ui/core/connector/connection-impl.d.ts +81 -0
  367. package/types/ui/core/connector/connections.d.ts +113 -0
  368. package/types/ui/core/connector/connectors.d.ts +205 -0
  369. package/types/ui/core/connector/operations.d.ts +0 -0
  370. package/types/ui/core/connector/segments.d.ts +24 -0
  371. package/types/ui/core/connector/straight-segment.d.ts +32 -0
  372. package/types/ui/core/constants.d.ts +181 -0
  373. package/types/ui/core/context.d.ts +26 -0
  374. package/types/ui/core/core-events.d.ts +7 -0
  375. package/types/ui/core/core.d.ts +1734 -0
  376. package/types/ui/core/css-constants.d.ts +149 -0
  377. package/types/ui/core/defaults.d.ts +242 -0
  378. package/types/ui/core/definitions.d.ts +540 -0
  379. package/types/ui/core/event-constants.d.ts +510 -0
  380. package/types/ui/core/factory/anchor-record-factory.d.ts +17 -0
  381. package/types/ui/core/factory/continuous-anchors.d.ts +27 -0
  382. package/types/ui/core/factory/overlay-factory.d.ts +8 -0
  383. package/types/ui/core/grid-profile.d.ts +28 -0
  384. package/types/ui/core/group-collapse-expand.d.ts +23 -0
  385. package/types/ui/core/group-sizer.d.ts +9 -0
  386. package/types/ui/core/index.d.ts +45 -0
  387. package/types/ui/core/magnetize-profile.d.ts +82 -0
  388. package/types/ui/core/overlay/arrow-overlay.d.ts +34 -0
  389. package/types/ui/core/overlay/custom-overlay.d.ts +38 -0
  390. package/types/ui/core/overlay/diamond-overlay.d.ts +14 -0
  391. package/types/ui/core/overlay/dot-overlay.d.ts +54 -0
  392. package/types/ui/core/overlay/ellipse-overlay.d.ts +60 -0
  393. package/types/ui/core/overlay/label-overlay.d.ts +37 -0
  394. package/types/ui/core/overlay/overlay.d.ts +131 -0
  395. package/types/ui/core/overlay/plain-arrow-overlay.d.ts +15 -0
  396. package/types/ui/core/overlay/rectangle-overlay.d.ts +66 -0
  397. package/types/ui/core/params.d.ts +223 -0
  398. package/types/ui/core/router/astar-path-finder.d.ts +29 -0
  399. package/types/ui/core/router/base-router.d.ts +100 -0
  400. package/types/ui/core/router/default-router.d.ts +38 -0
  401. package/types/ui/core/router/index.d.ts +5 -0
  402. package/types/ui/core/router/router-utils.d.ts +118 -0
  403. package/types/ui/core/router/router.d.ts +30 -0
  404. package/types/ui/core/type-descriptors.d.ts +83 -0
  405. package/types/ui/core/ui-model.d.ts +65 -0
  406. package/types/ui/core/view/common-options.d.ts +15 -0
  407. package/types/ui/core/view/edge-options.d.ts +126 -0
  408. package/types/ui/core/view/events.d.ts +159 -0
  409. package/types/ui/core/view/group-options.d.ts +75 -0
  410. package/types/ui/core/view/index.d.ts +35 -0
  411. package/types/ui/core/view/node-options.d.ts +20 -0
  412. package/types/ui/core/view/node-or-port-options.d.ts +28 -0
  413. package/types/ui/core/view/port-options.d.ts +51 -0
  414. package/types/ui/core/view/vertex-options.d.ts +28 -0
  415. package/types/ui/core/viewport.d.ts +297 -0
  416. package/types/ui/index.d.ts +9 -0
  417. package/types/ui/plugins/definitions.d.ts +118 -0
  418. package/types/ui/plugins/index.d.ts +2 -0
  419. package/types/ui/plugins/plugins.d.ts +7 -0
  420. package/types/ui/property-mappings/definitions.d.ts +28 -0
  421. package/types/ui/property-mappings/index.d.ts +2 -0
  422. package/types/ui/property-mappings/property-mapper.d.ts +16 -0
  423. package/types/ui/util/index.d.ts +3 -0
  424. package/types/ui/util/property-tracker.d.ts +8 -0
  425. package/types/ui/util/svg-constants.d.ts +111 -0
  426. package/types/ui/util/util.d.ts +69 -0
  427. package/types/version.d.ts +1 -0
@@ -0,0 +1,128 @@
1
+ import { VisuallyJSDOMElement } from "../../../element-facade";
2
+ import { BOTTOM, CENTER, H, LEFT, RIGHT, TOP, V } from "../../../../core";
3
+ import { Surface } from "../../surface";
4
+ import { PanZoom } from "../../../pan-zoom";
5
+ import { ViewportElement } from "../../../../ui";
6
+ import { BrowserElement } from "../../../util";
7
+ import { BaseBrowserUIPlugin, BrowserUIPlugin, BrowserUIPluginOptions } from "../../../plugins";
8
+ /**
9
+ * Options for the {@link SnaplinesPlugin}
10
+ * @group Plugins
11
+ * @category Snaplines
12
+ */
13
+ export interface SnaplinesPluginOptions extends BrowserUIPluginOptions {
14
+ /**
15
+ * The tolerance either side of a snapline inside which an element must be before the snapline is activated. Defaults to 10 pixels (either side of the line).
16
+ */
17
+ tolerance?: number;
18
+ /**
19
+ * Whether or not to show center snaplines. Defaults to true.
20
+ */
21
+ showCenters?: boolean;
22
+ /**
23
+ * Whether or not to show edge snaplines. Defaults to true.
24
+ */
25
+ showEdges?: boolean;
26
+ /**
27
+ * Defaults to true. If false, you can start the plugin in disabled mode.
28
+ */
29
+ enabled?: boolean;
30
+ }
31
+ interface SnapRange {
32
+ start: number;
33
+ end: number;
34
+ objId: string;
35
+ line: VisuallyJSDOMElement;
36
+ el: VisuallyJSDOMElement;
37
+ orientation: typeof H | typeof V;
38
+ }
39
+ interface VerticalSnapRange extends SnapRange {
40
+ position: typeof TOP | typeof CENTER | typeof BOTTOM;
41
+ }
42
+ interface HorizontalSnapRange extends SnapRange {
43
+ position: typeof LEFT | typeof CENTER | typeof RIGHT;
44
+ }
45
+ /**
46
+ * Assigned to both horizontal and vertical snaplines when active
47
+ * @cssClass
48
+ * @context snaplines
49
+ */
50
+ export declare const CLASS_SNAPLINE = "vjs-snapline";
51
+ /**
52
+ * Assigned to vertical snaplines when active
53
+ * @cssClass
54
+ * @context snaplines
55
+ */
56
+ export declare const CLASS_SNAPLINE_VERTICAL = "vjs-snapline-vertical";
57
+ /**
58
+ * Assigned to horizontal snaplines when active
59
+ * @cssClass
60
+ * @context snaplines
61
+ */
62
+ export declare const CLASS_SNAPLINE_HORIZONTAL = "vjs-snapline-horizontal";
63
+ /**
64
+ * Assigned to both horizontal and vertical snaplines when the elements are exactly aligned
65
+ * @cssClass
66
+ * @context snaplines
67
+ */
68
+ export declare const CLASS_SNAPLINE_EXACT = "vjs-snapline-exact";
69
+ /**
70
+ * Assigned to an element attached to an active snapline
71
+ * @cssClass
72
+ * @context snaplines
73
+ */
74
+ export declare const CLASS_SNAPLINE_ACTIVE = "vjs-snapline-active";
75
+ /**
76
+ * Assigned to an element attached to an active snapline and the elements on the snapline are exactly aligned (parsed to integers).
77
+ * @cssClass
78
+ * @context snaplines
79
+ */
80
+ export declare const CLASS_SNAPLINE_ACTIVE_EXACT = "vjs-snapline-active-exact";
81
+ /**
82
+ * Shows snaplines when objects are being dragged.
83
+ * @group Plugins
84
+ * @category Snaplines
85
+ */
86
+ export declare class SnaplinesPlugin extends BaseBrowserUIPlugin implements BrowserUIPlugin<SnaplinesPluginOptions> {
87
+ static type: string;
88
+ id: "snaplines";
89
+ /** @internal */
90
+ surface: Surface;
91
+ /** @internal */
92
+ panZoom: PanZoom;
93
+ /** @internal */
94
+ tolerance: number;
95
+ /** @internal */
96
+ showCenters: boolean;
97
+ /** @internal */
98
+ showEdges: boolean;
99
+ /** @internal */
100
+ verticalRanges: Array<VerticalSnapRange>;
101
+ /** @internal */
102
+ horizontalRanges: Array<HorizontalSnapRange>;
103
+ /** @internal */
104
+ selectedRanges: Array<SnapRange>;
105
+ /** @internal */
106
+ focus: ViewportElement<BrowserElement>;
107
+ private enabled;
108
+ setEnabled(e: boolean): void;
109
+ /**
110
+ * @internal
111
+ * @param surface
112
+ * @param options
113
+ */
114
+ initialise(surface: Surface, options: SnaplinesPluginOptions): boolean;
115
+ private _activateRange;
116
+ private _clearSelectedRanges;
117
+ private _createHorizontal;
118
+ private _createVertical;
119
+ /**
120
+ * @internal
121
+ */
122
+ destroy(): void;
123
+ /**
124
+ * @internal
125
+ */
126
+ reset(): void;
127
+ }
128
+ export {};
@@ -0,0 +1,90 @@
1
+ import { PointXY, Size, Node, Group, ObjectData, Vertex } from "../../../../core";
2
+ import { BrowserElement } from "../../../util";
3
+ import { BrowserUIPluginOptions } from "../../../plugins";
4
+ /**
5
+ * Added to the lasso used by the vertex drawing plugin.
6
+ * @group Plugins
7
+ * @category Vertex Drawing
8
+ * @constant
9
+ */
10
+ export declare const CLASS_VERTEX_DRAWING_LASSO = "vjs-vertex-drawing-lasso";
11
+ /**
12
+ * Added to any groups/nodes which have been lassoed by the current drawing operation and will be added to the new group being drawn
13
+ * @group Plugins
14
+ * @category Vertex Drawing
15
+ */
16
+ export declare const CLASS_VERTEX_DRAWING_GROUP_CHILD_CANDIDATE = "vjs-group-candidate-child";
17
+ /**
18
+ * Defines a function used by the vertex drawing plugin to generate an `objectType` (Group/Node) and `type` (app-specific) for a vertex that is about to be drawn.
19
+ * @group Plugins
20
+ * @category Vertex Drawing
21
+ */
22
+ export type VertexDrawingPluginTypeGenerator = (origin: PointXY, e: MouseEvent) => {
23
+ objectType: typeof Node.objectType | typeof Group.objectType;
24
+ type: string;
25
+ data?: ObjectData;
26
+ };
27
+ /**
28
+ * Options for the vertex drawing plugin
29
+ * @group Plugins
30
+ * @category Vertex Drawing
31
+ */
32
+ export interface VertexDrawingPluginOptions extends BrowserUIPluginOptions {
33
+ /**
34
+ * The type identifier for new groups. If you have also provided a typeGenerator this will be ignored. If you have not provided a typeGenerator but you have provided a nodeType, this will be ignored.
35
+ */
36
+ groupType?: string;
37
+ /**
38
+ * The type identifier for new nodes. If you have also provided a typeGenerator this will be ignored.
39
+ */
40
+ nodeType?: string;
41
+ /**
42
+ * Defaults to false, meaning the lasso is drawn as a rectangle. If true, the lasso is drawn as a set of masks, with the lasso area drawn as a "hole" in the masks.
43
+ */
44
+ invert?: boolean;
45
+ /**
46
+ * When true (which is the default) the lasso exits after a group has been drawn
47
+ */
48
+ autoExit?: boolean;
49
+ /**
50
+ * The minimum size for vertices. If your user draws a vertex smaller than this it will be discarded. Defaults to a width/height of 50 pixels.
51
+ */
52
+ minSize?: Size;
53
+ /**
54
+ * Optional function that will be invoked when a new drag commences, and which is responsible for returning the type of object to add (Node or Group), as well as that object's own type, and, optionally, an initial payload for the new object.
55
+ */
56
+ typeGenerator?: VertexDrawingPluginTypeGenerator;
57
+ /**
58
+ * Defaults to false. When true, users can click on the canvas to "draw" a new element, and the plugin will use a default size for the element. When this flag is set, drag to add is still also enabled.
59
+ */
60
+ allowClickToAdd?: boolean;
61
+ /**
62
+ * Defaults to false. When true, the plugin only supports click to add new vertices, not drag. This flag is forced to true if the associated UI does not have `useModelForSizes` set, since there is no point in allowing a user to drag a vertex to some size if its not going to be honoured. When you set this flag and associated UI does have `useModelForSizes` set, the plugin will use default sizes for new nodes/groups.
63
+ */
64
+ clickToAddOnly?: boolean;
65
+ /**
66
+ * Optional default size for groups, used when `allowClickToAdd` is set to true. Defaults to width and height of 250 pixels.
67
+ */
68
+ defaultGroupSize?: Size;
69
+ /**
70
+ * Optional default size for nodes, used when `allowClickToAdd` is set to true. Defaults to width and height of 80 pixels.
71
+ */
72
+ defaultNodeSize?: Size;
73
+ /**
74
+ * A function that will be invoked at the start of a drawing operation, and can return an element to draw into the lasso. This is an optional function; if you don't provide it VisuallyJs will draw a basic SVG rectangle to indicate the drawing area.
75
+ */
76
+ vertexPreviewGenerator?: (p: PointXY, e: MouseEvent) => BrowserElement;
77
+ /**
78
+ * A function that is invoked during mouse drag, to be used in conjunction with `vertexPreviewGenerator`. This function gives you a hook to use to make any changes to your preview element, should you need to. This is optional.
79
+ */
80
+ vertexPreviewUpdater?: (p: PointXY, size: Size, el: BrowserElement) => any;
81
+ /**
82
+ * Optional extra class(es) to set on the lasso used for drawing.
83
+ */
84
+ lassoClass?: string;
85
+ /**
86
+ * Callback to invoke when a vertex has been added
87
+ * @param v
88
+ */
89
+ onVertexAdded?: (v: Vertex) => any;
90
+ }
@@ -0,0 +1,2 @@
1
+ export * from './definitions';
2
+ export * from "./vertex-drawing-plugin";
@@ -0,0 +1,64 @@
1
+ import { Vertex } from "../../../../core";
2
+ import { Surface } from "../../surface";
3
+ import { BaseBrowserUIPlugin, BrowserUIPlugin } from "../../../plugins";
4
+ import { VertexDrawingPluginOptions } from "./definitions";
5
+ /**
6
+ * A plugin that allows the user to draw vertices with the mouse, and when dragging a new group, existing groups and nodes can be snagged and added to the group.
7
+ * @group Plugins
8
+ * @category Vertex Drawing
9
+ */
10
+ export declare class VertexDrawingPlugin extends BaseBrowserUIPlugin implements BrowserUIPlugin<VertexDrawingPluginOptions> {
11
+ static type: string;
12
+ id: "vertexDrawing";
13
+ surface: Surface;
14
+ private lasso;
15
+ autoExit: boolean;
16
+ private typeGenerator;
17
+ private groupType;
18
+ private nodeType;
19
+ private defaultGroupSize;
20
+ private defaultNodeSize;
21
+ private _allowClickToAdd;
22
+ private _clickToAddOnly;
23
+ private _parentGroupTarget;
24
+ private _objectTypeToCreate;
25
+ private _typeToCreate;
26
+ private _newObjectPayload;
27
+ $onVertexAdded: (v: Vertex) => any;
28
+ /**
29
+ * @internal
30
+ */
31
+ private _minSize;
32
+ private vertexSelection;
33
+ private selectedElements;
34
+ destroy(): void;
35
+ private _deriveTypesToCreate;
36
+ initialise(surface: Surface, options: VertexDrawingPluginOptions): boolean;
37
+ /**
38
+ * Does the work of adding a vertex, node or group.
39
+ * @param origin
40
+ * @param sizeOnCanvas
41
+ * @internal
42
+ */
43
+ private _doAddVertex;
44
+ private _generateNewObjectPayload;
45
+ /**
46
+ * Filters the selection so that any nodes/groups which are descendants of some other group in the selection are removed.
47
+ * We want to retain the members of any group we add to a new group, not add those members to this new group
48
+ * @private
49
+ */
50
+ private _filterVertexSelection;
51
+ /**
52
+ * Adds a new group to the model.
53
+ * @param surface
54
+ * @param xy
55
+ * @param sizeOnCanvas
56
+ * @private
57
+ */
58
+ private _addNewGroup;
59
+ private _addNewNode;
60
+ private _resetSelectedElements;
61
+ reset(): void;
62
+ activated(): void;
63
+ deactivated(): void;
64
+ }
@@ -0,0 +1,127 @@
1
+ import { Group, ObjectData, Size, Node } from "../../core";
2
+ import { ShapeLibrary } from "../shape-library";
3
+ import { DataGeneratorFunction, OnVertexAddedCallback } from "../definitions";
4
+ import { PaletteMode } from "../components";
5
+ /**
6
+ * Options for a shape library palette.
7
+ * @group Components
8
+ * @category ShapePalette
9
+ */
10
+ export interface ShapePaletteOptions<T extends ObjectData> {
11
+ /**
12
+ * The element to draw the palette into.
13
+ */
14
+ container: HTMLElement;
15
+ /**
16
+ * The shape library to render. If you do not provide this the palette gets it from the UI it is attached to.
17
+ */
18
+ shapeLibrary?: ShapeLibrary<T>;
19
+ /**
20
+ * Optional size to use for dragged elements.
21
+ */
22
+ dragSize?: Size;
23
+ /**
24
+ * Optional fill color to use for elements in the palette. This should be in RGB format, _not_ a color like 'white' or 'cyan' etc. Defaults to "#FFFFFF".
25
+ */
26
+ fill?: string;
27
+ /**
28
+ * Optional color to use for elements in the palette. Should be in RGB format. Defaults to "#000000".
29
+ */
30
+ outline?: string;
31
+ /**
32
+ * Optional outline width (in pixels) to use for elements in the palette. Defaults to 2.
33
+ */
34
+ outlineWidth?: number;
35
+ /**
36
+ * Message to use for the 'show all' option in the shape set drop down when there is more than one set of shapes. Defaults to `Show all`.
37
+ */
38
+ showAllMessage?: string;
39
+ /**
40
+ * When true (which is the default), a newly dropped vertex will be set as the underlying model's selection.
41
+ */
42
+ selectAfterDrop?: boolean;
43
+ /**
44
+ * Indicates two things: first, when one or more vertices are selected, clicking on an entry in the palette will change the type of the selected vertices to that type. Secondly, selecting an element in the canvas will cause its related shape to be selected in the palette. Defaults to true.
45
+ */
46
+ inspector?: boolean;
47
+ /**
48
+ * Stroke width to use for shapes in palette. Defaults to 1.
49
+ */
50
+ paletteStrokeWidth?: number;
51
+ /**
52
+ * Optional data generator to allow you to specify initial data for some element to be dragged. Note that you cannot override the object's `type` with this function. The palette will set the new object's type to match the type of the element that the user is dragging from the palette.
53
+ */
54
+ dataGenerator?: DataGeneratorFunction<T>;
55
+ /**
56
+ * Optional size to use for icons. Defaults to 150x100 pixels. If you provide this but not `dragSize` this size will also be used for an icon that is being dragged.
57
+ */
58
+ iconSize?: Size;
59
+ /**
60
+ * Optional ID of the first set to show, hiding the others.
61
+ */
62
+ initialSet?: string;
63
+ /**
64
+ * Optional callback to invoke when a new vertex has been added
65
+ * @param v Vertex that was added.
66
+ * @param pos Position on canvas that the vertex was added at
67
+ * @param dropTarget
68
+ */
69
+ onVertexAdded?: OnVertexAddedCallback;
70
+ /**
71
+ * Optionally show each shape icon's label underneath it
72
+ */
73
+ showLabels?: boolean;
74
+ /**
75
+ * Mode to operate in - 'drag' or 'draw'. Defaults to 'drag' (PALETTE_MODE_DRAG).
76
+ */
77
+ mode?: PaletteMode;
78
+ /**
79
+ * When in tap mode, allow addition of new vertices simply by clicking, instead of requiring a shape be drawn. (When this is true,
80
+ * the drawing method also still works)
81
+ */
82
+ allowClickToAdd?: boolean;
83
+ /**
84
+ * Defaults to true: when in 'tap' mode and a new group/node has been drawn on the canvas, the UI is set back to pan mode.
85
+ */
86
+ autoExitDrawMode?: boolean;
87
+ /**
88
+ * Optional function that is invoked at the start of a drag, and which identifies allowed drop targets. Each target - the canvas, nodes and groups - is passed in turn to this method; returning false indicates that the given target is not valid for that drag.
89
+ * @param candidate
90
+ * @param target
91
+ * @param onCanvas
92
+ */
93
+ canDrop?: (candidate: Node | Group, target?: Node | Group, onCanvas?: boolean) => boolean;
94
+ /**
95
+ * Optional set of prepared shapes to show in the palette. When this is provided, the palette will only render these shapes, and not the contents of the shape library.
96
+ */
97
+ preparedShapes?: Array<PreparedShape>;
98
+ }
99
+ /**
100
+ * Defines a wrapper around a shape with some `type` and `category` that adds properties (to be used to define the shape's appearance) and, optionally, the shape's initial size.
101
+ */
102
+ export interface PreparedShape {
103
+ /**
104
+ * The type of the underlying shape
105
+ */
106
+ type: string;
107
+ /**
108
+ * The shape set the underlying shape is sourced from
109
+ */
110
+ category: string;
111
+ /**
112
+ * The ID for this prepared shape. Used internally, but ensure you provide a unique value.
113
+ */
114
+ shapeId: string;
115
+ /**
116
+ * Label to show for the prepared shape in a palette
117
+ */
118
+ label: string;
119
+ /**
120
+ * Optional initial size to use for the shape
121
+ */
122
+ size?: Size;
123
+ /**
124
+ * Properties with which to configure the shape when it is created.
125
+ */
126
+ properties: ObjectData;
127
+ }
@@ -0,0 +1,55 @@
1
+ import { ObjectData } from "../../core";
2
+ import { DataGeneratorFunction } from "../definitions";
3
+ import { Palette } from "../components/palette";
4
+ import { BrowserUiRecado } from "../templating/browser-ui-recado";
5
+ import { BrowserUI } from "../browser-visuallyjs-instance";
6
+ import { PreparedShape, ShapePaletteOptions } from "./shape-palette-options";
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare const ATTRIBUTE_DATA_SHAPE_ID = "data-shape-id";
11
+ /**
12
+ * A palette for drag/drop that renders the contents of a shape library.
13
+ * @group Components
14
+ * @category ShapePalette
15
+ */
16
+ export declare class ShapePalette<T extends ObjectData> {
17
+ private ui;
18
+ _$_templateEngine: BrowserUiRecado;
19
+ _$_palette: Palette<ObjectData>;
20
+ _$_userDataGenerator: DataGeneratorFunction<T>;
21
+ /**
22
+ * @internal
23
+ */
24
+ $preparedShapes: Array<PreparedShape>;
25
+ private onVertexAdded;
26
+ private palette;
27
+ private $shapeLibrary;
28
+ /**
29
+ * Constructor for the palette.
30
+ * @param options Options for the palette
31
+ */
32
+ constructor(ui: BrowserUI, options: ShapePaletteOptions<T>);
33
+ private _getSelectedVertices;
34
+ private _getFilter;
35
+ /**
36
+ * Sets the visible set to be the given setId, for some parent. This method is called in response to a user selecting something in a drop down, and is also called from _selectVisibleSet, where a user programmatically specifies which set they wish to set as the current visible.
37
+ * @param setId
38
+ * @param parent
39
+ * @internal
40
+ */
41
+ private _setVisibleSet;
42
+ /**
43
+ * Sets the visible set to be the given setId, for some parent, and also updates the dropdown filter for that set to show the correct selected value. This method is called when programmatically selecting some visible set.
44
+ * @param setId
45
+ * @param parent
46
+ * @internal
47
+ */
48
+ private _selectVisibleSet;
49
+ /**
50
+ * Selects some set to be the currently visible set, activating its parents if it is a nested set. If you pass in a
51
+ * null value for the set id, all sets will be shown.
52
+ * @param id
53
+ */
54
+ setCurrentSet(id: string | null): void;
55
+ }
@@ -0,0 +1,35 @@
1
+ import { Decorator, IDecorator } from "./decorators";
2
+ import { Surface } from "./surface";
3
+ import { BrowserElement } from "../util";
4
+ /**
5
+ * A spec for a Decorator in "full" format, ie consisting of its `type`, an `options` object and an optional ID.
6
+ * @group Components
7
+ * @category Decorators
8
+ */
9
+ export type FullDecoratorSpec = {
10
+ /**
11
+ * Decorator type
12
+ */
13
+ type: string;
14
+ /**
15
+ * Options for the decorator
16
+ */
17
+ options: Record<string, any>;
18
+ /**
19
+ * Optional id, with which you can retrieve the decorator from the UI
20
+ */
21
+ id?: string;
22
+ };
23
+ /**
24
+ * A spec for a Decorator - either in "full" format or just as the Decorator's name.
25
+ * @group Components
26
+ * @category Decorators
27
+ */
28
+ export type DecoratorSpec = string | FullDecoratorSpec;
29
+ /**
30
+ * @internal
31
+ * @param dlist
32
+ * @param adapter
33
+ * @param container
34
+ */
35
+ export declare function _initialiseDecorators(dlist: Array<DecoratorSpec | Decorator | IDecorator<BrowserElement>>, adapter: Surface, container: BrowserElement): Array<Decorator>;
@@ -0,0 +1,9 @@
1
+ import { BindableRenderEvent } from "../../ui";
2
+ /**
3
+ * Defines the available mappings for the `events` Surface render parameter. These are events fired by the Surface itself. Use `ViewEventOptions` for the events that can be mapped in a view.
4
+ * @group Components
5
+ * @category Surface
6
+ */
7
+ export type SurfaceEventOptions = {
8
+ [K in BindableRenderEvent]?: Function;
9
+ };
@@ -0,0 +1,125 @@
1
+ import { ModelEventSpec, SurfaceMode } from './definitions';
2
+ import { DecoratorSpec } from './surface-decorator';
3
+ import { GridOptions } from "../../ui";
4
+ import { BrowserElement } from "../util";
5
+ import { CustomTagDefinition } from "../templating";
6
+ import { IDecorator } from "./decorators";
7
+ import { SurfaceEventOptions } from "./surface-events";
8
+ import { BrowserUIOptions } from "../definitions";
9
+ import { PanOptions, WheelOptions, ZoomOptions } from "../pan-zoom-options";
10
+ import { EdgeSnapOptions } from "../edge-handler-base";
11
+ import { LayoutSpec } from "../../core";
12
+ /**
13
+ * This interface defines the allowed parameters on a `render` call that will create a new Surface.
14
+ * @group Components
15
+ * @category Surface
16
+ */
17
+ export interface SurfaceOptions extends BrowserUIOptions {
18
+ /**
19
+ * Whether or not to disable drop targets on which an edge from some current source may not be dropped.
20
+ */
21
+ activeFiltering?: boolean;
22
+ /**
23
+ * Whether or not the edge drag/relocate handlers should support dragging edges from some element to itself. Defaults to false.
24
+ */
25
+ allowLoopbackEdges?: boolean;
26
+ /**
27
+ * Whether or not to automatically exit from 'select' mode after a lasso operation.
28
+ */
29
+ autoExitSelectMode?: boolean;
30
+ /**
31
+ * Whether or not to limit the canvas movement when dragging or zooming so that some part of the dataset is always visible. Defaults to true.
32
+ */
33
+ clamp?: boolean;
34
+ /**
35
+ * When a background is in use, whether or not to clamp movement of the canvas so that some portion of the background is always visible.
36
+ */
37
+ clampToBackground?: boolean;
38
+ /**
39
+ * When a background is in use, whether or not to clamp movement of the canvas so that the entire background is always visible.
40
+ */
41
+ clampToBackgroundExtents?: boolean;
42
+ /**
43
+ * Optional list of decorators to attach to the Surface.
44
+ */
45
+ decorators?: Array<DecoratorSpec | IDecorator<BrowserElement>>;
46
+ /**
47
+ * Options for edge snapping.
48
+ */
49
+ edgeSnap?: EdgeSnapOptions;
50
+ /**
51
+ * Whether or not to support animation of pan/zoom operations.
52
+ */
53
+ enableAnimation?: boolean;
54
+ /**
55
+ * Optional map of handlers for various events generated by the Surface.
56
+ */
57
+ events?: SurfaceEventOptions;
58
+ /**
59
+ * Options for imposing a grid onto the elements in the Surface.
60
+ */
61
+ grid?: GridOptions;
62
+ /**
63
+ * Optional ID for the Surface. Allows you to retrieve this Surface from a model's `getRenderer(id)` method.
64
+ */
65
+ id?: string;
66
+ /**
67
+ * Defines the layout to use.
68
+ */
69
+ layout?: LayoutSpec;
70
+ /**
71
+ * Defaults to false. When true, the UI treats the vertex's DOM element as the DOM element for the port if it cannot find a specific element for the port.
72
+ */
73
+ logicalPorts?: boolean;
74
+ /**
75
+ * Mode to start in. Defaults to 'pan'.
76
+ */
77
+ mode?: SurfaceMode;
78
+ /**
79
+ * Optional map of event handlers. Each entry consists of the event name, a CSS selector to target, and a callback function. Supplying this is equivalent to calling `bindModelEvent(..)` on a Surface.
80
+ */
81
+ modelEvents?: Array<ModelEventSpec>;
82
+ /**
83
+ * When true, the Surface will run a `refresh` of the underlying layout whenever a new edge is established. This defaults to false, but you might want to set this to true if you're using the Hierarchical or Hierarchy layouts, because it has a bearing on the way they paint. However, if your users are able to drag vertices around, you may not wish for the layout to move things that they have placed, which is why this defaults to false.
84
+ */
85
+ refreshLayoutOnEdgeConnect?: boolean;
86
+ /**
87
+ * Defaults to false. When true, changes to a group cause the entire surface to perform a relayout.
88
+ */
89
+ relayoutOnGroupUpdate?: boolean;
90
+ /**
91
+ * Options for the behaviour of the mousewheel (which also covers two finger scrolling on a mac trackpad)
92
+ */
93
+ wheel?: WheelOptions;
94
+ /**
95
+ * Options to control how a user manages zoom on the canvas.
96
+ */
97
+ zoom?: ZoomOptions;
98
+ /**
99
+ * Options to control how a user pans the canvas.
100
+ */
101
+ pan?: PanOptions;
102
+ /**
103
+ * If true, zoom the display so that the dataset is entirely visible after initialisation.
104
+ */
105
+ zoomToFit?: boolean;
106
+ /**
107
+ * If true, zoom the display so that the dataset is entirely visible after initialisation, but only adjust the zoom level if the dataset is not already visible at the default zoom level.
108
+ */
109
+ zoomToFitIfNecessary?: boolean;
110
+ }
111
+ /**
112
+ * Constructor options for the Surface in the browser-ui (vanilla) package.
113
+ * @group Components
114
+ * @category Surface
115
+ */
116
+ export interface VanillaSurfaceOptions extends SurfaceOptions {
117
+ /**
118
+ * Optional map of custom tags to support in the templates.
119
+ */
120
+ tags?: Record<string, CustomTagDefinition>;
121
+ /**
122
+ * Optional map of template macros - small functions that can generate values for templates. Macros are a means for you to extract logic from the templates.
123
+ */
124
+ templateMacros?: Record<string, (d: any) => string>;
125
+ }