@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,665 @@
1
+ import { Decorator } from "./decorators";
2
+ import { PanZoom } from '../pan-zoom';
3
+ import { PanOptions, ZoomOptions } from '../pan-zoom-options';
4
+ import { TemplateRenderer } from "../browser-ui";
5
+ import { UIPath } from '../ui-path';
6
+ import { FixedElement, FixedElementConstraints } from "../fixed-layer";
7
+ import { SurfaceOptions } from "./surface-render-options";
8
+ import { Base, Node, Group, Edge, Port, Vertex, ObjectData, VisuallyJsSelection, PathOptions, DataSource, NodeRemovedParams, PointXY, RectangleXY, ZoomRange, LayoutResultSet, GroupRemovedParams } from '../../core';
9
+ import { Connection, SupportsElementDragging, DragOptions, Overlay, ViewportBounds, UIExportOptions, ZoomToFitIfNecessaryOptions, ZoomToFitOptions, ZoomToElementsOptions, ViewportNodeElement, ViewportElement, ViewportGroupElement, CenterContentOptions, AlignContentOptions, AlignContentToFaceOptions } from "../../ui";
10
+ import { BrowserUI } from "../browser-visuallyjs-instance";
11
+ import { BrowserElement } from "../util";
12
+ import { EdgeInputMethod } from "../edge-input-handler";
13
+ import { ModelEventCallback, SurfaceEvents, SurfaceMode, SurfaceSaveData, SurfaceVertexCloneOptions } from "./definitions";
14
+ import { EdgePathEditor } from "../connector-editors";
15
+ import { ConnectorEditorActivateParams } from "../connector-editor";
16
+ import { ElementDragHandler2, InternalDragGroupSpec } from "../element-drag-handler-2";
17
+ import { Background, DragGroupSpec, SupportsPathEditing, SupportsViewportManipulation, ZoomToExtentsOptions } from "../definitions";
18
+ import { BrowserUIModel } from "../browser-ui";
19
+ import { MiniviewPluginOptions } from "./plugins";
20
+ /**
21
+ * Provides a canvas on which nodes, groups and edges can be rendered, with support for pan/zoom, layouts and various plugins. This is not a class that API users should instantiate directly: for users of a library integration, a Surface will be created internally by the appropriate component; for users of vanilla VisuallyJs, a Surface is created either via the {@link createSurface} factory method, or via a `render` call on an instance of the {@link BrowserUIModel}.
22
+ * @group Components
23
+ */
24
+ export declare class Surface extends BrowserUI<SurfaceEvents> implements SupportsElementDragging<BrowserElement>, SupportsPathEditing, SupportsViewportManipulation {
25
+ model: BrowserUIModel;
26
+ static type: string;
27
+ private canvasElement;
28
+ vertexLayer: BrowserElement;
29
+ toolsLayer: BrowserElement;
30
+ vertexGroup: BrowserElement;
31
+ edgeGroup: BrowserElement;
32
+ labelGroup: BrowserElement;
33
+ private _decorators;
34
+ readonly zoomOptions: ZoomOptions;
35
+ readonly panOptions: PanOptions;
36
+ /**
37
+ * @internal
38
+ */
39
+ panZoom: PanZoom;
40
+ $wheelReverse: boolean;
41
+ protected $edgePathEditor: EdgePathEditor;
42
+ protected $edgeInputMethod: EdgeInputMethod;
43
+ protected $editEdgesOnTap: boolean;
44
+ private _elementsDraggable;
45
+ dragOptions: DragOptions<BrowserElement>;
46
+ protected elementDragHandler: ElementDragHandler2;
47
+ private _edgeInputHandler;
48
+ mode: string;
49
+ /**
50
+ * @internal
51
+ * @param model
52
+ * @param dataSource
53
+ * @param container
54
+ * @param params
55
+ * @param templateRenderer
56
+ */
57
+ constructor(model: BrowserUIModel, dataSource: DataSource, container: BrowserElement, params: SurfaceOptions, templateRenderer: TemplateRenderer<BrowserElement>);
58
+ $getCanvasElement(): BrowserElement;
59
+ $getDragViewportContainer(): BrowserElement;
60
+ /**
61
+ * Indicates that this class supports element dragging.
62
+ * @internal
63
+ * @override
64
+ */
65
+ $isDraggingSupported(): boolean;
66
+ $nodeRemoved(deletion: NodeRemovedParams): ViewportElement<BrowserElement>;
67
+ /**
68
+ * Notification from the model that a group was removed. We hand off to the superclass first, then we remove the
69
+ * group's element from the pan/zoom, and reinstate any child elements to the pan/zoom if children were not
70
+ * removed.
71
+ * @internal
72
+ */
73
+ $groupRemoved(deletion: GroupRemovedParams): ViewportGroupElement<BrowserElement>;
74
+ /**
75
+ * @internal
76
+ */
77
+ $afterRefresh(p: LayoutResultSet): void;
78
+ private _decorate;
79
+ $afterRelayout(p: LayoutResultSet): void;
80
+ /**
81
+ * Implementation of private method from base UI.
82
+ * @param params
83
+ * @internal
84
+ */
85
+ $zoomToFit(params?: ZoomToFitOptions): void;
86
+ /**
87
+ * Implementation of private method from base UI.
88
+ * @param params
89
+ * @internal
90
+ */
91
+ $zoomToFitIfNecessary(params?: ZoomToFitIfNecessaryOptions): void;
92
+ /**
93
+ * At the start of an element drag we want the pan/zoom to take a snapshot of its current compound zoom.
94
+ * @param e
95
+ * @private
96
+ */
97
+ protected _elementDragInit(e: MouseEvent): void;
98
+ /**
99
+ * From the SupportsElementDragging interface.
100
+ * @internal
101
+ * @param dirX
102
+ * @param dirY
103
+ * @param dx
104
+ * @param dy
105
+ * @param interval
106
+ * @param cb
107
+ */
108
+ $startPanRepeat(dirX: 1 | 0 | -1, dirY: 1 | 0 | -1, dx: number, dy: number, interval: number, cb?: (total: PointXY) => any): void;
109
+ /**
110
+ * From the SupportsElementDragging interface.
111
+ * @internal
112
+ * @private
113
+ */
114
+ $stopPanRepeat(): void;
115
+ /**
116
+ * Returns whether or not element drag can start - checks the current mode and also the `elementsDraggable` class
117
+ * member.
118
+ * @internal
119
+ * @override
120
+ */
121
+ $canStartElementDrag(): boolean;
122
+ /**
123
+ * Zooms the viewport so that all of the given elements are visible.
124
+ * @param zParams
125
+ * @internal
126
+ * @tags zoom
127
+ */
128
+ $zoomToElements(zParams: ZoomToElementsOptions<BrowserElement>): void;
129
+ /**
130
+ * Gets all of the managed nodes that are visible, or partly visible, in the current viewport.
131
+ * @internal
132
+ */
133
+ $getNodesInViewport(): Array<{
134
+ el: ViewportNodeElement<BrowserElement>;
135
+ bb: RectangleXY;
136
+ }>;
137
+ /**
138
+ * Gets all of the managed groups that are visible, or partly visible, in the current viewport.
139
+ * @internal
140
+ */
141
+ $getGroupsInViewport(): Array<{
142
+ el: ViewportGroupElement<BrowserElement>;
143
+ bb: RectangleXY;
144
+ }>;
145
+ protected $edgeTap(payload: {
146
+ obj: Edge;
147
+ e: MouseEvent;
148
+ connection: Connection<BrowserElement>;
149
+ overlay?: Overlay<BrowserElement>;
150
+ }): void;
151
+ private _getWheelOptions;
152
+ /**
153
+ * Notification that the graph was cleared. We remove everything from our model instance (but do not unbind any event listeners).
154
+ * @internal
155
+ */
156
+ $graphClearStart(): void;
157
+ $appendElementToToolsLayer(el: BrowserElement, insertAtStart?: boolean): void;
158
+ $appendElementToVertexLayer(el: BrowserElement, insertAtStart?: boolean): void;
159
+ $appendOverlayElement(e: BrowserElement, insertAtStart?: boolean): void;
160
+ $appendVertexElement(e: BrowserElement, insertAtStart?: boolean): void;
161
+ $appendEdgeElement(e: BrowserElement, insertAtStart?: boolean): void;
162
+ /**
163
+ * Internal callback to register an edge path editor and ensure that the various editors are initialized.
164
+ * @param editor
165
+ * @internal
166
+ */
167
+ $_attachEdgePathEditor(editor: EdgePathEditor): void;
168
+ /**
169
+ * Adds the given element to the given drag group, with the given assignment. If the assignment is `assigned` but the element is already in some group with assignment `added` (ie. explicitly by a user), this method has no effect. This method is not intended to be called from user code; it is called internally by this class and also by the drag groups plugin.
170
+ * @internal
171
+ * @param spec
172
+ * @param els
173
+ */
174
+ $addToDragGroup(spec: InternalDragGroupSpec, ...els: Array<string | BrowserElement | Node | Group>): void;
175
+ /**
176
+ * @internal
177
+ * @param els
178
+ */
179
+ $_assignRemoveFromDragGroup(...els: Array<string | BrowserElement | Node | Group>): void;
180
+ /**
181
+ * @override
182
+ * @param d
183
+ * @internal
184
+ */
185
+ $select(d: {
186
+ append: boolean;
187
+ obj: Base;
188
+ selection: VisuallyJsSelection;
189
+ }): void;
190
+ /**
191
+ * @internal
192
+ * @param d
193
+ */
194
+ $deselect(d: {
195
+ selection: VisuallyJsSelection;
196
+ obj: Base;
197
+ }): void;
198
+ $selectionCleared(sel: VisuallyJsSelection): any;
199
+ /**
200
+ * Save the dataset and the current state of the Surface - its pan and zoom settings.
201
+ * @param options
202
+ * @tags input/output
203
+ */
204
+ save(options?: UIExportOptions): SurfaceSaveData;
205
+ /**
206
+ * Load the dataset and the current state of the Surface - its pan and zoom settings.
207
+ * @param data
208
+ * @param onload Optional function to invoke after load.
209
+ */
210
+ load(data: SurfaceSaveData, onload?: Function): void;
211
+ /**
212
+ * Start editing the given edge or connection, optionally with the given edit parameters.
213
+ * @param edgeOrConnection
214
+ * @param params
215
+ *
216
+ */
217
+ startEditingPath<T extends ConnectorEditorActivateParams<BrowserElement>>(edgeOrConnection: Edge | Connection<BrowserElement>, params?: T): void;
218
+ /**
219
+ * Stop editing any connector paths.
220
+ *
221
+ */
222
+ stopEditingPath(): void;
223
+ /**
224
+ * Clear the edits for the given connection, returning its path to the automatically computed path.
225
+ * @param edgeOrConnection
226
+ *
227
+ */
228
+ clearPathEdits(edgeOrConnection: string | Edge | Connection<BrowserElement>): boolean;
229
+ getVisibleCanvasBounds(): RectangleXY;
230
+ /**
231
+ * Adds a filter to the drag handler.
232
+ * @param filter
233
+ * @param exclude
234
+ */
235
+ addDragFilter(filter: (e: MouseEvent) => boolean, exclude?: boolean): void;
236
+ /**
237
+ * Adds a CSS class filter to the drag handler.
238
+ * @param clazz Either a single class name, or a comma separated list of classnames, or an array of classnames.
239
+ */
240
+ addDragClassnameFilter(clazz: string | Array<string>): void;
241
+ /**
242
+ * Adds a CSS3 selector filter to the drag handler. A drag cannot start on an element that matches this selector.
243
+ * @param selector A valid CSS3 selector.
244
+ */
245
+ addDragSelectorFilter(selector: string): void;
246
+ /**
247
+ * Removes a CSS class filter from the drag handler.
248
+ * @param clazz Either a single class name, or a comma separated list of classnames, or an array of classnames.
249
+ */
250
+ removeDragClassnameFilter(clazz: string | Array<string>): void;
251
+ /**
252
+ * Adds the given element(s) to the given drag group.
253
+ * @param spec Either the ID of some drag group, in which case the elements are all added as 'active', or an object containing the ID of the drag group and the element's participation in the group. `active` participation, which is the default, indicates whether dragging the given element(s) should cause all the elements in the drag group to be dragged. If `active` is false it means the given element(s) is "passive" and should only move when an active member of the drag group is dragged. The elements passed in to this method will be added to the drag group with an `added` membership flag, meaning any drag group an element has been added to via this method will take precedence over a drag group an element gets added to via a drag group assigner (see the DragGroupsPlugin for a discussion of automatically assigning elements to drag groups)
254
+ * @param els Elements to add to the drag group.
255
+ *
256
+ */
257
+ addToDragGroup(spec: DragGroupSpec | string, ...els: Array<string | BrowserElement | Node | Group>): void;
258
+ /**
259
+ * Removes the given element(s) from any drag group they may be in. You don't need to supply the drag group id, as elements can only be in one drag group anyway.
260
+ * @param els Elements to remove from drag groups.
261
+ */
262
+ removeFromDragGroup(...els: Array<string | BrowserElement | Node | Group>): void;
263
+ /**
264
+ * Sets the active/passive state for the given element(s) in their respective drag groups (if any). You don't need to supply the drag group id, as elements can only be in one drag group anyway.
265
+ * @param state true for active, false for passive.
266
+ * @param els
267
+ *
268
+ */
269
+ setDragGroupState(state: boolean, ...els: Array<string | BrowserElement | Node | Group>): void;
270
+ /**
271
+ * Removes all members from the drag group with the given name.
272
+ * @param name
273
+ *
274
+ */
275
+ clearDragGroup(name: string): void;
276
+ /**
277
+ * Attach a miniview to this Surface. This is a shortcut for adding one via addPlugin.
278
+ * @param options
279
+ */
280
+ attachMiniview(options: MiniviewPluginOptions): void;
281
+ /**
282
+ * Magnetize the elements in the display, using the location of the given MouseEvent as the origin.
283
+ * @param event
284
+ * @magnetizer
285
+ */
286
+ magnetizeAtEvent(event: MouseEvent): void;
287
+ /**
288
+ * Positions a DOM element at a given X,Y on the canvas, in canvas coordinates (meaning it takes into account the current zoom and pan). This is not intended for use with elements the surface is managing: it is designed to be used with elements such as pop-ups that you may wish to position relative to the content in your canvas.
289
+ * @param el Element to position.
290
+ * @param x X location on canvas to move element's left edge to.
291
+ * @param y Y location on canvas to move element's top edge to.
292
+ * @param xShift Optional absolute number of pixels to shift the element by in the x axis after calculating its position relative to the canvas. Typically you'd use this to place something other than the top left corner of your element at the desired location.
293
+ * @param yShift Optional absolute number of pixels to shift the element by in the y axis after calculating its position relative to the canvas.
294
+ * @param ensureOnScreen If true, will ensure that x and y positions are never negative.
295
+ *
296
+ */
297
+ positionElementAt(el: BrowserElement, x: number, y: number, xShift?: number, yShift?: number, ensureOnScreen?: boolean): void;
298
+ /**
299
+ * Positions a DOM element at the apparent canvas location corresponding to the page location given by some event. This is not intended for use with elements the surface is managing: it is designed to be used with elements such as pop-ups that you may wish to position relative to the content in your canvas.
300
+ * @param el - Element to position.
301
+ * @param evt - Event to position element at.
302
+ * @param xShift - Optional absolute number of pixels to shift the element by in the x axis after calculating its position relative to the canvas. Typically you'd use this to place something other than the top left corner of your element at the desired location.
303
+ * @param yShift - Optional absolute number of pixels to shift the element by in the y axis after calculating its position relative to the canvas.
304
+ *
305
+ */
306
+ positionElementAtEventLocation(el: BrowserElement, evt: MouseEvent, xShift?: number, yShift?: number): void;
307
+ /**
308
+ * Positions a DOM element at the apparent canvas location corresponding to the given page location. This is not intended for use with elements the surface is managing: it is designed to be used with elements such as pop-ups that you may wish to position relative to the content in your canvas.
309
+ * @param el - Element to position.
310
+ * @param x - X location on canvas to move element's left edge to.
311
+ * @param y - Y location on canvas to move element's top edge to.
312
+ * @param xShift - Optional absolute number of pixels to shift the element by in the x axis after calculating its position relative to the canvas. Typically you'd use this to place something other than the top left corner of your element at the desired location.
313
+ * @param yShift - Optional absolute number of pixels to shift the element by in the y axis after calculating its position relative to the canvas.
314
+ *
315
+ */
316
+ positionElementAtPageLocation(el: BrowserElement, x: number, y: number, xShift?: number, yShift?: number): void;
317
+ /**
318
+ * Cleans up the Surface. When using a library integration such as Angular/React/Vue/Svelte, this method will be called automatically when the associated component is unloaded. If you're using vanilla VisaullyJs, you might want to call this method if you're cleaning up your UI and you don't need this Surface any longer.
319
+ *
320
+ */
321
+ destroy(): void;
322
+ /**
323
+ * Zooms the display so that the background (if one is set) fits inside the viewport.
324
+ * @param params.onComplete Optional function to call on operation complete (centering may be animated).
325
+ * @param params.doNotAnimate If true, centering content will not use animation.
326
+ * @tags zoom
327
+ */
328
+ zoomToBackground(params: {
329
+ doNotAnimate?: boolean;
330
+ onComplete?: (p: PointXY) => any;
331
+ }): void;
332
+ /**
333
+ * Zooms the display to fit the canvas and content plus any elements added by the given decorator.
334
+ * @param zParams
335
+ * @tags zoom
336
+ */
337
+ zoomToDecorator(zParams: {
338
+ decorator: string | Decorator;
339
+ fill?: number;
340
+ doNotZoomIfVisible?: boolean;
341
+ doNotAnimate?: boolean;
342
+ onComplete?: (p: PointXY) => any;
343
+ onStep?: () => any;
344
+ doNotFirePanEvent?: boolean;
345
+ }): void;
346
+ /**
347
+ * Zooms the display to fit the given extents, which may be a single box or an array of boxes; in the latter case VisuallyJs will calculate a minimum bounding box for all the boxes provided.
348
+ * @param zParams Options for the zoom
349
+ * @tags zoom
350
+ */
351
+ zoomToExtents(zParams: ZoomToExtentsOptions): void;
352
+ /**
353
+ * Maps the location of the given event on the page onto the coordinate space of this widget, returning a value representing where the given event appears to be with respect to the origin of the Surface's viewport.
354
+ * @param event
355
+ *
356
+ */
357
+ mapEventLocation(event: MouseEvent): PointXY;
358
+ /**
359
+ * Centers the tracked content inside the viewport, but does not adjust the current zoom (so the content may still extend past the viewport bounds)
360
+ * @param options Method parameters.
361
+ *
362
+ */
363
+ centerContent(options?: CenterContentOptions): void;
364
+ /**
365
+ * Zooms the display so that the current selected nodes are all visible, optionally animating the transition.
366
+ * @param params Optional method params
367
+ * @param params.fill A decimal indicating how much of the viewport to fill with the zoomed content. Defaults to a value of 0.90.
368
+ * @param params.selection Optional Selection to which to zoom. If omitted, the default is to use the model's current selection.
369
+ * @param params.doNotZoomIfVisible If true, no action is taken if the content is currently all visible. Defaults to false.
370
+ * @param params.doNotAnimate By default the widget does not animate this operation. You can override that behaviour by setting doNotAnimate:false.
371
+ * @param params.filter Optional function to use as a filter; we create the selection by running this filter by the model's `filter` method.
372
+ * @tags zoom
373
+ */
374
+ zoomToSelection(params: {
375
+ fill?: number;
376
+ selection?: VisuallyJsSelection;
377
+ filter?: (o: Base) => boolean | ObjectData;
378
+ doNotZoomIfVisible?: boolean;
379
+ doNotAnimate?: boolean;
380
+ }): void;
381
+ /**
382
+ * Gets a Path from some source Vertex to some target Vertex. This method is a wrapper around the model's `getPath` method, adding a few ui specific functions to the result.
383
+ * @param params Path spec params
384
+ * @param params.source Source node or port, or id of source node/port
385
+ * @param params.target Target node or port, or id of target node/port
386
+ * @param params.strict Defaults to true. Sets whether or not paths are searched strictly by the given source/target. If, for instance, you supply a node as the source, but there are only edges connected to ports on that node, by default these edges will be ignored. Switching `strict` to false will mean these edges are considered.
387
+ * @param params.nodeFilter Optional function that is given each Node's backing data and asked to return true or false - true means include the Node, false means exclude it.
388
+ * @param params.edgeFilter Optional function that is given each Edge's backing data and asked to return true or false - true means include the Edge, false means exclude it.
389
+ * @returns A Path object. Even if no path exists you will get a return value - but it will just be empty.
390
+ *
391
+ */
392
+ getPath(params: PathOptions): UIPath;
393
+ /**
394
+ * Sets the apparent canvas location - see the notes for getApparentCanvasLocation.
395
+ * @param left Value in pixels for left edge of canvas.
396
+ * @param top Value in pixels for top edge of canvas.
397
+ * @returns Location of the actual origin set, after clamping.
398
+ *
399
+ */
400
+ setApparentCanvasLocation(left: number, top: number): PointXY;
401
+ /**
402
+ * Gets the current bounds information.
403
+ */
404
+ getViewportBoundsInfo(): ViewportBounds;
405
+ getApparentCanvasLocation(): PointXY;
406
+ /**
407
+ * Adds a background. Theoretically you can add multiple backgrounds but the end result of that is indeterminate.
408
+ * @param background
409
+ */
410
+ addBackground(background: Background): void;
411
+ removeBackground(background: Background): void;
412
+ /**
413
+ * Sets the current zoom, clamping it to the allowed range. Returns the new zoom level - which may or may not be the value you asked for, as it might have been clamped to the current allowed zoom range.
414
+ * @param zoom - Zoom value. If this is outside the allowed bounds it will be clamped.
415
+ * @param animate - If true, the surface will animate the transition in zoom by stepping through several intermediate levels in succession.
416
+ * @returns Current zoom. This may or may not be the value you asked for - it might have been clamped to the current allowed zoom range.
417
+ * @tags zoom
418
+ */
419
+ setZoom(zoom: number, animate?: boolean): number;
420
+ /**
421
+ * Gets the decorator with the given id, or null if not found.
422
+ * @param id
423
+ *
424
+ */
425
+ getDecorator<T extends Decorator = Decorator>(id: string): T;
426
+ /**
427
+ * Sets the current zoom range. By default, this method checks if the current zoom is within the new range, and if it is not then `setZoom` is called, which will cause the zoom to be clamped to an allowed value in the new range. You can disable this by passing `true` for `doNotClamp`.
428
+ * @param zr New range, as an array consisting of [lower, upper] values. Lower must be less than upper.
429
+ * @param doNotClamp If true, will not check the current zoom to ensure it falls within the new range.
430
+ * @returns Array of [min, max] current zoom values.
431
+ * @tags zoom
432
+ */
433
+ setZoomRange(zr: ZoomRange, doNotClamp?: boolean): ZoomRange;
434
+ /**
435
+ * Gets the current zoom range.
436
+ * @returns Array of [min, max] current zoom values.
437
+ * @tags zoom
438
+ */
439
+ getZoomRange(): ZoomRange;
440
+ /**
441
+ * Gets the current zoom.
442
+ * @returns Current zoom value
443
+ *
444
+ */
445
+ getZoom(): number;
446
+ /**
447
+ * Nudges the zoom by the given amount. Zoom will be clamped to the current zoom range in effect and the value that was ultimately set is returned from this function. The value you pass in here is multiplied by 100 to give a percentage value: 1 is 100%, for instance, 0.05 is 5%.
448
+ * @param delta Amount to change zoom by.
449
+ * @param e Original event that caused the nudge. May be null.
450
+ * @returns The zoom that was set. Zoom will be clamped to the allowed range.
451
+ * @tags zoom
452
+ */
453
+ nudgeZoom(delta: number, e?: any): number;
454
+ /**
455
+ * Nudges the wheel zoom by the given amount. This function is intended for use by components that control zoom via the mouse wheel, and not for general usage. See `nudgeZoom` for a more general version of this.
456
+ * @param delta Amount to change zoom by.
457
+ * @param e Original event that caused the nudge. May be null.
458
+ * @internal
459
+ */
460
+ nudgeWheelZoom(delta: number, e?: any): void;
461
+ /**
462
+ * Zooms out by one step, within the allowed zoom range.
463
+ */
464
+ zoomOut(canvasLoc?: PointXY): void;
465
+ /**
466
+ * Zooms in by one step, within the allowed zoom range.
467
+ */
468
+ zoomIn(canvasLoc?: PointXY): void;
469
+ /**
470
+ * Gets the current origin of the panned content.
471
+ * @returns Position, in pixels, of the panned content, where 0,0 is the origin of the viewport.
472
+ *
473
+ */
474
+ getPan(): PointXY;
475
+ /**
476
+ * Pans the canvas by a given amount in X and Y.
477
+ * @param dx - Amount to pan in X direction
478
+ * @param dy - Amount to pan in Y direction
479
+ * @param doNotAnimate - By default this operation uses animation.
480
+ *
481
+ */
482
+ pan(dx: number, dy: number, doNotAnimate?: boolean): void;
483
+ /**
484
+ * Sets the position of the panned content's origin.
485
+ * @param left - Position in pixels of the left edge of the panned content.
486
+ * @param top - Position in pixels of the top edge of the panned content.
487
+ * @param animate - Whether or not to animate the pan. Defaults to false.
488
+ * @param onComplete - If `animate` is set to true, an optional callback for the end of the pan
489
+ *
490
+ */
491
+ setPan(left: number, top: number, animate?: boolean, onComplete?: (p: PointXY) => any): void;
492
+ /**
493
+ * Sets the pan and zoom for the Surface in one pass.
494
+ * @param x - Value for pan in x axis
495
+ * @param y - Value for pan in Y axis
496
+ * @param zoom - Value fo zoom
497
+ * @param animate - Defaults to false. If true, the changes will be made with the widget animating.
498
+ *
499
+ */
500
+ setPanAndZoom(x: number, y: number, zoom: number, animate?: boolean): void;
501
+ /**
502
+ * Center on the current object and zoom in on it.
503
+ * @param element - The element to center. Can be a DOM element, vertex id, or a Node/Group
504
+ * @param fillRatio How much of the viewport to fill with the object we zoom in on. This will be limited by the
505
+ * current zoom range. Defaults to 0.6.
506
+ * @param doNotAnimate - by default, this operation will be animated.
507
+ *
508
+ */
509
+ centerOnAndZoom(element: string | Vertex | Element, fillRatio?: number, doNotAnimate?: boolean): void;
510
+ /**
511
+ * Takes a node/group as argument and positions the surface canvas such that the given node is at the center in
512
+ * both axes.
513
+ * @param element - The element to center. Can be a DOM element, vertex id, or a Node/Group.
514
+ *
515
+ */
516
+ centerOn(element: string | Vertex | Element): void;
517
+ /**
518
+ * Takes a node/group as argument and positions the surface canvas such that the given node is at the center in the horizontal axis.
519
+ * @param element - The element to center. Can be a DOM element, vertex id, or a Node/Group
520
+ *
521
+ */
522
+ centerOnHorizontally(element: string | Vertex | Element): void;
523
+ /**
524
+ * Takes a node/group as argument and positions the surface canvas such that the given node is at the center in the vertical axis.
525
+ * @param element - The element to center. Can be a DOM element, vertex id, or a Node/Group
526
+ *
527
+ */
528
+ centerOnVertically(element: string | Vertex | Element): void;
529
+ /**
530
+ * Sets whether or not the widget clamps the movement of the canvas during pan/zoom to ensure that the managed content never disappears from view.
531
+ * @param clamping Whether or not to clamp movement.
532
+ *
533
+ */
534
+ setClamping(clamping: boolean): void;
535
+ /**
536
+ * Returns whether or not the given point (relative to page origin) is within the viewport for the widget.
537
+ * @param x X location of point to test
538
+ * @param y Y location of point to test
539
+ * @returns True if the point is within the viewport, false if not.
540
+ *
541
+ */
542
+ isPageLocationInViewport(x: number, y: number): boolean;
543
+ /**
544
+ * Maps the given page location to a value relative to the canvas origin, allowing for zoom and pan of the canvas.
545
+ * This takes into account the offset of the canvas in the page so that what you get back is the mapped position
546
+ * relative to the target element's [left,top] corner
547
+ * @param left X location
548
+ * @param top Y location
549
+ * @param roundValues If true, the location is returned as integers for x/y.
550
+ * @returns The mapped location, as a PointXY object.
551
+ *
552
+ */
553
+ fromPageLocation(left: number, top: number, roundValues?: boolean): PointXY;
554
+ /**
555
+ * Maps the given window location to a value relative to the canvas origin. The window means the browser's visible
556
+ * window, and is not the same as the page, because of scroll.
557
+ * @param left
558
+ * @param top
559
+ * @param roundValues
560
+ */
561
+ fromWindowLocation(left: number, top: number, roundValues?: boolean): PointXY;
562
+ /**
563
+ * Maps the given location relative to the viewport origin, to a page location, allowing for zoom and pan of the canvas. This takes into account the offset of the viewport in the page so that what you get back is the mapped position relative to the target element's [left,top] corner.
564
+ * @param left X location
565
+ * @param top Y location
566
+ * @returns The mapped location, as a PointXY object.
567
+ *
568
+ */
569
+ toPageLocation(left: number, top: number): PointXY;
570
+ /**
571
+ * Binds to a mouse event occurring on a given model object. This is a wrapper around the `on` event binding method, which searches for an associated model object for the given event. For instance, you might have a node template that has a button inside of it that you want to respond to. When the button is clicked you want to know the node associated with the button. This method provides that. It is possible to find the associated model object yourself, via the `getObjectInfo` method of the Surface, called with the event's target, but this method does that for you.
572
+ *
573
+ * You can, optionally, provide a type hint to this method in order to fix the type of the returned model object, but note that this is erased at runtime and the type of the returned object is not guaranteed by the surface.
574
+ *
575
+ * This method binds a delegated event handler on the container element used by the surface. You do not need to provide an element to which to bind; you just need to provide an appropriate selector
576
+ *
577
+ * @param event Name of the event to bind to.
578
+ * @param selector CSS3 selector that identifies children of a vertex DOM element on which the event handler should
579
+ * be bound.
580
+ * @param callback Function to call when the event is fired.
581
+ *
582
+ */
583
+ bindModelEvent<T extends Edge | Node | Group | Port | Vertex>(event: string, selector: string, callback: ModelEventCallback<T>): void;
584
+ /**
585
+ * Unbinds a listener for a model event.
586
+ * @param event Name of the event to unbind.
587
+ * @param handler Function to unbind.
588
+ *
589
+ */
590
+ unbindModelEvent<T = any>(event: string, handler: ModelEventCallback<T>): void;
591
+ cloneVertex(vertex: string | Node | Group | Element, options?: SurfaceVertexCloneOptions): Node | Group | null;
592
+ /**
593
+ * Gets the zoom as seen by the user, which is a function of the zoom of this surface and of any parent surface, plus any other scale transforms that may be in place in the DOM.
594
+ *
595
+ */
596
+ getEffectiveVisibleZoom(): number;
597
+ /**
598
+ * Returns whether or not the given point (relative to page origin) is within the viewport for the widget.
599
+ * @param x X location of point to test
600
+ * @param y Y location of point to test
601
+ * @returns true if the point is within the viewport, false if not.
602
+ *
603
+ */
604
+ isInViewport(x: number, y: number): boolean;
605
+ /**
606
+ * Appends an element to the viewport such that it is zoomed with everything else, but constrains placement in one or both axes so that the element remains fixed with respect to the viewport origin as the canvas pans and/or zooms. Note that this method will set `position:absolute` on the element you are fixing, because otherwise it would mess up the placement of the other content on the canvas. If you subsequently `unfix` an element, the UI does not remove the `position:absolute` style.
607
+ * @param el The BrowserElement to append.
608
+ * @param constraints Flags to indicate optional constraint to each axis.
609
+ * @param pos Location of the element's origin.
610
+ * @param id Optional ID to assign to the element, for future retrieval
611
+ * @param onTop
612
+ */
613
+ fixElement(el: BrowserElement, pos: PointXY, constraints?: FixedElementConstraints, id?: string, onTop?: boolean): FixedElement;
614
+ /**
615
+ * Removes an element that was previously fixed via the fixElement method.
616
+ * @param el
617
+ *
618
+ */
619
+ unfixElement(el: BrowserElement): void;
620
+ /**
621
+ * Appends an element to the viewport so that it floats above the content that is being zoomed and panned. The element will have `position:absolute` set on it. You can float any element you like, but note that the responsibility for setting an appropriate z index is yours.
622
+ * @param el Element to float.
623
+ * @param pos Position to float the element at.
624
+ *
625
+ */
626
+ floatElement(el: BrowserElement, pos: PointXY): void;
627
+ /**
628
+ * Sets the current mode for the surface.
629
+ * @param mode
630
+ * @param doNotClearSelection Defaults to false - when true, a mode change will not first cause the selection in the
631
+ * underlying model to be cleared.
632
+ *
633
+ */
634
+ setMode(mode: SurfaceMode, doNotClearSelection?: boolean): void;
635
+ /**
636
+ * Pan the canvas to align the content in one or both axes.
637
+ * @param params
638
+ *
639
+ */
640
+ alignContent(options: AlignContentOptions): void;
641
+ /**
642
+ * Pan the canvas to align the content such that the top edge of the topmost element is at the top of the viewport.
643
+ * @param params
644
+ *
645
+ */
646
+ alignContentTop(options?: AlignContentToFaceOptions): void;
647
+ /**
648
+ * Pan the canvas to align the content such that the bottom edge of the bottom element is at the bottom of the viewport.
649
+ * @param params
650
+ *
651
+ */
652
+ alignContentBottom(options?: AlignContentToFaceOptions): void;
653
+ /**
654
+ * Pan the canvas to align the content such that the left edge of the leftmost element is at the left of the viewport.
655
+ * @param params
656
+ *
657
+ */
658
+ alignContentLeft(options?: AlignContentToFaceOptions): void;
659
+ /**
660
+ * Pan the canvas to align the content such that the right edge of the rightmost element is at the right of the viewport.
661
+ * @param params
662
+ *
663
+ */
664
+ alignContentRight(options?: AlignContentToFaceOptions): void;
665
+ }
@@ -0,0 +1,6 @@
1
+ import { BrowserUI } from "./browser-visuallyjs-instance";
2
+ import { PaintStyle } from "../ui";
3
+ import { SvgConnector } from "./svg-element-connector";
4
+ export declare class SvgComponent {
5
+ static paint(connector: SvgConnector, instance: BrowserUI, paintStyle: PaintStyle): void;
6
+ }