@node-projects/web-component-designer 0.1.0 → 0.1.1

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 (647) hide show
  1. package/dist/Constants.d.ts +4 -0
  2. package/dist/Constants.js +6 -0
  3. package/dist/commandHandling/CommandType.d.ts +34 -0
  4. package/dist/commandHandling/CommandType.js +35 -0
  5. package/dist/commandHandling/IUiCommand.d.ts +10 -0
  6. package/dist/commandHandling/IUiCommand.js +1 -0
  7. package/dist/commandHandling/IUiCommandHandler.d.ts +5 -0
  8. package/dist/commandHandling/IUiCommandHandler.js +1 -0
  9. package/dist/elements/controls/DesignerTabControl.d.ts +24 -0
  10. package/dist/elements/controls/DesignerTabControl.js +237 -0
  11. package/dist/elements/controls/ImageButtonListSelector.d.ts +17 -0
  12. package/dist/elements/controls/ImageButtonListSelector.js +81 -0
  13. package/dist/elements/controls/MetricsEditor.d.ts +18 -0
  14. package/dist/elements/controls/MetricsEditor.js +151 -0
  15. package/dist/elements/controls/NumericPopup.d.ts +6 -0
  16. package/dist/elements/controls/NumericPopup.js +39 -0
  17. package/dist/elements/controls/NumericStyleInput.d.ts +16 -0
  18. package/dist/elements/controls/NumericStyleInput.js +56 -0
  19. package/dist/elements/controls/PlainScrollbar.d.ts +15 -0
  20. package/dist/elements/controls/PlainScrollbar.js +488 -0
  21. package/dist/elements/controls/SimpleSplitView.d.ts +11 -0
  22. package/dist/elements/controls/SimpleSplitView.js +68 -0
  23. package/dist/elements/controls/ThicknessEditor.d.ts +33 -0
  24. package/dist/elements/controls/ThicknessEditor.js +145 -0
  25. package/dist/elements/documentContainer.d.ts +54 -0
  26. package/dist/elements/documentContainer.js +243 -0
  27. package/dist/elements/helper/ArrangeHelper.d.ts +8 -0
  28. package/dist/elements/helper/ArrangeHelper.js +105 -0
  29. package/dist/elements/helper/ClipboardHelper.d.ts +4 -0
  30. package/dist/elements/helper/ClipboardHelper.js +90 -0
  31. package/dist/elements/helper/CssAttributeParser.d.ts +9 -0
  32. package/dist/elements/helper/CssAttributeParser.js +67 -0
  33. package/dist/elements/helper/CssCombiner.d.ts +11 -0
  34. package/dist/elements/helper/CssCombiner.js +297 -0
  35. package/dist/elements/helper/CssUnitConverter.d.ts +3 -0
  36. package/dist/elements/helper/CssUnitConverter.js +101 -0
  37. package/dist/elements/helper/ElementHelper.d.ts +23 -0
  38. package/dist/elements/helper/ElementHelper.js +136 -0
  39. package/dist/elements/helper/GridHelper.d.ts +23 -0
  40. package/dist/elements/helper/GridHelper.js +131 -0
  41. package/dist/elements/helper/Helper.d.ts +8 -0
  42. package/dist/elements/helper/Helper.js +36 -0
  43. package/dist/elements/helper/ITextWriter.d.ts +11 -0
  44. package/dist/elements/helper/ITextWriter.js +1 -0
  45. package/dist/elements/helper/IndentedTextWriter.d.ts +15 -0
  46. package/dist/elements/helper/IndentedTextWriter.js +34 -0
  47. package/dist/elements/helper/LayoutHelper.d.ts +4 -0
  48. package/dist/elements/helper/LayoutHelper.js +73 -0
  49. package/dist/elements/helper/NpmPackageHacks.json +15 -0
  50. package/dist/elements/helper/NpmPackageLoader.d.ts +20 -0
  51. package/dist/elements/helper/NpmPackageLoader.js +357 -0
  52. package/dist/elements/helper/PathDataPolyfill.d.ts +101 -0
  53. package/dist/elements/helper/PathDataPolyfill.js +971 -0
  54. package/dist/elements/helper/Screenshot.d.ts +11 -0
  55. package/dist/elements/helper/Screenshot.js +60 -0
  56. package/dist/elements/helper/SimpleTextWriter.d.ts +13 -0
  57. package/dist/elements/helper/SimpleTextWriter.js +26 -0
  58. package/dist/elements/helper/SvgHelper.d.ts +1 -0
  59. package/dist/elements/helper/SvgHelper.js +13 -0
  60. package/dist/elements/helper/SwitchContainerHelper.d.ts +2 -0
  61. package/dist/elements/helper/SwitchContainerHelper.js +45 -0
  62. package/dist/elements/helper/TextHelper.d.ts +10 -0
  63. package/dist/elements/helper/TextHelper.js +23 -0
  64. package/dist/elements/helper/TransformHelper.d.ts +23 -0
  65. package/dist/elements/helper/TransformHelper.js +239 -0
  66. package/dist/elements/helper/XmlHelper.d.ts +2 -0
  67. package/dist/elements/helper/XmlHelper.js +16 -0
  68. package/dist/elements/helper/contextMenu/ContextMenu.d.ts +26 -0
  69. package/dist/elements/helper/contextMenu/ContextMenu.js +345 -0
  70. package/dist/elements/helper/contextMenu/IContextMenuItem.d.ts +12 -0
  71. package/dist/elements/helper/contextMenu/IContextMenuItem.js +3 -0
  72. package/dist/elements/helper/w3color.d.ts +120 -0
  73. package/dist/elements/helper/w3color.js +801 -0
  74. package/dist/elements/item/BindingMode.d.ts +4 -0
  75. package/dist/elements/item/BindingMode.js +5 -0
  76. package/dist/elements/item/BindingTarget.d.ts +8 -0
  77. package/dist/elements/item/BindingTarget.js +9 -0
  78. package/dist/elements/item/DesignItem.d.ts +96 -0
  79. package/dist/elements/item/DesignItem.js +513 -0
  80. package/dist/elements/item/IBinding.d.ts +15 -0
  81. package/dist/elements/item/IBinding.js +1 -0
  82. package/dist/elements/item/IDesignItem.d.ts +74 -0
  83. package/dist/elements/item/IDesignItem.js +1 -0
  84. package/dist/elements/item/NodeType.d.ts +8 -0
  85. package/dist/elements/item/NodeType.js +9 -0
  86. package/dist/elements/services/BaseServiceContainer.d.ts +15 -0
  87. package/dist/elements/services/BaseServiceContainer.js +67 -0
  88. package/dist/elements/services/DefaultServiceBootstrap.d.ts +3 -0
  89. package/dist/elements/services/DefaultServiceBootstrap.js +202 -0
  90. package/dist/elements/services/GlobalContext.d.ts +32 -0
  91. package/dist/elements/services/GlobalContext.js +69 -0
  92. package/dist/elements/services/IService.d.ts +2 -0
  93. package/dist/elements/services/IService.js +1 -0
  94. package/dist/elements/services/IServiceContainer.d.ts +5 -0
  95. package/dist/elements/services/IServiceContainer.js +1 -0
  96. package/dist/elements/services/InstanceServiceContainer.d.ts +27 -0
  97. package/dist/elements/services/InstanceServiceContainer.js +26 -0
  98. package/dist/elements/services/ServiceContainer.d.ts +122 -0
  99. package/dist/elements/services/ServiceContainer.js +103 -0
  100. package/dist/elements/services/bindableObjectsService/BindableObjectType.d.ts +9 -0
  101. package/dist/elements/services/bindableObjectsService/BindableObjectType.js +10 -0
  102. package/dist/elements/services/bindableObjectsService/IBindableObject.d.ts +8 -0
  103. package/dist/elements/services/bindableObjectsService/IBindableObject.js +1 -0
  104. package/dist/elements/services/bindableObjectsService/IBindableObjectDragDropService.d.ts +12 -0
  105. package/dist/elements/services/bindableObjectsService/IBindableObjectDragDropService.js +1 -0
  106. package/dist/elements/services/bindableObjectsService/IBindableObjectsService.d.ts +6 -0
  107. package/dist/elements/services/bindableObjectsService/IBindableObjectsService.js +1 -0
  108. package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.d.ts +10 -0
  109. package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js +73 -0
  110. package/dist/elements/services/bindingsService/IBindingService.d.ts +13 -0
  111. package/dist/elements/services/bindingsService/IBindingService.js +1 -0
  112. package/dist/elements/services/bindingsService/SpecialTagsBindingService.d.ts +16 -0
  113. package/dist/elements/services/bindingsService/SpecialTagsBindingService.js +44 -0
  114. package/dist/elements/services/bindingsService/VueBindingsService.d.ts +0 -0
  115. package/dist/elements/services/bindingsService/VueBindingsService.js +7 -0
  116. package/dist/elements/services/configUiService/IConfigUiService.d.ts +5 -0
  117. package/dist/elements/services/configUiService/IConfigUiService.js +1 -0
  118. package/dist/elements/services/contentService/ContentService.d.ts +9 -0
  119. package/dist/elements/services/contentService/ContentService.js +8 -0
  120. package/dist/elements/services/contentService/IContentChanged.d.ts +10 -0
  121. package/dist/elements/services/contentService/IContentChanged.js +1 -0
  122. package/dist/elements/services/contentService/IContentService.d.ts +7 -0
  123. package/dist/elements/services/contentService/IContentService.js +1 -0
  124. package/dist/elements/services/copyPasteService/CopyPasteAsJsonService.d.ts +9 -0
  125. package/dist/elements/services/copyPasteService/CopyPasteAsJsonService.js +54 -0
  126. package/dist/elements/services/copyPasteService/CopyPasteService.d.ts +10 -0
  127. package/dist/elements/services/copyPasteService/CopyPasteService.js +33 -0
  128. package/dist/elements/services/copyPasteService/ICopyPasteService.d.ts +8 -0
  129. package/dist/elements/services/copyPasteService/ICopyPasteService.js +1 -0
  130. package/dist/elements/services/demoProviderService/IDemoProviderService.d.ts +5 -0
  131. package/dist/elements/services/demoProviderService/IDemoProviderService.js +1 -0
  132. package/dist/elements/services/demoProviderService/IframeDemoProviderService.d.ts +6 -0
  133. package/dist/elements/services/demoProviderService/IframeDemoProviderService.js +38 -0
  134. package/dist/elements/services/demoProviderService/SimpleDemoProviderService.d.ts +6 -0
  135. package/dist/elements/services/demoProviderService/SimpleDemoProviderService.js +27 -0
  136. package/dist/elements/services/designItemDocumentPositionService/DesignItemDocumentPositionService.d.ts +10 -0
  137. package/dist/elements/services/designItemDocumentPositionService/DesignItemDocumentPositionService.js +10 -0
  138. package/dist/elements/services/designItemDocumentPositionService/IDesignItemDocumentPositionService.d.ts +6 -0
  139. package/dist/elements/services/designItemDocumentPositionService/IDesignItemDocumentPositionService.js +1 -0
  140. package/dist/elements/services/designItemService/DesignItemService.d.ts +7 -0
  141. package/dist/elements/services/designItemService/DesignItemService.js +6 -0
  142. package/dist/elements/services/designItemService/IDesignItemService.d.ts +6 -0
  143. package/dist/elements/services/designItemService/IDesignItemService.js +1 -0
  144. package/dist/elements/services/designerAddons/IDesignerAddonJson.d.ts +3 -0
  145. package/dist/elements/services/designerAddons/IDesignerAddonJson.js +1 -0
  146. package/dist/elements/services/dragDropService/DragDropService.d.ts +14 -0
  147. package/dist/elements/services/dragDropService/DragDropService.js +89 -0
  148. package/dist/elements/services/dragDropService/ExternalDragDropService.d.ts +6 -0
  149. package/dist/elements/services/dragDropService/ExternalDragDropService.js +22 -0
  150. package/dist/elements/services/dragDropService/IDragDropService.d.ts +10 -0
  151. package/dist/elements/services/dragDropService/IDragDropService.js +1 -0
  152. package/dist/elements/services/dragDropService/IExternalDragDropService.d.ts +5 -0
  153. package/dist/elements/services/dragDropService/IExternalDragDropService.js +1 -0
  154. package/dist/elements/services/dragDropService/IPropertyGridDragDropService.d.ts +6 -0
  155. package/dist/elements/services/dragDropService/IPropertyGridDragDropService.js +1 -0
  156. package/dist/elements/services/elementAtPointService/ElementAtPointService.d.ts +6 -0
  157. package/dist/elements/services/elementAtPointService/ElementAtPointService.js +5 -0
  158. package/dist/elements/services/elementAtPointService/IElementAtPointService.d.ts +6 -0
  159. package/dist/elements/services/elementAtPointService/IElementAtPointService.js +1 -0
  160. package/dist/elements/services/elementInteractionService/IElementInteractionService.d.ts +5 -0
  161. package/dist/elements/services/elementInteractionService/IElementInteractionService.js +1 -0
  162. package/dist/elements/services/elementsService/IElementDefinition.d.ts +31 -0
  163. package/dist/elements/services/elementsService/IElementDefinition.js +1 -0
  164. package/dist/elements/services/elementsService/IElementsJson.d.ts +5 -0
  165. package/dist/elements/services/elementsService/IElementsJson.js +1 -0
  166. package/dist/elements/services/elementsService/IElementsService.d.ts +6 -0
  167. package/dist/elements/services/elementsService/IElementsService.js +1 -0
  168. package/dist/elements/services/elementsService/JsonFileElementsService.d.ts +12 -0
  169. package/dist/elements/services/elementsService/JsonFileElementsService.js +45 -0
  170. package/dist/elements/services/elementsService/PreDefinedElementsService.d.ts +11 -0
  171. package/dist/elements/services/elementsService/PreDefinedElementsService.js +21 -0
  172. package/dist/elements/services/elementsService/WebcomponentManifestElementsService.d.ts +13 -0
  173. package/dist/elements/services/elementsService/WebcomponentManifestElementsService.js +45 -0
  174. package/dist/elements/services/eventsService/EventsService.d.ts +49 -0
  175. package/dist/elements/services/eventsService/EventsService.js +103 -0
  176. package/dist/elements/services/eventsService/IEvent.d.ts +5 -0
  177. package/dist/elements/services/eventsService/IEvent.js +1 -0
  178. package/dist/elements/services/eventsService/IEventsService.d.ts +7 -0
  179. package/dist/elements/services/eventsService/IEventsService.js +1 -0
  180. package/dist/elements/services/htmlParserService/DefaultHtmlParserService.d.ts +9 -0
  181. package/dist/elements/services/htmlParserService/DefaultHtmlParserService.js +18 -0
  182. package/dist/elements/services/htmlParserService/IHtmlParserService.d.ts +7 -0
  183. package/dist/elements/services/htmlParserService/IHtmlParserService.js +1 -0
  184. package/dist/elements/services/htmlWriterService/AbstractHtmlWriterService.d.ts +11 -0
  185. package/dist/elements/services/htmlWriterService/AbstractHtmlWriterService.js +71 -0
  186. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService.d.ts +23 -0
  187. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService.js +142 -0
  188. package/dist/elements/services/htmlWriterService/HtmlWriterService.d.ts +13 -0
  189. package/dist/elements/services/htmlWriterService/HtmlWriterService.js +116 -0
  190. package/dist/elements/services/htmlWriterService/IHtmlWriterOptions.d.ts +7 -0
  191. package/dist/elements/services/htmlWriterService/IHtmlWriterOptions.js +1 -0
  192. package/dist/elements/services/htmlWriterService/IHtmlWriterService.d.ts +7 -0
  193. package/dist/elements/services/htmlWriterService/IHtmlWriterService.js +1 -0
  194. package/dist/elements/services/htmlWriterService/IStringPosition.d.ts +4 -0
  195. package/dist/elements/services/htmlWriterService/IStringPosition.js +1 -0
  196. package/dist/elements/services/htmlWriterService/LitTsElementWriterService.d.ts +10 -0
  197. package/dist/elements/services/htmlWriterService/LitTsElementWriterService.js +52 -0
  198. package/dist/elements/services/htmlWriterService/SimpleHtmlWriterService.d.ts +27 -0
  199. package/dist/elements/services/htmlWriterService/SimpleHtmlWriterService.js +98 -0
  200. package/dist/elements/services/initializationService/IIntializationService.d.ts +4 -0
  201. package/dist/elements/services/initializationService/IIntializationService.js +1 -0
  202. package/dist/elements/services/instanceService/DefaultInstanceService.d.ts +8 -0
  203. package/dist/elements/services/instanceService/DefaultInstanceService.js +71 -0
  204. package/dist/elements/services/instanceService/IDesignerInstance.d.ts +3 -0
  205. package/dist/elements/services/instanceService/IDesignerInstance.js +1 -0
  206. package/dist/elements/services/instanceService/IInstanceService.d.ts +8 -0
  207. package/dist/elements/services/instanceService/IInstanceService.js +1 -0
  208. package/dist/elements/services/manifestParsers/IOldCustomElementsManifest.d.ts +24 -0
  209. package/dist/elements/services/manifestParsers/IOldCustomElementsManifest.js +1 -0
  210. package/dist/elements/services/manifestParsers/OldCustomElementsManifestLoader.d.ts +8 -0
  211. package/dist/elements/services/manifestParsers/OldCustomElementsManifestLoader.js +45 -0
  212. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.d.ts +26 -0
  213. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.js +114 -0
  214. package/dist/elements/services/modelCommandService/DefaultModelCommandService.d.ts +7 -0
  215. package/dist/elements/services/modelCommandService/DefaultModelCommandService.js +148 -0
  216. package/dist/elements/services/modelCommandService/IModelCommandService.d.ts +7 -0
  217. package/dist/elements/services/modelCommandService/IModelCommandService.js +1 -0
  218. package/dist/elements/services/placementService/DefaultPlacementService.d.ts +19 -0
  219. package/dist/elements/services/placementService/DefaultPlacementService.js +148 -0
  220. package/dist/elements/services/placementService/FlexBoxPlacementService.d.ts +20 -0
  221. package/dist/elements/services/placementService/FlexBoxPlacementService.js +144 -0
  222. package/dist/elements/services/placementService/GridPlacementService.d.ts +20 -0
  223. package/dist/elements/services/placementService/GridPlacementService.js +117 -0
  224. package/dist/elements/services/placementService/IPlacementService.d.ts +18 -0
  225. package/dist/elements/services/placementService/IPlacementService.js +1 -0
  226. package/dist/elements/services/placementService/ISnaplinesProviderService.d.ts +12 -0
  227. package/dist/elements/services/placementService/ISnaplinesProviderService.js +1 -0
  228. package/dist/elements/services/placementService/SnaplinesProviderService.d.ts +14 -0
  229. package/dist/elements/services/placementService/SnaplinesProviderService.js +52 -0
  230. package/dist/elements/services/popupService/IPopupService.d.ts +16 -0
  231. package/dist/elements/services/popupService/IPopupService.js +1 -0
  232. package/dist/elements/services/popupService/PopupService.d.ts +9 -0
  233. package/dist/elements/services/popupService/PopupService.js +20 -0
  234. package/dist/elements/services/propertiesService/DefaultEditorTypesService.d.ts +6 -0
  235. package/dist/elements/services/propertiesService/DefaultEditorTypesService.js +64 -0
  236. package/dist/elements/services/propertiesService/IEditorTypesService.d.ts +5 -0
  237. package/dist/elements/services/propertiesService/IEditorTypesService.js +1 -0
  238. package/dist/elements/services/propertiesService/IPropertiesService.d.ts +25 -0
  239. package/dist/elements/services/propertiesService/IPropertiesService.js +6 -0
  240. package/dist/elements/services/propertiesService/IProperty.d.ts +22 -0
  241. package/dist/elements/services/propertiesService/IProperty.js +1 -0
  242. package/dist/elements/services/propertiesService/IPropertyEditor.d.ts +19 -0
  243. package/dist/elements/services/propertiesService/IPropertyEditor.js +1 -0
  244. package/dist/elements/services/propertiesService/IPropertyGroup.d.ts +6 -0
  245. package/dist/elements/services/propertiesService/IPropertyGroup.js +1 -0
  246. package/dist/elements/services/propertiesService/IPropertyTabsService.d.ts +8 -0
  247. package/dist/elements/services/propertiesService/IPropertyTabsService.js +1 -0
  248. package/dist/elements/services/propertiesService/PropertyTabsService.d.ts +27 -0
  249. package/dist/elements/services/propertiesService/PropertyTabsService.js +53 -0
  250. package/dist/elements/services/propertiesService/PropertyType.d.ts +8 -0
  251. package/dist/elements/services/propertiesService/PropertyType.js +9 -0
  252. package/dist/elements/services/propertiesService/ValueType.d.ts +7 -0
  253. package/dist/elements/services/propertiesService/ValueType.js +8 -0
  254. package/dist/elements/services/propertiesService/app.d.ts +2 -0
  255. package/dist/elements/services/propertiesService/app.js +71 -0
  256. package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.d.ts +15 -0
  257. package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.js +41 -0
  258. package/dist/elements/services/propertiesService/propertyEditors/BooleanPropertyEditor.d.ts +7 -0
  259. package/dist/elements/services/propertiesService/propertyEditors/BooleanPropertyEditor.js +13 -0
  260. package/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor.d.ts +7 -0
  261. package/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor.js +22 -0
  262. package/dist/elements/services/propertiesService/propertyEditors/DatePropertyEditor.d.ts +7 -0
  263. package/dist/elements/services/propertiesService/propertyEditors/DatePropertyEditor.js +16 -0
  264. package/dist/elements/services/propertiesService/propertyEditors/FontPropertyEditor.d.ts +9 -0
  265. package/dist/elements/services/propertiesService/propertyEditors/FontPropertyEditor.js +37 -0
  266. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.d.ts +8 -0
  267. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.js +40 -0
  268. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyEditor.d.ts +9 -0
  269. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyEditor.js +21 -0
  270. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyPopupEditor.d.ts +5 -0
  271. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyPopupEditor.js +13 -0
  272. package/dist/elements/services/propertiesService/propertyEditors/NumberPropertyEditor.d.ts +7 -0
  273. package/dist/elements/services/propertiesService/propertyEditors/NumberPropertyEditor.js +16 -0
  274. package/dist/elements/services/propertiesService/propertyEditors/SelectPropertyEditor.d.ts +9 -0
  275. package/dist/elements/services/propertiesService/propertyEditors/SelectPropertyEditor.js +45 -0
  276. package/dist/elements/services/propertiesService/propertyEditors/TextPropertyEditor.d.ts +7 -0
  277. package/dist/elements/services/propertiesService/propertyEditors/TextPropertyEditor.js +20 -0
  278. package/dist/elements/services/propertiesService/propertyEditors/ThicknessPropertyEditor.d.ts +8 -0
  279. package/dist/elements/services/propertiesService/propertyEditors/ThicknessPropertyEditor.js +14 -0
  280. package/dist/elements/services/propertiesService/propertyEditors/special/GridAssignedRowColumnPropertyEditor.d.ts +8 -0
  281. package/dist/elements/services/propertiesService/propertyEditors/special/GridAssignedRowColumnPropertyEditor.js +50 -0
  282. package/dist/elements/services/propertiesService/propertyEditors/special/MetricsPropertyEditor.d.ts +8 -0
  283. package/dist/elements/services/propertiesService/propertyEditors/special/MetricsPropertyEditor.js +15 -0
  284. package/dist/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.d.ts +11 -0
  285. package/dist/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.js +55 -0
  286. package/dist/elements/services/propertiesService/services/AbstractPropertiesService.d.ts +24 -0
  287. package/dist/elements/services/propertiesService/services/AbstractPropertiesService.js +195 -0
  288. package/dist/elements/services/propertiesService/services/AttachedPropertiesService.d.ts +11 -0
  289. package/dist/elements/services/propertiesService/services/AttachedPropertiesService.js +22 -0
  290. package/dist/elements/services/propertiesService/services/AttributesPropertiesService.d.ts +21 -0
  291. package/dist/elements/services/propertiesService/services/AttributesPropertiesService.js +99 -0
  292. package/dist/elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.d.ts +8 -0
  293. package/dist/elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.js +14 -0
  294. package/dist/elements/services/propertiesService/services/CommonPropertiesService.d.ts +13 -0
  295. package/dist/elements/services/propertiesService/services/CommonPropertiesService.js +49 -0
  296. package/dist/elements/services/propertiesService/services/ContentAndIdPropertiesService.d.ts +19 -0
  297. package/dist/elements/services/propertiesService/services/ContentAndIdPropertiesService.js +84 -0
  298. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.d.ts +34 -0
  299. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js +105 -0
  300. package/dist/elements/services/propertiesService/services/CssCustomPropertiesService.d.ts +17 -0
  301. package/dist/elements/services/propertiesService/services/CssCustomPropertiesService.js +43 -0
  302. package/dist/elements/services/propertiesService/services/CssProperties.json +618 -0
  303. package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +25 -0
  304. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +137 -0
  305. package/dist/elements/services/propertiesService/services/IJsonPropertyDefinition.d.ts +17 -0
  306. package/dist/elements/services/propertiesService/services/IJsonPropertyDefinition.js +1 -0
  307. package/dist/elements/services/propertiesService/services/IJsonPropertyDefinitions.d.ts +4 -0
  308. package/dist/elements/services/propertiesService/services/IJsonPropertyDefinitions.js +1 -0
  309. package/dist/elements/services/propertiesService/services/ListPropertiesService.d.ts +15 -0
  310. package/dist/elements/services/propertiesService/services/ListPropertiesService.js +45 -0
  311. package/dist/elements/services/propertiesService/services/Lit2PropertiesService.d.ts +10 -0
  312. package/dist/elements/services/propertiesService/services/Lit2PropertiesService.js +51 -0
  313. package/dist/elements/services/propertiesService/services/LitElementPropertiesService.d.ts +8 -0
  314. package/dist/elements/services/propertiesService/services/LitElementPropertiesService.js +17 -0
  315. package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService.d.ts +21 -0
  316. package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService.js +211 -0
  317. package/dist/elements/services/propertiesService/services/PolymerPropertiesService.d.ts +8 -0
  318. package/dist/elements/services/propertiesService/services/PolymerPropertiesService.js +10 -0
  319. package/dist/elements/services/propertiesService/services/PropertiesHelper.d.ts +6 -0
  320. package/dist/elements/services/propertiesService/services/PropertiesHelper.js +27 -0
  321. package/dist/elements/services/propertiesService/services/SVGElementsPropertiesService.d.ts +16 -0
  322. package/dist/elements/services/propertiesService/services/SVGElementsPropertiesService.js +259 -0
  323. package/dist/elements/services/propertiesService/services/UnkownElementsPropertiesService.d.ts +10 -0
  324. package/dist/elements/services/propertiesService/services/UnkownElementsPropertiesService.js +28 -0
  325. package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.d.ts +20 -0
  326. package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.js +81 -0
  327. package/dist/elements/services/selectionService/ISelectionChangedEvent.d.ts +5 -0
  328. package/dist/elements/services/selectionService/ISelectionChangedEvent.js +1 -0
  329. package/dist/elements/services/selectionService/ISelectionService.d.ts +11 -0
  330. package/dist/elements/services/selectionService/ISelectionService.js +1 -0
  331. package/dist/elements/services/selectionService/SelectionService.d.ts +17 -0
  332. package/dist/elements/services/selectionService/SelectionService.js +50 -0
  333. package/dist/elements/services/stylesheetService/AbstractStylesheetService.d.ts +47 -0
  334. package/dist/elements/services/stylesheetService/AbstractStylesheetService.js +138 -0
  335. package/dist/elements/services/stylesheetService/IStylesheetService.d.ts +42 -0
  336. package/dist/elements/services/stylesheetService/IStylesheetService.js +1 -0
  337. package/dist/elements/services/treeStructureService/ITreeStructureChangedEvent.d.ts +8 -0
  338. package/dist/elements/services/treeStructureService/ITreeStructureChangedEvent.js +1 -0
  339. package/dist/elements/services/treeStructureService/ITreeStructureService.d.ts +2 -0
  340. package/dist/elements/services/treeStructureService/ITreeStructureService.js +2 -0
  341. package/dist/elements/services/undoService/ChangeGroup.d.ts +18 -0
  342. package/dist/elements/services/undoService/ChangeGroup.js +67 -0
  343. package/dist/elements/services/undoService/ITransactionItem.d.ts +8 -0
  344. package/dist/elements/services/undoService/ITransactionItem.js +2 -0
  345. package/dist/elements/services/undoService/IUndoService.d.ts +14 -0
  346. package/dist/elements/services/undoService/IUndoService.js +1 -0
  347. package/dist/elements/services/undoService/UndoService.d.ts +22 -0
  348. package/dist/elements/services/undoService/UndoService.js +113 -0
  349. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction.d.ts +15 -0
  350. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction.js +70 -0
  351. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.d.ts +14 -0
  352. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.js +62 -0
  353. package/dist/elements/services/undoService/transactionItems/DeleteAction.d.ts +13 -0
  354. package/dist/elements/services/undoService/transactionItems/DeleteAction.js +35 -0
  355. package/dist/elements/services/undoService/transactionItems/InsertAction.d.ts +13 -0
  356. package/dist/elements/services/undoService/transactionItems/InsertAction.js +26 -0
  357. package/dist/elements/services/undoService/transactionItems/InsertChildAction.d.ts +16 -0
  358. package/dist/elements/services/undoService/transactionItems/InsertChildAction.js +40 -0
  359. package/dist/elements/services/undoService/transactionItems/SelectionChangedAction.d.ts +14 -0
  360. package/dist/elements/services/undoService/transactionItems/SelectionChangedAction.js +28 -0
  361. package/dist/elements/services/undoService/transactionItems/SetDesignItemsAction.d.ts +12 -0
  362. package/dist/elements/services/undoService/transactionItems/SetDesignItemsAction.js +22 -0
  363. package/dist/elements/services/undoService/transactionItems/StylesheetChangedAction.d.ts +14 -0
  364. package/dist/elements/services/undoService/transactionItems/StylesheetChangedAction.js +24 -0
  365. package/dist/elements/services/undoService/transactionItems/TextContentChangeAction.d.ts +14 -0
  366. package/dist/elements/services/undoService/transactionItems/TextContentChangeAction.js +24 -0
  367. package/dist/elements/widgets/bindableObjectsBrowser/IBindableObjectsBrowser.d.ts +3 -0
  368. package/dist/elements/widgets/bindableObjectsBrowser/IBindableObjectsBrowser.js +1 -0
  369. package/dist/elements/widgets/bindings/BindingsEditor.d.ts +17 -0
  370. package/dist/elements/widgets/bindings/BindingsEditor.js +53 -0
  371. package/dist/elements/widgets/codeView/ICodeView.d.ts +11 -0
  372. package/dist/elements/widgets/codeView/ICodeView.js +1 -0
  373. package/dist/elements/widgets/codeView/code-view-simple.d.ts +23 -0
  374. package/dist/elements/widgets/codeView/code-view-simple.js +55 -0
  375. package/dist/elements/widgets/debugView/debug-view.d.ts +18 -0
  376. package/dist/elements/widgets/debugView/debug-view.js +241 -0
  377. package/dist/elements/widgets/demoView/IDemoView.d.ts +7 -0
  378. package/dist/elements/widgets/demoView/IDemoView.js +1 -0
  379. package/dist/elements/widgets/demoView/demoView.d.ts +17 -0
  380. package/dist/elements/widgets/demoView/demoView.js +72 -0
  381. package/dist/elements/widgets/designerView/DesignContext.d.ts +8 -0
  382. package/dist/elements/widgets/designerView/DesignContext.js +5 -0
  383. package/dist/elements/widgets/designerView/DomConverter.d.ts +7 -0
  384. package/dist/elements/widgets/designerView/DomConverter.js +43 -0
  385. package/dist/elements/widgets/designerView/IDesignContext.d.ts +7 -0
  386. package/dist/elements/widgets/designerView/IDesignContext.js +1 -0
  387. package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +60 -0
  388. package/dist/elements/widgets/designerView/IDesignerCanvas.js +1 -0
  389. package/dist/elements/widgets/designerView/IPlacementView.d.ts +13 -0
  390. package/dist/elements/widgets/designerView/IPlacementView.js +1 -0
  391. package/dist/elements/widgets/designerView/Snaplines.d.ts +21 -0
  392. package/dist/elements/widgets/designerView/Snaplines.js +220 -0
  393. package/dist/elements/widgets/designerView/defaultConfiguredDesignerView.d.ts +5 -0
  394. package/dist/elements/widgets/designerView/defaultConfiguredDesignerView.js +11 -0
  395. package/dist/elements/widgets/designerView/designerCanvas.d.ts +133 -0
  396. package/dist/elements/widgets/designerView/designerCanvas.js +1119 -0
  397. package/dist/elements/widgets/designerView/designerView.d.ts +39 -0
  398. package/dist/elements/widgets/designerView/designerView.js +339 -0
  399. package/dist/elements/widgets/designerView/extensions/AbstractExtension.d.ts +12 -0
  400. package/dist/elements/widgets/designerView/extensions/AbstractExtension.js +8 -0
  401. package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.d.ts +21 -0
  402. package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.js +77 -0
  403. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtension.d.ts +11 -0
  404. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtension.js +21 -0
  405. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtensionProvider.d.ts +10 -0
  406. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtensionProvider.js +13 -0
  407. package/dist/elements/widgets/designerView/extensions/CanvasExtension.d.ts +10 -0
  408. package/dist/elements/widgets/designerView/extensions/CanvasExtension.js +27 -0
  409. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.d.ts +10 -0
  410. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.js +15 -0
  411. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.d.ts +24 -0
  412. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +96 -0
  413. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtensionProvider.d.ts +9 -0
  414. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtensionProvider.js +11 -0
  415. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtension.d.ts +15 -0
  416. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtension.js +60 -0
  417. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtensionProvider.d.ts +10 -0
  418. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtensionProvider.js +13 -0
  419. package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +22 -0
  420. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +313 -0
  421. package/dist/elements/widgets/designerView/extensions/ExtensionType.d.ts +30 -0
  422. package/dist/elements/widgets/designerView/extensions/ExtensionType.js +31 -0
  423. package/dist/elements/widgets/designerView/extensions/FlexboxExtension.d.ts +11 -0
  424. package/dist/elements/widgets/designerView/extensions/FlexboxExtension.js +20 -0
  425. package/dist/elements/widgets/designerView/extensions/FlexboxExtensionProvider.d.ts +11 -0
  426. package/dist/elements/widgets/designerView/extensions/FlexboxExtensionProvider.js +17 -0
  427. package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.d.ts +11 -0
  428. package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js +19 -0
  429. package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtensionProvider.d.ts +10 -0
  430. package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtensionProvider.js +13 -0
  431. package/dist/elements/widgets/designerView/extensions/GrayOutExtension.d.ts +13 -0
  432. package/dist/elements/widgets/designerView/extensions/GrayOutExtension.js +32 -0
  433. package/dist/elements/widgets/designerView/extensions/GrayOutExtensionProvider.d.ts +10 -0
  434. package/dist/elements/widgets/designerView/extensions/GrayOutExtensionProvider.js +13 -0
  435. package/dist/elements/widgets/designerView/extensions/HighlightElementExtension.d.ts +11 -0
  436. package/dist/elements/widgets/designerView/extensions/HighlightElementExtension.js +20 -0
  437. package/dist/elements/widgets/designerView/extensions/HighlightElementExtensionProvider.d.ts +10 -0
  438. package/dist/elements/widgets/designerView/extensions/HighlightElementExtensionProvider.js +13 -0
  439. package/dist/elements/widgets/designerView/extensions/IDesignerExtension.d.ts +5 -0
  440. package/dist/elements/widgets/designerView/extensions/IDesignerExtension.js +1 -0
  441. package/dist/elements/widgets/designerView/extensions/IDesignerExtensionProvider.d.ts +9 -0
  442. package/dist/elements/widgets/designerView/extensions/IDesignerExtensionProvider.js +1 -0
  443. package/dist/elements/widgets/designerView/extensions/IExtensionManger.d.ts +14 -0
  444. package/dist/elements/widgets/designerView/extensions/IExtensionManger.js +1 -0
  445. package/dist/elements/widgets/designerView/extensions/InvisibleElementExtension.d.ts +11 -0
  446. package/dist/elements/widgets/designerView/extensions/InvisibleElementExtension.js +19 -0
  447. package/dist/elements/widgets/designerView/extensions/InvisibleElementExtensionProvider.d.ts +13 -0
  448. package/dist/elements/widgets/designerView/extensions/InvisibleElementExtensionProvider.js +24 -0
  449. package/dist/elements/widgets/designerView/extensions/MultipleSelectionRectExtension.d.ts +15 -0
  450. package/dist/elements/widgets/designerView/extensions/MultipleSelectionRectExtension.js +34 -0
  451. package/dist/elements/widgets/designerView/extensions/MultipleSelectionRectExtensionProvider.d.ts +10 -0
  452. package/dist/elements/widgets/designerView/extensions/MultipleSelectionRectExtensionProvider.js +13 -0
  453. package/dist/elements/widgets/designerView/extensions/OverlayLayer.d.ts +5 -0
  454. package/dist/elements/widgets/designerView/extensions/OverlayLayer.js +6 -0
  455. package/dist/elements/widgets/designerView/extensions/PlacementExtension.d.ts +11 -0
  456. package/dist/elements/widgets/designerView/extensions/PlacementExtension.js +22 -0
  457. package/dist/elements/widgets/designerView/extensions/PlacementExtensionProvider.d.ts +10 -0
  458. package/dist/elements/widgets/designerView/extensions/PlacementExtensionProvider.js +13 -0
  459. package/dist/elements/widgets/designerView/extensions/PositionExtension.d.ts +16 -0
  460. package/dist/elements/widgets/designerView/extensions/PositionExtension.js +42 -0
  461. package/dist/elements/widgets/designerView/extensions/PositionExtensionProvider.d.ts +10 -0
  462. package/dist/elements/widgets/designerView/extensions/PositionExtensionProvider.js +16 -0
  463. package/dist/elements/widgets/designerView/extensions/ResizeExtension.d.ts +27 -0
  464. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +334 -0
  465. package/dist/elements/widgets/designerView/extensions/ResizeExtensionProvider.d.ts +12 -0
  466. package/dist/elements/widgets/designerView/extensions/ResizeExtensionProvider.js +20 -0
  467. package/dist/elements/widgets/designerView/extensions/RotateExtension.d.ts +18 -0
  468. package/dist/elements/widgets/designerView/extensions/RotateExtension.js +107 -0
  469. package/dist/elements/widgets/designerView/extensions/RotateExtensionProvider.d.ts +10 -0
  470. package/dist/elements/widgets/designerView/extensions/RotateExtensionProvider.js +17 -0
  471. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.d.ts +14 -0
  472. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.js +35 -0
  473. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.d.ts +10 -0
  474. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js +14 -0
  475. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.d.ts +15 -0
  476. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +94 -0
  477. package/dist/elements/widgets/designerView/extensions/TransformOriginExtensionProvider.d.ts +12 -0
  478. package/dist/elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js +28 -0
  479. package/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton.d.ts +12 -0
  480. package/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton.js +40 -0
  481. package/dist/elements/widgets/designerView/extensions/buttons/ButtonSeperatorProvider.d.ts +8 -0
  482. package/dist/elements/widgets/designerView/extensions/buttons/ButtonSeperatorProvider.js +12 -0
  483. package/dist/elements/widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.d.ts +4 -0
  484. package/dist/elements/widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js +7 -0
  485. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.d.ts +4 -0
  486. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.js +7 -0
  487. package/dist/elements/widgets/designerView/extensions/buttons/IDesignViewConfigButtonsProvider.d.ts +5 -0
  488. package/dist/elements/widgets/designerView/extensions/buttons/IDesignViewConfigButtonsProvider.js +1 -0
  489. package/dist/elements/widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.d.ts +4 -0
  490. package/dist/elements/widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.js +7 -0
  491. package/dist/elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.d.ts +5 -0
  492. package/dist/elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js +7 -0
  493. package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.d.ts +8 -0
  494. package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js +14 -0
  495. package/dist/elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.d.ts +8 -0
  496. package/dist/elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.js +1 -0
  497. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.d.ts +9 -0
  498. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js +17 -0
  499. package/dist/elements/widgets/designerView/extensions/contextMenu/JumpToElementContextMenu.d.ts +8 -0
  500. package/dist/elements/widgets/designerView/extensions/contextMenu/JumpToElementContextMenu.js +15 -0
  501. package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.d.ts +9 -0
  502. package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js +33 -0
  503. package/dist/elements/widgets/designerView/extensions/contextMenu/PathContextMenu.d.ts +8 -0
  504. package/dist/elements/widgets/designerView/extensions/contextMenu/PathContextMenu.js +31 -0
  505. package/dist/elements/widgets/designerView/extensions/contextMenu/RectContextMenu.d.ts +8 -0
  506. package/dist/elements/widgets/designerView/extensions/contextMenu/RectContextMenu.js +33 -0
  507. package/dist/elements/widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu.d.ts +8 -0
  508. package/dist/elements/widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu.js +13 -0
  509. package/dist/elements/widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.d.ts +8 -0
  510. package/dist/elements/widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.js +13 -0
  511. package/dist/elements/widgets/designerView/extensions/contextMenu/SeperatorContextMenu.d.ts +8 -0
  512. package/dist/elements/widgets/designerView/extensions/contextMenu/SeperatorContextMenu.js +10 -0
  513. package/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.d.ts +8 -0
  514. package/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js +15 -0
  515. package/dist/elements/widgets/designerView/extensions/contextMenu/ZoomToElementContextMenu.d.ts +8 -0
  516. package/dist/elements/widgets/designerView/extensions/contextMenu/ZoomToElementContextMenu.js +27 -0
  517. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.d.ts +16 -0
  518. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.js +66 -0
  519. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtensionProvider.d.ts +11 -0
  520. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js +22 -0
  521. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.d.ts +18 -0
  522. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.js +118 -0
  523. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtensionProvider.d.ts +10 -0
  524. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtensionProvider.js +20 -0
  525. package/dist/elements/widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.d.ts +13 -0
  526. package/dist/elements/widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.js +28 -0
  527. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.d.ts +11 -0
  528. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.js +11 -0
  529. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension.d.ts +13 -0
  530. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension.js +26 -0
  531. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider.d.ts +7 -0
  532. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider.js +10 -0
  533. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtension.d.ts +5 -0
  534. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtension.js +1 -0
  535. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.d.ts +6 -0
  536. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.js +1 -0
  537. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtension.d.ts +43 -0
  538. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtension.js +183 -0
  539. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtensionProvider.d.ts +9 -0
  540. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtensionProvider.js +13 -0
  541. package/dist/elements/widgets/designerView/extensions/svg/LineExtension.d.ts +32 -0
  542. package/dist/elements/widgets/designerView/extensions/svg/LineExtension.js +147 -0
  543. package/dist/elements/widgets/designerView/extensions/svg/LineExtensionProvider.d.ts +9 -0
  544. package/dist/elements/widgets/designerView/extensions/svg/LineExtensionProvider.js +14 -0
  545. package/dist/elements/widgets/designerView/extensions/svg/PathExtension.d.ts +31 -0
  546. package/dist/elements/widgets/designerView/extensions/svg/PathExtension.js +329 -0
  547. package/dist/elements/widgets/designerView/extensions/svg/PathExtensionProvider.d.ts +9 -0
  548. package/dist/elements/widgets/designerView/extensions/svg/PathExtensionProvider.js +14 -0
  549. package/dist/elements/widgets/designerView/extensions/svg/RectExtension.d.ts +49 -0
  550. package/dist/elements/widgets/designerView/extensions/svg/RectExtension.js +211 -0
  551. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider.d.ts +9 -0
  552. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider.js +14 -0
  553. package/dist/elements/widgets/designerView/overlay/EditTextOverlay.d.ts +5 -0
  554. package/dist/elements/widgets/designerView/overlay/EditTextOverlay.js +9 -0
  555. package/dist/elements/widgets/designerView/overlayLayerView.d.ts +30 -0
  556. package/dist/elements/widgets/designerView/overlayLayerView.js +211 -0
  557. package/dist/elements/widgets/designerView/tools/DrawElementTool.d.ts +19 -0
  558. package/dist/elements/widgets/designerView/tools/DrawElementTool.js +79 -0
  559. package/dist/elements/widgets/designerView/tools/DrawEllipsisTool.d.ts +16 -0
  560. package/dist/elements/widgets/designerView/tools/DrawEllipsisTool.js +98 -0
  561. package/dist/elements/widgets/designerView/tools/DrawLineTool.d.ts +14 -0
  562. package/dist/elements/widgets/designerView/tools/DrawLineTool.js +83 -0
  563. package/dist/elements/widgets/designerView/tools/DrawPathTool.d.ts +20 -0
  564. package/dist/elements/widgets/designerView/tools/DrawPathTool.js +132 -0
  565. package/dist/elements/widgets/designerView/tools/DrawRectTool.d.ts +19 -0
  566. package/dist/elements/widgets/designerView/tools/DrawRectTool.js +113 -0
  567. package/dist/elements/widgets/designerView/tools/ITool.d.ts +9 -0
  568. package/dist/elements/widgets/designerView/tools/ITool.js +1 -0
  569. package/dist/elements/widgets/designerView/tools/MagicWandSelectorTool.d.ts +12 -0
  570. package/dist/elements/widgets/designerView/tools/MagicWandSelectorTool.js +68 -0
  571. package/dist/elements/widgets/designerView/tools/NamedTools.d.ts +15 -0
  572. package/dist/elements/widgets/designerView/tools/NamedTools.js +16 -0
  573. package/dist/elements/widgets/designerView/tools/PanTool.d.ts +10 -0
  574. package/dist/elements/widgets/designerView/tools/PanTool.js +26 -0
  575. package/dist/elements/widgets/designerView/tools/PickColorTool.d.ts +10 -0
  576. package/dist/elements/widgets/designerView/tools/PickColorTool.js +20 -0
  577. package/dist/elements/widgets/designerView/tools/PointerTool.d.ts +36 -0
  578. package/dist/elements/widgets/designerView/tools/PointerTool.js +400 -0
  579. package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.d.ts +12 -0
  580. package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.js +88 -0
  581. package/dist/elements/widgets/designerView/tools/TextTool.d.ts +14 -0
  582. package/dist/elements/widgets/designerView/tools/TextTool.js +51 -0
  583. package/dist/elements/widgets/designerView/tools/ZoomTool.d.ts +17 -0
  584. package/dist/elements/widgets/designerView/tools/ZoomTool.js +82 -0
  585. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.d.ts +19 -0
  586. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.js +86 -0
  587. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbarButton.d.ts +19 -0
  588. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbarButton.js +62 -0
  589. package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewToolbarButtonProvider.d.ts +4 -0
  590. package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewToolbarButtonProvider.js +1 -0
  591. package/dist/elements/widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.d.ts +5 -0
  592. package/dist/elements/widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.js +16 -0
  593. package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider.d.ts +5 -0
  594. package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider.js +7 -0
  595. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider.d.ts +5 -0
  596. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider.js +10 -0
  597. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SeperatorToolProvider.d.ts +7 -0
  598. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SeperatorToolProvider.js +11 -0
  599. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.d.ts +5 -0
  600. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.js +7 -0
  601. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TransformToolButtonProvider.d.ts +5 -0
  602. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TransformToolButtonProvider.js +10 -0
  603. package/dist/elements/widgets/designerView/tools/toolBar/buttons/ZoomToolButtonProvider.d.ts +5 -0
  604. package/dist/elements/widgets/designerView/tools/toolBar/buttons/ZoomToolButtonProvider.js +7 -0
  605. package/dist/elements/widgets/designerView/tools/toolBar/popups/DrawToolPopup.d.ts +6 -0
  606. package/dist/elements/widgets/designerView/tools/toolBar/popups/DrawToolPopup.js +102 -0
  607. package/dist/elements/widgets/designerView/tools/toolBar/popups/TransformToolPopup.d.ts +31 -0
  608. package/dist/elements/widgets/designerView/tools/toolBar/popups/TransformToolPopup.js +293 -0
  609. package/dist/elements/widgets/miniatureView/IMiniatureView.d.ts +2 -0
  610. package/dist/elements/widgets/miniatureView/IMiniatureView.js +1 -0
  611. package/dist/elements/widgets/paletteView/paletteElements.d.ts +10 -0
  612. package/dist/elements/widgets/paletteView/paletteElements.js +139 -0
  613. package/dist/elements/widgets/paletteView/paletteView.d.ts +11 -0
  614. package/dist/elements/widgets/paletteView/paletteView.js +38 -0
  615. package/dist/elements/widgets/propertyGrid/PropertyGrid.d.ts +24 -0
  616. package/dist/elements/widgets/propertyGrid/PropertyGrid.js +125 -0
  617. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.d.ts +28 -0
  618. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +361 -0
  619. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.d.ts +21 -0
  620. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js +159 -0
  621. package/dist/elements/widgets/treeView/ITreeView.d.ts +6 -0
  622. package/dist/elements/widgets/treeView/ITreeView.js +1 -0
  623. package/dist/elements/widgets/treeView/treeView.d.ts +28 -0
  624. package/dist/elements/widgets/treeView/treeView.js +242 -0
  625. package/dist/enums/EventNames.d.ts +16 -0
  626. package/dist/enums/EventNames.js +17 -0
  627. package/dist/enums/Orientation.d.ts +8 -0
  628. package/dist/enums/Orientation.js +9 -0
  629. package/dist/enums/PointerActionType.d.ts +8 -0
  630. package/dist/enums/PointerActionType.js +9 -0
  631. package/dist/index.d.ts +266 -0
  632. package/dist/index.js +197 -0
  633. package/dist/interfaces/IActivateable.d.ts +3 -0
  634. package/dist/interfaces/IActivateable.js +1 -0
  635. package/dist/interfaces/IDisposable.d.ts +3 -0
  636. package/dist/interfaces/IDisposable.js +1 -0
  637. package/dist/interfaces/IPoint.d.ts +4 -0
  638. package/dist/interfaces/IPoint.js +1 -0
  639. package/dist/interfaces/IPoint3D.d.ts +5 -0
  640. package/dist/interfaces/IPoint3D.js +1 -0
  641. package/dist/interfaces/IRect.d.ts +6 -0
  642. package/dist/interfaces/IRect.js +1 -0
  643. package/dist/interfaces/ISize.d.ts +4 -0
  644. package/dist/interfaces/ISize.js +1 -0
  645. package/dist/polyfill/globals.d.ts +11 -0
  646. package/dist/polyfill/globals.js +1 -0
  647. package/package.json +1 -1
