@peter.prib/renderengine 0.0.0-stage → 0.1.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 (436) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +203 -2
  3. package/REFERENCE.md +2159 -0
  4. package/dist/renderengine-workspace.umd.js +45944 -0
  5. package/dist/renderengine.umd.js +41262 -0
  6. package/examples/archimate.html +66 -0
  7. package/examples/diagram-editor.html +51 -0
  8. package/package.json +65 -4
  9. package/src/BaseRenderer.js +57 -0
  10. package/src/CanvasRenderer.js +194 -0
  11. package/src/Mat4.js +111 -0
  12. package/src/OrbitCamera.js +57 -0
  13. package/src/RendererFactory.js +50 -0
  14. package/src/SVGRenderer.js +439 -0
  15. package/src/archimate.js +723 -0
  16. package/src/archimateArchiFormat.js +1693 -0
  17. package/src/archimateArchiTypes.js +72 -0
  18. package/src/archimateArchive.js +140 -0
  19. package/src/archimateCSV.js +127 -0
  20. package/src/archimateDrawio.js +182 -0
  21. package/src/archimateExchangeFormat.js +546 -0
  22. package/src/archimateRelationshipTable.js +93 -0
  23. package/src/archimateSpecializations.js +161 -0
  24. package/src/chartCatalog.js +544 -0
  25. package/src/charting/ArchimateDiagramEditor.js +1624 -0
  26. package/src/charting/ArchimateSpecializationSelector.js +134 -0
  27. package/src/charting/Axis.js +68 -0
  28. package/src/charting/CameraSeeder.js +30 -0
  29. package/src/charting/CatalogDialog.js +92 -0
  30. package/src/charting/Chart.js +37 -0
  31. package/src/charting/Chart3D.js +99 -0
  32. package/src/charting/ChartBox.js +80 -0
  33. package/src/charting/ChartData.js +27 -0
  34. package/src/charting/ChartRegistry.js +76 -0
  35. package/src/charting/CheckboxTreeSelector.js +304 -0
  36. package/src/charting/ColorField.js +107 -0
  37. package/src/charting/ColorPalette.js +88 -0
  38. package/src/charting/CommandHistory.js +176 -0
  39. package/src/charting/DataFilter.js +52 -0
  40. package/src/charting/Diagram.js +36 -0
  41. package/src/charting/Diagram3D.js +29 -0
  42. package/src/charting/DiagramClipboard.js +31 -0
  43. package/src/charting/DiagramEditor.js +3330 -0
  44. package/src/charting/DiagramEditorCommand.js +110 -0
  45. package/src/charting/DiagramEditorCommands.js +237 -0
  46. package/src/charting/DiagramEditorEdgeCommands.js +142 -0
  47. package/src/charting/DiagramEditorState.js +98 -0
  48. package/src/charting/DiagramRegistry.js +86 -0
  49. package/src/charting/DiagramTypeRegistry.js +326 -0
  50. package/src/charting/DiagramViewPropertiesDialog.js +46 -0
  51. package/src/charting/Edge.js +113 -0
  52. package/src/charting/ErrorBars.js +37 -0
  53. package/src/charting/FilterSystem.js +285 -0
  54. package/src/charting/FindReplaceDialog.js +139 -0
  55. package/src/charting/FormDialog.js +385 -0
  56. package/src/charting/Gauge.js +52 -0
  57. package/src/charting/Hierarchy.js +175 -0
  58. package/src/charting/HintPanel.js +86 -0
  59. package/src/charting/ImageSelector.js +148 -0
  60. package/src/charting/InteractionManager.js +725 -0
  61. package/src/charting/Legend.js +58 -0
  62. package/src/charting/MenuBar.js +62 -0
  63. package/src/charting/ModelFileFormat.js +115 -0
  64. package/src/charting/OrbitControls.js +77 -0
  65. package/src/charting/Palette.js +119 -0
  66. package/src/charting/PopupMenu.js +117 -0
  67. package/src/charting/PropertiesPanel.js +155 -0
  68. package/src/charting/PropertyListEditor.js +96 -0
  69. package/src/charting/PropertyLog.js +92 -0
  70. package/src/charting/SettingsCascade.js +93 -0
  71. package/src/charting/SettingsDialog.js +53 -0
  72. package/src/charting/SettingsManager.js +179 -0
  73. package/src/charting/SettingsViewPropertiesDialog.js +58 -0
  74. package/src/charting/ShapePaths.js +27 -0
  75. package/src/charting/Statistics.js +134 -0
  76. package/src/charting/TemplateCatalog.js +59 -0
  77. package/src/charting/TemplateLibrary.js +103 -0
  78. package/src/charting/TextStyle.js +168 -0
  79. package/src/charting/ViewFit.js +55 -0
  80. package/src/charting/ViewMenu.js +70 -0
  81. package/src/charting/ViewPropertiesDialog.js +77 -0
  82. package/src/charting/ViewTabStrip.js +81 -0
  83. package/src/charting/archimate/ArchiFileFormat.js +32 -0
  84. package/src/charting/archimate/ArchimateCanvasEditor.js +815 -0
  85. package/src/charting/archimate/ArchimateCsvFileFormat.js +35 -0
  86. package/src/charting/archimate/ArchimateEdge.js +137 -0
  87. package/src/charting/archimate/ArchimateElementTemplate.js +195 -0
  88. package/src/charting/archimate/ArchimatePalette.js +102 -0
  89. package/src/charting/archimate/CsvImportDialog.js +105 -0
  90. package/src/charting/archimate/CustomViewpoints.js +74 -0
  91. package/src/charting/archimate/DerivedEdge.js +29 -0
  92. package/src/charting/archimate/DrawioFileFormat.js +24 -0
  93. package/src/charting/archimate/ElementFilterRule.js +21 -0
  94. package/src/charting/archimate/ExchangeFileFormat.js +28 -0
  95. package/src/charting/archimate/ViewGroupTemplate.js +137 -0
  96. package/src/charting/archimate/ViewLineEdge.js +84 -0
  97. package/src/charting/archimate/ViewpointRule.js +45 -0
  98. package/src/charting/archimate/archimateFileFormats.js +12 -0
  99. package/src/charting/archimate/archimateNames.js +5 -0
  100. package/src/charting/archimate/csvMapping.js +122 -0
  101. package/src/charting/archimate/elementMenuItems.js +32 -0
  102. package/src/charting/archimate/elementProperties.js +146 -0
  103. package/src/charting/archimate/elementTypeChoices.js +7 -0
  104. package/src/charting/archimate/elementTypeGroups.js +19 -0
  105. package/src/charting/archimate/index.js +17 -0
  106. package/src/charting/archimate/specializationCatalogDialog.js +64 -0
  107. package/src/charting/archimate/typeGlyph.js +29 -0
  108. package/src/charting/arrangement/Arrangement.js +112 -0
  109. package/src/charting/arrangement/ArrangementCommand.js +29 -0
  110. package/src/charting/arrangement/BackgroundCommand.js +41 -0
  111. package/src/charting/arrangement/BackgroundGroup.js +18 -0
  112. package/src/charting/arrangement/GroupCommand.js +46 -0
  113. package/src/charting/arrangement/ItemGroup.js +62 -0
  114. package/src/charting/arrangement/LockCommand.js +32 -0
  115. package/src/charting/arrangement/UngroupCommand.js +27 -0
  116. package/src/charting/arrangement/alignment.js +88 -0
  117. package/src/charting/arrangement/arrangeMenuItems.js +25 -0
  118. package/src/charting/arrangement/index.js +11 -0
  119. package/src/charting/arrangement/layouts.js +233 -0
  120. package/src/charting/canvas/ArchiHint.js +78 -0
  121. package/src/charting/canvas/CanvasBoxKind.js +39 -0
  122. package/src/charting/canvas/CanvasPalette.js +49 -0
  123. package/src/charting/canvas/CanvasTemplateLibrary.js +61 -0
  124. package/src/charting/canvas/CanvasTemplateMenu.js +151 -0
  125. package/src/charting/canvas/EditHintCommand.js +28 -0
  126. package/src/charting/canvas/canvasBoxKinds.js +27 -0
  127. package/src/charting/canvas/canvasBoxMenuItems.js +40 -0
  128. package/src/charting/canvas/defaultCanvasTemplates.js +186 -0
  129. package/src/charting/canvas/diagramBoxKinds.js +12 -0
  130. package/src/charting/canvas/hintMenuItems.js +49 -0
  131. package/src/charting/charts/AreaChart.js +71 -0
  132. package/src/charting/charts/BarChart.js +80 -0
  133. package/src/charting/charts/BarChart3D.js +56 -0
  134. package/src/charting/charts/BarChart3DOrbit.js +53 -0
  135. package/src/charting/charts/BarChartBase.js +70 -0
  136. package/src/charting/charts/BarGauge.js +21 -0
  137. package/src/charting/charts/BoxPlotChart.js +41 -0
  138. package/src/charting/charts/BubbleChart.js +99 -0
  139. package/src/charting/charts/BubbleChart3D.js +78 -0
  140. package/src/charting/charts/BulletGauge.js +91 -0
  141. package/src/charting/charts/CalendarHeatmapChart.js +204 -0
  142. package/src/charting/charts/CandlestickChart.js +54 -0
  143. package/src/charting/charts/ChordDiagram.js +130 -0
  144. package/src/charting/charts/DensityChart.js +73 -0
  145. package/src/charting/charts/DialGauge.js +37 -0
  146. package/src/charting/charts/DonutChart.js +15 -0
  147. package/src/charting/charts/FunnelChart.js +47 -0
  148. package/src/charting/charts/GanttChart.js +201 -0
  149. package/src/charting/charts/GaugeChart.js +47 -0
  150. package/src/charting/charts/GeoMapChart.js +146 -0
  151. package/src/charting/charts/GroupedBarChart.js +88 -0
  152. package/src/charting/charts/GroupedDistributionChart.js +70 -0
  153. package/src/charting/charts/HeatmapChart.js +80 -0
  154. package/src/charting/charts/HierarchyChart.js +39 -0
  155. package/src/charting/charts/HistogramChart.js +45 -0
  156. package/src/charting/charts/LagPlotChart.js +41 -0
  157. package/src/charting/charts/LineChart.js +124 -0
  158. package/src/charting/charts/OutlineChart.js +95 -0
  159. package/src/charting/charts/ParallelCoordinatesChart.js +130 -0
  160. package/src/charting/charts/PieChart.js +56 -0
  161. package/src/charting/charts/PipeChart.js +88 -0
  162. package/src/charting/charts/PopulationPyramidChart.js +106 -0
  163. package/src/charting/charts/QQPlotChart.js +64 -0
  164. package/src/charting/charts/RadarChart.js +76 -0
  165. package/src/charting/charts/RadialBarChart.js +96 -0
  166. package/src/charting/charts/SankeyDiagram.js +174 -0
  167. package/src/charting/charts/ScatterChart.js +104 -0
  168. package/src/charting/charts/StackedAreaChart.js +15 -0
  169. package/src/charting/charts/StackedBarChart.js +33 -0
  170. package/src/charting/charts/StackedBarChart3DOrbit.js +58 -0
  171. package/src/charting/charts/StreamGraphChart.js +131 -0
  172. package/src/charting/charts/SunburstChart.js +57 -0
  173. package/src/charting/charts/TreemapChart.js +54 -0
  174. package/src/charting/charts/ViolinChart.js +37 -0
  175. package/src/charting/charts/WaterfallChart.js +66 -0
  176. package/src/charting/charts/WordCloudChart.js +104 -0
  177. package/src/charting/diagramModel/AddViewCommand.js +33 -0
  178. package/src/charting/diagramModel/DiagramModel.js +39 -0
  179. package/src/charting/diagramModel/DiagramModelSearch.js +22 -0
  180. package/src/charting/diagramModel/DiagramView.js +50 -0
  181. package/src/charting/diagramModel/ModelHistory.js +43 -0
  182. package/src/charting/diagramModel/ModelReport.js +153 -0
  183. package/src/charting/diagramModel/ModelSearch.js +223 -0
  184. package/src/charting/diagramModel/RemoveViewCommand.js +25 -0
  185. package/src/charting/diagramModel/RenameViewCommand.js +21 -0
  186. package/src/charting/diagramModel/ReplaceTextCommand.js +25 -0
  187. package/src/charting/diagramModel/ViewSetChecker.js +34 -0
  188. package/src/charting/diagramModel/ViewSetModel.js +243 -0
  189. package/src/charting/diagramModel/index.js +6 -0
  190. package/src/charting/diagramModel/nameTransforms.js +29 -0
  191. package/src/charting/diagrams/ArchimateCommands.js +141 -0
  192. package/src/charting/diagrams/ArchimateDiagram.js +263 -0
  193. package/src/charting/diagrams/ArchimateModel.js +1155 -0
  194. package/src/charting/diagrams/ArchimateModelChecker.js +125 -0
  195. package/src/charting/diagrams/ArchimateModelReport.js +128 -0
  196. package/src/charting/diagrams/ArchimateModelSearch.js +41 -0
  197. package/src/charting/diagrams/ArchimateValidator.js +357 -0
  198. package/src/charting/diagrams/CanvasView.js +112 -0
  199. package/src/charting/diagrams/ContextMenu.js +37 -0
  200. package/src/charting/diagrams/DataModelDiagram.js +86 -0
  201. package/src/charting/diagrams/DataModelRelationshipStrategy.js +38 -0
  202. package/src/charting/diagrams/DerivedRelationships.js +102 -0
  203. package/src/charting/diagrams/EbnfDiagram.js +39 -0
  204. package/src/charting/diagrams/EdgeGeometry.js +553 -0
  205. package/src/charting/diagrams/EditViewItemCommand.js +128 -0
  206. package/src/charting/diagrams/ElementInstance.js +157 -0
  207. package/src/charting/diagrams/GraphDiagram.js +1340 -0
  208. package/src/charting/diagrams/GraphDiagram3D.js +152 -0
  209. package/src/charting/diagrams/GraphMetrics.js +81 -0
  210. package/src/charting/diagrams/GridOverlay.js +137 -0
  211. package/src/charting/diagrams/ImportRowsCommand.js +62 -0
  212. package/src/charting/diagrams/LabelHelper.js +108 -0
  213. package/src/charting/diagrams/MergeElementsCommand.js +101 -0
  214. package/src/charting/diagrams/NestInstanceCommand.js +34 -0
  215. package/src/charting/diagrams/NodeGeometry.js +158 -0
  216. package/src/charting/diagrams/PlaceItemsCommand.js +77 -0
  217. package/src/charting/diagrams/RadialLayout.js +101 -0
  218. package/src/charting/diagrams/RelationshipInstance.js +93 -0
  219. package/src/charting/diagrams/RemoveGroupFromViewCommand.js +28 -0
  220. package/src/charting/diagrams/RemoveLineCommand.js +27 -0
  221. package/src/charting/diagrams/ShowElementCommand.js +43 -0
  222. package/src/charting/diagrams/SvgCoordinate.js +17 -0
  223. package/src/charting/diagrams/SvgZoom.js +127 -0
  224. package/src/charting/diagrams/Tooltip.js +62 -0
  225. package/src/charting/diagrams/ViewConnectionInstance.js +102 -0
  226. package/src/charting/diagrams/ViewObjectInstance.js +56 -0
  227. package/src/charting/diagrams/commands/AddEdgeCommand.js +34 -0
  228. package/src/charting/diagrams/commands/AddNodeCommand.js +28 -0
  229. package/src/charting/diagrams/commands/AddWaypointCommand.js +27 -0
  230. package/src/charting/diagrams/commands/CreateFolderCommand.js +27 -0
  231. package/src/charting/diagrams/commands/DeleteEdgeCommand.js +30 -0
  232. package/src/charting/diagrams/commands/DeleteFolderCommand.js +47 -0
  233. package/src/charting/diagrams/commands/DeleteNodeCommand.js +35 -0
  234. package/src/charting/diagrams/commands/DeleteWaypointCommand.js +24 -0
  235. package/src/charting/diagrams/commands/GraphCommand.js +65 -0
  236. package/src/charting/diagrams/commands/InvertEdgeCommand.js +24 -0
  237. package/src/charting/diagrams/commands/MoveNodeCommand.js +44 -0
  238. package/src/charting/diagrams/commands/MoveWaypointCommand.js +27 -0
  239. package/src/charting/diagrams/commands/RenameEdgeCommand.js +23 -0
  240. package/src/charting/diagrams/commands/RenameFolderCommand.js +31 -0
  241. package/src/charting/diagrams/commands/RenameNodeCommand.js +27 -0
  242. package/src/charting/diagrams/commands/ResizeNodeCommand.js +46 -0
  243. package/src/charting/diagrams/commands/UpdateEdgeSideCommand.js +40 -0
  244. package/src/charting/diagrams/commands/index.js +17 -0
  245. package/src/charting/diagrams/duplicates.js +49 -0
  246. package/src/charting/diagrams/nesting.js +30 -0
  247. package/src/charting/diagrams/roadmap.js +77 -0
  248. package/src/charting/edgeMarkers/ArrowMarker.js +15 -0
  249. package/src/charting/edgeMarkers/CircleMarker.js +13 -0
  250. package/src/charting/edgeMarkers/CrowsFootMarker.js +16 -0
  251. package/src/charting/edgeMarkers/DiamondMarker.js +15 -0
  252. package/src/charting/edgeMarkers/EdgeMarker.js +34 -0
  253. package/src/charting/edgeMarkers/HalfArrowMarker.js +8 -0
  254. package/src/charting/edgeMarkers/HollowDiamondMarker.js +18 -0
  255. package/src/charting/edgeMarkers/HollowTriangleMarker.js +18 -0
  256. package/src/charting/edgeMarkers/OpenArrowMarker.js +17 -0
  257. package/src/charting/edgeMarkers/index.js +27 -0
  258. package/src/charting/edgeStyle/EdgeStyleCascade.js +22 -0
  259. package/src/charting/edgeStyle/EdgeStyleDialog.js +51 -0
  260. package/src/charting/edgeStyle/EdgeStyleSchema.js +43 -0
  261. package/src/charting/edgeStyle/SetStyleCommand.js +12 -0
  262. package/src/charting/edgeStyle/index.js +4 -0
  263. package/src/charting/emphasis/EmphasisRule.js +42 -0
  264. package/src/charting/emphasis/HighlightRule.js +24 -0
  265. package/src/charting/glyphs/ArrowGlyph.js +21 -0
  266. package/src/charting/glyphs/BatteryGlyph.js +18 -0
  267. package/src/charting/glyphs/ChevronGlyph.js +18 -0
  268. package/src/charting/glyphs/CircleGlyph.js +15 -0
  269. package/src/charting/glyphs/CloudGlyph.js +19 -0
  270. package/src/charting/glyphs/ComponentGlyph.js +18 -0
  271. package/src/charting/glyphs/ConstraintGlyph.js +24 -0
  272. package/src/charting/glyphs/ContractBoxGlyph.js +10 -0
  273. package/src/charting/glyphs/CubeGlyph.js +19 -0
  274. package/src/charting/glyphs/CylinderGlyph.js +19 -0
  275. package/src/charting/glyphs/DashedDoubleArrowGlyph.js +11 -0
  276. package/src/charting/glyphs/DeviceGlyph.js +17 -0
  277. package/src/charting/glyphs/DiamondGlyph.js +17 -0
  278. package/src/charting/glyphs/DocumentGlyph.js +17 -0
  279. package/src/charting/glyphs/DoubleArrowGlyph.js +23 -0
  280. package/src/charting/glyphs/DoubleCircleGlyph.js +24 -0
  281. package/src/charting/glyphs/EllipseGlyph.js +18 -0
  282. package/src/charting/glyphs/FactoryGlyph.js +20 -0
  283. package/src/charting/glyphs/FlagGlyph.js +16 -0
  284. package/src/charting/glyphs/GapCircleGlyph.js +17 -0
  285. package/src/charting/glyphs/GearGlyph.js +37 -0
  286. package/src/charting/glyphs/Glyph.js +98 -0
  287. package/src/charting/glyphs/GroupingBoxGlyph.js +13 -0
  288. package/src/charting/glyphs/HalfCircleGlyph.js +22 -0
  289. package/src/charting/glyphs/HexagonGlyph.js +28 -0
  290. package/src/charting/glyphs/IconGlyph.js +22 -0
  291. package/src/charting/glyphs/ImageGlyph.js +16 -0
  292. package/src/charting/glyphs/JunctionGlyph.js +17 -0
  293. package/src/charting/glyphs/LollipopGlyph.js +22 -0
  294. package/src/charting/glyphs/MagnifierGlyph.js +17 -0
  295. package/src/charting/glyphs/NoteGlyph.js +33 -0
  296. package/src/charting/glyphs/ObjectBoxGlyph.js +21 -0
  297. package/src/charting/glyphs/OrJunctionGlyph.js +17 -0
  298. package/src/charting/glyphs/ParallelogramGlyph.js +20 -0
  299. package/src/charting/glyphs/PersonGlyph.js +23 -0
  300. package/src/charting/glyphs/PillGlyph.js +23 -0
  301. package/src/charting/glyphs/PinGlyph.js +18 -0
  302. package/src/charting/glyphs/PrincipleGlyph.js +23 -0
  303. package/src/charting/glyphs/ProductBoxGlyph.js +16 -0
  304. package/src/charting/glyphs/RectGlyph.js +15 -0
  305. package/src/charting/glyphs/RoundedBoxGlyph.js +13 -0
  306. package/src/charting/glyphs/StackGlyph.js +14 -0
  307. package/src/charting/glyphs/StepsGlyph.js +20 -0
  308. package/src/charting/glyphs/StickFigureGlyph.js +32 -0
  309. package/src/charting/glyphs/SystemSoftwareBoxGlyph.js +16 -0
  310. package/src/charting/glyphs/TabbedBoxGlyph.js +37 -0
  311. package/src/charting/glyphs/TargetGlyph.js +23 -0
  312. package/src/charting/glyphs/WavyBoxGlyph.js +17 -0
  313. package/src/charting/glyphs/WheelGlyph.js +28 -0
  314. package/src/charting/glyphs/drawGlyph.js +28 -0
  315. package/src/charting/glyphs/glyphSvg.js +55 -0
  316. package/src/charting/glyphs/index.js +109 -0
  317. package/src/charting/modelTree/AnalysisPanel.js +159 -0
  318. package/src/charting/modelTree/DiagramTabs.js +217 -0
  319. package/src/charting/modelTree/ModelTree.js +164 -0
  320. package/src/charting/modelTree/ModelTreePanel.js +914 -0
  321. package/src/charting/modelTree/TreeBuilder.js +238 -0
  322. package/src/charting/modelTree/TreeModeRegistry.js +51 -0
  323. package/src/charting/modelTree/TreeViewMode.js +110 -0
  324. package/src/charting/modelTree/buildFilterTrees.js +138 -0
  325. package/src/charting/modelTree/modes/FlatTreeMode.js +46 -0
  326. package/src/charting/modelTree/modes/LayerGroupedTreeMode.js +62 -0
  327. package/src/charting/modelTree/modes/TypeGroupedTreeMode.js +60 -0
  328. package/src/charting/modelTree/treeLayers.js +11 -0
  329. package/src/charting/report/reportHtml.js +82 -0
  330. package/src/charting/report/reportViewer.js +118 -0
  331. package/src/charting/shapes/CircleShape.js +19 -0
  332. package/src/charting/shapes/PathShape.js +17 -0
  333. package/src/charting/shapes/RectShape.js +20 -0
  334. package/src/charting/shapes/Shape.js +20 -0
  335. package/src/charting/shapes/ShapeFactory.js +23 -0
  336. package/src/charting/storage/LocalJsonStore.js +43 -0
  337. package/src/charting/templates/ActorTemplate.js +36 -0
  338. package/src/charting/templates/BoxTemplate.js +27 -0
  339. package/src/charting/templates/CircleTemplate.js +18 -0
  340. package/src/charting/templates/ClassTemplate.js +20 -0
  341. package/src/charting/templates/CloudTemplate.js +43 -0
  342. package/src/charting/templates/ComponentTemplate.js +19 -0
  343. package/src/charting/templates/CylinderTemplate.js +30 -0
  344. package/src/charting/templates/DataStoreTemplate.js +16 -0
  345. package/src/charting/templates/DiamondTemplate.js +10 -0
  346. package/src/charting/templates/DocumentTemplate.js +32 -0
  347. package/src/charting/templates/EllipseTemplate.js +15 -0
  348. package/src/charting/templates/FinalStateTemplate.js +12 -0
  349. package/src/charting/templates/GlyphTemplate.js +47 -0
  350. package/src/charting/templates/HexagonTemplate.js +17 -0
  351. package/src/charting/templates/LifelineTemplate.js +20 -0
  352. package/src/charting/templates/ManualInputTemplate.js +12 -0
  353. package/src/charting/templates/NoteTemplate.js +23 -0
  354. package/src/charting/templates/OctagonTemplate.js +7 -0
  355. package/src/charting/templates/PackageTemplate.js +25 -0
  356. package/src/charting/templates/ParallelogramTemplate.js +11 -0
  357. package/src/charting/templates/PentagonTemplate.js +5 -0
  358. package/src/charting/templates/PolygonTemplate.js +18 -0
  359. package/src/charting/templates/PredefinedProcessTemplate.js +13 -0
  360. package/src/charting/templates/RectangleTemplate.js +28 -0
  361. package/src/charting/templates/RegularPolygonTemplate.js +21 -0
  362. package/src/charting/templates/RoundedRectangleTemplate.js +5 -0
  363. package/src/charting/templates/StadiumTemplate.js +8 -0
  364. package/src/charting/templates/StarTemplate.js +17 -0
  365. package/src/charting/templates/SwimlaneTemplate.js +18 -0
  366. package/src/charting/templates/Template.js +208 -0
  367. package/src/charting/templates/TrapezoidTemplate.js +11 -0
  368. package/src/charting/templates/TriangleTemplate.js +12 -0
  369. package/src/charting/templates/index.js +31 -0
  370. package/src/charting/templates/outline.js +59 -0
  371. package/src/charting/templates/svg.js +19 -0
  372. package/src/charting/textToShapes.js +61 -0
  373. package/src/charting/toolbar/ToolbarButton.js +38 -0
  374. package/src/charting/toolbar/ToolbarCheckbox.js +31 -0
  375. package/src/charting/toolbar/ToolbarItem.js +19 -0
  376. package/src/charting/toolbar/ToolbarMenu.js +36 -0
  377. package/src/charting/toolbar/ToolbarSelect.js +38 -0
  378. package/src/charting/toolbar/ToolbarSeparator.js +7 -0
  379. package/src/charting/toolbar/ToolbarText.js +22 -0
  380. package/src/charting/toolbar/index.js +8 -0
  381. package/src/charting/toolbar/pickFile.js +14 -0
  382. package/src/charting/viewDecorations.js +85 -0
  383. package/src/charting/zOrder.js +57 -0
  384. package/src/csvTable.js +61 -0
  385. package/src/datamodel.js +122 -0
  386. package/src/datawindow/BoundedWindow.js +36 -0
  387. package/src/datawindow/FlatDataWindow.js +34 -0
  388. package/src/datawindow/GraphDataWindow.js +40 -0
  389. package/src/datawindow/GroupedSampleDataWindow.js +16 -0
  390. package/src/datawindow/SeriesDataWindow.js +42 -0
  391. package/src/datawindow/index.js +31 -0
  392. package/src/diagramCatalog.js +30 -0
  393. package/src/ebnfDiagram.js +57 -0
  394. package/src/ebnfParser.js +129 -0
  395. package/src/exportImage.js +233 -0
  396. package/src/index.js +2564 -0
  397. package/src/itIcons.js +84 -0
  398. package/src/kernelExpr.js +243 -0
  399. package/src/propertiesDialog.js +463 -0
  400. package/src/railroadDiagram.js +571 -0
  401. package/src/treeModeCatalog.js +16 -0
  402. package/src/workspace/ContextBus.js +79 -0
  403. package/src/workspace/EditorShell.js +67 -0
  404. package/src/workspace/Part.js +163 -0
  405. package/src/workspace/PartFactory.js +49 -0
  406. package/src/workspace/PartRegistry.js +86 -0
  407. package/src/workspace/Workspace.js +321 -0
  408. package/src/workspace/archimateServices.js +33 -0
  409. package/src/workspace/dom.js +120 -0
  410. package/src/workspace/index.js +75 -0
  411. package/src/workspace/layout/GridNode.js +280 -0
  412. package/src/workspace/layout/LayoutNode.js +89 -0
  413. package/src/workspace/layout/PartNode.js +77 -0
  414. package/src/workspace/layout/SplitNode.js +114 -0
  415. package/src/workspace/layout/TabsNode.js +191 -0
  416. package/src/workspace/layout/index.js +24 -0
  417. package/src/workspace/parts/AdapterPart.js +33 -0
  418. package/src/workspace/parts/ArchimateCanvasPart.js +345 -0
  419. package/src/workspace/parts/ArchimateEditorPart.js +79 -0
  420. package/src/workspace/parts/ChartPart.js +115 -0
  421. package/src/workspace/parts/ContentPart.js +34 -0
  422. package/src/workspace/parts/DetailPart.js +46 -0
  423. package/src/workspace/parts/DiagramEditorPart.js +135 -0
  424. package/src/workspace/parts/EditorPart.js +388 -0
  425. package/src/workspace/parts/HtmlPart.js +25 -0
  426. package/src/workspace/parts/ListPart.js +57 -0
  427. package/src/workspace/parts/ModelFile.js +187 -0
  428. package/src/workspace/parts/ModelsPart.js +135 -0
  429. package/src/workspace/styles.js +258 -0
  430. package/src/workspace/themes.js +96 -0
  431. package/src/workspace/workArea.js +413 -0
  432. package/src/workspace/workAreaModel.js +197 -0
  433. package/src/workspace.js +16 -0
  434. package/src/zip/ZipArchive.js +160 -0
  435. package/src/zip/crc32.js +25 -0
  436. package/src/zip/inflate.js +159 -0
