@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,114 @@
1
+ import { Base, ObjectData } from "../../../core";
2
+ import { BrowserUI } from "../../browser-visuallyjs-instance";
3
+ /**
4
+ * The base options for an inspector - shared by Inspector and VanillaInspector.
5
+ * @group Components
6
+ * @category Inspector
7
+ */
8
+ export interface BaseInspectorOptions {
9
+ /**
10
+ * The element into which the inspector is drawn.
11
+ */
12
+ container: HTMLElement;
13
+ /**
14
+ * The UI to attach to.
15
+ */
16
+ ui: BrowserUI;
17
+ /**
18
+ * Optional css class(es) to set on the inspector - a space separated list.
19
+ */
20
+ cssClass?: string;
21
+ /**
22
+ * Whether or not to support multiple selections. Defaults to true.
23
+ */
24
+ multipleSelections?: boolean;
25
+ /**
26
+ * Optional callback to invoke after an update has occurred.
27
+ */
28
+ afterUpdate?: () => any;
29
+ /**
30
+ * Whether or not to auto commit changes on blur/change events. Defaults to true.
31
+ */
32
+ autoCommit?: boolean;
33
+ /**
34
+ * Optional filter you can use to instruct the inspector to ignore certain items.
35
+ * @param b The object to test
36
+ */
37
+ filter?: (b: Base) => boolean;
38
+ /**
39
+ * Defaults to true. With this setting, if an update is made that has one or more blank strings, the strings will only be written to objects that already had some value for the corresponding key. If some object has, say, no value stored against the key `foo`, then the inspector will not write a value of "" for that key into the vertex. The reasoning for this flag is that you cannot get a null value from a text field, so if some text field has no value written in it and then gets a blur event, the UI reports a value of "", ie an empty string. But this is likely not the user's intention, if the field was blank to begin with.
40
+ */
41
+ doNotWriteBlankNewValues?: boolean;
42
+ /**
43
+ * Defaults to false. When true, the inspector will have a close button in the top right corner, which, when pressed, will
44
+ * clear the Toolkit's selection.
45
+ */
46
+ showCloseButton?: boolean;
47
+ /**
48
+ * Optional context to also provide to the templates when rendering. This can be accessed via the `$context` prefix, for
49
+ * instance `{{$context.myValue}}`
50
+ */
51
+ context?: Record<string, any>;
52
+ /**
53
+ * Optional callback used to retrieve a value for a specific property when it's not present in the object's data.
54
+ * @param b The object being inspected.
55
+ * @param key The property key.
56
+ */
57
+ getDefaultValue?: (d: ObjectData, key: string) => any;
58
+ }
59
+ /**
60
+ * Options for an inspector.
61
+ * @group Components
62
+ * @category Inspector
63
+ */
64
+ export interface InspectorOptions extends BaseInspectorOptions {
65
+ /**
66
+ * Callback invoked when the inspector is cleared.
67
+ * @private
68
+ */
69
+ renderEmptyContainer: () => void;
70
+ /**
71
+ * Callback invoked when a new object has started to be edited.
72
+ * @param obj
73
+ * @param cb
74
+ */
75
+ refresh: (obj: Base, cb: () => any) => void;
76
+ }
77
+ /**
78
+ * @internal
79
+ */
80
+ export type FieldInfo = {
81
+ field: HTMLElement;
82
+ edited: boolean;
83
+ common: boolean;
84
+ commonValue: any;
85
+ editedValue?: any;
86
+ attribute: string;
87
+ };
88
+ /**
89
+ * Options for the VanillaInspector, an instance of Inspector that uses VisuallyJs's default templating mechanism to render elements.
90
+ * @group Components
91
+ * @category Inspector
92
+ */
93
+ export interface VanillaInspectorOptions extends BaseInspectorOptions {
94
+ /**
95
+ * Template to use in the inspector when there is nothing selected. By default an empty `div` element is used.
96
+ */
97
+ emptyTemplate?: string;
98
+ /**
99
+ * Resolves templates for a given object.
100
+ * @param obj
101
+ */
102
+ templateResolver: (obj: Base) => string;
103
+ /**
104
+ * By default the inspector will cache found templates, keyed by the type of the object and its category (there is a separate cache for nodes, groups, edges and ports, and in each cache the key is the object's `type`). In some situations you may not want to cache the template, for instance if your template has dynamic data that depends on the object that is being inspected. If that's the case you can set this to false.
105
+ */
106
+ cacheTemplates?: boolean;
107
+ }
108
+ /**
109
+ * The default key used to store/retrieve recent color list in/from the inspector context
110
+ * @group Components
111
+ * @category Inspector
112
+ * @internal
113
+ */
114
+ export declare const INSPECTOR_CONTEXT_RECENT_COLORS = "recentColors";
@@ -0,0 +1,15 @@
1
+ import { VanillaInspector } from "./vanilla-inspector";
2
+ /**
3
+ * The HTML element identifying the edge type picker.
4
+ * @group Components
5
+ * @category Inspector
6
+ * @constant
7
+ */
8
+ export declare const EDGE_TYPE_PICKER_ELEMENT = "vjs-edge-type";
9
+ /**
10
+ * The default key used to retrieve edge mappings from the inspector context. The standard approach is to register property mappings on the UI, and the inspector will resolve from there. But for certain standalone scenarios it can be useful to supply property mappings to the inspector directly (such as if you want to only make available a certain subset to the user).
11
+ * @group Components
12
+ * @category Inspector
13
+ */
14
+ export declare const INSPECTOR_CONTEXT_EDGE_PROPERTY_MAPPINGS = "edgeMappings";
15
+ export declare function registerEdgeTypePickerTag(inspector: VanillaInspector): void;
@@ -0,0 +1,6 @@
1
+ export * from './definitions';
2
+ export * from './inspector';
3
+ export * from './vanilla-inspector';
4
+ export * from './color-picker-tag';
5
+ export * from './edge-type-tag';
6
+ export * from './shape-type-inspector';
@@ -0,0 +1,138 @@
1
+ import { Base, ObjectData } from "../../../core";
2
+ import { EventManager } from "../../event-manager";
3
+ import { VjsContext } from "../../../ui";
4
+ import { FieldInfo, InspectorOptions } from "./definitions";
5
+ import { BrowserUI } from "../../browser-visuallyjs-instance";
6
+ /**
7
+ * Assigned to an Inspector's container when the inspector is active.
8
+ * @group Components
9
+ * @category Inspector
10
+ * @cssClass
11
+ * @context inspector
12
+ */
13
+ export declare const CLASS_INSPECTOR_ACTIVE = "vjs-inspector-active";
14
+ /**
15
+ * Assigned to an Inspector's container when the inspector is inactive.
16
+ * @group Components
17
+ * @category Inspector
18
+ * @cssClass
19
+ * @context inspector
20
+ */
21
+ export declare const CLASS_INSPECTOR_INACTIVE = "vjs-inspector-inactive";
22
+ /**
23
+ * Assigned to an Inspector's container element.
24
+ * @group Components
25
+ * @category Inspector
26
+ * @cssClass
27
+ * @context inspector
28
+ */
29
+ export declare const CLASS_INSPECTOR = "vjs-inspector";
30
+ /**
31
+ * Assigned to the close button that is added when `showCloseButton` is set to true.
32
+ * @group Components
33
+ * @category Inspector
34
+ * @cssClass
35
+ * @context inspector
36
+ */
37
+ export declare const CLASS_INSPECTOR_CLOSE = "vjs-inspector-close";
38
+ /**
39
+ * Fired by an Inspector when its contents have changed.
40
+ * @group Components
41
+ * @category Inspector
42
+ */
43
+ export declare const EVENT_CHANGE = "change";
44
+ /**
45
+ * @internal
46
+ */
47
+ export type InspectorValueListener = (key: string, value: any) => void;
48
+ /**
49
+ * Offers a simple means to inspect and change the values in some object or set of objects.
50
+ * @group Components
51
+ * @category Inspector
52
+ */
53
+ export declare class Inspector extends VjsContext {
54
+ container: HTMLElement;
55
+ $ui: BrowserUI;
56
+ private model;
57
+ eventManager: EventManager;
58
+ private readonly _multipleSelections;
59
+ private _valueListeners;
60
+ private _pendingUpdates;
61
+ private readonly _autoCommit;
62
+ private readonly _doNotWriteBlankNewValues;
63
+ private readonly _renderEmptyContainer;
64
+ private readonly _refresh;
65
+ private readonly _afterUpdate?;
66
+ protected _resetting: boolean;
67
+ protected _fieldMap: Map<string, FieldInfo>;
68
+ current: Array<Base>;
69
+ _currentCommonData: ObjectData;
70
+ _filter: (b: Base) => boolean;
71
+ readonly $getDefaultValue?: (d: ObjectData, key: string) => any;
72
+ private readonly _showCloseButton;
73
+ $eventManager: EventManager;
74
+ constructor(options: InspectorOptions);
75
+ private _bindEvents;
76
+ private $updateObject;
77
+ protected $_recomputeCommonData(): void;
78
+ private __filterEmptyStrings;
79
+ /**
80
+ * Write the changes to the toolkit.
81
+ * @param updates
82
+ * @internal
83
+ */
84
+ private _persistChanges;
85
+ /**
86
+ * Either write the changes to the toolkit or store them in the list of pending updates, depending on
87
+ * the autoCommit flag.
88
+ * @param updates
89
+ * @internal
90
+ */
91
+ private _updateCurrent;
92
+ reset(doNotRenderEmptyContainer: boolean): void;
93
+ private _destroy;
94
+ _remove(obj: Base): void;
95
+ private _injectCloseButton;
96
+ private _recomputeAndApply;
97
+ private _edit;
98
+ $refresh(): void;
99
+ /**
100
+ * @internal
101
+ * @param v
102
+ */
103
+ addValueListener(v: InspectorValueListener): void;
104
+ /**
105
+ * For subclasses/wrapper classes to use.
106
+ * @param key
107
+ * @param value
108
+ *
109
+ */
110
+ setValue(key: string, value: any, repaintAfterwards?: boolean): void;
111
+ /**
112
+ * @internal
113
+ * @param b
114
+ * @param key
115
+ */
116
+ _getDefaultValue(b: Base, key: string): any;
117
+ /**
118
+ * Gets the current value for the given key, may be null.
119
+ * @param key
120
+ */
121
+ getValue(key: string): string;
122
+ onChange(fn: (data: ObjectData) => any): void;
123
+ /**
124
+ * Persist any pending updates to the toolkit, then clear the list of pending updates. Returns the count of
125
+ * the number of changes made.
126
+ *
127
+ */
128
+ persist(): number;
129
+ /**
130
+ * Returns whether or not there are unsaved changes.
131
+ *
132
+ */
133
+ hasPendingChanges(): boolean;
134
+ /**
135
+ * Redraw the inspector.
136
+ */
137
+ redraw(): void;
138
+ }
@@ -0,0 +1,43 @@
1
+ import { ShapePropertyDefinition } from "../../shape-library";
2
+ import { VanillaInspector } from "./vanilla-inspector";
3
+ import { Base } from "../../../core";
4
+ import { VanillaInspectorOptions } from "./definitions";
5
+ import { BrowserUI } from "../../browser-visuallyjs-instance";
6
+ /**
7
+ * Generates an HTML string in the Recado template format for all configurable
8
+ * properties of a given ShapeType, utilizing `vjs-att` for data binding.
9
+ *
10
+ * @param properties The properties to render.
11
+ * @returns A string representing the Recado template for the inspector.
12
+ * @internal
13
+ */
14
+ export declare function generateInspectorTemplate(properties: Array<ShapePropertyDefinition>, noPropertiesMessage: string): string;
15
+ export interface ShapeTypeInspectorOptions extends VanillaInspectorOptions {
16
+ ui: BrowserUI;
17
+ properties?: Array<ShapePropertyDefinition>;
18
+ /**
19
+ * Specifies how the `properties` option should be used.
20
+ * - `override`: (default) Use only the properties defined in the inspector options.
21
+ * - `fallback`: Use shape/set properties if they exist; otherwise, use these properties.
22
+ */
23
+ propertyMode?: "override" | "fallback";
24
+ noPropertiesMessage?: string;
25
+ }
26
+ /**
27
+ * An inspector that renders to a nominated DOM element, using VisuallyJs's default template renderer. You have to provide `templateResolver` which, for a given object, can return a template in VisuallyJs's default template syntax.
28
+ * @group Components
29
+ * @category Inspector
30
+ */
31
+ export declare class ShapeTypeInspector extends VanillaInspector {
32
+ private readonly _shapeLibrary;
33
+ private readonly _properties;
34
+ private readonly _propertyMode;
35
+ private readonly _noPropertiesMessage;
36
+ /**
37
+ * Constructor for the diagram inspector.
38
+ * @param options
39
+ */
40
+ constructor(options: ShapeTypeInspectorOptions);
41
+ private _getResolvedProperties;
42
+ protected _resolveTemplate(b: Base): string;
43
+ }
@@ -0,0 +1,39 @@
1
+ import { VanillaInspectorOptions } from "./definitions";
2
+ import { Inspector } from "./inspector";
3
+ import { CustomTagOptions } from "../../../core";
4
+ /**
5
+ * An inspector that renders to a nominated DOM element, using VisuallyJs's default template renderer. You have to provide `templateResolver` which, for a given object, can return a template in VisuallyJs's default template syntax.
6
+ * @group Components
7
+ * @category Inspector
8
+ */
9
+ export declare class VanillaInspector extends Inspector {
10
+ private readonly _instance;
11
+ private readonly _templateRenderer;
12
+ private readonly _emptyTemplateFn;
13
+ private readonly _templateResolver;
14
+ private _vertexTemplateCache;
15
+ private _edgeTemplateCache;
16
+ private _portTemplateCache;
17
+ private readonly _doCacheTemplates;
18
+ /**
19
+ * Constructor for the vanilla inspector.
20
+ * @param options
21
+ */
22
+ constructor(options: VanillaInspectorOptions);
23
+ /**
24
+ * @internal
25
+ * @param tagName
26
+ * @param options
27
+ */
28
+ registerTag(tagName: string, options: CustomTagOptions): void;
29
+ private _getPortTemplate;
30
+ private _getNodeTemplate;
31
+ /**
32
+ * getGroupTemplate uses the same logic as getNodeTemplate
33
+ * @internal
34
+ * @param obj
35
+ */
36
+ private _getGroupTemplate;
37
+ private _getEdgeTemplate;
38
+ private _renderTemplate;
39
+ }
@@ -0,0 +1,2 @@
1
+ export * from './palette-options';
2
+ export * from './palette';
@@ -0,0 +1,14 @@
1
+ import { ObjectData } from "../../../core";
2
+ import { BrowserUiRecado } from "../../templating";
3
+ import { BrowserElement } from "../../util";
4
+ /**
5
+ * Helper class for Palette - takes a template and some data and generates content, then appends to the given container.
6
+ * @internal
7
+ */
8
+ export declare class PaletteContentGenerator {
9
+ private container;
10
+ templateRenderer: BrowserUiRecado;
11
+ constructor(container: BrowserElement, template: string);
12
+ private _init;
13
+ setData(d: ObjectData, newTemplate?: string): void;
14
+ }
@@ -0,0 +1,159 @@
1
+ import { BrowserElement } from "../../util";
2
+ import { CanvasDropFilter, DataGeneratorFunction, DragFunction, GroupIdentifierFunction, OnVertexAddedCallback, TypeGeneratorFunction } from "../../definitions";
3
+ import { ObjectData, PointXY, Size, Node, Group } from "../../../core";
4
+ export declare const PALETTE_MODE_DRAG = "drag";
5
+ export declare const PALETTE_MODE_TAP = "tap";
6
+ export declare const PALETTE_MODE_DRAW = "draw";
7
+ export type PaletteMode = typeof PALETTE_MODE_TAP | typeof PALETTE_MODE_DRAG | typeof PALETTE_MODE_DRAW;
8
+ /**
9
+ * Options for a Palette
10
+ * @group Components
11
+ * @category Palette
12
+ */
13
+ export interface PaletteOptions<T> {
14
+ /**
15
+ * The element containing things that will be dragged/tapped.
16
+ */
17
+ source: BrowserElement;
18
+ /**
19
+ * A CSS selector identifying children of `source` that are draggable/can be tapped. If not provided, the Palette will use `[data-vjs-type]`.
20
+ */
21
+ selector?: string;
22
+ /**
23
+ * Optional function to generate the size to use for some object that is being dragged.
24
+ */
25
+ dragSizeGenerator?: (payload: T, el: BrowserElement) => Size;
26
+ /**
27
+ * Optional function to generate an initial payload from an element that has started to be dragged/has been tapped.
28
+ */
29
+ dataGenerator?: DataGeneratorFunction<T>;
30
+ /**
31
+ * Optional function to determine the type of the data object from an element that is being dragged (in drag mode) or has been tapped (in draw/tap mode)
32
+ */
33
+ typeGenerator?: TypeGeneratorFunction<T>;
34
+ /**
35
+ * Optional function to use to determine if the element being dragged/has been tapped represents a group. If you do not provide this, the default behaviour is to check for the presence of a `data-vjs-is-group` attribute on the element, with a value of `true`.
36
+ */
37
+ groupIdentifier?: GroupIdentifierFunction<T>;
38
+ /**
39
+ * Defaults to false. Allows items to be dropped onto edges in the canvas. A drop on an edge causes that edge to be split, with one edge having the new vertex as a target, and another edge with the new vertex as source.
40
+ */
41
+ allowDropOnEdge?: boolean;
42
+ /**
43
+ * Defaults to true. Allows items to be dropped onto groups in the canvas.
44
+ */
45
+ allowDropOnGroup?: boolean;
46
+ /**
47
+ * Defaults to false. Allows items to be dropped onto nodes in the canvas. If this is true and an element is dropped onto a node, the result is the same as if the element has been dropped onto whitespace. Note that when this is false and the user has dragged something over a node, the drag item is still not considered to be over the canvas, and releasing the mouse button at that time will not cause a new node to be added. Use `ignoreDropOnNode` if that's the behaviour you want.
48
+ */
49
+ allowDropOnNode?: boolean;
50
+ /**
51
+ * Defaults to false. When true, the palette treats nodes as if they are part of the canvas - a user can drag new items on top of existing nodes and the new item will be added to the canvas. If you want to force your users to drop on canvas whitespace, don't set this. Note that this flag will force `allowDropOnNode` to `false`.
52
+ */
53
+ ignoreDropOnNode?: boolean;
54
+ /**
55
+ * Defaults to true. Allows items to be dropped onto whitespace.
56
+ */
57
+ allowDropOnCanvas?: boolean;
58
+ /**
59
+ * 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.
60
+ * @param candidate
61
+ * @param target
62
+ * @param onCanvas
63
+ */
64
+ canDrop?: (candidate: Node | Group, target?: Node | Group, onCanvas?: boolean) => boolean;
65
+ /**
66
+ * Defaults to false. By default this class will conform to any grid in place in the surface to which it is attached when dragging items around.
67
+ */
68
+ ignoreGrid?: boolean;
69
+ /**
70
+ * Optional callback that will be invoked after a new vertex has been dropped and added to the dataset.
71
+ * @param v
72
+ */
73
+ onVertexAdded?: OnVertexAddedCallback;
74
+ /**
75
+ * Defaults to false. When true, a newly added vertex is set as the model's current selection.
76
+ */
77
+ selectAfterAdd?: boolean;
78
+ /**
79
+ * Optional function you can provide which will be used to generate an element to use for dragging. The default behaviour is to use a clone of the element the user began dragging, but if you provide this method you can customise that.
80
+ */
81
+ elementGenerator?: (el: BrowserElement, e: MouseEvent) => BrowserElement;
82
+ /**
83
+ * Optional size to use for elements dragged from the palette; used in drag mode only.
84
+ */
85
+ dragSize?: Size;
86
+ /**
87
+ * Optional function that you can use to inform the Palette that drop should be aborted. This method is invoked at the start of a drag (in drag mode) or when an item is tapped (in tap/draw mode) and is passed the candidate drag object's data.
88
+ */
89
+ canvasDropFilter?: CanvasDropFilter<T>;
90
+ /**
91
+ * Mode to operate in - 'drag', 'tap' or 'draw'. Defaults to 'drag'.
92
+ */
93
+ mode?: PaletteMode;
94
+ /**
95
+ * When in draw mode, allow addition of new vertices simply by clicking, instead of requiring a shape be drawn. (When this is true, the drag to draw functionality also still works)
96
+ */
97
+ allowClickToAdd?: boolean;
98
+ /**
99
+ * This flag relates to "draw" mode, and defaults to false. When true, the palette only supports click to draw 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 palette will use default sizes for new nodes/groups.
100
+ */
101
+ clickToAddOnly?: boolean;
102
+ /**
103
+ * When in draw mode, this function can be used to provide the element shown to the user as a new vertex is being drawn.
104
+ * @param objectType Group or Node
105
+ * @param type The type will map to an item in your view
106
+ * @param data The return value from the dataGenerator
107
+ * @param p Location on the canvas where the mousedown event occurred.
108
+ * @param e Mouse down event
109
+ */
110
+ vertexPreviewGenerator?: (objectType: string, type: string, data: T, p: PointXY, e: MouseEvent) => BrowserElement;
111
+ /**
112
+ * When in draw mode this function is repeatedly called as the mouse is dragging a new shape. It provides a hook for you to update the element's appearance. This is only called if you provided a vertexPreviewGenerator and it has returned a valid DOM element at the start of a drag.
113
+ * @param el The element you returned from vertexPreviewGenerator.
114
+ * @param origin The canvas location of the new vertex's top/left corner.
115
+ * @param size The current size of the new vertex.
116
+ * @param data The return value from the dataGenerator
117
+ */
118
+ vertexPreviewUpdater?: (el: BrowserElement, origin: PointXY, size: Size, data: T) => any;
119
+ /**
120
+ * When in 'draw' mode, you can optionally provide a class to set on the lasso used by the vertex drawing plugin.
121
+ */
122
+ lassoClass?: string;
123
+ /**
124
+ * By default, the Palette will apply a `scale` transform to elements that are being dragged so that they appear at the same size as the UI they're being dragged to. Setting this flag to true will switch off that behaviour.
125
+ */
126
+ ignoreZoom?: boolean;
127
+ /**
128
+ * Defaults to true. Set to false if you wish to instantiate the Palette in a disabled state
129
+ */
130
+ enabled?: boolean;
131
+ /**
132
+ * Class to set on the UI canvas and any other drop targets when a new element is being dragged
133
+ */
134
+ dragActiveClass?: string;
135
+ /**
136
+ * Class to set on the UI canvas and any other drop targets when a drag element is hovering over it.
137
+ */
138
+ dragHoverClass?: string;
139
+ /**
140
+ * Class to set on the UI canvas and any other drop targets when a drag element is hovering over it but drop is not allowed.s
141
+ */
142
+ dragHoverCannotDropClass?: string;
143
+ /**
144
+ * Class to set on an element being dragged.
145
+ */
146
+ dragElementClass?: string;
147
+ /**
148
+ * Optional function to invoke as the user is dragging a new element, or has tapped an element and is moving the mouse over the canvas.
149
+ */
150
+ onDrag?: DragFunction<T>;
151
+ /**
152
+ * Optional template that will be used in conjunction with `data` to generate the HTML content of the palette. The template can return any number of elements (ie. you're not limited to just a single root node)
153
+ */
154
+ contentTemplate?: string;
155
+ /**
156
+ * Optional data that will be used in conjunction with `contentTemplate` to generate the HTML content of the palette.
157
+ */
158
+ data?: ObjectData;
159
+ }
@@ -0,0 +1,126 @@
1
+ import { PaletteOptions } from "./palette-options";
2
+ import { BrowserElement } from "../../util";
3
+ import { ObjectData } from "../../../core";
4
+ import { BrowserUI } from "../../browser-visuallyjs-instance";
5
+ /**
6
+ * Default data generator for palettes. Extract `data-vjs-***` attributes from element.
7
+ * @param el
8
+ */
9
+ export declare function defaultDataGenerator<T = any>(el: BrowserElement): T;
10
+ /**
11
+ * The default CSS selector used with the Palette and the library integration wrappers around it
12
+ * @group Components
13
+ * @category Palette
14
+ * @internal
15
+ */
16
+ export declare const DEFAULT_PALETTE_SELECTOR = "[data-vjs-type]";
17
+ /**
18
+ * This component allows you to configure elements to drag and drop onto a surface.
19
+ *
20
+ * @group Components
21
+ * @category Palette
22
+ */
23
+ export declare class Palette<T> {
24
+ private readonly ui;
25
+ private readonly _$_mode;
26
+ readonly source: BrowserElement;
27
+ private readonly _selector;
28
+ private readonly _ignoreGrid;
29
+ private readonly _dragActiveClass;
30
+ private readonly _dragHoverClass;
31
+ private readonly _dragElementClass;
32
+ private readonly _dragHoverCannotDropClass;
33
+ private readonly _dataGenerator;
34
+ private readonly _dragSizeGenerator;
35
+ private readonly _typeGenerator;
36
+ private readonly _groupIdentifier;
37
+ private readonly _canvasDropFilter;
38
+ private readonly onDrag;
39
+ private readonly _ignoreZoom;
40
+ private readonly _elementGenerator;
41
+ private _enabled;
42
+ private readonly _onVertexAddedCallback;
43
+ private readonly _selectAfterAdd;
44
+ private _$_dragBeginListener;
45
+ private _$_dragUpListener;
46
+ private _$_dragMoveListener;
47
+ /**
48
+ * The bounding rect of the current visible viewport.
49
+ */
50
+ private _$_viewportBoundingClientRect;
51
+ private _$_isOverCanvas;
52
+ private _$_canDropOnCanvas;
53
+ private _visibleContentArea;
54
+ private _$_eventManager;
55
+ private _currentNodeList;
56
+ private _currentGroupList;
57
+ private _currentEdgeList;
58
+ private _candidateData;
59
+ private _dropCandidate;
60
+ private _candidateVertex;
61
+ /**
62
+ * the current canvas coords of the item being dragged.
63
+ * @private
64
+ */
65
+ private _dragObjectCanvasCoordinates;
66
+ /**
67
+ * current element being dragged
68
+ * @internal
69
+ */
70
+ private _$_dragElement;
71
+ /**
72
+ * Size to use for the current drag element. This is set if there was a dragSizeGenerator function supplied, and that returned something on drag start, or if a class-wide drag size was set in the constructor.
73
+ * @internal
74
+ */
75
+ private _$_dragSizeToUse;
76
+ private _dragElementType;
77
+ /**
78
+ * current effective zoom of the related UI
79
+ * @internal
80
+ */
81
+ private _$_effectiveZoom;
82
+ private readonly _$_allowDropOnCanvas;
83
+ private readonly _$_allowDropOnNodes;
84
+ private readonly _$_ignoreDropOnNodes;
85
+ private readonly _$_allowDropOnGroups;
86
+ private readonly _$_allowDropOnEdges;
87
+ private readonly _canDrop?;
88
+ private readonly _$_dragSize;
89
+ private _$_candidateTapObject;
90
+ private _$_previousCandidateTapObject;
91
+ private _contentGenerator;
92
+ private readonly _keyListener;
93
+ constructor(ui: BrowserUI, options: PaletteOptions<T>);
94
+ /**
95
+ * Sets the enabled state of the palette
96
+ *
97
+ * @param enabled
98
+ */
99
+ setEnabled(enabled: boolean): void;
100
+ /**
101
+ * Sets the data used to render the palette. This is really only intended for use with Vanilla Visually Js
102
+ * @param d New data to draw.
103
+ * @param newTemplate optional new template to use with this data.
104
+ */
105
+ setData(d: ObjectData, newTemplate?: string): void;
106
+ /**
107
+ * Set some element to be the current selected tap target. This method cleans up any existing tap target, then gets a payload for the current tap target via the `dataGenerator` function, and stashes that payload along with the objectType (node or group) and the DOM element. It then adds a CSS class to the selected element and sets the surface to vertex drawing mode.
108
+ * @param el
109
+ * @internal
110
+ */
111
+ private _setTapElement;
112
+ private _$_initDragBeginListener;
113
+ private _cleanupDrag;
114
+ private _$_initDragEndListener;
115
+ private _$_initDragMoveListener;
116
+ private _$_initDragMode;
117
+ private _$_initTapMode;
118
+ private _dropOnEdge;
119
+ private _dropOnGroup;
120
+ private _dropOnWhitespace;
121
+ private _mapToPositionAttributes;
122
+ private _addNewVertexToCanvas;
123
+ private _onVertexAdded;
124
+ private _reset;
125
+ private _$_initDrawMode;
126
+ }