@@ -0,0 +1,1119 @@
1
+ import { EventNames } from '../../../enums/EventNames.js';
2
+ import { InstanceServiceContainer } from '../../services/InstanceServiceContainer.js';
3
+ import { DesignItem } from '../../item/DesignItem.js';
4
+ import { BaseCustomWebComponentLazyAppend, css, html, TypedEvent, cssFromString } from '@node-projects/base-custom-webcomponent';
5
+ import { dragDropFormatNameBindingObject } from '../../../Constants.js';
6
+ import { InsertAction } from '../../services/undoService/transactionItems/InsertAction.js';
7
+ import { Snaplines } from './Snaplines.js';
8
+ import { DeleteAction } from '../../services/undoService/transactionItems/DeleteAction.js';
9
+ import { CommandType } from '../../../commandHandling/CommandType.js';
10
+ import { DefaultHtmlParserService } from '../../services/htmlParserService/DefaultHtmlParserService.js';
11
+ import { ExtensionType } from './extensions/ExtensionType.js';
12
+ import { ExtensionManager } from './extensions/ExtensionManager.js';
13
+ import { NamedTools } from './tools/NamedTools.js';
14
+ import { Screenshot } from '../../helper/Screenshot.js';
15
+ import { dataURItoBlob, exportData, sleep } from '../../helper/Helper.js';
16
+ import { DomHelper } from '@node-projects/base-custom-webcomponent/dist/DomHelper.js';
17
+ import { OverlayLayerView } from './overlayLayerView.js';
18
+ import { ContextMenu } from '../../helper/contextMenu/ContextMenu.js';
19
+ import { NodeType } from '../../item/NodeType.js';
20
+ import { StylesheetChangedAction } from '../../services/undoService/transactionItems/StylesheetChangedAction.js';
21
+ import { SetDesignItemsAction } from '../../services/undoService/transactionItems/SetDesignItemsAction.js';
22
+ import { AbstractStylesheetService } from '../../services/stylesheetService/AbstractStylesheetService.js';
23
+ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
24
+ // Public Properties
25
+ serviceContainer;
26
+ instanceServiceContainer;
27
+ containerBoundingRect;
28
+ outerRect;
29
+ clickOverlay;
30
+ _activeTool;
31
+ // IPlacementView
32
+ gridSize = 10;
33
+ pasteOffset = 10;
34
+ alignOnGrid = false;
35
+ alignOnSnap = true;
36
+ snapLines;
37
+ overlayLayer;
38
+ rootDesignItem;
39
+ eatEvents;
40
+ _currentPasteOffset = this.pasteOffset;
41
+ _zoomFactor = 1; //if scale or zoom css property is used this needs to be the value
42
+ _scaleFactor = 1; //if scale css property is used this need to be the scale value
43
+ _canvasOffset = { x: 0, y: 0 };
44
+ _additionalStyle;
45
+ _currentContextMenu;
46
+ _backgroundImage;
47
+ _enableSelectTextNodesOnClick = false;
48
+ get zoomFactor() {
49
+ return this._zoomFactor;
50
+ }
51
+ set zoomFactor(value) {
52
+ this._zoomFactor = value;
53
+ this._zoomFactorChanged();
54
+ }
55
+ get scaleFactor() {
56
+ return this._scaleFactor;
57
+ }
58
+ get canvasOffset() {
59
+ return this._canvasOffset;
60
+ }
61
+ set canvasOffset(value) {
62
+ this._canvasOffset = value;
63
+ this._zoomFactorChanged(false);
64
+ }
65
+ get canvasOffsetUnzoomed() {
66
+ return { x: this._canvasOffset.x * this.zoomFactor, y: this._canvasOffset.y * this.zoomFactor };
67
+ }
68
+ set canvasOffsetUnzoomed(value) {
69
+ this.canvasOffset = { x: value.x / this.zoomFactor, y: value.y / this.zoomFactor };
70
+ }
71
+ onContentChanged = new TypedEvent();
72
+ onZoomFactorChanged = new TypedEvent();
73
+ get canvas() {
74
+ return this._canvas;
75
+ }
76
+ // Private Variables
77
+ _canvas;
78
+ _canvasContainer;
79
+ _outercanvas2;
80
+ _lastHoverDesignItem;
81
+ _firstConnect;
82
+ static cssprefixConstant = '#node-projects-designer-canvas-canvas ';
83
+ static style = css `
84
+ :host {
85
+ display: block;
86
+ box-sizing: border-box;
87
+ width: 100%;
88
+ position: relative;
89
+ transform: translateZ(0);
90
+ overflow: hidden;
91
+
92
+ font-family: inherit;
93
+ font-size: inherit;
94
+ font-weight: inherit;
95
+ font-style: inherit;
96
+ line-height: inherit;
97
+ }
98
+ * {
99
+ touch-action: none;
100
+ }
101
+ #node-projects-designer-canvas-canvas {
102
+ background-color: var(--canvas-background, white);
103
+ /* 10px grid, using http://www.patternify.com/ */
104
+ //background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAFFJREFUeNpicChb7DAQmMGhbLHD////GQjh8nW3qapu1OJRi0ctHiYWl6+7TRAnLbxCVXWjcTxq8ajFoxaPllyjcTxq8ajFI8hiAAAAAP//AwCQfdyctxBQfwAAAABJRU5ErkJggg==);
105
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAFXmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjIwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSIyMCIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMjAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjMwMC8xIgogICB0aWZmOllSZXNvbHV0aW9uPSIzMDAvMSIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0xMi0wOFQwOToxNTo0OCswMTowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0xMi0wOFQwOToxNTo0OCswMTowMCI+CiAgIDxkYzp0aXRsZT4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QmFja2dyb3VuZGdyaWRfMTBweDwvcmRmOmxpPgogICAgPC9yZGY6QWx0PgogICA8L2RjOnRpdGxlPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJwcm9kdWNlZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWZmaW5pdHkgRGVzaWduZXIgMS4xMC42IgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTEyLTA4VDA5OjE1OjQ4KzAxOjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIiPz4fvgn+AAABgWlDQ1BzUkdCIElFQzYxOTY2LTIuMQAAKJF1kc8rRFEUxz8GjRhRLCiLl7BCftTExmLkV2ExnvJr8+bNvBk1b+b13kiyVbaKEhu/FvwFbJW1UkRKlrImNug5b2ZqJplzO/d87vfec7r3XPCpSd10KnrATGXs8FhImZtfUPwvBKjCTx/Nmu5YUzOjKiXt854yL952ebVKn/vXaqIxR4eyKuEh3bIzwuPCk6sZy+Md4UY9oUWFz4Q7bbmg8J2nR3L86nE8x98e22p4GHz1wkq8iCNFrCdsU1heTpuZXNHz9/FeEoilZmcktoq34BBmjBAKE4wwTJBeBmUO0iX96ZYVJfJ7svnTpCVXl9liDZtl4iTI0CnqilSPSTREj8lIsub1/29fHaO/L1c9EILKZ9d9bwf/Nvxsue7Xkev+HEP5E1ymCvnpQxj4EH2roLUdQN0GnF8VtMguXGxC06Ol2VpWKhf3GQa8nULtPDTcQPVirmf5fU4eQF2Xr7qGvX3okPN1S790cWfsRnax1QAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAC9JREFUOI1jfPr0KQNuICUlhUeWCY8cQTCqeWRoZvz//z8e6WfPntHK5lHNI0MzAMChCNMTuPcnAAAAAElFTkSuQmCC);
106
+ image-rendering: pixelated;
107
+ background-position: 0px 0px;
108
+ background-attachment: fixed;
109
+ background-origin: -box;
110
+ box-sizing: border-box;
111
+ width: 100%;
112
+ height: 100%;
113
+ transform-origin: 0 0;
114
+ position: relative
115
+ }
116
+
117
+ #node-projects-designer-canvas-canvas.dragFileActive {
118
+ outline: blue 4px solid;
119
+ outline-offset: -4px;
120
+ }
121
+
122
+ node-projects-overlay-layer-view {
123
+ box-sizing: border-box;
124
+ width: 100%;
125
+ height: 100%;
126
+ position: absolute;
127
+ top: 0;
128
+ left: 0;
129
+ pointer-events: none;
130
+ overflow: visible;
131
+ user-select: none;
132
+ -webkit-user-select: none;
133
+ z-index: 999999999999;
134
+ }
135
+
136
+ #node-projects-designer-canvas-canvas * {
137
+ cursor: pointer;
138
+ user-select: none;
139
+ -webkit-user-select: none;
140
+ }
141
+
142
+ #node-projects-designer-canvas-clickOverlay {
143
+ position: absolute;
144
+ width: 100%;
145
+ height: 100%;
146
+ top: 0;
147
+ }
148
+
149
+ #node-projects-designer-canvas-helper-element {
150
+ height: 0;
151
+ width: 0;
152
+ }
153
+
154
+ #node-projects-designer-search-container {
155
+ position:absolute;
156
+ display: grid;
157
+ grid-template-columns: 1fr auto auto;
158
+ align-items: center;
159
+ justify-content: left;
160
+ gap: 8px;
161
+ width: auto;
162
+ right: 10px;
163
+ top: 0;
164
+ background:rgb(242, 242, 242);
165
+ padding: 5px 6px;
166
+ border-bottom-left-radius: 5px;
167
+ border-bottom-right-radius: 5px;
168
+ }
169
+
170
+ #node-projects-designer-search-container > #node-projects-designer-search-bar {
171
+ border: 1px solid black;
172
+ padding: 0;
173
+ display: grid;
174
+ grid-template-columns: 1fr auto;
175
+ align-items: center;
176
+ background-color: white;
177
+ padding: 1px 2px;
178
+ }
179
+
180
+ #node-projects-designer-search-container > div > input {
181
+ height:20px;
182
+ padding-left: 6px;
183
+ font-size: 13px;
184
+ border: none;
185
+ outline: none;
186
+ }
187
+
188
+ #node-projects-designer-search-container > div > #node-projects-designer-search-start {
189
+ height:22px;
190
+ border: none;
191
+ background-color: white;
192
+ font-size: 13px;
193
+ }
194
+
195
+ #node-projects-designer-search-container > div > #node-projects-designer-search-start:hover {
196
+ background-color: #D3D3D3;
197
+ transition: 0.9s;
198
+ border-radius: 2px;
199
+ }
200
+
201
+ #node-projects-designer-search-container > #node-projects-designer-search-close {
202
+ position: relative;
203
+ width: 20px;
204
+ height: 20px;
205
+ border: none;
206
+ background-color: transparent;
207
+ }
208
+
209
+ #node-projects-designer-search-container > span {
210
+ font-family:sans-serif;
211
+ font-size: 12px;
212
+ }
213
+
214
+ #node-projects-designer-search-container > #node-projects-designer-search-close::before,
215
+ #node-projects-designer-search-container > #node-projects-designer-search-close::after {
216
+ content: "";
217
+ position: absolute;
218
+ top: 50%;
219
+ left: 50%;
220
+ width: 60%;
221
+ background-color: black;
222
+ height: 1px;
223
+ }
224
+
225
+ #node-projects-designer-search-container > #node-projects-designer-search-close::before {
226
+ transform: translate(-50%, -50%) rotate(45deg);
227
+ }
228
+
229
+ #node-projects-designer-search-container > #node-projects-designer-search-close::after {
230
+ transform: translate(-50%, -50%) rotate(-45deg);
231
+ }
232
+
233
+ #node-projects-designer-canvas-canvas {
234
+ margin: 0;
235
+ padding: 0;
236
+ border: none;
237
+ }
238
+ `;
239
+ static template = html `
240
+ <div style="display: flex;flex-direction: column;width: 100%;height: 100%; margin: 0 !important; padding: 0 !important; border: none !important;">
241
+ <div style="width: 100%;height: 100%; margin: 0 !important; padding: 0 !important; border: none !important;">
242
+ <div id="node-projects-designer-canvas-outercanvas2" style="width:100%;height:100%;position:relative; margin: 0 !important; padding: 0 !important; border: none !important; isolation: isolate !important;">
243
+ <div id="node-projects-designer-canvas-canvasContainer"
244
+ style="width: 100%;height: 100%;position: absolute;top: 0;left: 0;user-select: none; margin: 0 !important; padding: 0 !important; border: none !important;">
245
+ <div id="node-projects-designer-canvas-canvas" part="canvas"></div>
246
+ </div>
247
+ </div>
248
+ <div id="node-projects-designer-canvas-clickOverlay" tabindex="0" style="pointer-events: auto; margin: 0 !important; padding: 0 !important; border: none !important;"></div>
249
+ </div>
250
+
251
+ <div id="node-projects-designer-search-container" style="display: none;">
252
+ <div id="node-projects-designer-search-bar">
253
+ <input id="node-projects-designer-search-input">
254
+ <button id="node-projects-designer-search-start">&darr;</button>
255
+ </div>
256
+ <span id="node-projects-designer-search-result">0 selected</span>
257
+ <button id="node-projects-designer-search-close"></button>
258
+ </div>
259
+ </div>`;
260
+ extensionManager;
261
+ _pointerextensions;
262
+ _lastCopiedPrimaryItem;
263
+ constructor() {
264
+ super();
265
+ this._restoreCachedInititalValues();
266
+ this._canvas = this._getDomElement('node-projects-designer-canvas-canvas');
267
+ this._canvasContainer = this._getDomElement('node-projects-designer-canvas-canvasContainer');
268
+ this._outercanvas2 = this._getDomElement('node-projects-designer-canvas-outercanvas2');
269
+ this.clickOverlay = this._getDomElement('node-projects-designer-canvas-clickOverlay');
270
+ this.onKeyDown = this.onKeyDown.bind(this);
271
+ this.onKeyUp = this.onKeyUp.bind(this);
272
+ this._onDblClick = this._onDblClick.bind(this);
273
+ this._pointerEventHandler = this._pointerEventHandler.bind(this);
274
+ this._getDomElement('node-projects-designer-search-close').onclick = () => this._searchHideOverlay();
275
+ this._getDomElement('node-projects-designer-search-start').onclick = () => this._searchRun();
276
+ this._getDomElement('node-projects-designer-search-container').onkeydown = (event) => {
277
+ if (event.key === "Enter")
278
+ this._searchRun();
279
+ };
280
+ this.clickOverlay.oncontextmenu = (e) => e.preventDefault();
281
+ }
282
+ get designerWidth() {
283
+ return this._canvasContainer.style.width;
284
+ }
285
+ set designerWidth(value) {
286
+ this._canvasContainer.style.width = value;
287
+ this._zoomFactorChanged();
288
+ }
289
+ get designerHeight() {
290
+ return this._canvasContainer.style.height;
291
+ }
292
+ set designerHeight(value) {
293
+ this._canvasContainer.style.height = value;
294
+ this._zoomFactorChanged();
295
+ }
296
+ getDesignSurfaceDimensions() {
297
+ let ret = { width: null, height: null };
298
+ const cs = getComputedStyle(this._canvasContainer);
299
+ if (this._canvasContainer.style.width)
300
+ ret.width = parseFloat(cs.width);
301
+ if (this._canvasContainer.style.height)
302
+ ret.height = parseFloat(cs.height);
303
+ return ret;
304
+ }
305
+ get designerOffsetWidth() {
306
+ return this._canvasContainer.offsetWidth;
307
+ }
308
+ get designerOffsetHeight() {
309
+ return this._canvasContainer.offsetHeight;
310
+ }
311
+ set additionalStyles(value) {
312
+ this._additionalStyle = value;
313
+ this.applyAllStyles();
314
+ }
315
+ get additionalStyles() {
316
+ return this._additionalStyle;
317
+ }
318
+ applyAllStyles() {
319
+ let styles = [this.constructor.style];
320
+ if (this._additionalStyle)
321
+ styles.push(cssFromString(AbstractStylesheetService.buildPatchedStyleSheet(this._additionalStyle)));
322
+ if (this.instanceServiceContainer.stylesheetService) {
323
+ styles.push(...this.instanceServiceContainer.stylesheetService
324
+ .getStylesheets()
325
+ .map(x => cssFromString(AbstractStylesheetService.buildPatchedStyleSheet([cssFromString(x.content)]))));
326
+ }
327
+ this.shadowRoot.adoptedStyleSheets = styles;
328
+ }
329
+ /* --- start IUiCommandHandler --- */
330
+ async executeCommand(command) {
331
+ const modelCommandService = this.serviceContainer.modelCommandService;
332
+ if (modelCommandService) {
333
+ let handeled = await modelCommandService.executeCommand(this, command);
334
+ if (handeled != null)
335
+ return;
336
+ }
337
+ switch (command.type) {
338
+ case CommandType.screenshot:
339
+ {
340
+ if (!Screenshot.screenshotsEnabled) {
341
+ alert("you need to select current tab in next browser dialog, or screenshots will not work correctly");
342
+ }
343
+ if (!this.instanceServiceContainer.selectionService.primarySelection) {
344
+ this.zoomToFit();
345
+ this.disableBackgroud();
346
+ const el = this.rootDesignItem.element;
347
+ const sel = this.instanceServiceContainer.selectionService.selectedElements;
348
+ this.instanceServiceContainer.selectionService.setSelectedElements(null);
349
+ await sleep(100);
350
+ const screenshot = await Screenshot.takeScreenshot(el, el.clientWidth, el.clientHeight);
351
+ await exportData(dataURItoBlob(screenshot), "screenshot.png");
352
+ this.instanceServiceContainer.selectionService.setSelectedElements(sel);
353
+ this.enableBackground();
354
+ }
355
+ else {
356
+ this.disableBackgroud();
357
+ const el = this.instanceServiceContainer.selectionService.primarySelection.element;
358
+ const sel = this.instanceServiceContainer.selectionService.selectedElements;
359
+ this.instanceServiceContainer.selectionService.setSelectedElements(null);
360
+ await sleep(100);
361
+ const screenshot = await Screenshot.takeScreenshot(el, el.clientWidth, el.clientHeight);
362
+ await exportData(dataURItoBlob(screenshot), "screenshot.png");
363
+ this.instanceServiceContainer.selectionService.setSelectedElements(sel);
364
+ this.enableBackground();
365
+ }
366
+ }
367
+ break;
368
+ case CommandType.setTool:
369
+ {
370
+ this.serviceContainer.globalContext.tool = this.serviceContainer.designerTools.get(command.parameter);
371
+ }
372
+ break;
373
+ case CommandType.setStrokeColor:
374
+ {
375
+ this.serviceContainer.globalContext.strokeColor = command.parameter;
376
+ }
377
+ break;
378
+ case CommandType.setFillBrush:
379
+ {
380
+ this.serviceContainer.globalContext.fillBrush = command.parameter;
381
+ }
382
+ break;
383
+ case CommandType.setStrokeThickness:
384
+ {
385
+ this.serviceContainer.globalContext.strokeThickness = command.parameter;
386
+ }
387
+ break;
388
+ case CommandType.delete:
389
+ this.handleDeleteCommand();
390
+ break;
391
+ case CommandType.undo:
392
+ this.instanceServiceContainer.undoService.undo();
393
+ break;
394
+ case CommandType.redo:
395
+ this.instanceServiceContainer.undoService.redo();
396
+ break;
397
+ case CommandType.copy:
398
+ this.handleCopyCommand();
399
+ break;
400
+ case CommandType.cut:
401
+ this.handleCopyCommand();
402
+ this.handleDeleteCommand();
403
+ break;
404
+ case CommandType.paste:
405
+ this.handlePasteCommand(command.altKey == true);
406
+ break;
407
+ case CommandType.selectAll:
408
+ this.handleSelectAll();
409
+ break;
410
+ }
411
+ }
412
+ disableBackgroud() {
413
+ this._backgroundImage = this._canvas.style.backgroundImage;
414
+ this._canvas.style.backgroundImage = 'none';
415
+ }
416
+ enableBackground() {
417
+ this._canvas.style.backgroundImage = this._backgroundImage;
418
+ }
419
+ zoomToFit() {
420
+ const autoZomOffset = 10;
421
+ let maxX = 0, maxY = 0, minX = 0, minY = 0;
422
+ this.canvasOffset = { x: 0, y: 0 };
423
+ this.zoomFactor = 1;
424
+ for (let n of DomHelper.getAllChildNodes(this.rootDesignItem.element)) {
425
+ if (n instanceof Element) {
426
+ const rect = n.getBoundingClientRect();
427
+ minX = minX < rect.x ? minX : rect.x;
428
+ minY = minY < rect.y ? minY : rect.y;
429
+ maxX = maxX > rect.x + rect.width + autoZomOffset ? maxX : rect.x + rect.width + autoZomOffset;
430
+ maxY = maxY > rect.y + rect.height + autoZomOffset ? maxY : rect.y + rect.height + autoZomOffset;
431
+ }
432
+ }
433
+ const cvRect = this.getBoundingClientRect();
434
+ maxX -= cvRect.x;
435
+ maxY -= cvRect.y;
436
+ let scaleX = cvRect.width / (maxX / this.zoomFactor);
437
+ let scaleY = cvRect.height / (maxY / this.zoomFactor);
438
+ const dimensions = this.getDesignSurfaceDimensions();
439
+ if (dimensions.width)
440
+ scaleX = cvRect.width / dimensions.width;
441
+ if (dimensions.height)
442
+ scaleY = cvRect.height / dimensions.height;
443
+ let fak = scaleX < scaleY ? scaleX : scaleY;
444
+ if (!isNaN(fak))
445
+ this.zoomFactor = fak;
446
+ //this._zoomInput.value = Math.round(this.zoomFactor * 100) + '%';
447
+ }
448
+ canExecuteCommand(command) {
449
+ const modelCommandService = this.serviceContainer.modelCommandService;
450
+ if (modelCommandService) {
451
+ let handeled = modelCommandService.canExecuteCommand(this, command);
452
+ if (handeled !== null)
453
+ return handeled;
454
+ }
455
+ if (command.type === CommandType.undo) {
456
+ return this.instanceServiceContainer.undoService.canUndo();
457
+ }
458
+ if (command.type === CommandType.redo) {
459
+ return this.instanceServiceContainer.undoService.canRedo();
460
+ }
461
+ if (command.type === CommandType.setTool) {
462
+ return this.serviceContainer.designerTools.has(command.parameter);
463
+ }
464
+ return true;
465
+ }
466
+ /* --- end IUiCommandHandler --- */
467
+ handleSelectAll() {
468
+ this.instanceServiceContainer.selectionService.setSelectedElements(Array.from(this.rootDesignItem.children()));
469
+ }
470
+ async handleCopyCommand() {
471
+ this._currentPasteOffset = this.pasteOffset;
472
+ this._lastCopiedPrimaryItem = this.instanceServiceContainer.selectionService.primarySelection;
473
+ await this.serviceContainer.copyPasteService.copyItems(this.instanceServiceContainer.selectionService.selectedElements);
474
+ }
475
+ async handlePasteCommand(disableRestoreOfPositions) {
476
+ const [designItems, positions] = await this.serviceContainer.copyPasteService.getPasteItems(this.serviceContainer, this.instanceServiceContainer);
477
+ let grp = this.rootDesignItem.openGroup("Insert");
478
+ let lastCopiedPrimaryItemBackup = this._lastCopiedPrimaryItem;
479
+ let nextPasteOffset = this._currentPasteOffset + this.pasteOffset;
480
+ let pasteContainer = this.rootDesignItem;
481
+ let pCon = lastCopiedPrimaryItemBackup?.parent ?? this.instanceServiceContainer.selectionService.primarySelection;
482
+ while (pCon != null) {
483
+ const containerStyle = getComputedStyle(pCon.element);
484
+ let newContainerService;
485
+ newContainerService = this.serviceContainer.getLastServiceWhere('containerService', x => x.serviceForContainer(pCon, containerStyle));
486
+ if (newContainerService) {
487
+ if (newContainerService.canEnter(pCon, designItems)) {
488
+ pasteContainer = pCon;
489
+ break;
490
+ }
491
+ else {
492
+ pCon = pCon.parent;
493
+ continue;
494
+ }
495
+ }
496
+ }
497
+ if (designItems) {
498
+ let containerPos = this.getNormalizedElementCoordinates(pasteContainer.element);
499
+ for (let i = 0; i < designItems.length; i++) {
500
+ let di = designItems[i];
501
+ let pos = positions ? positions[i] : null;
502
+ this.instanceServiceContainer.undoService.execute(new InsertAction(pasteContainer, pasteContainer.childCount, di));
503
+ if (!disableRestoreOfPositions && pos && di.nodeType == NodeType.Element) {
504
+ di.setStyle('left', (pos.x - containerPos.x + this._currentPasteOffset) + 'px');
505
+ di.setStyle('top', (pos.y - containerPos.y + this._currentPasteOffset) + 'px');
506
+ }
507
+ }
508
+ const intializationService = this.serviceContainer.intializationService;
509
+ if (intializationService) {
510
+ for (let di of designItems)
511
+ intializationService.init(di);
512
+ }
513
+ this.instanceServiceContainer.selectionService.setSelectedElements(designItems);
514
+ }
515
+ grp.commit();
516
+ this.snapLines.clearSnaplines();
517
+ this._lastCopiedPrimaryItem = lastCopiedPrimaryItemBackup;
518
+ this._currentPasteOffset = nextPasteOffset;
519
+ }
520
+ handleDeleteCommand() {
521
+ let items = this.instanceServiceContainer.selectionService.selectedElements;
522
+ this.instanceServiceContainer.undoService.execute(new DeleteAction(items));
523
+ this.instanceServiceContainer.selectionService.setSelectedElements(null);
524
+ }
525
+ initialize(serviceContainer) {
526
+ this.serviceContainer = serviceContainer;
527
+ this.instanceServiceContainer = new InstanceServiceContainer(this);
528
+ const undoService = this.serviceContainer.getLastService('undoService');
529
+ if (undoService)
530
+ this.instanceServiceContainer.register("undoService", undoService(this));
531
+ const selectionService = this.serviceContainer.getLastService('selectionService');
532
+ if (selectionService) {
533
+ this.instanceServiceContainer.register("selectionService", selectionService(this));
534
+ this.instanceServiceContainer.selectionService.onSelectionChanged.on(() => {
535
+ this._lastCopiedPrimaryItem = null;
536
+ this._currentPasteOffset = this.pasteOffset;
537
+ });
538
+ }
539
+ const designItemDocumentPositionService = this.serviceContainer.getLastService('designItemDocumentPositionService');
540
+ if (designItemDocumentPositionService) {
541
+ this.instanceServiceContainer.register("designItemDocumentPositionService", designItemDocumentPositionService(this));
542
+ }
543
+ this.rootDesignItem = DesignItem.GetOrCreateDesignItem(this._canvas, this._canvas, this.serviceContainer, this.instanceServiceContainer);
544
+ const contentService = this.serviceContainer.getLastService('contentService');
545
+ if (contentService) {
546
+ this.instanceServiceContainer.register("contentService", contentService(this));
547
+ }
548
+ const stylesheetService = this.serviceContainer.getLastService('stylesheetService');
549
+ if (stylesheetService) {
550
+ const instance = stylesheetService(this);
551
+ this.instanceServiceContainer.register("stylesheetService", instance);
552
+ this.instanceServiceContainer.stylesheetService.stylesheetChanged.on((ss) => {
553
+ if (ss.changeSource != 'undo') {
554
+ const ssca = new StylesheetChangedAction(this.instanceServiceContainer.stylesheetService, ss.name, ss.newStyle, ss.oldStyle);
555
+ this.instanceServiceContainer.undoService.execute(ssca);
556
+ }
557
+ this.applyAllStyles();
558
+ });
559
+ this.instanceServiceContainer.stylesheetService.stylesheetsChanged.on(() => {
560
+ this.applyAllStyles();
561
+ });
562
+ }
563
+ this.extensionManager = new ExtensionManager(this);
564
+ this.overlayLayer = new OverlayLayerView(serviceContainer);
565
+ this.overlayLayer.style.pointerEvents = 'none';
566
+ this.overlayLayer.style.setProperty('margin', '0', 'important');
567
+ this.overlayLayer.style.setProperty('padding', '0', 'important');
568
+ this.overlayLayer.style.setProperty('border', 'none', 'important');
569
+ this.clickOverlay.appendChild(this.overlayLayer);
570
+ this.snapLines = new Snaplines(this.overlayLayer);
571
+ this.snapLines.initialize(this.rootDesignItem);
572
+ if (this.serviceContainer.designerPointerExtensions)
573
+ for (let pe of this.serviceContainer.designerPointerExtensions) {
574
+ if (!this._pointerextensions)
575
+ this._pointerextensions = [];
576
+ this._pointerextensions.push(pe.getExtension(this));
577
+ }
578
+ if (this.children) {
579
+ let children = this.children;
580
+ if (this.children.length == 1 && this.children[0] instanceof HTMLSlotElement) {
581
+ children = this.children[0].assignedElements();
582
+ }
583
+ const parser = this.serviceContainer.getLastServiceWhere('htmlParserService', x => x.constructor == DefaultHtmlParserService);
584
+ this.addDesignItems(parser.createDesignItems(children, this.serviceContainer, this.instanceServiceContainer));
585
+ }
586
+ if (!this.serviceContainer.options.zoomDesignerBackground) {
587
+ requestAnimationFrame(() => {
588
+ this._resizeBackgroundGrid();
589
+ });
590
+ }
591
+ }
592
+ connectedCallback() {
593
+ if (!this._firstConnect) {
594
+ this._firstConnect = true;
595
+ this.clickOverlay.addEventListener(EventNames.PointerDown, this._pointerEventHandler);
596
+ this.clickOverlay.addEventListener(EventNames.PointerMove, this._pointerEventHandler);
597
+ this.clickOverlay.addEventListener(EventNames.PointerUp, this._pointerEventHandler);
598
+ this.clickOverlay.addEventListener(EventNames.DragEnter, event => this._onDragEnter(event));
599
+ this.clickOverlay.addEventListener(EventNames.DragLeave, event => this._onDragLeave(event));
600
+ this.clickOverlay.addEventListener(EventNames.DragOver, event => this._onDragOver(event));
601
+ this.clickOverlay.addEventListener(EventNames.Drop, event => this._onDrop(event));
602
+ this.clickOverlay.addEventListener(EventNames.KeyDown, this.onKeyDown, true);
603
+ this.clickOverlay.addEventListener(EventNames.KeyUp, this.onKeyUp, true);
604
+ this.clickOverlay.addEventListener(EventNames.DblClick, this._onDblClick, true);
605
+ }
606
+ }
607
+ _zoomFactorChanged(refreshExtensions = true) {
608
+ //a@ts-ignore
609
+ //this._canvasContainer.style.zoom = <any>this._zoomFactor;
610
+ //this._canvasContainer.style.transform = 'scale(' + this._zoomFactor+') translate(' + this._translate.x + ', '+this._translate.y+')';
611
+ //this._canvasContainer.style.transformOrigin = '0 0';
612
+ this._canvasContainer.style.bottom = this._outercanvas2.offsetHeight >= this._canvasContainer.offsetHeight ? '0' : '';
613
+ this._canvasContainer.style.right = this._outercanvas2.offsetWidth >= this._canvasContainer.offsetWidth ? '0' : '';
614
+ this._updateTransform();
615
+ this._fillCalculationrects();
616
+ this.onZoomFactorChanged.emit(this._zoomFactor);
617
+ if (refreshExtensions) {
618
+ this.extensionManager.refreshAllAppliedExtentions();
619
+ setTimeout(() => this.extensionManager.refreshAllAppliedExtentions(), 200);
620
+ }
621
+ if (!this.serviceContainer.options.zoomDesignerBackground)
622
+ this._resizeBackgroundGrid();
623
+ }
624
+ _resizeBackgroundGrid() {
625
+ const backgroundGridSize = 10;
626
+ const backgroundGridFactor = backgroundGridSize * 100 * 2;
627
+ let canvasWidth = this.canvas.getBoundingClientRect().width;
628
+ let backgroundGridZoom = backgroundGridFactor / canvasWidth;
629
+ this.canvas.style.backgroundSize = backgroundGridZoom.toString() + '%';
630
+ }
631
+ _updateTransform() {
632
+ this._scaleFactor = this._zoomFactor;
633
+ this._canvasContainer.style.transform = 'scale(' + this._zoomFactor + ') translate(' + (isNaN(this._canvasOffset.x) ? '0' : this._canvasOffset.x) + 'px, ' + (isNaN(this._canvasOffset.y) ? '0' : this._canvasOffset.y) + 'px)';
634
+ this._canvasContainer.style.transformOrigin = '0 0';
635
+ this.overlayLayer.style.transform = this._canvasContainer.style.transform;
636
+ this.overlayLayer.style.transformOrigin = '0 0';
637
+ this.snapLines.clearSnaplines();
638
+ }
639
+ setDesignItems(designItems) {
640
+ const setItemsAction = new SetDesignItemsAction(designItems, [...this.rootDesignItem.children()]);
641
+ this.instanceServiceContainer.undoService.execute(setItemsAction);
642
+ }
643
+ _internalSetDesignItems(designItems) {
644
+ this._fillCalculationrects();
645
+ this.overlayLayer.removeAllOverlays();
646
+ DomHelper.removeAllChildnodes(this.overlayLayer);
647
+ for (let i of [...this.rootDesignItem.children()])
648
+ this.rootDesignItem._removeChildInternal(i);
649
+ this.addDesignItems(designItems);
650
+ this.lazyTriggerReparseDocumentStylesheets();
651
+ this.instanceServiceContainer.contentService.onContentChanged.emit({ changeType: 'parsed' });
652
+ this.instanceServiceContainer.selectionService._withoutUndoSetSelectedElements(null);
653
+ setTimeout(() => this.extensionManager.refreshAllAppliedExtentions(), 50);
654
+ }
655
+ reparseTimeout;
656
+ lazyTriggerReparseDocumentStylesheets() {
657
+ if (this.reparseTimeout) {
658
+ clearTimeout(this.reparseTimeout);
659
+ }
660
+ this.reparseTimeout = setTimeout(async () => {
661
+ await this.reparseDocumentStylesheets();
662
+ clearTimeout(this.reparseTimeout);
663
+ }, 20);
664
+ }
665
+ async reparseDocumentStylesheets() {
666
+ if (this.instanceServiceContainer.stylesheetService) {
667
+ const styleElements = this.rootDesignItem.element.querySelectorAll('style');
668
+ let i = 1;
669
+ const intStyleSheets = [...styleElements].map(x => ({ name: '&lt;style&gt; #' + (x.id ? x.id + '(' + i++ + ')' : i++), content: DesignItem.GetDesignItem(x).content, designItem: DesignItem.GetDesignItem(x) }));
670
+ await this.instanceServiceContainer.stylesheetService.setDocumentStylesheets(intStyleSheets);
671
+ }
672
+ }
673
+ addDesignItems(designItems) {
674
+ if (designItems) {
675
+ for (let di of designItems) {
676
+ this.rootDesignItem._insertChildInternal(di);
677
+ }
678
+ }
679
+ const intializationService = this.serviceContainer.intializationService;
680
+ if (intializationService) {
681
+ for (let di of designItems)
682
+ intializationService.init(di);
683
+ }
684
+ this.snapLines.clearSnaplines();
685
+ }
686
+ _onDragEnter(event) {
687
+ this._fillCalculationrects();
688
+ event.preventDefault();
689
+ const hasTransferDataBindingObject = event.dataTransfer.types.indexOf(dragDropFormatNameBindingObject) >= 0;
690
+ if (hasTransferDataBindingObject) {
691
+ const ddService = this.serviceContainer.bindableObjectDragDropService;
692
+ if (ddService) {
693
+ const el = this.getElementAtPoint({ x: event.x, y: event.y });
694
+ if (this._lastDdElement != el) {
695
+ ddService.dragLeave(this, event, this._lastDdElement);
696
+ ddService.dragEnter(this, event, el);
697
+ this._lastDdElement = el;
698
+ }
699
+ }
700
+ else {
701
+ this._lastDdElement = null;
702
+ }
703
+ }
704
+ else {
705
+ this._lastDdElement = null;
706
+ const dragDropService = this.serviceContainer.dragDropService;
707
+ if (dragDropService) {
708
+ dragDropService.dragEnter(this, event);
709
+ }
710
+ }
711
+ }
712
+ _onDragLeave(event) {
713
+ this._fillCalculationrects();
714
+ event.preventDefault();
715
+ this._canvas.classList.remove('dragFileActive');
716
+ const dragDropService = this.serviceContainer.dragDropService;
717
+ if (dragDropService) {
718
+ dragDropService.dragLeave(this, event);
719
+ }
720
+ }
721
+ _lastDdElement = null;
722
+ _onDragOver(event) {
723
+ event.preventDefault();
724
+ /*if (this.alignOnSnap) {
725
+ this.snapLines.calculateSnaplines(this.instanceServiceContainer.selectionService.selectedElements);
726
+ //TODO: fix this following code...
727
+ const currentPoint = this.getDesignerMousepoint(event);
728
+ let containerService = this.serviceContainer.getLastServiceWhere('containerService', x => x.serviceForContainer(this.rootDesignItem))
729
+ containerService.finishPlace(this, this.rootDesignItem, this._initialPoint, currentPoint, this.instanceServiceContainer.selectionService.selectedElements);
730
+ }*/
731
+ this._fillCalculationrects();
732
+ if (event.dataTransfer.types.length > 0 && event.dataTransfer.types[0] == 'Files') {
733
+ const ddService = this.serviceContainer.externalDragDropService;
734
+ if (ddService) {
735
+ const effect = ddService.dragOver(event);
736
+ event.dataTransfer.dropEffect = effect;
737
+ if (effect !== 'none')
738
+ this._canvas.classList.add('dragFileActive');
739
+ }
740
+ }
741
+ else {
742
+ const hasTransferDataBindingObject = event.dataTransfer.types.indexOf(dragDropFormatNameBindingObject) >= 0;
743
+ if (hasTransferDataBindingObject) {
744
+ const bindableDdService = this.serviceContainer.bindableObjectDragDropService;
745
+ if (bindableDdService) {
746
+ const el = this.getElementAtPoint({ x: event.x, y: event.y });
747
+ if (this._lastDdElement != el) {
748
+ bindableDdService.dragLeave(this, event, this._lastDdElement);
749
+ bindableDdService.dragEnter(this, event, el);
750
+ this._lastDdElement = el;
751
+ }
752
+ const effect = bindableDdService.dragOver(this, event, el);
753
+ event.dataTransfer.dropEffect = effect;
754
+ }
755
+ }
756
+ else {
757
+ const dragDropService = this.serviceContainer.dragDropService;
758
+ if (dragDropService) {
759
+ dragDropService.dragOver(this, event);
760
+ }
761
+ }
762
+ }
763
+ }
764
+ async _onDrop(event) {
765
+ this.serviceContainer.globalContext.tool = this.serviceContainer.designerTools.get(NamedTools.Pointer);
766
+ this._lastDdElement = null;
767
+ event.preventDefault();
768
+ this._canvas.classList.remove('dragFileActive');
769
+ this._fillCalculationrects();
770
+ if (event.dataTransfer.files?.length > 0) {
771
+ const ddService = this.serviceContainer.externalDragDropService;
772
+ if (ddService) {
773
+ ddService.drop(this, event);
774
+ }
775
+ }
776
+ else {
777
+ const transferDataBindingObject = event.dataTransfer.getData(dragDropFormatNameBindingObject);
778
+ if (transferDataBindingObject) {
779
+ const bo = JSON.parse(transferDataBindingObject);
780
+ const ddService = this.serviceContainer.bindableObjectDragDropService;
781
+ if (ddService) {
782
+ const el = this.getElementAtPoint({ x: event.x, y: event.y });
783
+ ddService.drop(this, event, bo, el);
784
+ }
785
+ }
786
+ else {
787
+ const dragDropService = this.serviceContainer.dragDropService;
788
+ if (dragDropService) {
789
+ this._fillCalculationrects();
790
+ dragDropService.drop(this, event);
791
+ }
792
+ }
793
+ }
794
+ }
795
+ showDesignItemContextMenu(designItem, event) {
796
+ this._currentContextMenu?.close();
797
+ const mnuItems = [];
798
+ for (let cme of this.serviceContainer.designerContextMenuExtensions) {
799
+ if (cme.shouldProvideContextmenu(event, this, designItem, 'designer')) {
800
+ mnuItems.push(...cme.provideContextMenuItems(event, this, designItem));
801
+ }
802
+ }
803
+ let ctxMenu = new ContextMenu(mnuItems, null);
804
+ ctxMenu.display(event);
805
+ return ctxMenu;
806
+ }
807
+ _onDblClick(event) {
808
+ event.preventDefault();
809
+ this.extensionManager.applyExtension(this.instanceServiceContainer.selectionService.primarySelection, ExtensionType.Doubleclick, event);
810
+ }
811
+ _searchShowOverlay() {
812
+ let divElement = this._getDomElement('node-projects-designer-search-container');
813
+ divElement.style.display = '';
814
+ this._getDomElement('node-projects-designer-search-input').focus();
815
+ }
816
+ _searchHideOverlay() {
817
+ let divElement = this._getDomElement('node-projects-designer-search-container');
818
+ divElement.style.display = 'none';
819
+ }
820
+ _searchRun() {
821
+ let input = this._getDomElement('node-projects-designer-search-input');
822
+ this._getDomElement('node-projects-designer-search-result').innerHTML = "0 selected";
823
+ if (input.value != "") {
824
+ let selectedElements = this.shadowRoot.querySelectorAll(input.value);
825
+ let designItems = [];
826
+ for (let i = 0; i <= selectedElements.length; i++) {
827
+ if (this._canvasContainer.contains(selectedElements[i]))
828
+ designItems.push(DesignItem.GetDesignItem(selectedElements[i]));
829
+ }
830
+ if (designItems.length > 0) {
831
+ this.instanceServiceContainer.selectionService.setSelectedElements(designItems);
832
+ this._getDomElement('node-projects-designer-search-result').innerHTML = designItems.length.toString() + " selected";
833
+ }
834
+ }
835
+ }
836
+ onKeyUp(event) {
837
+ if (event.composedPath().indexOf(this.eatEvents) >= 0)
838
+ return;
839
+ event.preventDefault();
840
+ }
841
+ onKeyDown(event) {
842
+ if (event.composedPath().indexOf(this.eatEvents) >= 0)
843
+ return;
844
+ if ((event.ctrlKey || event.metaKey) && event.key === 'z' && !event.shiftKey)
845
+ this.executeCommand({ type: CommandType.undo, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
846
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'z' && event.shiftKey)
847
+ this.executeCommand({ type: CommandType.redo, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
848
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'y')
849
+ this.executeCommand({ type: CommandType.redo, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
850
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'a')
851
+ this.executeCommand({ type: CommandType.selectAll, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
852
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'c')
853
+ this.executeCommand({ type: CommandType.copy, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
854
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'v')
855
+ this.executeCommand({ type: CommandType.paste, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
856
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'x')
857
+ this.executeCommand({ type: CommandType.cut, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
858
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'f')
859
+ this._searchShowOverlay();
860
+ else {
861
+ let primarySelection = this.instanceServiceContainer.selectionService.primarySelection;
862
+ if (!primarySelection) {
863
+ return;
864
+ }
865
+ let moveOffset = 1;
866
+ if (event.shiftKey)
867
+ moveOffset = 10;
868
+ switch (event.key) {
869
+ case 'Delete':
870
+ case 'Backspace':
871
+ this.executeCommand({ type: CommandType.delete, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
872
+ break;
873
+ case 'ArrowDown':
874
+ case 'ArrowUp':
875
+ case 'ArrowLeft':
876
+ case 'ArrowRight':
877
+ {
878
+ let offset = { x: 0, y: 0 };
879
+ if (event.key == 'ArrowDown')
880
+ offset.y = -moveOffset;
881
+ if (event.key == 'ArrowUp')
882
+ offset.y = moveOffset;
883
+ if (event.key == 'ArrowRight')
884
+ offset.x = -moveOffset;
885
+ if (event.key == 'ArrowLeft')
886
+ offset.x = moveOffset;
887
+ this.instanceServiceContainer.selectionService.selectedElements.forEach(x => {
888
+ const containerStyle = getComputedStyle(x.parent.element);
889
+ x.serviceContainer.getLastServiceWhere('containerService', y => y.serviceForContainer(x.parent, containerStyle)).moveElements([x], offset, false);
890
+ });
891
+ }
892
+ break;
893
+ }
894
+ }
895
+ event.preventDefault();
896
+ }
897
+ /**
898
+ * Converts the Event x/y coordinates, to the mouse position on the canvas
899
+ */
900
+ getNormalizedEventCoordinates(event) {
901
+ const offsetOfOuterX = (event.clientX - this.outerRect.x) / this.zoomFactor;
902
+ const offsetOfCanvasX = this.containerBoundingRect.x - this.outerRect.x;
903
+ const offsetOfOuterY = (event.clientY - this.outerRect.y) / this.zoomFactor;
904
+ const offsetOfCanvasY = this.containerBoundingRect.y - this.outerRect.y;
905
+ return {
906
+ x: offsetOfOuterX - offsetOfCanvasX / this.zoomFactor,
907
+ y: offsetOfOuterY - offsetOfCanvasY / this.zoomFactor
908
+ };
909
+ }
910
+ /**
911
+ * Converts the Event x/y coordinates, to the mouse position in the viewport
912
+ */
913
+ getViewportCoordinates(event) {
914
+ return {
915
+ x: (event.clientX - this.outerRect.x),
916
+ y: (event.clientY - this.outerRect.y)
917
+ };
918
+ }
919
+ getNormalizedTextNodeCoordinates(element, ignoreScalefactor) {
920
+ let range = document.createRange();
921
+ range.selectNodeContents(element);
922
+ let targetRect = range.getBoundingClientRect();
923
+ return { x: (targetRect.x - this.containerBoundingRect.x) / (ignoreScalefactor ? 1 : this.scaleFactor), y: (targetRect.y - this.containerBoundingRect.y) / (ignoreScalefactor ? 1 : this.scaleFactor), width: targetRect.width / (ignoreScalefactor ? 1 : this.scaleFactor), height: targetRect.height / (ignoreScalefactor ? 1 : this.scaleFactor) };
924
+ }
925
+ getNormalizedElementCoordinates(element, ignoreScalefactor) {
926
+ if (element.nodeType == NodeType.TextNode) {
927
+ return this.getNormalizedTextNodeCoordinates(element, ignoreScalefactor);
928
+ }
929
+ const targetRect = element.getBoundingClientRect();
930
+ return { x: (targetRect.x - this.containerBoundingRect.x) / (ignoreScalefactor ? 1 : this.scaleFactor), y: (targetRect.y - this.containerBoundingRect.y) / (ignoreScalefactor ? 1 : this.scaleFactor), width: targetRect.width / (ignoreScalefactor ? 1 : this.scaleFactor), height: targetRect.height / (ignoreScalefactor ? 1 : this.scaleFactor) };
931
+ }
932
+ getNormalizedElementCoordinatesAndRealSizes(element) {
933
+ let ret = this.getNormalizedElementCoordinates(element);
934
+ const st = getComputedStyle(element);
935
+ let realWidth = ret.width;
936
+ let realHeight = ret.height;
937
+ if (st.boxSizing != 'border-box') {
938
+ realWidth = realWidth - (parseFloat(st.borderLeft) + parseFloat(st.paddingLeft) + parseFloat(st.paddingRight) + parseFloat(st.borderRight));
939
+ realHeight = realHeight - (parseFloat(st.borderTop) + parseFloat(st.paddingTop) + parseFloat(st.paddingBottom) + parseFloat(st.borderBottom));
940
+ }
941
+ return { ...ret, realWidth, realHeight };
942
+ }
943
+ getNormalizedOffsetInElement(event, element) {
944
+ const normEvt = this.getNormalizedEventCoordinates(event);
945
+ const normEl = this.getNormalizedElementCoordinates(element);
946
+ return { x: normEvt.x - normEl.x, y: normEvt.y - normEl.y };
947
+ }
948
+ //todo: remove
949
+ elementFromPoint(x, y) {
950
+ let elements = this.shadowRoot.elementsFromPoint(x, y);
951
+ let element = elements[0];
952
+ if (element === this.clickOverlay)
953
+ element = elements[1];
954
+ if (element === this.clickOverlay)
955
+ element = this._canvas;
956
+ return element;
957
+ }
958
+ elementsFromPoint(x, y) {
959
+ let retVal = [];
960
+ let elements = this.shadowRoot.elementsFromPoint(x, y);
961
+ for (let e of elements) {
962
+ if (e == this.clickOverlay)
963
+ continue;
964
+ if (e == this.overlayLayer)
965
+ continue;
966
+ if (e.getRootNode() !== this.shadowRoot)
967
+ continue;
968
+ if (e == this._outercanvas2)
969
+ break;
970
+ retVal.push(e);
971
+ if (e === this._canvas)
972
+ break;
973
+ }
974
+ return retVal;
975
+ }
976
+ getElementAtPoint(point, ignoreElementCallback) {
977
+ const elements = this.shadowRoot.elementsFromPoint(point.x, point.y);
978
+ let currentElement = null;
979
+ for (let i = 0; i < elements.length; i++) {
980
+ currentElement = elements[i];
981
+ if (currentElement == this._outercanvas2) {
982
+ currentElement = null;
983
+ break;
984
+ }
985
+ if (currentElement == this.clickOverlay) {
986
+ currentElement = null;
987
+ continue;
988
+ }
989
+ if (currentElement == this.overlayLayer) {
990
+ currentElement = null;
991
+ continue;
992
+ }
993
+ if (ignoreElementCallback && ignoreElementCallback(currentElement)) {
994
+ currentElement = null;
995
+ continue;
996
+ }
997
+ if (currentElement.getRootNode() !== this.shadowRoot) {
998
+ currentElement = null;
999
+ continue;
1000
+ }
1001
+ break;
1002
+ }
1003
+ return currentElement;
1004
+ }
1005
+ showHoverExtension(element, event) {
1006
+ const currentDesignItem = DesignItem.GetOrCreateDesignItem(element, element, this.serviceContainer, this.instanceServiceContainer);
1007
+ if (this._lastHoverDesignItem != currentDesignItem) {
1008
+ if (this._lastHoverDesignItem)
1009
+ this.extensionManager.removeExtension(this._lastHoverDesignItem, ExtensionType.MouseOver);
1010
+ if (currentDesignItem && currentDesignItem != this.rootDesignItem && DomHelper.getHost(element.parentNode) !== this.overlayLayer)
1011
+ this.extensionManager.applyExtension(currentDesignItem, ExtensionType.MouseOver, event);
1012
+ this._lastHoverDesignItem = currentDesignItem;
1013
+ }
1014
+ }
1015
+ _pointerEventHandler(event, forceElement = null) {
1016
+ if (!this.serviceContainer)
1017
+ return;
1018
+ this._fillCalculationrects();
1019
+ if (this._pointerextensions) {
1020
+ for (let pe of this._pointerextensions)
1021
+ pe.refresh(event);
1022
+ }
1023
+ if (event.composedPath().indexOf(this.eatEvents) >= 0)
1024
+ return;
1025
+ let currentElement;
1026
+ if (forceElement)
1027
+ currentElement = forceElement;
1028
+ else {
1029
+ currentElement = this.serviceContainer.elementAtPointService.getElementAtPoint(this, { x: event.x, y: event.y });
1030
+ if (!currentElement) {
1031
+ currentElement = this._canvas;
1032
+ }
1033
+ else if (this._enableSelectTextNodesOnClick) {
1034
+ const norm = this.getNormalizedEventCoordinates(event);
1035
+ for (let n of currentElement.childNodes) {
1036
+ if (n.nodeType == NodeType.TextNode) {
1037
+ let nc = this.getNormalizedElementCoordinates(n);
1038
+ if (nc.x <= norm.x && nc.x + nc.width >= norm.x && nc.y <= norm.y && nc.y + nc.height >= norm.y) {
1039
+ currentElement = n;
1040
+ break;
1041
+ }
1042
+ }
1043
+ }
1044
+ }
1045
+ }
1046
+ if (this._activeTool) {
1047
+ this._activeTool.pointerEventHandler(this, event, currentElement);
1048
+ return;
1049
+ }
1050
+ this.clickOverlay.style.cursor = this._canvas.style.cursor;
1051
+ const currentDesignItem = DesignItem.GetOrCreateDesignItem(currentElement, currentElement, this.serviceContainer, this.instanceServiceContainer);
1052
+ this.showHoverExtension(currentDesignItem.element, event);
1053
+ //TODO: needed ??
1054
+ if (currentElement && DomHelper.getHost(currentElement.parentNode) === this.overlayLayer) {
1055
+ if (this.eatEvents)
1056
+ return;
1057
+ currentElement = this.instanceServiceContainer.selectionService.primarySelection?.element ?? this._canvas;
1058
+ }
1059
+ let tool = this.serviceContainer.globalContext.tool ?? this.serviceContainer.designerTools.get(NamedTools.Pointer);
1060
+ tool.pointerEventHandler(this, event, currentElement);
1061
+ this._canvas.style.cursor = tool.cursor;
1062
+ }
1063
+ captureActiveTool(tool) {
1064
+ this._activeTool = tool;
1065
+ }
1066
+ releaseActiveTool() {
1067
+ this._activeTool = null;
1068
+ }
1069
+ _fillCalculationrects() {
1070
+ this.containerBoundingRect = this._canvasContainer.getBoundingClientRect();
1071
+ this.outerRect = this._outercanvas2.getBoundingClientRect();
1072
+ }
1073
+ removeOverlay(element) {
1074
+ this.overlayLayer.removeOverlay(element);
1075
+ }
1076
+ zoomOntoRectangle(startPoint, endPoint) {
1077
+ let rect = {
1078
+ x: startPoint.x < endPoint.x ? startPoint.x : endPoint.x,
1079
+ y: startPoint.y < endPoint.y ? startPoint.y : endPoint.y,
1080
+ width: Math.abs(startPoint.x - endPoint.x),
1081
+ height: Math.abs(startPoint.y - endPoint.y),
1082
+ };
1083
+ let zFactorWidth = this.outerRect.width / rect.width;
1084
+ let zFactorHeight = this.outerRect.height / rect.height;
1085
+ let zoomFactor = zFactorWidth >= zFactorHeight ? zFactorHeight : zFactorWidth;
1086
+ let rectCenter = {
1087
+ x: (rect.width / 2) + rect.x,
1088
+ y: (rect.height / 2) + rect.y
1089
+ };
1090
+ this.zoomPoint(rectCenter, zoomFactor);
1091
+ }
1092
+ zoomPoint(canvasPoint, newZoom) {
1093
+ this.zoomFactor = newZoom;
1094
+ const newCanvasOffset = {
1095
+ x: -(canvasPoint.x) + this.outerRect.width / this.zoomFactor / 2,
1096
+ y: -(canvasPoint.y) + this.outerRect.height / this.zoomFactor / 2
1097
+ };
1098
+ this.canvasOffset = newCanvasOffset;
1099
+ }
1100
+ zoomConvertEventToViewPortCoordinates(point) {
1101
+ const offsetOfCanvasX = this.containerBoundingRect.x - this.outerRect.x;
1102
+ const offsetOfCanvasY = this.containerBoundingRect.y - this.outerRect.y;
1103
+ return {
1104
+ x: (point.x + offsetOfCanvasX / this.zoomFactor) * this.zoomFactor,
1105
+ y: (point.y + offsetOfCanvasY / this.zoomFactor) * this.zoomFactor
1106
+ };
1107
+ }
1108
+ zoomTowardsPoint(canvasPoint, newZoom) {
1109
+ const scaleChange = newZoom / this.zoomFactor;
1110
+ const point = this.zoomConvertEventToViewPortCoordinates(canvasPoint);
1111
+ const newCanvasOffset = {
1112
+ x: -(point.x * (scaleChange - 1) + scaleChange * -this.canvasOffsetUnzoomed.x),
1113
+ y: -(point.y * (scaleChange - 1) + scaleChange * -this.canvasOffsetUnzoomed.y)
1114
+ };
1115
+ this.zoomFactor = newZoom;
1116
+ this.canvasOffsetUnzoomed = newCanvasOffset;
1117
+ }
1118
+ }
1119
+ customElements.define('node-projects-designer-canvas', DesignerCanvas);