@@ -0,0 +1,160 @@
1
+ import { crc32 } from './crc32.js';
2
+ import { inflate } from './inflate.js';
3
+
4
+ const LOCAL_HEADER = 0x04034b50;
5
+ const CENTRAL_HEADER = 0x02014b50;
6
+ const END_OF_CENTRAL = 0x06054b50;
7
+ const STORED = 0;
8
+ const DEFLATED = 8;
9
+ const UTF8_NAMES = 0x0800;
10
+
11
+ /**
12
+ * A zip archive held in memory: named entries of bytes. Reads stored and
13
+ * deflated entries (what Java's ZipOutputStream, and so Archi, writes); writes
14
+ * stored ones, which every zip reader accepts. No ZIP64, encryption or
15
+ * multi-disk archives.
16
+ *
17
+ * const zip = ZipArchive.read(bytes);
18
+ * zip.get('model.xml'); // Uint8Array, or undefined
19
+ * new ZipArchive().add('a.txt', bytes).toBytes();
20
+ */
21
+ export class ZipArchive {
22
+ constructor() {
23
+ /** name -> Uint8Array, in the order added */
24
+ this._entries = new Map();
25
+ }
26
+
27
+ /** Whether bytes start like a zip archive ("PK\3\4"). */
28
+ static isZip(bytes) {
29
+ return bytes instanceof Uint8Array && bytes.length >= 4
30
+ && bytes[0] === 0x50 && bytes[1] === 0x4B && bytes[2] === 0x03 && bytes[3] === 0x04;
31
+ }
32
+
33
+ /**
34
+ * Read an archive. Entry sizes come from the central directory, since a
35
+ * streamed entry's local header leaves them zero.
36
+ * @param {Uint8Array} bytes
37
+ * @returns {ZipArchive}
38
+ */
39
+ static read(bytes) {
40
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
41
+ const eocd = ZipArchive._findEndOfCentral(view);
42
+ const count = view.getUint16(eocd + 10, true);
43
+ let at = view.getUint32(eocd + 16, true);
44
+ const names = new TextDecoder();
45
+ const zip = new ZipArchive();
46
+ for (let i = 0; i < count; i++) {
47
+ if (view.getUint32(at, true) !== CENTRAL_HEADER) throw new Error('zip: bad central directory');
48
+ const method = view.getUint16(at + 10, true);
49
+ const crc = view.getUint32(at + 16, true);
50
+ const compressed = view.getUint32(at + 20, true);
51
+ const size = view.getUint32(at + 24, true);
52
+ const nameLen = view.getUint16(at + 28, true);
53
+ const extraLen = view.getUint16(at + 30, true);
54
+ const commentLen = view.getUint16(at + 32, true);
55
+ const local = view.getUint32(at + 42, true);
56
+ const name = names.decode(bytes.subarray(at + 46, at + 46 + nameLen));
57
+ at += 46 + nameLen + extraLen + commentLen;
58
+ if (compressed === 0xFFFFFFFF || size === 0xFFFFFFFF || local === 0xFFFFFFFF) throw new Error('zip: ZIP64 archives are not supported');
59
+ if (name.endsWith('/')) continue; // a directory
60
+
61
+ if (view.getUint32(local, true) !== LOCAL_HEADER) throw new Error(`zip: bad local header for ${name}`);
62
+ const start = local + 30 + view.getUint16(local + 26, true) + view.getUint16(local + 28, true);
63
+ const raw = bytes.subarray(start, start + compressed);
64
+ let data;
65
+ if (method === STORED) data = raw.slice();
66
+ else if (method === DEFLATED) data = inflate(raw, size);
67
+ else throw new Error(`zip: ${name} uses compression method ${method}, which is not supported`);
68
+ if (data.length !== size || crc32(data) !== crc) throw new Error(`zip: ${name} is damaged (size or checksum)`);
69
+ zip._entries.set(name, data);
70
+ }
71
+ return zip;
72
+ }
73
+
74
+ /** @private */
75
+ static _findEndOfCentral(view) {
76
+ // The record is 22 bytes plus a comment of up to 65535.
77
+ const lowest = Math.max(0, view.byteLength - 22 - 0xFFFF);
78
+ for (let at = view.byteLength - 22; at >= lowest; at--) {
79
+ if (view.getUint32(at, true) === END_OF_CENTRAL) return at;
80
+ }
81
+ throw new Error('zip: not a zip archive (no end of central directory)');
82
+ }
83
+
84
+ /** Entry names, in archive order. */
85
+ names() {
86
+ return [...this._entries.keys()];
87
+ }
88
+
89
+ /** An entry's bytes, or undefined. */
90
+ get(name) {
91
+ return this._entries.get(name);
92
+ }
93
+
94
+ /** Add (or replace) an entry. Strings are written as UTF-8. Returns this. */
95
+ add(name, data) {
96
+ this._entries.set(name, typeof data === 'string' ? new TextEncoder().encode(data) : data);
97
+ return this;
98
+ }
99
+
100
+ /**
101
+ * The archive's bytes, every entry stored (uncompressed).
102
+ * @param {Date} [date] - modification time recorded for every entry
103
+ * @returns {Uint8Array}
104
+ */
105
+ toBytes(date = new Date()) {
106
+ const encoder = new TextEncoder();
107
+ const time = (date.getHours() << 11) | (date.getMinutes() << 5) | (date.getSeconds() >> 1);
108
+ const day = ((Math.max(date.getFullYear(), 1980) - 1980) << 9) | ((date.getMonth() + 1) << 5) | date.getDate();
109
+ const entries = [...this._entries].map(([name, data]) => ({ name: encoder.encode(name), data, crc: crc32(data) }));
110
+ const localSize = entries.reduce((n, e) => n + 30 + e.name.length + e.data.length, 0);
111
+ const centralSize = entries.reduce((n, e) => n + 46 + e.name.length, 0);
112
+ const out = new Uint8Array(localSize + centralSize + 22);
113
+ const view = new DataView(out.buffer);
114
+ let at = 0;
115
+
116
+ /** The fields a local and a central header share, from "version needed" on. */
117
+ const common = (e) => {
118
+ view.setUint16(at, 20, true); // version needed: 2.0
119
+ view.setUint16(at + 2, UTF8_NAMES, true);
120
+ view.setUint16(at + 4, STORED, true);
121
+ view.setUint16(at + 6, time, true);
122
+ view.setUint16(at + 8, day, true);
123
+ view.setUint32(at + 10, e.crc, true);
124
+ view.setUint32(at + 14, e.data.length, true);
125
+ view.setUint32(at + 18, e.data.length, true);
126
+ view.setUint16(at + 22, e.name.length, true);
127
+ view.setUint16(at + 24, 0, true); // extra length
128
+ at += 26;
129
+ };
130
+
131
+ for (const e of entries) {
132
+ e.offset = at;
133
+ view.setUint32(at, LOCAL_HEADER, true);
134
+ at += 4;
135
+ common(e);
136
+ out.set(e.name, at); at += e.name.length;
137
+ out.set(e.data, at); at += e.data.length;
138
+ }
139
+ const centralStart = at;
140
+ for (const e of entries) {
141
+ view.setUint32(at, CENTRAL_HEADER, true);
142
+ view.setUint16(at + 4, 20, true); // version made by
143
+ at += 6;
144
+ common(e);
145
+ view.setUint16(at, 0, true); // comment length
146
+ view.setUint16(at + 2, 0, true); // disk
147
+ view.setUint16(at + 4, 0, true); // internal attributes
148
+ view.setUint32(at + 6, 0, true); // external attributes
149
+ view.setUint32(at + 10, e.offset, true);
150
+ at += 14;
151
+ out.set(e.name, at); at += e.name.length;
152
+ }
153
+ view.setUint32(at, END_OF_CENTRAL, true);
154
+ view.setUint16(at + 8, entries.length, true);
155
+ view.setUint16(at + 10, entries.length, true);
156
+ view.setUint32(at + 12, at - centralStart, true);
157
+ view.setUint32(at + 16, centralStart, true);
158
+ return out;
159
+ }
160
+ }
@@ -0,0 +1,25 @@
1
+ /** CRC-32 (the zip/PNG polynomial, 0xEDB88320), one table built on first use. */
2
+ let TABLE = null;
3
+
4
+ function table() {
5
+ if (TABLE) return TABLE;
6
+ TABLE = new Uint32Array(256);
7
+ for (let n = 0; n < 256; n++) {
8
+ let c = n;
9
+ for (let k = 0; k < 8; k++) c = c & 1 ? 0xEDB88320 ^ (c >>> 1) : c >>> 1;
10
+ TABLE[n] = c >>> 0;
11
+ }
12
+ return TABLE;
13
+ }
14
+
15
+ /**
16
+ * The CRC-32 of some bytes.
17
+ * @param {Uint8Array} bytes
18
+ * @returns {number} unsigned 32-bit checksum
19
+ */
20
+ export function crc32(bytes) {
21
+ const t = table();
22
+ let c = 0xFFFFFFFF;
23
+ for (let i = 0; i < bytes.length; i++) c = t[(c ^ bytes[i]) & 0xFF] ^ (c >>> 8);
24
+ return (c ^ 0xFFFFFFFF) >>> 0;
25
+ }
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Raw DEFLATE decoder (RFC 1951): stored, fixed-Huffman and dynamic-Huffman
3
+ * blocks. Dependency-free, after Mark Adler's puff.c: canonical Huffman codes
4
+ * are decoded bit by bit from per-length counts, which is short and plenty fast
5
+ * for a model file and its images.
6
+ */
7
+
8
+ const MAX_BITS = 15;
9
+ const LENGTH_BASE = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258];
10
+ const LENGTH_EXTRA = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];
11
+ const DIST_BASE = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577];
12
+ const DIST_EXTRA = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];
13
+ /** The order code-length code lengths are sent in (dynamic blocks). */
14
+ const CL_ORDER = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
15
+
16
+ /** A canonical Huffman code: how many codes of each length, and the symbols in code order. */
17
+ function huffman(lengths) {
18
+ const count = new Uint16Array(MAX_BITS + 1);
19
+ for (const len of lengths) count[len]++;
20
+ count[0] = 0;
21
+ const offs = new Uint16Array(MAX_BITS + 1);
22
+ for (let len = 1; len < MAX_BITS; len++) offs[len + 1] = offs[len] + count[len];
23
+ const symbol = new Uint16Array(lengths.length);
24
+ lengths.forEach((len, sym) => { if (len) symbol[offs[len]++] = sym; });
25
+ return { count, symbol };
26
+ }
27
+
28
+ let FIXED = null;
29
+ function fixedCodes() {
30
+ if (FIXED) return FIXED;
31
+ const lit = new Array(288);
32
+ lit.fill(8, 0, 144); lit.fill(9, 144, 256); lit.fill(7, 256, 280); lit.fill(8, 280, 288);
33
+ FIXED = { lencode: huffman(lit), distcode: huffman(new Array(30).fill(5)) };
34
+ return FIXED;
35
+ }
36
+
37
+ class Inflater {
38
+ constructor(input, sizeHint) {
39
+ this.input = input;
40
+ this.pos = 0;
41
+ this.bitBuf = 0;
42
+ this.bitCount = 0;
43
+ this.out = new Uint8Array(Math.max(sizeHint || 0, input.length * 4, 1024));
44
+ this.outLen = 0;
45
+ }
46
+
47
+ bits(need) {
48
+ let val = this.bitBuf;
49
+ while (this.bitCount < need) {
50
+ if (this.pos >= this.input.length) throw new Error('inflate: unexpected end of data');
51
+ val |= this.input[this.pos++] << this.bitCount;
52
+ this.bitCount += 8;
53
+ }
54
+ this.bitBuf = val >>> need;
55
+ this.bitCount -= need;
56
+ return val & ((1 << need) - 1);
57
+ }
58
+
59
+ put(byte) {
60
+ if (this.outLen === this.out.length) {
61
+ const bigger = new Uint8Array(this.out.length * 2);
62
+ bigger.set(this.out);
63
+ this.out = bigger;
64
+ }
65
+ this.out[this.outLen++] = byte;
66
+ }
67
+
68
+ decode({ count, symbol }) {
69
+ let code = 0, first = 0, index = 0;
70
+ for (let len = 1; len <= MAX_BITS; len++) {
71
+ code |= this.bits(1);
72
+ const n = count[len];
73
+ if (code - n < first) return symbol[index + (code - first)];
74
+ index += n;
75
+ first = (first + n) << 1;
76
+ code <<= 1;
77
+ }
78
+ throw new Error('inflate: bad Huffman code');
79
+ }
80
+
81
+ stored() {
82
+ this.bitBuf = 0;
83
+ this.bitCount = 0; // to a byte boundary
84
+ if (this.pos + 4 > this.input.length) throw new Error('inflate: unexpected end of data');
85
+ const len = this.input[this.pos] | (this.input[this.pos + 1] << 8);
86
+ const nlen = this.input[this.pos + 2] | (this.input[this.pos + 3] << 8);
87
+ if (len !== (~nlen & 0xFFFF)) throw new Error('inflate: stored block length check failed');
88
+ this.pos += 4;
89
+ if (this.pos + len > this.input.length) throw new Error('inflate: unexpected end of data');
90
+ for (let i = 0; i < len; i++) this.put(this.input[this.pos++]);
91
+ }
92
+
93
+ codes({ lencode, distcode }) {
94
+ for (;;) {
95
+ const sym = this.decode(lencode);
96
+ if (sym < 256) { this.put(sym); continue; }
97
+ if (sym === 256) return;
98
+ const li = sym - 257;
99
+ if (li >= 29) throw new Error('inflate: bad length symbol');
100
+ const len = LENGTH_BASE[li] + this.bits(LENGTH_EXTRA[li]);
101
+ const di = this.decode(distcode);
102
+ if (di >= 30) throw new Error('inflate: bad distance symbol');
103
+ const dist = DIST_BASE[di] + this.bits(DIST_EXTRA[di]);
104
+ if (dist > this.outLen) throw new Error('inflate: distance too far back');
105
+ for (let i = 0; i < len; i++) this.put(this.out[this.outLen - dist]);
106
+ }
107
+ }
108
+
109
+ dynamic() {
110
+ const nlen = this.bits(5) + 257;
111
+ const ndist = this.bits(5) + 1;
112
+ const ncode = this.bits(4) + 4;
113
+ const clLengths = new Array(19).fill(0);
114
+ for (let i = 0; i < ncode; i++) clLengths[CL_ORDER[i]] = this.bits(3);
115
+ const clCode = huffman(clLengths);
116
+ const lengths = [];
117
+ while (lengths.length < nlen + ndist) {
118
+ const sym = this.decode(clCode);
119
+ if (sym < 16) { lengths.push(sym); continue; }
120
+ let repeat, value = 0;
121
+ if (sym === 16) {
122
+ if (!lengths.length) throw new Error('inflate: repeat with no previous length');
123
+ value = lengths[lengths.length - 1];
124
+ repeat = 3 + this.bits(2);
125
+ } else if (sym === 17) {
126
+ repeat = 3 + this.bits(3);
127
+ } else {
128
+ repeat = 11 + this.bits(7);
129
+ }
130
+ if (lengths.length + repeat > nlen + ndist) throw new Error('inflate: too many code lengths');
131
+ for (let i = 0; i < repeat; i++) lengths.push(value);
132
+ }
133
+ if (!lengths[256]) throw new Error('inflate: no end-of-block code');
134
+ this.codes({ lencode: huffman(lengths.slice(0, nlen)), distcode: huffman(lengths.slice(nlen)) });
135
+ }
136
+
137
+ run() {
138
+ let last;
139
+ do {
140
+ last = this.bits(1);
141
+ const type = this.bits(2);
142
+ if (type === 0) this.stored();
143
+ else if (type === 1) this.codes(fixedCodes());
144
+ else if (type === 2) this.dynamic();
145
+ else throw new Error('inflate: bad block type');
146
+ } while (!last);
147
+ return this.out.slice(0, this.outLen);
148
+ }
149
+ }
150
+
151
+ /**
152
+ * Decompress raw DEFLATE data (no zlib or gzip header), as zip entries hold it.
153
+ * @param {Uint8Array} data
154
+ * @param {number} [sizeHint] - expected output size, if known (zip records it)
155
+ * @returns {Uint8Array}
156
+ */
157
+ export function inflate(data, sizeHint = 0) {
158
+ return new Inflater(data, sizeHint).run();
159
+ }