@node-projects/web-component-designer 0.0.90 → 0.0.91

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 (537) hide show
  1. package/dist/Constants.d.ts +3 -3
  2. package/dist/Constants.js +3 -3
  3. package/dist/commandHandling/CommandType.d.ts +28 -28
  4. package/dist/commandHandling/CommandType.js +29 -29
  5. package/dist/commandHandling/IUiCommand.d.ts +6 -6
  6. package/dist/commandHandling/IUiCommand.js +1 -1
  7. package/dist/commandHandling/IUiCommandHandler.d.ts +5 -5
  8. package/dist/commandHandling/IUiCommandHandler.js +1 -1
  9. package/dist/elements/controls/DesignerTabControl.d.ts +26 -26
  10. package/dist/elements/controls/DesignerTabControl.js +137 -137
  11. package/dist/elements/controls/ImageButtonListSelector.d.ts +17 -17
  12. package/dist/elements/controls/ImageButtonListSelector.js +50 -50
  13. package/dist/elements/controls/NumericPopup.d.ts +6 -6
  14. package/dist/elements/controls/NumericPopup.js +8 -8
  15. package/dist/elements/controls/NumericStyleInput.d.ts +16 -16
  16. package/dist/elements/controls/NumericStyleInput.js +42 -42
  17. package/dist/elements/controls/PlainScrollbar.d.ts +15 -15
  18. package/dist/elements/controls/PlainScrollbar.js +374 -374
  19. package/dist/elements/controls/SimpleSplitView.d.ts +11 -11
  20. package/dist/elements/controls/SimpleSplitView.js +39 -39
  21. package/dist/elements/controls/ThicknessEditor.d.ts +33 -33
  22. package/dist/elements/controls/ThicknessEditor.js +90 -90
  23. package/dist/elements/documentContainer.d.ts +42 -42
  24. package/dist/elements/documentContainer.js +199 -199
  25. package/dist/elements/helper/ArrangeHelper.d.ts +7 -7
  26. package/dist/elements/helper/ArrangeHelper.js +79 -79
  27. package/dist/elements/helper/CssAttributeParser.d.ts +9 -9
  28. package/dist/elements/helper/CssAttributeParser.js +67 -67
  29. package/dist/elements/helper/CssCombiner.d.ts +11 -11
  30. package/dist/elements/helper/CssCombiner.js +289 -289
  31. package/dist/elements/helper/ElementHelper.d.ts +10 -10
  32. package/dist/elements/helper/ElementHelper.js +32 -32
  33. package/dist/elements/helper/GridHelper.d.ts +16 -16
  34. package/dist/elements/helper/GridHelper.js +111 -111
  35. package/dist/elements/helper/Helper.d.ts +6 -6
  36. package/dist/elements/helper/Helper.js +26 -26
  37. package/dist/elements/helper/IndentedTextWriter.d.ts +14 -14
  38. package/dist/elements/helper/IndentedTextWriter.js +34 -34
  39. package/dist/elements/helper/LayoutHelper.d.ts +4 -4
  40. package/dist/elements/helper/LayoutHelper.js +67 -67
  41. package/dist/elements/helper/PathDataPolyfill.d.ts +101 -101
  42. package/dist/elements/helper/PathDataPolyfill.js +978 -978
  43. package/dist/elements/helper/Screenshot.d.ts +11 -11
  44. package/dist/elements/helper/Screenshot.js +59 -59
  45. package/dist/elements/helper/TransformHelper.d.ts +4 -1
  46. package/dist/elements/helper/TransformHelper.js +21 -14
  47. package/dist/elements/helper/XmlHelper.d.ts +2 -2
  48. package/dist/elements/helper/XmlHelper.js +16 -16
  49. package/dist/elements/helper/contextMenu/ContextMenuHelper.d.ts +27 -27
  50. package/dist/elements/helper/contextMenu/ContextMenuHelper.js +162 -162
  51. package/dist/elements/helper/contextMenu/IContextmenuItem.d.ts +6 -6
  52. package/dist/elements/helper/contextMenu/IContextmenuItem.js +1 -1
  53. package/dist/elements/helper/w3color.d.ts +120 -120
  54. package/dist/elements/helper/w3color.js +801 -801
  55. package/dist/elements/item/BindingMode.d.ts +4 -4
  56. package/dist/elements/item/BindingMode.js +5 -5
  57. package/dist/elements/item/BindingTarget.d.ts +8 -8
  58. package/dist/elements/item/BindingTarget.js +9 -9
  59. package/dist/elements/item/DesignItem.d.ts +66 -66
  60. package/dist/elements/item/DesignItem.js +297 -297
  61. package/dist/elements/item/IBinding.d.ts +15 -15
  62. package/dist/elements/item/IBinding.js +1 -1
  63. package/dist/elements/item/IDesignItem.d.ts +50 -50
  64. package/dist/elements/item/IDesignItem.js +1 -1
  65. package/dist/elements/item/NodeType.d.ts +5 -5
  66. package/dist/elements/item/NodeType.js +6 -6
  67. package/dist/elements/loader/IOldCustomElementsManifest.d.ts +24 -24
  68. package/dist/elements/loader/IOldCustomElementsManifest.js +1 -1
  69. package/dist/elements/loader/OldCustomElementsManifestLoader.d.ts +8 -8
  70. package/dist/elements/loader/OldCustomElementsManifestLoader.js +45 -45
  71. package/dist/elements/services/BaseServiceContainer.d.ts +10 -10
  72. package/dist/elements/services/BaseServiceContainer.js +50 -50
  73. package/dist/elements/services/DefaultServiceBootstrap.d.ts +3 -3
  74. package/dist/elements/services/DefaultServiceBootstrap.js +135 -135
  75. package/dist/elements/services/GlobalContext.d.ts +24 -24
  76. package/dist/elements/services/GlobalContext.js +63 -63
  77. package/dist/elements/services/IService.d.ts +2 -2
  78. package/dist/elements/services/IService.js +1 -1
  79. package/dist/elements/services/IServiceContainer.d.ts +5 -5
  80. package/dist/elements/services/IServiceContainer.js +1 -1
  81. package/dist/elements/services/InstanceServiceContainer.d.ts +20 -20
  82. package/dist/elements/services/InstanceServiceContainer.js +19 -19
  83. package/dist/elements/services/ServiceContainer.d.ts +78 -78
  84. package/dist/elements/services/ServiceContainer.js +75 -75
  85. package/dist/elements/services/bindableObjectsService/BindableObjectType.d.ts +9 -9
  86. package/dist/elements/services/bindableObjectsService/BindableObjectType.js +10 -10
  87. package/dist/elements/services/bindableObjectsService/IBindableObject.d.ts +8 -8
  88. package/dist/elements/services/bindableObjectsService/IBindableObject.js +1 -1
  89. package/dist/elements/services/bindableObjectsService/IBindableObjectDragDropService.d.ts +8 -8
  90. package/dist/elements/services/bindableObjectsService/IBindableObjectDragDropService.js +1 -1
  91. package/dist/elements/services/bindableObjectsService/IBindableObjectsService.d.ts +6 -6
  92. package/dist/elements/services/bindableObjectsService/IBindableObjectsService.js +1 -1
  93. package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.d.ts +10 -10
  94. package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js +72 -72
  95. package/dist/elements/services/bindingsService/IBindingService.d.ts +13 -13
  96. package/dist/elements/services/bindingsService/IBindingService.js +1 -1
  97. package/dist/elements/services/bindingsService/SpecialTagsBindingService.d.ts +16 -16
  98. package/dist/elements/services/bindingsService/SpecialTagsBindingService.js +43 -43
  99. package/dist/elements/services/bindingsService/VueBindingsService.js +7 -7
  100. package/dist/elements/services/contentService/ContentService.d.ts +9 -9
  101. package/dist/elements/services/contentService/ContentService.js +8 -8
  102. package/dist/elements/services/contentService/IContentChanged.d.ts +5 -5
  103. package/dist/elements/services/contentService/IContentChanged.js +1 -1
  104. package/dist/elements/services/contentService/IContentService.d.ts +7 -7
  105. package/dist/elements/services/contentService/IContentService.js +1 -1
  106. package/dist/elements/services/copyPasteService/CopyPasteService.d.ts +8 -8
  107. package/dist/elements/services/copyPasteService/CopyPasteService.js +12 -12
  108. package/dist/elements/services/copyPasteService/ICopyPasteService.d.ts +7 -7
  109. package/dist/elements/services/copyPasteService/ICopyPasteService.js +1 -1
  110. package/dist/elements/services/demoProviderService/DemoProviderService.d.ts +6 -6
  111. package/dist/elements/services/demoProviderService/DemoProviderService.js +29 -29
  112. package/dist/elements/services/demoProviderService/IDemoProviderService.d.ts +5 -5
  113. package/dist/elements/services/demoProviderService/IDemoProviderService.js +1 -1
  114. package/dist/elements/services/dragDropService/DragDropService.d.ts +6 -6
  115. package/dist/elements/services/dragDropService/DragDropService.js +28 -28
  116. package/dist/elements/services/dragDropService/IDragDropService.d.ts +5 -5
  117. package/dist/elements/services/dragDropService/IDragDropService.js +1 -1
  118. package/dist/elements/services/elementAtPointService/ElementAtPointService.d.ts +6 -6
  119. package/dist/elements/services/elementAtPointService/ElementAtPointService.js +5 -5
  120. package/dist/elements/services/elementAtPointService/IElementAtPointService.d.ts +6 -6
  121. package/dist/elements/services/elementAtPointService/IElementAtPointService.js +1 -1
  122. package/dist/elements/services/elementsService/IElementDefinition.d.ts +33 -33
  123. package/dist/elements/services/elementsService/IElementDefinition.js +1 -1
  124. package/dist/elements/services/elementsService/IElementsJson.d.ts +5 -5
  125. package/dist/elements/services/elementsService/IElementsJson.js +1 -1
  126. package/dist/elements/services/elementsService/IElementsService.d.ts +6 -6
  127. package/dist/elements/services/elementsService/IElementsService.js +1 -1
  128. package/dist/elements/services/elementsService/JsonFileElementsService.d.ts +12 -12
  129. package/dist/elements/services/elementsService/JsonFileElementsService.js +45 -45
  130. package/dist/elements/services/elementsService/PreDefinedElementsService.d.ts +11 -11
  131. package/dist/elements/services/elementsService/PreDefinedElementsService.js +21 -21
  132. package/dist/elements/services/htmlParserService/DefaultHtmlParserService.d.ts +9 -9
  133. package/dist/elements/services/htmlParserService/DefaultHtmlParserService.js +18 -18
  134. package/dist/elements/services/htmlParserService/IHtmlParserService.d.ts +7 -7
  135. package/dist/elements/services/htmlParserService/IHtmlParserService.js +1 -1
  136. package/dist/elements/services/htmlParserService/NodeHtmlParserService.d.ts +11 -11
  137. package/dist/elements/services/htmlParserService/NodeHtmlParserService.js +96 -96
  138. package/dist/elements/services/htmlWriterService/AbstractHtmlWriterService.d.ts +10 -10
  139. package/dist/elements/services/htmlWriterService/AbstractHtmlWriterService.js +62 -62
  140. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService.d.ts +22 -22
  141. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService.js +133 -133
  142. package/dist/elements/services/htmlWriterService/HtmlWriterService copy.d.ts +12 -0
  143. package/dist/elements/services/htmlWriterService/HtmlWriterService copy.js +118 -0
  144. package/dist/elements/services/htmlWriterService/HtmlWriterService.d.ts +12 -12
  145. package/dist/elements/services/htmlWriterService/HtmlWriterService.js +92 -91
  146. package/dist/elements/services/htmlWriterService/IHtmlWriterOptions.d.ts +7 -7
  147. package/dist/elements/services/htmlWriterService/IHtmlWriterOptions.js +7 -7
  148. package/dist/elements/services/htmlWriterService/IHtmlWriterService.d.ts +7 -7
  149. package/dist/elements/services/htmlWriterService/IHtmlWriterService.js +1 -1
  150. package/dist/elements/services/htmlWriterService/IStringPosition.d.ts +4 -4
  151. package/dist/elements/services/htmlWriterService/IStringPosition.js +1 -1
  152. package/dist/elements/services/htmlWriterService/LitTsElementWriterService.d.ts +9 -9
  153. package/dist/elements/services/htmlWriterService/LitTsElementWriterService.js +7 -7
  154. package/dist/elements/services/htmlWriterService/SimpleHtmlWriterService.d.ts +27 -27
  155. package/dist/elements/services/htmlWriterService/SimpleHtmlWriterService.js +93 -93
  156. package/dist/elements/services/initializationService/DefaultIntializationService.d.ts +6 -6
  157. package/dist/elements/services/initializationService/DefaultIntializationService.js +22 -22
  158. package/dist/elements/services/initializationService/IIntializationService.d.ts +4 -4
  159. package/dist/elements/services/initializationService/IIntializationService.js +1 -1
  160. package/dist/elements/services/instanceService/DefaultInstanceService.d.ts +8 -8
  161. package/dist/elements/services/instanceService/DefaultInstanceService.js +67 -67
  162. package/dist/elements/services/instanceService/IDesignerInstance.d.ts +3 -3
  163. package/dist/elements/services/instanceService/IDesignerInstance.js +1 -1
  164. package/dist/elements/services/instanceService/IInstanceService.d.ts +8 -8
  165. package/dist/elements/services/instanceService/IInstanceService.js +1 -1
  166. package/dist/elements/services/instanceService/IPrepareElementsForDesignerService.d.ts +4 -4
  167. package/dist/elements/services/instanceService/IPrepareElementsForDesignerService.js +1 -1
  168. package/dist/elements/services/instanceService/PrepareElementsForDesignerService.d.ts +6 -6
  169. package/dist/elements/services/instanceService/PrepareElementsForDesignerService.js +32 -32
  170. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.d.ts +25 -25
  171. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.js +94 -94
  172. package/dist/elements/services/modelCommandService/DefaultModelCommandService.d.ts +7 -7
  173. package/dist/elements/services/modelCommandService/DefaultModelCommandService.js +76 -76
  174. package/dist/elements/services/modelCommandService/IModelCommandService.d.ts +7 -7
  175. package/dist/elements/services/modelCommandService/IModelCommandService.js +1 -1
  176. package/dist/elements/services/placementService/DefaultPlacementService.d.ts +16 -16
  177. package/dist/elements/services/placementService/DefaultPlacementService.js +109 -109
  178. package/dist/elements/services/placementService/FlexBoxPlacementService.d.ts +15 -15
  179. package/dist/elements/services/placementService/FlexBoxPlacementService.js +42 -42
  180. package/dist/elements/services/placementService/GridPlacementService.d.ts +15 -15
  181. package/dist/elements/services/placementService/GridPlacementService.js +99 -99
  182. package/dist/elements/services/placementService/IPlacementService.d.ts +15 -15
  183. package/dist/elements/services/placementService/IPlacementService.js +1 -1
  184. package/dist/elements/services/placementService/ISnaplinesProviderService.d.ts +12 -12
  185. package/dist/elements/services/placementService/ISnaplinesProviderService.js +1 -1
  186. package/dist/elements/services/placementService/SnaplinesProviderService.d.ts +14 -14
  187. package/dist/elements/services/placementService/SnaplinesProviderService.js +48 -48
  188. package/dist/elements/services/popupService/IPopupService.d.ts +16 -16
  189. package/dist/elements/services/popupService/IPopupService.js +1 -1
  190. package/dist/elements/services/popupService/PopupService.d.ts +9 -9
  191. package/dist/elements/services/popupService/PopupService.js +20 -20
  192. package/dist/elements/services/propertiesService/DefaultEditorTypesService.d.ts +6 -6
  193. package/dist/elements/services/propertiesService/DefaultEditorTypesService.js +59 -59
  194. package/dist/elements/services/propertiesService/IEditorTypesService.d.ts +5 -5
  195. package/dist/elements/services/propertiesService/IEditorTypesService.js +1 -1
  196. package/dist/elements/services/propertiesService/IPropertiesService.d.ts +16 -16
  197. package/dist/elements/services/propertiesService/IPropertiesService.js +1 -1
  198. package/dist/elements/services/propertiesService/IProperty.d.ts +21 -21
  199. package/dist/elements/services/propertiesService/IProperty.js +1 -1
  200. package/dist/elements/services/propertiesService/IPropertyEditor.d.ts +19 -19
  201. package/dist/elements/services/propertiesService/IPropertyEditor.js +1 -1
  202. package/dist/elements/services/propertiesService/PropertyType.d.ts +6 -6
  203. package/dist/elements/services/propertiesService/PropertyType.js +7 -7
  204. package/dist/elements/services/propertiesService/ValueType.d.ts +6 -6
  205. package/dist/elements/services/propertiesService/ValueType.js +7 -7
  206. package/dist/elements/services/propertiesService/app.d.ts +2 -2
  207. package/dist/elements/services/propertiesService/app.js +71 -71
  208. package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.d.ts +15 -15
  209. package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.js +41 -41
  210. package/dist/elements/services/propertiesService/propertyEditors/BooleanPropertyEditor.d.ts +7 -7
  211. package/dist/elements/services/propertiesService/propertyEditors/BooleanPropertyEditor.js +13 -13
  212. package/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor.d.ts +7 -7
  213. package/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor.js +22 -22
  214. package/dist/elements/services/propertiesService/propertyEditors/DatePropertyEditor.d.ts +7 -7
  215. package/dist/elements/services/propertiesService/propertyEditors/DatePropertyEditor.js +16 -16
  216. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.d.ts +8 -8
  217. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.js +40 -40
  218. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyEditor.d.ts +9 -9
  219. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyEditor.js +16 -16
  220. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyPopupEditor.d.ts +5 -5
  221. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyPopupEditor.js +8 -8
  222. package/dist/elements/services/propertiesService/propertyEditors/NumberPropertyEditor.d.ts +7 -7
  223. package/dist/elements/services/propertiesService/propertyEditors/NumberPropertyEditor.js +16 -16
  224. package/dist/elements/services/propertiesService/propertyEditors/SelectPropertyEditor.d.ts +7 -7
  225. package/dist/elements/services/propertiesService/propertyEditors/SelectPropertyEditor.js +28 -28
  226. package/dist/elements/services/propertiesService/propertyEditors/TextPropertyEditor.d.ts +7 -7
  227. package/dist/elements/services/propertiesService/propertyEditors/TextPropertyEditor.js +20 -20
  228. package/dist/elements/services/propertiesService/propertyEditors/ThicknessPropertyEditor.d.ts +8 -8
  229. package/dist/elements/services/propertiesService/propertyEditors/ThicknessPropertyEditor.js +14 -14
  230. package/dist/elements/services/propertiesService/services/AbstractBasePropertiesService.d.ts +7 -7
  231. package/dist/elements/services/propertiesService/services/AbstractBasePropertiesService.js +44 -44
  232. package/dist/elements/services/propertiesService/services/AttributesPropertiesService.d.ts +17 -17
  233. package/dist/elements/services/propertiesService/services/AttributesPropertiesService.js +68 -68
  234. package/dist/elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.d.ts +8 -8
  235. package/dist/elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.js +12 -12
  236. package/dist/elements/services/propertiesService/services/CommonPropertiesService.d.ts +18 -18
  237. package/dist/elements/services/propertiesService/services/CommonPropertiesService.js +112 -112
  238. package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +22 -22
  239. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +325 -325
  240. package/dist/elements/services/propertiesService/services/IJsonPropertyDefinition.d.ts +17 -17
  241. package/dist/elements/services/propertiesService/services/IJsonPropertyDefinition.js +1 -1
  242. package/dist/elements/services/propertiesService/services/IJsonPropertyDefinitions.d.ts +4 -4
  243. package/dist/elements/services/propertiesService/services/IJsonPropertyDefinitions.js +1 -1
  244. package/dist/elements/services/propertiesService/services/ListPropertiesService.d.ts +12 -12
  245. package/dist/elements/services/propertiesService/services/ListPropertiesService.js +41 -41
  246. package/dist/elements/services/propertiesService/services/Lit2PropertiesService.d.ts +9 -9
  247. package/dist/elements/services/propertiesService/services/Lit2PropertiesService.js +51 -51
  248. package/dist/elements/services/propertiesService/services/LitElementPropertiesService.d.ts +8 -8
  249. package/dist/elements/services/propertiesService/services/LitElementPropertiesService.js +17 -17
  250. package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService.d.ts +15 -15
  251. package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService.js +124 -124
  252. package/dist/elements/services/propertiesService/services/PolymerPropertiesService.d.ts +8 -8
  253. package/dist/elements/services/propertiesService/services/PolymerPropertiesService.js +10 -10
  254. package/dist/elements/services/propertiesService/services/PropertiesHelper.d.ts +6 -6
  255. package/dist/elements/services/propertiesService/services/PropertiesHelper.js +27 -27
  256. package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.d.ts +17 -17
  257. package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.js +99 -99
  258. package/dist/elements/services/selectionService/ISelectionChangedEvent.d.ts +5 -5
  259. package/dist/elements/services/selectionService/ISelectionChangedEvent.js +1 -1
  260. package/dist/elements/services/selectionService/ISelectionService.d.ts +11 -11
  261. package/dist/elements/services/selectionService/ISelectionService.js +1 -1
  262. package/dist/elements/services/selectionService/SelectionService.d.ts +12 -12
  263. package/dist/elements/services/selectionService/SelectionService.js +35 -35
  264. package/dist/elements/services/treeStructureService/ITreeStructureChangedEvent.d.ts +8 -8
  265. package/dist/elements/services/treeStructureService/ITreeStructureChangedEvent.js +1 -1
  266. package/dist/elements/services/treeStructureService/ITreeStructureService.d.ts +2 -2
  267. package/dist/elements/services/treeStructureService/ITreeStructureService.js +2 -2
  268. package/dist/elements/services/undoService/ChangeGroup.d.ts +17 -17
  269. package/dist/elements/services/undoService/ChangeGroup.js +56 -56
  270. package/dist/elements/services/undoService/ITransactionItem.d.ts +8 -8
  271. package/dist/elements/services/undoService/ITransactionItem.js +2 -2
  272. package/dist/elements/services/undoService/IUndoService.d.ts +13 -13
  273. package/dist/elements/services/undoService/IUndoService.js +1 -1
  274. package/dist/elements/services/undoService/UndoService.d.ts +21 -21
  275. package/dist/elements/services/undoService/UndoService.js +93 -93
  276. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction.d.ts +15 -15
  277. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction.js +70 -70
  278. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.d.ts +14 -14
  279. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.js +44 -44
  280. package/dist/elements/services/undoService/transactionItems/DeleteAction.d.ts +13 -13
  281. package/dist/elements/services/undoService/transactionItems/DeleteAction.js +35 -35
  282. package/dist/elements/services/undoService/transactionItems/InsertAction.d.ts +13 -13
  283. package/dist/elements/services/undoService/transactionItems/InsertAction.js +26 -26
  284. package/dist/elements/services/undoService/transactionItems/InsertChildAction.d.ts +16 -16
  285. package/dist/elements/services/undoService/transactionItems/InsertChildAction.js +31 -31
  286. package/dist/elements/services/undoService/transactionItems/PropertyChangeAction.d.ts +15 -15
  287. package/dist/elements/services/undoService/transactionItems/PropertyChangeAction.js +36 -36
  288. package/dist/elements/widgets/bindableObjectsBrowser/IBindableObjectsBrowser.d.ts +3 -3
  289. package/dist/elements/widgets/bindableObjectsBrowser/IBindableObjectsBrowser.js +1 -1
  290. package/dist/elements/widgets/bindableObjectsBrowser/bindable-objects-browser.d.ts +11 -11
  291. package/dist/elements/widgets/bindableObjectsBrowser/bindable-objects-browser.js +79 -79
  292. package/dist/elements/widgets/bindings/BindingsEditor.d.ts +17 -17
  293. package/dist/elements/widgets/bindings/BindingsEditor.js +22 -22
  294. package/dist/elements/widgets/codeView/ICodeView.d.ts +11 -11
  295. package/dist/elements/widgets/codeView/ICodeView.js +1 -1
  296. package/dist/elements/widgets/codeView/code-view-ace.d.ts +24 -24
  297. package/dist/elements/widgets/codeView/code-view-ace.js +127 -127
  298. package/dist/elements/widgets/codeView/code-view-code-mirror.d.ts +24 -24
  299. package/dist/elements/widgets/codeView/code-view-code-mirror.js +91 -91
  300. package/dist/elements/widgets/codeView/code-view-monaco.d.ts +25 -25
  301. package/dist/elements/widgets/codeView/code-view-monaco.js +105 -105
  302. package/dist/elements/widgets/demoView/IDemoView.d.ts +5 -5
  303. package/dist/elements/widgets/demoView/IDemoView.js +1 -1
  304. package/dist/elements/widgets/demoView/demoView.d.ts +11 -11
  305. package/dist/elements/widgets/demoView/demoView.js +22 -22
  306. package/dist/elements/widgets/designerView/ButtonSeperatorProvider.d.ts +8 -8
  307. package/dist/elements/widgets/designerView/ButtonSeperatorProvider.js +11 -11
  308. package/dist/elements/widgets/designerView/DesignContext.d.ts +7 -7
  309. package/dist/elements/widgets/designerView/DesignContext.js +4 -4
  310. package/dist/elements/widgets/designerView/DomConverter.d.ts +8 -8
  311. package/dist/elements/widgets/designerView/DomConverter.js +41 -41
  312. package/dist/elements/widgets/designerView/IDesignContext.d.ts +6 -6
  313. package/dist/elements/widgets/designerView/IDesignContext.js +1 -1
  314. package/dist/elements/widgets/designerView/IDesignViewConfigButtonsProvider.d.ts +5 -5
  315. package/dist/elements/widgets/designerView/IDesignViewConfigButtonsProvider.js +1 -1
  316. package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +44 -44
  317. package/dist/elements/widgets/designerView/IDesignerCanvas.js +1 -1
  318. package/dist/elements/widgets/designerView/IPlacementView.d.ts +14 -14
  319. package/dist/elements/widgets/designerView/IPlacementView.js +1 -1
  320. package/dist/elements/widgets/designerView/Snaplines.d.ts +21 -21
  321. package/dist/elements/widgets/designerView/Snaplines.js +220 -220
  322. package/dist/elements/widgets/designerView/defaultConfiguredDesignerView.d.ts +5 -5
  323. package/dist/elements/widgets/designerView/defaultConfiguredDesignerView.js +11 -11
  324. package/dist/elements/widgets/designerView/designerCanvas.d.ts +103 -103
  325. package/dist/elements/widgets/designerView/designerCanvas.js +731 -731
  326. package/dist/elements/widgets/designerView/designerView.d.ts +37 -37
  327. package/dist/elements/widgets/designerView/designerView.js +213 -213
  328. package/dist/elements/widgets/designerView/extensions/AbstractExtension.d.ts +12 -12
  329. package/dist/elements/widgets/designerView/extensions/AbstractExtension.js +8 -8
  330. package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.d.ts +16 -16
  331. package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.js +50 -50
  332. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtension.d.ts +12 -12
  333. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtension.js +20 -20
  334. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtensionProvider.d.ts +10 -10
  335. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtensionProvider.js +11 -11
  336. package/dist/elements/widgets/designerView/extensions/CanvasExtension.d.ts +10 -10
  337. package/dist/elements/widgets/designerView/extensions/CanvasExtension.js +29 -29
  338. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.d.ts +10 -10
  339. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.js +13 -13
  340. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.d.ts +17 -17
  341. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +73 -73
  342. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtensionProvider.d.ts +9 -9
  343. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtensionProvider.js +11 -11
  344. package/dist/elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtension.d.ts +20 -20
  345. package/dist/elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtension.js +81 -81
  346. package/dist/elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtensionProvider.d.ts +10 -10
  347. package/dist/elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtensionProvider.js +13 -13
  348. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtension.d.ts +14 -14
  349. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtension.js +38 -38
  350. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtensionProvider.d.ts +10 -10
  351. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtensionProvider.js +11 -11
  352. package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +17 -17
  353. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +245 -245
  354. package/dist/elements/widgets/designerView/extensions/ExtensionType.d.ts +18 -18
  355. package/dist/elements/widgets/designerView/extensions/ExtensionType.js +19 -19
  356. package/dist/elements/widgets/designerView/extensions/GrayOutExtension.d.ts +13 -13
  357. package/dist/elements/widgets/designerView/extensions/GrayOutExtension.js +32 -32
  358. package/dist/elements/widgets/designerView/extensions/GrayOutExtensionProvider.d.ts +10 -10
  359. package/dist/elements/widgets/designerView/extensions/GrayOutExtensionProvider.js +11 -11
  360. package/dist/elements/widgets/designerView/extensions/GridExtension.d.ts +10 -10
  361. package/dist/elements/widgets/designerView/extensions/GridExtension.js +30 -30
  362. package/dist/elements/widgets/designerView/extensions/GridExtensionDesignViewConfigButtons.d.ts +6 -6
  363. package/dist/elements/widgets/designerView/extensions/GridExtensionDesignViewConfigButtons.js +21 -21
  364. package/dist/elements/widgets/designerView/extensions/GridExtensionProvider.d.ts +11 -11
  365. package/dist/elements/widgets/designerView/extensions/GridExtensionProvider.js +14 -14
  366. package/dist/elements/widgets/designerView/extensions/IDesignerExtension.d.ts +5 -5
  367. package/dist/elements/widgets/designerView/extensions/IDesignerExtension.js +1 -1
  368. package/dist/elements/widgets/designerView/extensions/IDesignerExtensionProvider.d.ts +9 -9
  369. package/dist/elements/widgets/designerView/extensions/IDesignerExtensionProvider.js +1 -1
  370. package/dist/elements/widgets/designerView/extensions/IExtensionManger.d.ts +11 -11
  371. package/dist/elements/widgets/designerView/extensions/IExtensionManger.js +1 -1
  372. package/dist/elements/widgets/designerView/extensions/IframeExtension.d.ts +11 -11
  373. package/dist/elements/widgets/designerView/extensions/IframeExtension.js +46 -46
  374. package/dist/elements/widgets/designerView/extensions/IframeExtensionProvider.d.ts +9 -9
  375. package/dist/elements/widgets/designerView/extensions/IframeExtensionProvider.js +9 -9
  376. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtension.d.ts +11 -11
  377. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtension.js +23 -23
  378. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtensionProvider.d.ts +10 -10
  379. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtensionProvider.js +15 -15
  380. package/dist/elements/widgets/designerView/extensions/MouseOverExtension.d.ts +11 -11
  381. package/dist/elements/widgets/designerView/extensions/MouseOverExtension.js +20 -20
  382. package/dist/elements/widgets/designerView/extensions/MouseOverExtensionProvider.d.ts +10 -10
  383. package/dist/elements/widgets/designerView/extensions/MouseOverExtensionProvider.js +11 -11
  384. package/dist/elements/widgets/designerView/extensions/OverlayLayer.d.ts +5 -5
  385. package/dist/elements/widgets/designerView/extensions/OverlayLayer.js +6 -6
  386. package/dist/elements/widgets/designerView/extensions/PathExtension.d.ts +23 -23
  387. package/dist/elements/widgets/designerView/extensions/PathExtension.js +246 -246
  388. package/dist/elements/widgets/designerView/extensions/PathExtensionProvider.d.ts +9 -9
  389. package/dist/elements/widgets/designerView/extensions/PathExtensionProvider.js +17 -17
  390. package/dist/elements/widgets/designerView/extensions/PositionExtension.d.ts +14 -14
  391. package/dist/elements/widgets/designerView/extensions/PositionExtension.js +45 -45
  392. package/dist/elements/widgets/designerView/extensions/PositionExtensionProvider.d.ts +9 -9
  393. package/dist/elements/widgets/designerView/extensions/PositionExtensionProvider.js +12 -12
  394. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtension copy.d.ts +13 -0
  395. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtension copy.js +21 -0
  396. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtension.d.ts +13 -13
  397. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtension.js +21 -21
  398. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtensionProvider copy.d.ts +10 -0
  399. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtensionProvider copy.js +13 -0
  400. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtensionProvider.d.ts +10 -10
  401. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtensionProvider.js +11 -11
  402. package/dist/elements/widgets/designerView/extensions/ResizeExtension.d.ts +25 -25
  403. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +162 -159
  404. package/dist/elements/widgets/designerView/extensions/ResizeExtensionProvider.d.ts +12 -12
  405. package/dist/elements/widgets/designerView/extensions/ResizeExtensionProvider.js +16 -16
  406. package/dist/elements/widgets/designerView/extensions/RotateExtension.d.ts +12 -12
  407. package/dist/elements/widgets/designerView/extensions/RotateExtension.js +71 -71
  408. package/dist/elements/widgets/designerView/extensions/RotateExtensionProvider.d.ts +10 -10
  409. package/dist/elements/widgets/designerView/extensions/RotateExtensionProvider.js +11 -11
  410. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.d.ts +11 -11
  411. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.js +22 -22
  412. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.d.ts +10 -10
  413. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js +11 -11
  414. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.d.ts +14 -14
  415. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +70 -70
  416. package/dist/elements/widgets/designerView/extensions/TransformOriginExtensionProvider.d.ts +10 -10
  417. package/dist/elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js +13 -13
  418. package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.d.ts +8 -8
  419. package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js +15 -15
  420. package/dist/elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.d.ts +8 -8
  421. package/dist/elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.js +1 -1
  422. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.d.ts +9 -9
  423. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js +18 -18
  424. package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.d.ts +9 -9
  425. package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js +22 -22
  426. package/dist/elements/widgets/designerView/extensions/contextMenu/PathContextMenu.d.ts +8 -8
  427. package/dist/elements/widgets/designerView/extensions/contextMenu/PathContextMenu.js +31 -31
  428. package/dist/elements/widgets/designerView/extensions/contextMenu/RectContextMenu.d.ts +8 -8
  429. package/dist/elements/widgets/designerView/extensions/contextMenu/RectContextMenu.js +34 -34
  430. package/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.d.ts +8 -8
  431. package/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js +14 -14
  432. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.d.ts +11 -11
  433. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.js +11 -11
  434. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension.d.ts +13 -13
  435. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension.js +24 -24
  436. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider.d.ts +7 -7
  437. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider.js +8 -8
  438. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtension.d.ts +5 -5
  439. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtension.js +1 -1
  440. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.d.ts +6 -6
  441. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.js +1 -1
  442. package/dist/elements/widgets/designerView/overlay/EditTextOverlay.d.ts +5 -5
  443. package/dist/elements/widgets/designerView/overlay/EditTextOverlay.js +5 -5
  444. package/dist/elements/widgets/designerView/overlayLayerView.d.ts +25 -25
  445. package/dist/elements/widgets/designerView/overlayLayerView.js +129 -129
  446. package/dist/elements/widgets/designerView/tools/DrawElementTool.d.ts +19 -19
  447. package/dist/elements/widgets/designerView/tools/DrawElementTool.js +79 -79
  448. package/dist/elements/widgets/designerView/tools/DrawEllipsisTool.d.ts +16 -16
  449. package/dist/elements/widgets/designerView/tools/DrawEllipsisTool.js +93 -93
  450. package/dist/elements/widgets/designerView/tools/DrawLineTool.d.ts +14 -14
  451. package/dist/elements/widgets/designerView/tools/DrawLineTool.js +78 -78
  452. package/dist/elements/widgets/designerView/tools/DrawPathTool.d.ts +20 -20
  453. package/dist/elements/widgets/designerView/tools/DrawPathTool.js +125 -125
  454. package/dist/elements/widgets/designerView/tools/DrawRectTool.d.ts +19 -19
  455. package/dist/elements/widgets/designerView/tools/DrawRectTool.js +108 -108
  456. package/dist/elements/widgets/designerView/tools/ITool.d.ts +9 -9
  457. package/dist/elements/widgets/designerView/tools/ITool.js +1 -1
  458. package/dist/elements/widgets/designerView/tools/MagicWandSelectorTool.d.ts +12 -12
  459. package/dist/elements/widgets/designerView/tools/MagicWandSelectorTool.js +63 -63
  460. package/dist/elements/widgets/designerView/tools/NamedTools.d.ts +14 -14
  461. package/dist/elements/widgets/designerView/tools/NamedTools.js +15 -15
  462. package/dist/elements/widgets/designerView/tools/PanTool.d.ts +10 -10
  463. package/dist/elements/widgets/designerView/tools/PanTool.js +25 -25
  464. package/dist/elements/widgets/designerView/tools/PickColorTool.d.ts +10 -10
  465. package/dist/elements/widgets/designerView/tools/PickColorTool.js +20 -20
  466. package/dist/elements/widgets/designerView/tools/PointerTool.d.ts +25 -25
  467. package/dist/elements/widgets/designerView/tools/PointerTool.js +347 -347
  468. package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.d.ts +12 -12
  469. package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.js +83 -83
  470. package/dist/elements/widgets/designerView/tools/TextTool.d.ts +12 -12
  471. package/dist/elements/widgets/designerView/tools/TextTool.js +34 -34
  472. package/dist/elements/widgets/designerView/tools/ZoomTool.d.ts +17 -17
  473. package/dist/elements/widgets/designerView/tools/ZoomTool.js +79 -79
  474. package/dist/elements/widgets/miniatureView/IMiniatureView.d.ts +2 -2
  475. package/dist/elements/widgets/miniatureView/IMiniatureView.js +1 -1
  476. package/dist/elements/widgets/miniatureView/html-2-canvas-miniature-view.d.ts +10 -10
  477. package/dist/elements/widgets/miniatureView/html-2-canvas-miniature-view.js +18 -18
  478. package/dist/elements/widgets/paletteView/paletteElements.d.ts +10 -10
  479. package/dist/elements/widgets/paletteView/paletteElements.js +72 -72
  480. package/dist/elements/widgets/paletteView/paletteTreeView.d.ts +13 -13
  481. package/dist/elements/widgets/paletteView/paletteTreeView.js +84 -81
  482. package/dist/elements/widgets/paletteView/paletteView.d.ts +11 -11
  483. package/dist/elements/widgets/paletteView/paletteView.js +30 -30
  484. package/dist/elements/widgets/propertyGrid/PropertyGrid.d.ts +21 -21
  485. package/dist/elements/widgets/propertyGrid/PropertyGrid.js +126 -126
  486. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.d.ts +17 -17
  487. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +91 -91
  488. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.d.ts +15 -15
  489. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js +47 -47
  490. package/dist/elements/widgets/treeView/ITreeView.d.ts +6 -6
  491. package/dist/elements/widgets/treeView/ITreeView.js +1 -1
  492. package/dist/elements/widgets/treeView/treeView.d.ts +28 -28
  493. package/dist/elements/widgets/treeView/treeView.js +147 -149
  494. package/dist/elements/widgets/treeView/treeViewExtended.d.ts +31 -31
  495. package/dist/elements/widgets/treeView/treeViewExtended.js +296 -298
  496. package/dist/enums/EventNames.d.ts +15 -15
  497. package/dist/enums/EventNames.js +16 -16
  498. package/dist/enums/Orientation.d.ts +8 -8
  499. package/dist/enums/Orientation.js +9 -9
  500. package/dist/enums/PointerActionType.d.ts +8 -8
  501. package/dist/enums/PointerActionType.js +9 -9
  502. package/dist/index.d.ts +185 -185
  503. package/dist/index.js +135 -135
  504. package/dist/interfaces/IActivateable.d.ts +3 -3
  505. package/dist/interfaces/IActivateable.js +1 -1
  506. package/dist/interfaces/ICommandHandler.d.ts +5 -5
  507. package/dist/interfaces/ICommandHandler.js +1 -1
  508. package/dist/interfaces/IDisposable.d.ts +3 -3
  509. package/dist/interfaces/IDisposable.js +1 -1
  510. package/dist/interfaces/IPoint.d.ts +4 -4
  511. package/dist/interfaces/IPoint.js +1 -1
  512. package/dist/interfaces/IRect.d.ts +6 -6
  513. package/dist/interfaces/IRect.js +1 -1
  514. package/dist/interfaces/ISize.d.ts +4 -4
  515. package/dist/interfaces/ISize.js +1 -1
  516. package/dist/polyfill/globals.d.ts +11 -11
  517. package/dist/polyfill/globals.js +1 -1
  518. package/dist/polyfill/mobileDragDrop.d.ts +2 -2
  519. package/dist/polyfill/mobileDragDrop.js +32 -32
  520. package/package.json +42 -42
  521. package/debug.log +0 -8
  522. package/dist/elements/services/bindableObjectsService/IDragDropService.d.ts +0 -5
  523. package/dist/elements/services/bindableObjectsService/IDragDropService.js +0 -1
  524. package/dist/elements/services/undoService/transactionItems/MoveElementInDomAction.d.ts +0 -16
  525. package/dist/elements/services/undoService/transactionItems/MoveElementInDomAction.js +0 -31
  526. package/dist/elements/widgets/designerView/DesignerViewUseOverlayScollbars.d.ts +0 -7
  527. package/dist/elements/widgets/designerView/DesignerViewUseOverlayScollbars.js +0 -13
  528. package/dist/elements/widgets/designerView/designerCanvas.ts.BASE.d.ts +0 -92
  529. package/dist/elements/widgets/designerView/designerCanvas.ts.BASE.js +0 -734
  530. package/dist/elements/widgets/designerView/designerCanvas.ts.LOCAL.d.ts +0 -95
  531. package/dist/elements/widgets/designerView/designerCanvas.ts.LOCAL.js +0 -768
  532. package/dist/elements/widgets/designerView/designerCanvas.ts.REMOTE.d.ts +0 -94
  533. package/dist/elements/widgets/designerView/designerCanvas.ts.REMOTE.js +0 -745
  534. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension copy.d.ts +0 -17
  535. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension copy.js +0 -80
  536. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtensionProvider copy.d.ts +0 -9
  537. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtensionProvider copy.js +0 -11
@@ -1,80 +1,80 @@
1
- import { EventNames } from "../../../enums/EventNames";
2
- import { InstanceServiceContainer } from '../../services/InstanceServiceContainer';
3
- import { UndoService } from '../../services/undoService/UndoService';
4
- import { SelectionService } from '../../services/selectionService/SelectionService';
5
- import { DesignItem } from '../../item/DesignItem';
6
- import { BaseCustomWebComponentLazyAppend, css, html, TypedEvent } from '@node-projects/base-custom-webcomponent';
7
- import { dragDropFormatNameElementDefinition, dragDropFormatNameBindingObject } from '../../../Constants';
8
- import { ContentService } from '../../services/contentService/ContentService';
9
- import { InsertAction } from '../../services/undoService/transactionItems/InsertAction';
10
- import { Snaplines } from './Snaplines';
11
- import { ContextMenuHelper } from '../../helper/contextMenu/ContextMenuHelper';
12
- import { DeleteAction } from '../../services/undoService/transactionItems/DeleteAction';
13
- import { CommandType } from '../../../commandHandling/CommandType';
14
- import { DefaultHtmlParserService } from "../../services/htmlParserService/DefaultHtmlParserService";
15
- import { ExtensionType } from "./extensions/ExtensionType";
16
- import { ExtensionManager } from "./extensions/ExtensionManager";
17
- import { NamedTools } from "./tools/NamedTools";
18
- import { Screenshot } from '../../helper/Screenshot';
19
- import { dataURItoBlob, exportData } from "../../helper/Helper";
20
- import { DomHelper } from '@node-projects/base-custom-webcomponent/dist/DomHelper';
21
- import { OverlayLayer } from "./extensions/OverlayLayer";
22
- import { OverlayLayerView } from './overlayLayerView';
23
- export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
24
- // Public Properties
25
- serviceContainer;
26
- instanceServiceContainer;
27
- containerBoundingRect;
28
- outerRect;
29
- clickOverlay;
30
- // IPlacementView
31
- gridSize = 10;
32
- alignOnGrid = false;
33
- alignOnSnap = true;
34
- snapLines;
35
- overlayLayer;
36
- rootDesignItem;
37
- eatEvents;
38
- transformHelperElement;
39
- _zoomFactor = 1; //if scale or zoom css property is used this needs to be the value
40
- _scaleFactor = 1; //if scale css property is used this need to be the scale value
41
- _canvasOffset = { x: 0, y: 0 };
42
- _currentContextMenu;
43
- _lastPointerDownHandler;
44
- get zoomFactor() {
45
- return this._zoomFactor;
46
- }
47
- set zoomFactor(value) {
48
- this._zoomFactor = value;
49
- this._zoomFactorChanged();
50
- }
51
- get scaleFactor() {
52
- return this._scaleFactor;
53
- }
54
- get canvasOffset() {
55
- return this._canvasOffset;
56
- }
57
- set canvasOffset(value) {
58
- this._canvasOffset = value;
59
- this._zoomFactorChanged();
60
- }
61
- get canvasOffsetUnzoomed() {
62
- return { x: this._canvasOffset.x * this.zoomFactor, y: this._canvasOffset.y * this.zoomFactor };
63
- }
64
- set canvasOffsetUnzoomed(value) {
65
- this.canvasOffset = { x: value.x / this.zoomFactor, y: value.y / this.zoomFactor };
66
- }
67
- onContentChanged = new TypedEvent();
68
- onZoomFactorChanged = new TypedEvent();
69
- // Private Variables
70
- _canvas;
71
- _canvasContainer;
72
- _outercanvas2;
73
- _lastHoverDesignItem;
74
- _pointerEventHandlerBound;
75
- _firstConnect;
76
- _onKeyDownBound;
77
- _onKeyUpBound;
1
+ import { EventNames } from "../../../enums/EventNames";
2
+ import { InstanceServiceContainer } from '../../services/InstanceServiceContainer';
3
+ import { UndoService } from '../../services/undoService/UndoService';
4
+ import { SelectionService } from '../../services/selectionService/SelectionService';
5
+ import { DesignItem } from '../../item/DesignItem';
6
+ import { BaseCustomWebComponentLazyAppend, css, html, TypedEvent } from '@node-projects/base-custom-webcomponent';
7
+ import { dragDropFormatNameElementDefinition, dragDropFormatNameBindingObject } from '../../../Constants';
8
+ import { ContentService } from '../../services/contentService/ContentService';
9
+ import { InsertAction } from '../../services/undoService/transactionItems/InsertAction';
10
+ import { Snaplines } from './Snaplines';
11
+ import { ContextMenuHelper } from '../../helper/contextMenu/ContextMenuHelper';
12
+ import { DeleteAction } from '../../services/undoService/transactionItems/DeleteAction';
13
+ import { CommandType } from '../../../commandHandling/CommandType';
14
+ import { DefaultHtmlParserService } from "../../services/htmlParserService/DefaultHtmlParserService";
15
+ import { ExtensionType } from "./extensions/ExtensionType";
16
+ import { ExtensionManager } from "./extensions/ExtensionManager";
17
+ import { NamedTools } from "./tools/NamedTools";
18
+ import { Screenshot } from '../../helper/Screenshot';
19
+ import { dataURItoBlob, exportData } from "../../helper/Helper";
20
+ import { DomHelper } from '@node-projects/base-custom-webcomponent/dist/DomHelper';
21
+ import { OverlayLayer } from "./extensions/OverlayLayer";
22
+ import { OverlayLayerView } from './overlayLayerView';
23
+ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
24
+ // Public Properties
25
+ serviceContainer;
26
+ instanceServiceContainer;
27
+ containerBoundingRect;
28
+ outerRect;
29
+ clickOverlay;
30
+ // IPlacementView
31
+ gridSize = 10;
32
+ alignOnGrid = false;
33
+ alignOnSnap = true;
34
+ snapLines;
35
+ overlayLayer;
36
+ rootDesignItem;
37
+ eatEvents;
38
+ transformHelperElement;
39
+ _zoomFactor = 1; //if scale or zoom css property is used this needs to be the value
40
+ _scaleFactor = 1; //if scale css property is used this need to be the scale value
41
+ _canvasOffset = { x: 0, y: 0 };
42
+ _currentContextMenu;
43
+ _lastPointerDownHandler;
44
+ get zoomFactor() {
45
+ return this._zoomFactor;
46
+ }
47
+ set zoomFactor(value) {
48
+ this._zoomFactor = value;
49
+ this._zoomFactorChanged();
50
+ }
51
+ get scaleFactor() {
52
+ return this._scaleFactor;
53
+ }
54
+ get canvasOffset() {
55
+ return this._canvasOffset;
56
+ }
57
+ set canvasOffset(value) {
58
+ this._canvasOffset = value;
59
+ this._zoomFactorChanged();
60
+ }
61
+ get canvasOffsetUnzoomed() {
62
+ return { x: this._canvasOffset.x * this.zoomFactor, y: this._canvasOffset.y * this.zoomFactor };
63
+ }
64
+ set canvasOffsetUnzoomed(value) {
65
+ this.canvasOffset = { x: value.x / this.zoomFactor, y: value.y / this.zoomFactor };
66
+ }
67
+ onContentChanged = new TypedEvent();
68
+ onZoomFactorChanged = new TypedEvent();
69
+ // Private Variables
70
+ _canvas;
71
+ _canvasContainer;
72
+ _outercanvas2;
73
+ _lastHoverDesignItem;
74
+ _pointerEventHandlerBound;
75
+ _firstConnect;
76
+ _onKeyDownBound;
77
+ _onKeyUpBound;
78
78
  static style = css `
79
79
  :host {
80
80
  display: block;
@@ -139,7 +139,7 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
139
139
  #node-projects-designer-canvas-transformHelper {
140
140
  height: 0;
141
141
  width: 0;
142
- }`;
142
+ }`;
143
143
  static template = html `
144
144
  <div style="display: flex;flex-direction: column;width: 100%;height: 100%;">
145
145
  <div style="width: 100%;height: 100%;">
@@ -152,656 +152,656 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
152
152
  <div id="node-projects-designer-canvas-clickOverlay" tabindex="0" style="pointer-events: auto;"></div>
153
153
  </div>
154
154
  <div id="node-projects-designer-canvas-transformHelper"></div>
155
- </div>`;
156
- extensionManager;
157
- _pointerextensions;
158
- _onDblClickBound;
159
- constructor() {
160
- super();
161
- this._canvas = this._getDomElement('node-projects-designer-canvas-canvas');
162
- this._canvasContainer = this._getDomElement('node-projects-designer-canvas-canvasContainer');
163
- this._outercanvas2 = this._getDomElement('node-projects-designer-canvas-outercanvas2');
164
- this.clickOverlay = this._getDomElement('node-projects-designer-canvas-clickOverlay');
165
- this.transformHelperElement = this._getDomElement('node-projects-designer-canvas-transformHelper');
166
- this._onKeyDownBound = this.onKeyDown.bind(this);
167
- this._onKeyUpBound = this.onKeyUp.bind(this);
168
- this._onDblClickBound = this._onDblClick.bind(this);
169
- this._pointerEventHandlerBound = this._pointerEventHandler.bind(this);
170
- this.clickOverlay.oncontextmenu = (e) => e.preventDefault();
171
- }
172
- get designerWidth() {
173
- return this._canvasContainer.style.width;
174
- }
175
- set designerWidth(value) {
176
- this._canvasContainer.style.width = value;
177
- this._zoomFactorChanged();
178
- }
179
- get designerHeight() {
180
- return this._canvasContainer.style.height;
181
- }
182
- set designerHeight(value) {
183
- this._canvasContainer.style.height = value;
184
- this._zoomFactorChanged();
185
- }
186
- getDesignSurfaceDimensions() {
187
- let ret = { width: null, height: null };
188
- const cs = getComputedStyle(this._canvasContainer);
189
- if (this._canvasContainer.style.width)
190
- ret.width = parseFloat(cs.width);
191
- if (this._canvasContainer.style.height)
192
- ret.height = parseFloat(cs.height);
193
- return ret;
194
- }
195
- get designerOffsetWidth() {
196
- return this._canvasContainer.offsetWidth;
197
- }
198
- get designerOffsetHeight() {
199
- return this._canvasContainer.offsetHeight;
200
- }
201
- set additionalStyle(value) {
202
- if (value) {
203
- for (let r of value.rules) {
204
- if (r instanceof CSSStyleRule) {
205
- let parts = r.selectorText.split(',');
206
- let t = '';
207
- for (let p of parts) {
208
- if (r.selectorText)
209
- t += ',';
210
- t += '#canvas ' + p;
211
- }
212
- r.selectorText = t;
213
- }
214
- }
215
- this.shadowRoot.adoptedStyleSheets = [this.constructor.style, value];
216
- }
217
- else
218
- this.shadowRoot.adoptedStyleSheets = [this.constructor.style];
219
- }
220
- /* --- start IUiCommandHandler --- */
221
- async executeCommand(command) {
222
- const modelCommandService = this.serviceContainer.modelCommandService;
223
- if (modelCommandService) {
224
- let handeled = await modelCommandService.executeCommand(this, command);
225
- if (handeled != null)
226
- return;
227
- }
228
- switch (command.type) {
229
- case CommandType.screenshot:
230
- {
231
- if (!this.instanceServiceContainer.selectionService.primarySelection)
232
- alert("you need to select an element!");
233
- else {
234
- if (!Screenshot.screenshotsEnabled) {
235
- alert("you need to select current tab in next browser dialog, or screenshots will not work correctly");
236
- }
237
- const el = this.instanceServiceContainer.selectionService.primarySelection.element;
238
- const sel = this.instanceServiceContainer.selectionService.selectedElements;
239
- this.instanceServiceContainer.selectionService.setSelectedElements(null);
240
- const screenshot = await Screenshot.takeScreenshot(el, el.clientWidth, el.clientHeight);
241
- await exportData(dataURItoBlob(screenshot), "screenshot.png");
242
- this.instanceServiceContainer.selectionService.setSelectedElements(sel);
243
- }
244
- }
245
- break;
246
- case CommandType.setTool:
247
- {
248
- this.serviceContainer.globalContext.tool = this.serviceContainer.designerTools.get(command.parameter);
249
- }
250
- break;
251
- case CommandType.setStrokeColor:
252
- {
253
- this.serviceContainer.globalContext.strokeColor = command.parameter;
254
- }
255
- break;
256
- case CommandType.setFillBrush:
257
- {
258
- this.serviceContainer.globalContext.fillBrush = command.parameter;
259
- }
260
- break;
261
- case CommandType.setStrokeThickness:
262
- {
263
- this.serviceContainer.globalContext.strokeThickness = command.parameter;
264
- }
265
- break;
266
- case CommandType.delete:
267
- this.handleDeleteCommand();
268
- break;
269
- case CommandType.undo:
270
- this.instanceServiceContainer.undoService.undo();
271
- break;
272
- case CommandType.redo:
273
- this.instanceServiceContainer.undoService.redo();
274
- break;
275
- case CommandType.copy:
276
- this.handleCopyCommand();
277
- break;
278
- case CommandType.cut:
279
- this.handleCopyCommand();
280
- this.handleDeleteCommand();
281
- break;
282
- case CommandType.paste:
283
- this.handlePasteCommand();
284
- break;
285
- case CommandType.selectAll:
286
- this.handleSelectAll();
287
- break;
288
- }
289
- }
290
- canExecuteCommand(command) {
291
- const modelCommandService = this.serviceContainer.modelCommandService;
292
- if (modelCommandService) {
293
- let handeled = modelCommandService.canExecuteCommand(this, command);
294
- if (handeled !== null)
295
- return handeled;
296
- }
297
- if (command.type === CommandType.undo) {
298
- return this.instanceServiceContainer.undoService.canUndo();
299
- }
300
- if (command.type === CommandType.redo) {
301
- return this.instanceServiceContainer.undoService.canRedo();
302
- }
303
- if (command.type === CommandType.setTool) {
304
- return this.serviceContainer.designerTools.has(command.parameter);
305
- }
306
- return true;
307
- }
308
- /* --- end IUiCommandHandler --- */
309
- handleSelectAll() {
310
- this.instanceServiceContainer.selectionService.setSelectedElements(Array.from(this.rootDesignItem.children()));
311
- }
312
- async handleCopyCommand() {
313
- await this.serviceContainer.copyPasteService.copyItems(this.instanceServiceContainer.selectionService.selectedElements);
314
- }
315
- async handlePasteCommand() {
316
- const designItems = await this.serviceContainer.copyPasteService.getPasteItems(this.serviceContainer, this.instanceServiceContainer);
317
- let grp = this.rootDesignItem.openGroup("Insert");
318
- if (designItems) {
319
- for (let di of designItems) {
320
- this.instanceServiceContainer.undoService.execute(new InsertAction(this.rootDesignItem, this.rootDesignItem.childCount, di));
321
- }
322
- const intializationService = this.serviceContainer.intializationService;
323
- if (intializationService) {
324
- for (let di of designItems)
325
- intializationService.init(di);
326
- }
327
- this.instanceServiceContainer.selectionService.setSelectedElements(designItems);
328
- }
329
- grp.commit();
330
- this.snapLines.clearSnaplines();
331
- }
332
- handleDeleteCommand() {
333
- let items = this.instanceServiceContainer.selectionService.selectedElements;
334
- this.instanceServiceContainer.undoService.execute(new DeleteAction(items));
335
- this.instanceServiceContainer.selectionService.setSelectedElements(null);
336
- }
337
- initialize(serviceContainer) {
338
- this.serviceContainer = serviceContainer;
339
- this.instanceServiceContainer = new InstanceServiceContainer(this);
340
- this.instanceServiceContainer.register("undoService", new UndoService(this));
341
- this.instanceServiceContainer.register("selectionService", new SelectionService);
342
- this.rootDesignItem = DesignItem.GetOrCreateDesignItem(this._canvas, this.serviceContainer, this.instanceServiceContainer);
343
- this.instanceServiceContainer.register("contentService", new ContentService(this.rootDesignItem));
344
- this.extensionManager = new ExtensionManager(this);
345
- this.overlayLayer = new OverlayLayerView(serviceContainer);
346
- this.overlayLayer.style.pointerEvents = 'none';
347
- this._canvasContainer.appendChild(this.overlayLayer);
348
- this.snapLines = new Snaplines(this.overlayLayer);
349
- this.snapLines.initialize(this.rootDesignItem);
350
- if (this.serviceContainer.designerPointerExtensions)
351
- for (let pe of this.serviceContainer.designerPointerExtensions) {
352
- if (!this._pointerextensions)
353
- this._pointerextensions = [];
354
- this._pointerextensions.push(pe.getExtension(this));
355
- }
356
- if (this.children) {
357
- let children = this.children;
358
- if (this.children.length == 1 && this.children[0] instanceof HTMLSlotElement) {
359
- children = this.children[0].assignedElements();
360
- }
361
- const parser = this.serviceContainer.getLastServiceWhere('htmlParserService', x => x.constructor == DefaultHtmlParserService);
362
- this.addDesignItems(parser.createDesignItems(children, this.serviceContainer, this.instanceServiceContainer));
363
- }
364
- }
365
- elementFromPoint(x, y) {
366
- this.clickOverlay.style.pointerEvents = 'none';
367
- //@ts-ignore
368
- let element = this.shadowRoot.elementFromPoint(x, y);
369
- if (element === this.clickOverlay)
370
- element = this._canvas;
371
- this.clickOverlay.style.pointerEvents = 'auto';
372
- return element;
373
- }
374
- connectedCallback() {
375
- if (!this._firstConnect) {
376
- this._firstConnect = true;
377
- this.clickOverlay.addEventListener(EventNames.PointerDown, this._pointerEventHandlerBound);
378
- this.clickOverlay.addEventListener(EventNames.PointerMove, this._pointerEventHandlerBound);
379
- this.clickOverlay.addEventListener(EventNames.PointerUp, this._pointerEventHandlerBound);
380
- this.clickOverlay.addEventListener(EventNames.DragEnter, event => this._onDragEnter(event));
381
- this.clickOverlay.addEventListener(EventNames.DragLeave, event => this._onDragLeave(event));
382
- this.clickOverlay.addEventListener(EventNames.DragOver, event => this._onDragOver(event));
383
- this.clickOverlay.addEventListener(EventNames.Drop, event => this._onDrop(event));
384
- this.clickOverlay.addEventListener(EventNames.KeyDown, this._onKeyDownBound, true);
385
- this.clickOverlay.addEventListener(EventNames.KeyUp, this._onKeyUpBound, true);
386
- this.clickOverlay.addEventListener(EventNames.DblClick, this._onDblClickBound, true);
387
- }
388
- }
389
- _zoomFactorChanged() {
390
- //a@ts-ignore
391
- //this._canvasContainer.style.zoom = <any>this._zoomFactor;
392
- //this._canvasContainer.style.transform = 'scale(' + this._zoomFactor+') translate(' + this._translate.x + ', '+this._translate.y+')';
393
- //this._canvasContainer.style.transformOrigin = '0 0';
394
- this._canvasContainer.style.bottom = this._outercanvas2.offsetHeight >= this._canvasContainer.offsetHeight ? '0' : '';
395
- this._canvasContainer.style.right = this._outercanvas2.offsetWidth >= this._canvasContainer.offsetWidth ? '0' : '';
396
- this._updateTransform();
397
- this.onZoomFactorChanged.emit(this._zoomFactor);
398
- }
399
- _updateTransform() {
400
- this._scaleFactor = this._zoomFactor;
401
- 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)';
402
- this._canvasContainer.style.transformOrigin = '0 0';
403
- this.snapLines.clearSnaplines();
404
- }
405
- setDesignItems(designItems) {
406
- this._fillCalculationrects();
407
- this.instanceServiceContainer.undoService.clear();
408
- this.overlayLayer.removeAllOverlays();
409
- DomHelper.removeAllChildnodes(this.overlayLayer);
410
- this.rootDesignItem.clearChildren();
411
- this.addDesignItems(designItems);
412
- this.instanceServiceContainer.contentService.onContentChanged.emit({ changeType: 'parsed' });
413
- }
414
- addDesignItems(designItems) {
415
- if (designItems) {
416
- for (let di of designItems) {
417
- this.rootDesignItem._insertChildInternal(di);
418
- }
419
- }
420
- const intializationService = this.serviceContainer.intializationService;
421
- if (intializationService) {
422
- for (let di of designItems)
423
- intializationService.init(di);
424
- }
425
- this.snapLines.clearSnaplines();
426
- }
427
- _onDragEnter(event) {
428
- this._fillCalculationrects();
429
- event.preventDefault();
430
- const hasTransferDataBindingObject = event.dataTransfer.types.indexOf(dragDropFormatNameBindingObject) >= 0;
431
- if (hasTransferDataBindingObject) {
432
- const ddService = this.serviceContainer.bindableObjectDragDropService;
433
- if (ddService) {
434
- const effect = ddService.dragEnter(this, event);
435
- event.dataTransfer.dropEffect = effect;
436
- }
437
- }
438
- }
439
- _onDragLeave(event) {
440
- this._fillCalculationrects();
441
- event.preventDefault();
442
- this._canvas.classList.remove('dragFileActive');
443
- const hasTransferDataBindingObject = event.dataTransfer.types.indexOf(dragDropFormatNameBindingObject) >= 0;
444
- if (hasTransferDataBindingObject) {
445
- const ddService = this.serviceContainer.bindableObjectDragDropService;
446
- if (ddService) {
447
- const effect = ddService.dragLeave(this, event);
448
- event.dataTransfer.dropEffect = effect;
449
- }
450
- }
451
- }
452
- _onDragOver(event) {
453
- event.preventDefault();
454
- /*if (this.alignOnSnap) {
455
- this.snapLines.calculateSnaplines(this.instanceServiceContainer.selectionService.selectedElements);
456
- //TODO: fix this following code...
457
- const currentPoint = this.getDesignerMousepoint(event);
458
- let containerService = this.serviceContainer.getLastServiceWhere('containerService', x => x.serviceForContainer(this.rootDesignItem))
459
- containerService.finishPlace(this, this.rootDesignItem, this._initialPoint, currentPoint, this.instanceServiceContainer.selectionService.selectedElements);
460
- }*/
461
- this._fillCalculationrects();
462
- if (event.dataTransfer.types.length > 0 && event.dataTransfer.types[0] == 'Files') {
463
- const ddService = this.serviceContainer.dragDropService;
464
- if (ddService) {
465
- const effect = ddService.dragOver(event);
466
- event.dataTransfer.dropEffect = effect;
467
- if (effect !== 'none')
468
- this._canvas.classList.add('dragFileActive');
469
- }
470
- }
471
- const hasTransferDataBindingObject = event.dataTransfer.types.indexOf(dragDropFormatNameBindingObject) >= 0;
472
- if (hasTransferDataBindingObject) {
473
- const ddService = this.serviceContainer.bindableObjectDragDropService;
474
- if (ddService) {
475
- const effect = ddService.dragOver(this, event);
476
- event.dataTransfer.dropEffect = effect;
477
- }
478
- }
479
- }
480
- async _onDrop(event) {
481
- event.preventDefault();
482
- this._canvas.classList.remove('dragFileActive');
483
- this._fillCalculationrects();
484
- if (event.dataTransfer.files?.length > 0) {
485
- const ddService = this.serviceContainer.dragDropService;
486
- if (ddService) {
487
- ddService.drop(this, event);
488
- }
489
- }
490
- else {
491
- const transferDataBindingObject = event.dataTransfer.getData(dragDropFormatNameBindingObject);
492
- if (transferDataBindingObject) {
493
- const bo = JSON.parse(transferDataBindingObject);
494
- const ddService = this.serviceContainer.bindableObjectDragDropService;
495
- if (ddService) {
496
- const effect = ddService.drop(this, event, bo);
497
- event.dataTransfer.dropEffect = effect;
498
- }
499
- }
500
- else {
501
- this._fillCalculationrects();
502
- const position = this.getNormalizedEventCoordinates(event);
503
- const transferData = event.dataTransfer.getData(dragDropFormatNameElementDefinition);
504
- const elementDefinition = JSON.parse(transferData);
505
- const di = await this.serviceContainer.forSomeServicesTillResult("instanceService", (service) => service.getElement(elementDefinition, this.serviceContainer, this.instanceServiceContainer));
506
- const grp = di.openGroup("Insert");
507
- di.setStyle('position', 'absolute');
508
- di.setStyle('left', position.x + 'px');
509
- di.setStyle('top', position.y + 'px');
510
- this.instanceServiceContainer.undoService.execute(new InsertAction(this.rootDesignItem, this.rootDesignItem.childCount, di));
511
- grp.commit();
512
- requestAnimationFrame(() => this.instanceServiceContainer.selectionService.setSelectedElements([di]));
513
- }
514
- }
515
- }
516
- showDesignItemContextMenu(designItem, event) {
517
- this._currentContextMenu?.close();
518
- const mnuItems = [];
519
- for (let cme of this.serviceContainer.designerContextMenuExtensions) {
520
- if (cme.shouldProvideContextmenu(event, this, designItem, 'designer')) {
521
- mnuItems.push(...cme.provideContextMenuItems(event, this, designItem));
522
- }
523
- }
524
- this._currentContextMenu = ContextMenuHelper.showContextMenu(null, event, null, mnuItems);
525
- return this._currentContextMenu;
526
- }
527
- _onDblClick(event) {
528
- event.preventDefault();
529
- this.extensionManager.applyExtension(this.instanceServiceContainer.selectionService.primarySelection, ExtensionType.Doubleclick);
530
- }
531
- onKeyUp(event) {
532
- if (event.composedPath().indexOf(this.eatEvents) >= 0)
533
- return;
534
- event.preventDefault();
535
- }
536
- onKeyDown(event) {
537
- if (event.composedPath().indexOf(this.eatEvents) >= 0)
538
- return;
539
- if ((event.ctrlKey || event.metaKey) && event.key === 'z' && !event.shiftKey)
540
- this.executeCommand({ type: CommandType.undo });
541
- else if ((event.ctrlKey || event.metaKey) && event.key === 'z' && event.shiftKey)
542
- this.executeCommand({ type: CommandType.redo });
543
- else if ((event.ctrlKey || event.metaKey) && event.key === 'y')
544
- this.executeCommand({ type: CommandType.redo });
545
- else if ((event.ctrlKey || event.metaKey) && event.key === 'a')
546
- this.executeCommand({ type: CommandType.selectAll });
547
- else if ((event.ctrlKey || event.metaKey) && event.key === 'c')
548
- this.executeCommand({ type: CommandType.copy });
549
- else if ((event.ctrlKey || event.metaKey) && event.key === 'v')
550
- this.executeCommand({ type: CommandType.paste });
551
- else if ((event.ctrlKey || event.metaKey) && event.key === 'x')
552
- this.executeCommand({ type: CommandType.cut });
553
- else {
554
- let primarySelection = this.instanceServiceContainer.selectionService.primarySelection;
555
- if (!primarySelection) {
556
- return;
557
- }
558
- let moveOffset = 1;
559
- if (event.shiftKey)
560
- moveOffset = 10;
561
- switch (event.key) {
562
- case 'Delete':
563
- case 'Backspace':
564
- this.executeCommand({ type: CommandType.delete });
565
- break;
566
- case 'ArrowUp':
567
- {
568
- this.instanceServiceContainer.selectionService.selectedElements.forEach(x => x.setStyle('top', parseInt(x.element.style.top) - moveOffset + 'px'));
569
- this.extensionManager.refreshExtensions(this.instanceServiceContainer.selectionService.selectedElements);
570
- }
571
- break;
572
- case 'ArrowDown':
573
- {
574
- this.instanceServiceContainer.selectionService.selectedElements.forEach(x => x.setStyle('top', parseInt(x.element.style.top) + moveOffset + 'px'));
575
- this.extensionManager.refreshExtensions(this.instanceServiceContainer.selectionService.selectedElements);
576
- }
577
- break;
578
- case 'ArrowLeft':
579
- {
580
- this.instanceServiceContainer.selectionService.selectedElements.forEach(x => x.setStyle('left', parseInt(x.element.style.left) - moveOffset + 'px'));
581
- this.extensionManager.refreshExtensions(this.instanceServiceContainer.selectionService.selectedElements);
582
- }
583
- break;
584
- case 'ArrowRight':
585
- {
586
- this.instanceServiceContainer.selectionService.selectedElements.forEach(x => x.setStyle('left', parseInt(x.element.style.left) + moveOffset + 'px'));
587
- this.extensionManager.refreshExtensions(this.instanceServiceContainer.selectionService.selectedElements);
588
- }
589
- break;
590
- }
591
- }
592
- event.preventDefault();
593
- }
594
- getNormalizedEventCoordinates(event) {
595
- const offsetOfOuterX = (event.clientX - this.outerRect.x) / this.zoomFactor;
596
- const offsetOfCanvasX = this.containerBoundingRect.x - this.outerRect.x;
597
- const offsetOfOuterY = (event.clientY - this.outerRect.y) / this.zoomFactor;
598
- const offsetOfCanvasY = this.containerBoundingRect.y - this.outerRect.y;
599
- return {
600
- x: offsetOfOuterX - offsetOfCanvasX / this.zoomFactor,
601
- y: offsetOfOuterY - offsetOfCanvasY / this.zoomFactor
602
- };
603
- }
604
- convertEventToViewPortCoordinates(point) {
605
- const offsetOfCanvasX = this.containerBoundingRect.x - this.outerRect.x;
606
- const offsetOfCanvasY = this.containerBoundingRect.y - this.outerRect.y;
607
- return {
608
- x: (point.x + offsetOfCanvasX / this.zoomFactor) * this.zoomFactor,
609
- y: (point.y + offsetOfCanvasY / this.zoomFactor) * this.zoomFactor
610
- };
611
- }
612
- getViewportCoordinates(event) {
613
- return {
614
- x: (event.clientX - this.outerRect.x),
615
- y: (event.clientY - this.outerRect.y)
616
- };
617
- }
618
- getNormalizedElementCoordinates(element) {
619
- const targetRect = element.getBoundingClientRect();
620
- return { x: (targetRect.x - this.containerBoundingRect.x) / this.scaleFactor, y: (targetRect.y - this.containerBoundingRect.y) / this.scaleFactor, width: targetRect.width / this.scaleFactor, height: targetRect.height / this.scaleFactor };
621
- }
622
- getNormalizedOffsetInElement(event, element) {
623
- const normEvt = this.getNormalizedEventCoordinates(event);
624
- const normEl = this.getNormalizedElementCoordinates(element);
625
- return { x: normEvt.x - normEl.x, y: normEvt.y - normEl.y };
626
- }
627
- getElementAtPoint(point, ignoreElementCallback) {
628
- let backupPEventsMap = new Map();
629
- let currentElement = this.elementFromPoint(point.x, point.y);
630
- this.clickOverlay.style.pointerEvents = 'none';
631
- let lastElement = null;
632
- try {
633
- while (currentElement != null) {
634
- if (currentElement == lastElement) {
635
- currentElement = null;
636
- break;
637
- }
638
- lastElement = currentElement;
639
- if (currentElement == this._canvas) {
640
- break;
641
- }
642
- if (currentElement === this.overlayLayer) {
643
- currentElement = this.overlayLayer.elementFromPoint(point.x, point.y);
644
- break;
645
- }
646
- if (!ignoreElementCallback || !ignoreElementCallback(currentElement)) {
647
- break;
648
- }
649
- backupPEventsMap.set(currentElement, currentElement.style.pointerEvents);
650
- currentElement.style.pointerEvents = 'none';
651
- if (currentElement.shadowRoot) {
652
- for (let e of currentElement.shadowRoot.querySelectorAll('*')) {
653
- if (!backupPEventsMap.has(e)) {
654
- if (e.style)
655
- backupPEventsMap.set(e, e.style.pointerEvents);
656
- e.style.pointerEvents = 'none';
657
- }
658
- }
659
- }
660
- currentElement = this.elementFromPoint(point.x, point.y);
661
- }
662
- }
663
- finally {
664
- for (let e of backupPEventsMap.entries()) {
665
- e[0].style.pointerEvents = e[1];
666
- }
667
- this.clickOverlay.style.pointerEvents = 'auto';
668
- }
669
- return currentElement;
670
- }
671
- _rect;
672
- _pointerEventHandler(event, forceElement = null) {
673
- this._fillCalculationrects();
674
- if (this._pointerextensions) {
675
- for (let pe of this._pointerextensions)
676
- pe.refresh(event);
677
- }
678
- if (event.composedPath().indexOf(this.eatEvents) >= 0)
679
- return;
680
- let currentElement;
681
- if (forceElement)
682
- currentElement = forceElement;
683
- else {
684
- currentElement = this.serviceContainer.elementAtPointService.getElementAtPoint(this, { x: event.x, y: event.y });
685
- if (currentElement === this._outercanvas2 || currentElement === this.overlayLayer || !currentElement) {
686
- currentElement = this._canvas;
687
- }
688
- } /* else {
689
- if (!DesignerCanvas.hasOrIsParent(currentElement, this._canvas))
690
- return;
691
- }*/
692
- if (this._lastPointerDownHandler) {
693
- try {
694
- this._lastPointerDownHandler(event);
695
- }
696
- catch { }
697
- if (event.type == EventNames.PointerUp)
698
- this._lastPointerDownHandler = null;
699
- return;
700
- }
701
- if (currentElement instanceof SVGGraphicsElement && currentElement?.ownerSVGElement?.parentNode?.host == this.overlayLayer) {
702
- this.clickOverlay.style.cursor = getComputedStyle(currentElement).cursor;
703
- if (event.type == EventNames.PointerDown) {
704
- this._lastPointerDownHandler = (evt) => currentElement.dispatchEvent(new evt.constructor(evt.type, evt));
705
- }
706
- currentElement.dispatchEvent(new event.constructor(event.type, event));
707
- return;
708
- }
709
- this.clickOverlay.style.cursor = this._canvas.style.cursor;
710
- //TODO: remove duplication when tool refactoring starts
711
- //this._fillCalculationrects();
712
- const currentDesignItem = DesignItem.GetOrCreateDesignItem(currentElement, this.serviceContainer, this.instanceServiceContainer);
713
- if (this._lastHoverDesignItem != currentDesignItem) {
714
- if (this._lastHoverDesignItem)
715
- this.extensionManager.removeExtension(this._lastHoverDesignItem, ExtensionType.MouseOver);
716
- if (currentDesignItem && currentDesignItem != this.rootDesignItem && DomHelper.getHost(currentElement.parentNode) !== this.overlayLayer)
717
- this.extensionManager.applyExtension(currentDesignItem, ExtensionType.MouseOver);
718
- this._lastHoverDesignItem = currentDesignItem;
719
- }
720
- if (currentElement && DomHelper.getHost(currentElement.parentNode) === this.overlayLayer) {
721
- if (this.eatEvents)
722
- return;
723
- currentElement = this.instanceServiceContainer.selectionService.primarySelection?.element ?? this._canvas;
724
- }
725
- this._fillCalculationrects();
726
- let tool = this.serviceContainer.globalContext.tool ?? this.serviceContainer.designerTools.get(NamedTools.Pointer);
727
- this._canvas.style.cursor = tool.cursor;
728
- if (event.type == EventNames.PointerDown) {
729
- this._lastPointerDownHandler = (evt) => tool.pointerEventHandler(this, evt, currentElement);
730
- }
731
- tool.pointerEventHandler(this, event, currentElement);
732
- }
733
- removeCurrentPointerEventHandler() {
734
- this._lastPointerDownHandler = null;
735
- }
736
- _fillCalculationrects() {
737
- this.containerBoundingRect = this._canvasContainer.getBoundingClientRect();
738
- this.outerRect = this._outercanvas2.getBoundingClientRect();
739
- }
740
- addOverlay(element, overlayLayer = OverlayLayer.Normal) {
741
- this.overlayLayer.addOverlay(element, overlayLayer);
742
- }
743
- removeOverlay(element) {
744
- this.overlayLayer.removeOverlay(element);
745
- }
746
- getItemsBelowMouse(event) {
747
- const lstEl = [];
748
- //search for containers below mouse cursor.
749
- //to do this, we need to disable pointer events for each in a loop and search wich element is there
750
- let backupPEventsMap = new Map();
751
- this.clickOverlay.style.pointerEvents = 'none';
752
- try {
753
- let el = this.elementFromPoint(event.x, event.y);
754
- backupPEventsMap.set(el, el.style.pointerEvents);
755
- el.style.pointerEvents = 'none';
756
- if (el !== this.rootDesignItem.element) {
757
- while (el != null) {
758
- if (el === this.rootDesignItem.element)
759
- break;
760
- if (el !== this.overlayLayer && el.parentElement !== this.overlayLayer && el.getRootNode() === this.shadowRoot)
761
- lstEl.push(el);
762
- if (!backupPEventsMap.has(el))
763
- backupPEventsMap.set(el, el.style.pointerEvents);
764
- el.style.pointerEvents = 'none';
765
- const oldEl = el;
766
- el = this.elementFromPoint(event.x, event.y);
767
- if (oldEl === el)
768
- break;
769
- }
770
- }
771
- }
772
- finally {
773
- for (let e of backupPEventsMap.entries()) {
774
- e[0].style.pointerEvents = e[1];
775
- }
776
- this.clickOverlay.style.pointerEvents = 'auto';
777
- }
778
- return lstEl;
779
- }
780
- zoomOntoRectangle(startPoint, endPoint) {
781
- let rect = {
782
- x: startPoint.x < endPoint.x ? startPoint.x : endPoint.x,
783
- y: startPoint.y < endPoint.y ? startPoint.y : endPoint.y,
784
- width: Math.abs(startPoint.x - endPoint.x),
785
- height: Math.abs(startPoint.y - endPoint.y),
786
- };
787
- let zFactorWidth = this.outerRect.width / rect.width;
788
- let zFactorHeight = this.outerRect.height / rect.height;
789
- let zoomFactor = zFactorWidth >= zFactorHeight ? zFactorHeight : zFactorWidth;
790
- let rectCenter = {
791
- x: (rect.width / 2) + rect.x,
792
- y: (rect.height / 2) + rect.y
793
- };
794
- this.zoomTowardsPoint(rectCenter, zoomFactor);
795
- }
796
- zoomTowardsPoint(canvasPoint, newZoom) {
797
- const scaleChange = newZoom / this.zoomFactor;
798
- const point = this.convertEventToViewPortCoordinates(canvasPoint);
799
- const newCanvasOffset = {
800
- x: -(point.x * (scaleChange - 1) + scaleChange * -this.canvasOffsetUnzoomed.x),
801
- y: -(point.y * (scaleChange - 1) + scaleChange * -this.canvasOffsetUnzoomed.y)
802
- };
803
- this.zoomFactor = newZoom;
804
- this.canvasOffsetUnzoomed = newCanvasOffset;
805
- }
806
- }
807
- customElements.define('node-projects-designer-canvas', DesignerCanvas);
155
+ </div>`;
156
+ extensionManager;
157
+ _pointerextensions;
158
+ _onDblClickBound;
159
+ constructor() {
160
+ super();
161
+ this._canvas = this._getDomElement('node-projects-designer-canvas-canvas');
162
+ this._canvasContainer = this._getDomElement('node-projects-designer-canvas-canvasContainer');
163
+ this._outercanvas2 = this._getDomElement('node-projects-designer-canvas-outercanvas2');
164
+ this.clickOverlay = this._getDomElement('node-projects-designer-canvas-clickOverlay');
165
+ this.transformHelperElement = this._getDomElement('node-projects-designer-canvas-transformHelper');
166
+ this._onKeyDownBound = this.onKeyDown.bind(this);
167
+ this._onKeyUpBound = this.onKeyUp.bind(this);
168
+ this._onDblClickBound = this._onDblClick.bind(this);
169
+ this._pointerEventHandlerBound = this._pointerEventHandler.bind(this);
170
+ this.clickOverlay.oncontextmenu = (e) => e.preventDefault();
171
+ }
172
+ get designerWidth() {
173
+ return this._canvasContainer.style.width;
174
+ }
175
+ set designerWidth(value) {
176
+ this._canvasContainer.style.width = value;
177
+ this._zoomFactorChanged();
178
+ }
179
+ get designerHeight() {
180
+ return this._canvasContainer.style.height;
181
+ }
182
+ set designerHeight(value) {
183
+ this._canvasContainer.style.height = value;
184
+ this._zoomFactorChanged();
185
+ }
186
+ getDesignSurfaceDimensions() {
187
+ let ret = { width: null, height: null };
188
+ const cs = getComputedStyle(this._canvasContainer);
189
+ if (this._canvasContainer.style.width)
190
+ ret.width = parseFloat(cs.width);
191
+ if (this._canvasContainer.style.height)
192
+ ret.height = parseFloat(cs.height);
193
+ return ret;
194
+ }
195
+ get designerOffsetWidth() {
196
+ return this._canvasContainer.offsetWidth;
197
+ }
198
+ get designerOffsetHeight() {
199
+ return this._canvasContainer.offsetHeight;
200
+ }
201
+ set additionalStyle(value) {
202
+ if (value) {
203
+ for (let r of value.rules) {
204
+ if (r instanceof CSSStyleRule) {
205
+ let parts = r.selectorText.split(',');
206
+ let t = '';
207
+ for (let p of parts) {
208
+ if (r.selectorText)
209
+ t += ',';
210
+ t += '#canvas ' + p;
211
+ }
212
+ r.selectorText = t;
213
+ }
214
+ }
215
+ this.shadowRoot.adoptedStyleSheets = [this.constructor.style, value];
216
+ }
217
+ else
218
+ this.shadowRoot.adoptedStyleSheets = [this.constructor.style];
219
+ }
220
+ /* --- start IUiCommandHandler --- */
221
+ async executeCommand(command) {
222
+ const modelCommandService = this.serviceContainer.modelCommandService;
223
+ if (modelCommandService) {
224
+ let handeled = await modelCommandService.executeCommand(this, command);
225
+ if (handeled != null)
226
+ return;
227
+ }
228
+ switch (command.type) {
229
+ case CommandType.screenshot:
230
+ {
231
+ if (!this.instanceServiceContainer.selectionService.primarySelection)
232
+ alert("you need to select an element!");
233
+ else {
234
+ if (!Screenshot.screenshotsEnabled) {
235
+ alert("you need to select current tab in next browser dialog, or screenshots will not work correctly");
236
+ }
237
+ const el = this.instanceServiceContainer.selectionService.primarySelection.element;
238
+ const sel = this.instanceServiceContainer.selectionService.selectedElements;
239
+ this.instanceServiceContainer.selectionService.setSelectedElements(null);
240
+ const screenshot = await Screenshot.takeScreenshot(el, el.clientWidth, el.clientHeight);
241
+ await exportData(dataURItoBlob(screenshot), "screenshot.png");
242
+ this.instanceServiceContainer.selectionService.setSelectedElements(sel);
243
+ }
244
+ }
245
+ break;
246
+ case CommandType.setTool:
247
+ {
248
+ this.serviceContainer.globalContext.tool = this.serviceContainer.designerTools.get(command.parameter);
249
+ }
250
+ break;
251
+ case CommandType.setStrokeColor:
252
+ {
253
+ this.serviceContainer.globalContext.strokeColor = command.parameter;
254
+ }
255
+ break;
256
+ case CommandType.setFillBrush:
257
+ {
258
+ this.serviceContainer.globalContext.fillBrush = command.parameter;
259
+ }
260
+ break;
261
+ case CommandType.setStrokeThickness:
262
+ {
263
+ this.serviceContainer.globalContext.strokeThickness = command.parameter;
264
+ }
265
+ break;
266
+ case CommandType.delete:
267
+ this.handleDeleteCommand();
268
+ break;
269
+ case CommandType.undo:
270
+ this.instanceServiceContainer.undoService.undo();
271
+ break;
272
+ case CommandType.redo:
273
+ this.instanceServiceContainer.undoService.redo();
274
+ break;
275
+ case CommandType.copy:
276
+ this.handleCopyCommand();
277
+ break;
278
+ case CommandType.cut:
279
+ this.handleCopyCommand();
280
+ this.handleDeleteCommand();
281
+ break;
282
+ case CommandType.paste:
283
+ this.handlePasteCommand();
284
+ break;
285
+ case CommandType.selectAll:
286
+ this.handleSelectAll();
287
+ break;
288
+ }
289
+ }
290
+ canExecuteCommand(command) {
291
+ const modelCommandService = this.serviceContainer.modelCommandService;
292
+ if (modelCommandService) {
293
+ let handeled = modelCommandService.canExecuteCommand(this, command);
294
+ if (handeled !== null)
295
+ return handeled;
296
+ }
297
+ if (command.type === CommandType.undo) {
298
+ return this.instanceServiceContainer.undoService.canUndo();
299
+ }
300
+ if (command.type === CommandType.redo) {
301
+ return this.instanceServiceContainer.undoService.canRedo();
302
+ }
303
+ if (command.type === CommandType.setTool) {
304
+ return this.serviceContainer.designerTools.has(command.parameter);
305
+ }
306
+ return true;
307
+ }
308
+ /* --- end IUiCommandHandler --- */
309
+ handleSelectAll() {
310
+ this.instanceServiceContainer.selectionService.setSelectedElements(Array.from(this.rootDesignItem.children()));
311
+ }
312
+ async handleCopyCommand() {
313
+ await this.serviceContainer.copyPasteService.copyItems(this.instanceServiceContainer.selectionService.selectedElements);
314
+ }
315
+ async handlePasteCommand() {
316
+ const designItems = await this.serviceContainer.copyPasteService.getPasteItems(this.serviceContainer, this.instanceServiceContainer);
317
+ let grp = this.rootDesignItem.openGroup("Insert");
318
+ if (designItems) {
319
+ for (let di of designItems) {
320
+ this.instanceServiceContainer.undoService.execute(new InsertAction(this.rootDesignItem, this.rootDesignItem.childCount, di));
321
+ }
322
+ const intializationService = this.serviceContainer.intializationService;
323
+ if (intializationService) {
324
+ for (let di of designItems)
325
+ intializationService.init(di);
326
+ }
327
+ this.instanceServiceContainer.selectionService.setSelectedElements(designItems);
328
+ }
329
+ grp.commit();
330
+ this.snapLines.clearSnaplines();
331
+ }
332
+ handleDeleteCommand() {
333
+ let items = this.instanceServiceContainer.selectionService.selectedElements;
334
+ this.instanceServiceContainer.undoService.execute(new DeleteAction(items));
335
+ this.instanceServiceContainer.selectionService.setSelectedElements(null);
336
+ }
337
+ initialize(serviceContainer) {
338
+ this.serviceContainer = serviceContainer;
339
+ this.instanceServiceContainer = new InstanceServiceContainer(this);
340
+ this.instanceServiceContainer.register("undoService", new UndoService(this));
341
+ this.instanceServiceContainer.register("selectionService", new SelectionService);
342
+ this.rootDesignItem = DesignItem.GetOrCreateDesignItem(this._canvas, this.serviceContainer, this.instanceServiceContainer);
343
+ this.instanceServiceContainer.register("contentService", new ContentService(this.rootDesignItem));
344
+ this.extensionManager = new ExtensionManager(this);
345
+ this.overlayLayer = new OverlayLayerView(serviceContainer);
346
+ this.overlayLayer.style.pointerEvents = 'none';
347
+ this._canvasContainer.appendChild(this.overlayLayer);
348
+ this.snapLines = new Snaplines(this.overlayLayer);
349
+ this.snapLines.initialize(this.rootDesignItem);
350
+ if (this.serviceContainer.designerPointerExtensions)
351
+ for (let pe of this.serviceContainer.designerPointerExtensions) {
352
+ if (!this._pointerextensions)
353
+ this._pointerextensions = [];
354
+ this._pointerextensions.push(pe.getExtension(this));
355
+ }
356
+ if (this.children) {
357
+ let children = this.children;
358
+ if (this.children.length == 1 && this.children[0] instanceof HTMLSlotElement) {
359
+ children = this.children[0].assignedElements();
360
+ }
361
+ const parser = this.serviceContainer.getLastServiceWhere('htmlParserService', x => x.constructor == DefaultHtmlParserService);
362
+ this.addDesignItems(parser.createDesignItems(children, this.serviceContainer, this.instanceServiceContainer));
363
+ }
364
+ }
365
+ elementFromPoint(x, y) {
366
+ this.clickOverlay.style.pointerEvents = 'none';
367
+ //@ts-ignore
368
+ let element = this.shadowRoot.elementFromPoint(x, y);
369
+ if (element === this.clickOverlay)
370
+ element = this._canvas;
371
+ this.clickOverlay.style.pointerEvents = 'auto';
372
+ return element;
373
+ }
374
+ connectedCallback() {
375
+ if (!this._firstConnect) {
376
+ this._firstConnect = true;
377
+ this.clickOverlay.addEventListener(EventNames.PointerDown, this._pointerEventHandlerBound);
378
+ this.clickOverlay.addEventListener(EventNames.PointerMove, this._pointerEventHandlerBound);
379
+ this.clickOverlay.addEventListener(EventNames.PointerUp, this._pointerEventHandlerBound);
380
+ this.clickOverlay.addEventListener(EventNames.DragEnter, event => this._onDragEnter(event));
381
+ this.clickOverlay.addEventListener(EventNames.DragLeave, event => this._onDragLeave(event));
382
+ this.clickOverlay.addEventListener(EventNames.DragOver, event => this._onDragOver(event));
383
+ this.clickOverlay.addEventListener(EventNames.Drop, event => this._onDrop(event));
384
+ this.clickOverlay.addEventListener(EventNames.KeyDown, this._onKeyDownBound, true);
385
+ this.clickOverlay.addEventListener(EventNames.KeyUp, this._onKeyUpBound, true);
386
+ this.clickOverlay.addEventListener(EventNames.DblClick, this._onDblClickBound, true);
387
+ }
388
+ }
389
+ _zoomFactorChanged() {
390
+ //a@ts-ignore
391
+ //this._canvasContainer.style.zoom = <any>this._zoomFactor;
392
+ //this._canvasContainer.style.transform = 'scale(' + this._zoomFactor+') translate(' + this._translate.x + ', '+this._translate.y+')';
393
+ //this._canvasContainer.style.transformOrigin = '0 0';
394
+ this._canvasContainer.style.bottom = this._outercanvas2.offsetHeight >= this._canvasContainer.offsetHeight ? '0' : '';
395
+ this._canvasContainer.style.right = this._outercanvas2.offsetWidth >= this._canvasContainer.offsetWidth ? '0' : '';
396
+ this._updateTransform();
397
+ this.onZoomFactorChanged.emit(this._zoomFactor);
398
+ }
399
+ _updateTransform() {
400
+ this._scaleFactor = this._zoomFactor;
401
+ 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)';
402
+ this._canvasContainer.style.transformOrigin = '0 0';
403
+ this.snapLines.clearSnaplines();
404
+ }
405
+ setDesignItems(designItems) {
406
+ this._fillCalculationrects();
407
+ this.instanceServiceContainer.undoService.clear();
408
+ this.overlayLayer.removeAllOverlays();
409
+ DomHelper.removeAllChildnodes(this.overlayLayer);
410
+ this.rootDesignItem.clearChildren();
411
+ this.addDesignItems(designItems);
412
+ this.instanceServiceContainer.contentService.onContentChanged.emit({ changeType: 'parsed' });
413
+ }
414
+ addDesignItems(designItems) {
415
+ if (designItems) {
416
+ for (let di of designItems) {
417
+ this.rootDesignItem._insertChildInternal(di);
418
+ }
419
+ }
420
+ const intializationService = this.serviceContainer.intializationService;
421
+ if (intializationService) {
422
+ for (let di of designItems)
423
+ intializationService.init(di);
424
+ }
425
+ this.snapLines.clearSnaplines();
426
+ }
427
+ _onDragEnter(event) {
428
+ this._fillCalculationrects();
429
+ event.preventDefault();
430
+ const hasTransferDataBindingObject = event.dataTransfer.types.indexOf(dragDropFormatNameBindingObject) >= 0;
431
+ if (hasTransferDataBindingObject) {
432
+ const ddService = this.serviceContainer.bindableObjectDragDropService;
433
+ if (ddService) {
434
+ const effect = ddService.dragEnter(this, event);
435
+ event.dataTransfer.dropEffect = effect;
436
+ }
437
+ }
438
+ }
439
+ _onDragLeave(event) {
440
+ this._fillCalculationrects();
441
+ event.preventDefault();
442
+ this._canvas.classList.remove('dragFileActive');
443
+ const hasTransferDataBindingObject = event.dataTransfer.types.indexOf(dragDropFormatNameBindingObject) >= 0;
444
+ if (hasTransferDataBindingObject) {
445
+ const ddService = this.serviceContainer.bindableObjectDragDropService;
446
+ if (ddService) {
447
+ const effect = ddService.dragLeave(this, event);
448
+ event.dataTransfer.dropEffect = effect;
449
+ }
450
+ }
451
+ }
452
+ _onDragOver(event) {
453
+ event.preventDefault();
454
+ /*if (this.alignOnSnap) {
455
+ this.snapLines.calculateSnaplines(this.instanceServiceContainer.selectionService.selectedElements);
456
+ //TODO: fix this following code...
457
+ const currentPoint = this.getDesignerMousepoint(event);
458
+ let containerService = this.serviceContainer.getLastServiceWhere('containerService', x => x.serviceForContainer(this.rootDesignItem))
459
+ containerService.finishPlace(this, this.rootDesignItem, this._initialPoint, currentPoint, this.instanceServiceContainer.selectionService.selectedElements);
460
+ }*/
461
+ this._fillCalculationrects();
462
+ if (event.dataTransfer.types.length > 0 && event.dataTransfer.types[0] == 'Files') {
463
+ const ddService = this.serviceContainer.dragDropService;
464
+ if (ddService) {
465
+ const effect = ddService.dragOver(event);
466
+ event.dataTransfer.dropEffect = effect;
467
+ if (effect !== 'none')
468
+ this._canvas.classList.add('dragFileActive');
469
+ }
470
+ }
471
+ const hasTransferDataBindingObject = event.dataTransfer.types.indexOf(dragDropFormatNameBindingObject) >= 0;
472
+ if (hasTransferDataBindingObject) {
473
+ const ddService = this.serviceContainer.bindableObjectDragDropService;
474
+ if (ddService) {
475
+ const effect = ddService.dragOver(this, event);
476
+ event.dataTransfer.dropEffect = effect;
477
+ }
478
+ }
479
+ }
480
+ async _onDrop(event) {
481
+ event.preventDefault();
482
+ this._canvas.classList.remove('dragFileActive');
483
+ this._fillCalculationrects();
484
+ if (event.dataTransfer.files?.length > 0) {
485
+ const ddService = this.serviceContainer.dragDropService;
486
+ if (ddService) {
487
+ ddService.drop(this, event);
488
+ }
489
+ }
490
+ else {
491
+ const transferDataBindingObject = event.dataTransfer.getData(dragDropFormatNameBindingObject);
492
+ if (transferDataBindingObject) {
493
+ const bo = JSON.parse(transferDataBindingObject);
494
+ const ddService = this.serviceContainer.bindableObjectDragDropService;
495
+ if (ddService) {
496
+ const effect = ddService.drop(this, event, bo);
497
+ event.dataTransfer.dropEffect = effect;
498
+ }
499
+ }
500
+ else {
501
+ this._fillCalculationrects();
502
+ const position = this.getNormalizedEventCoordinates(event);
503
+ const transferData = event.dataTransfer.getData(dragDropFormatNameElementDefinition);
504
+ const elementDefinition = JSON.parse(transferData);
505
+ const di = await this.serviceContainer.forSomeServicesTillResult("instanceService", (service) => service.getElement(elementDefinition, this.serviceContainer, this.instanceServiceContainer));
506
+ const grp = di.openGroup("Insert");
507
+ di.setStyle('position', 'absolute');
508
+ di.setStyle('left', position.x + 'px');
509
+ di.setStyle('top', position.y + 'px');
510
+ this.instanceServiceContainer.undoService.execute(new InsertAction(this.rootDesignItem, this.rootDesignItem.childCount, di));
511
+ grp.commit();
512
+ requestAnimationFrame(() => this.instanceServiceContainer.selectionService.setSelectedElements([di]));
513
+ }
514
+ }
515
+ }
516
+ showDesignItemContextMenu(designItem, event) {
517
+ this._currentContextMenu?.close();
518
+ const mnuItems = [];
519
+ for (let cme of this.serviceContainer.designerContextMenuExtensions) {
520
+ if (cme.shouldProvideContextmenu(event, this, designItem, 'designer')) {
521
+ mnuItems.push(...cme.provideContextMenuItems(event, this, designItem));
522
+ }
523
+ }
524
+ this._currentContextMenu = ContextMenuHelper.showContextMenu(null, event, null, mnuItems);
525
+ return this._currentContextMenu;
526
+ }
527
+ _onDblClick(event) {
528
+ event.preventDefault();
529
+ this.extensionManager.applyExtension(this.instanceServiceContainer.selectionService.primarySelection, ExtensionType.Doubleclick);
530
+ }
531
+ onKeyUp(event) {
532
+ if (event.composedPath().indexOf(this.eatEvents) >= 0)
533
+ return;
534
+ event.preventDefault();
535
+ }
536
+ onKeyDown(event) {
537
+ if (event.composedPath().indexOf(this.eatEvents) >= 0)
538
+ return;
539
+ if ((event.ctrlKey || event.metaKey) && event.key === 'z' && !event.shiftKey)
540
+ this.executeCommand({ type: CommandType.undo });
541
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'z' && event.shiftKey)
542
+ this.executeCommand({ type: CommandType.redo });
543
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'y')
544
+ this.executeCommand({ type: CommandType.redo });
545
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'a')
546
+ this.executeCommand({ type: CommandType.selectAll });
547
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'c')
548
+ this.executeCommand({ type: CommandType.copy });
549
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'v')
550
+ this.executeCommand({ type: CommandType.paste });
551
+ else if ((event.ctrlKey || event.metaKey) && event.key === 'x')
552
+ this.executeCommand({ type: CommandType.cut });
553
+ else {
554
+ let primarySelection = this.instanceServiceContainer.selectionService.primarySelection;
555
+ if (!primarySelection) {
556
+ return;
557
+ }
558
+ let moveOffset = 1;
559
+ if (event.shiftKey)
560
+ moveOffset = 10;
561
+ switch (event.key) {
562
+ case 'Delete':
563
+ case 'Backspace':
564
+ this.executeCommand({ type: CommandType.delete });
565
+ break;
566
+ case 'ArrowUp':
567
+ {
568
+ this.instanceServiceContainer.selectionService.selectedElements.forEach(x => x.setStyle('top', parseInt(x.element.style.top) - moveOffset + 'px'));
569
+ this.extensionManager.refreshExtensions(this.instanceServiceContainer.selectionService.selectedElements);
570
+ }
571
+ break;
572
+ case 'ArrowDown':
573
+ {
574
+ this.instanceServiceContainer.selectionService.selectedElements.forEach(x => x.setStyle('top', parseInt(x.element.style.top) + moveOffset + 'px'));
575
+ this.extensionManager.refreshExtensions(this.instanceServiceContainer.selectionService.selectedElements);
576
+ }
577
+ break;
578
+ case 'ArrowLeft':
579
+ {
580
+ this.instanceServiceContainer.selectionService.selectedElements.forEach(x => x.setStyle('left', parseInt(x.element.style.left) - moveOffset + 'px'));
581
+ this.extensionManager.refreshExtensions(this.instanceServiceContainer.selectionService.selectedElements);
582
+ }
583
+ break;
584
+ case 'ArrowRight':
585
+ {
586
+ this.instanceServiceContainer.selectionService.selectedElements.forEach(x => x.setStyle('left', parseInt(x.element.style.left) + moveOffset + 'px'));
587
+ this.extensionManager.refreshExtensions(this.instanceServiceContainer.selectionService.selectedElements);
588
+ }
589
+ break;
590
+ }
591
+ }
592
+ event.preventDefault();
593
+ }
594
+ getNormalizedEventCoordinates(event) {
595
+ const offsetOfOuterX = (event.clientX - this.outerRect.x) / this.zoomFactor;
596
+ const offsetOfCanvasX = this.containerBoundingRect.x - this.outerRect.x;
597
+ const offsetOfOuterY = (event.clientY - this.outerRect.y) / this.zoomFactor;
598
+ const offsetOfCanvasY = this.containerBoundingRect.y - this.outerRect.y;
599
+ return {
600
+ x: offsetOfOuterX - offsetOfCanvasX / this.zoomFactor,
601
+ y: offsetOfOuterY - offsetOfCanvasY / this.zoomFactor
602
+ };
603
+ }
604
+ convertEventToViewPortCoordinates(point) {
605
+ const offsetOfCanvasX = this.containerBoundingRect.x - this.outerRect.x;
606
+ const offsetOfCanvasY = this.containerBoundingRect.y - this.outerRect.y;
607
+ return {
608
+ x: (point.x + offsetOfCanvasX / this.zoomFactor) * this.zoomFactor,
609
+ y: (point.y + offsetOfCanvasY / this.zoomFactor) * this.zoomFactor
610
+ };
611
+ }
612
+ getViewportCoordinates(event) {
613
+ return {
614
+ x: (event.clientX - this.outerRect.x),
615
+ y: (event.clientY - this.outerRect.y)
616
+ };
617
+ }
618
+ getNormalizedElementCoordinates(element) {
619
+ const targetRect = element.getBoundingClientRect();
620
+ return { x: (targetRect.x - this.containerBoundingRect.x) / this.scaleFactor, y: (targetRect.y - this.containerBoundingRect.y) / this.scaleFactor, width: targetRect.width / this.scaleFactor, height: targetRect.height / this.scaleFactor };
621
+ }
622
+ getNormalizedOffsetInElement(event, element) {
623
+ const normEvt = this.getNormalizedEventCoordinates(event);
624
+ const normEl = this.getNormalizedElementCoordinates(element);
625
+ return { x: normEvt.x - normEl.x, y: normEvt.y - normEl.y };
626
+ }
627
+ getElementAtPoint(point, ignoreElementCallback) {
628
+ let backupPEventsMap = new Map();
629
+ let currentElement = this.elementFromPoint(point.x, point.y);
630
+ this.clickOverlay.style.pointerEvents = 'none';
631
+ let lastElement = null;
632
+ try {
633
+ while (currentElement != null) {
634
+ if (currentElement == lastElement) {
635
+ currentElement = null;
636
+ break;
637
+ }
638
+ lastElement = currentElement;
639
+ if (currentElement == this._canvas) {
640
+ break;
641
+ }
642
+ if (currentElement === this.overlayLayer) {
643
+ currentElement = this.overlayLayer.elementFromPoint(point.x, point.y);
644
+ break;
645
+ }
646
+ if (!ignoreElementCallback || !ignoreElementCallback(currentElement)) {
647
+ break;
648
+ }
649
+ backupPEventsMap.set(currentElement, currentElement.style.pointerEvents);
650
+ currentElement.style.pointerEvents = 'none';
651
+ if (currentElement.shadowRoot) {
652
+ for (let e of currentElement.shadowRoot.querySelectorAll('*')) {
653
+ if (!backupPEventsMap.has(e)) {
654
+ if (e.style)
655
+ backupPEventsMap.set(e, e.style.pointerEvents);
656
+ e.style.pointerEvents = 'none';
657
+ }
658
+ }
659
+ }
660
+ currentElement = this.elementFromPoint(point.x, point.y);
661
+ }
662
+ }
663
+ finally {
664
+ for (let e of backupPEventsMap.entries()) {
665
+ e[0].style.pointerEvents = e[1];
666
+ }
667
+ this.clickOverlay.style.pointerEvents = 'auto';
668
+ }
669
+ return currentElement;
670
+ }
671
+ _rect;
672
+ _pointerEventHandler(event, forceElement = null) {
673
+ this._fillCalculationrects();
674
+ if (this._pointerextensions) {
675
+ for (let pe of this._pointerextensions)
676
+ pe.refresh(event);
677
+ }
678
+ if (event.composedPath().indexOf(this.eatEvents) >= 0)
679
+ return;
680
+ let currentElement;
681
+ if (forceElement)
682
+ currentElement = forceElement;
683
+ else {
684
+ currentElement = this.serviceContainer.elementAtPointService.getElementAtPoint(this, { x: event.x, y: event.y });
685
+ if (currentElement === this._outercanvas2 || currentElement === this.overlayLayer || !currentElement) {
686
+ currentElement = this._canvas;
687
+ }
688
+ } /* else {
689
+ if (!DesignerCanvas.hasOrIsParent(currentElement, this._canvas))
690
+ return;
691
+ }*/
692
+ if (this._lastPointerDownHandler) {
693
+ try {
694
+ this._lastPointerDownHandler(event);
695
+ }
696
+ catch { }
697
+ if (event.type == EventNames.PointerUp)
698
+ this._lastPointerDownHandler = null;
699
+ return;
700
+ }
701
+ if (currentElement instanceof SVGGraphicsElement && currentElement?.ownerSVGElement?.parentNode?.host == this.overlayLayer) {
702
+ this.clickOverlay.style.cursor = getComputedStyle(currentElement).cursor;
703
+ if (event.type == EventNames.PointerDown) {
704
+ this._lastPointerDownHandler = (evt) => currentElement.dispatchEvent(new evt.constructor(evt.type, evt));
705
+ }
706
+ currentElement.dispatchEvent(new event.constructor(event.type, event));
707
+ return;
708
+ }
709
+ this.clickOverlay.style.cursor = this._canvas.style.cursor;
710
+ //TODO: remove duplication when tool refactoring starts
711
+ //this._fillCalculationrects();
712
+ const currentDesignItem = DesignItem.GetOrCreateDesignItem(currentElement, this.serviceContainer, this.instanceServiceContainer);
713
+ if (this._lastHoverDesignItem != currentDesignItem) {
714
+ if (this._lastHoverDesignItem)
715
+ this.extensionManager.removeExtension(this._lastHoverDesignItem, ExtensionType.MouseOver);
716
+ if (currentDesignItem && currentDesignItem != this.rootDesignItem && DomHelper.getHost(currentElement.parentNode) !== this.overlayLayer)
717
+ this.extensionManager.applyExtension(currentDesignItem, ExtensionType.MouseOver);
718
+ this._lastHoverDesignItem = currentDesignItem;
719
+ }
720
+ if (currentElement && DomHelper.getHost(currentElement.parentNode) === this.overlayLayer) {
721
+ if (this.eatEvents)
722
+ return;
723
+ currentElement = this.instanceServiceContainer.selectionService.primarySelection?.element ?? this._canvas;
724
+ }
725
+ this._fillCalculationrects();
726
+ let tool = this.serviceContainer.globalContext.tool ?? this.serviceContainer.designerTools.get(NamedTools.Pointer);
727
+ this._canvas.style.cursor = tool.cursor;
728
+ if (event.type == EventNames.PointerDown) {
729
+ this._lastPointerDownHandler = (evt) => tool.pointerEventHandler(this, evt, currentElement);
730
+ }
731
+ tool.pointerEventHandler(this, event, currentElement);
732
+ }
733
+ removeCurrentPointerEventHandler() {
734
+ this._lastPointerDownHandler = null;
735
+ }
736
+ _fillCalculationrects() {
737
+ this.containerBoundingRect = this._canvasContainer.getBoundingClientRect();
738
+ this.outerRect = this._outercanvas2.getBoundingClientRect();
739
+ }
740
+ addOverlay(element, overlayLayer = OverlayLayer.Normal) {
741
+ this.overlayLayer.addOverlay(element, overlayLayer);
742
+ }
743
+ removeOverlay(element) {
744
+ this.overlayLayer.removeOverlay(element);
745
+ }
746
+ getItemsBelowMouse(event) {
747
+ const lstEl = [];
748
+ //search for containers below mouse cursor.
749
+ //to do this, we need to disable pointer events for each in a loop and search wich element is there
750
+ let backupPEventsMap = new Map();
751
+ this.clickOverlay.style.pointerEvents = 'none';
752
+ try {
753
+ let el = this.elementFromPoint(event.x, event.y);
754
+ backupPEventsMap.set(el, el.style.pointerEvents);
755
+ el.style.pointerEvents = 'none';
756
+ if (el !== this.rootDesignItem.element) {
757
+ while (el != null) {
758
+ if (el === this.rootDesignItem.element)
759
+ break;
760
+ if (el !== this.overlayLayer && el.parentElement !== this.overlayLayer && el.getRootNode() === this.shadowRoot)
761
+ lstEl.push(el);
762
+ if (!backupPEventsMap.has(el))
763
+ backupPEventsMap.set(el, el.style.pointerEvents);
764
+ el.style.pointerEvents = 'none';
765
+ const oldEl = el;
766
+ el = this.elementFromPoint(event.x, event.y);
767
+ if (oldEl === el)
768
+ break;
769
+ }
770
+ }
771
+ }
772
+ finally {
773
+ for (let e of backupPEventsMap.entries()) {
774
+ e[0].style.pointerEvents = e[1];
775
+ }
776
+ this.clickOverlay.style.pointerEvents = 'auto';
777
+ }
778
+ return lstEl;
779
+ }
780
+ zoomOntoRectangle(startPoint, endPoint) {
781
+ let rect = {
782
+ x: startPoint.x < endPoint.x ? startPoint.x : endPoint.x,
783
+ y: startPoint.y < endPoint.y ? startPoint.y : endPoint.y,
784
+ width: Math.abs(startPoint.x - endPoint.x),
785
+ height: Math.abs(startPoint.y - endPoint.y),
786
+ };
787
+ let zFactorWidth = this.outerRect.width / rect.width;
788
+ let zFactorHeight = this.outerRect.height / rect.height;
789
+ let zoomFactor = zFactorWidth >= zFactorHeight ? zFactorHeight : zFactorWidth;
790
+ let rectCenter = {
791
+ x: (rect.width / 2) + rect.x,
792
+ y: (rect.height / 2) + rect.y
793
+ };
794
+ this.zoomTowardsPoint(rectCenter, zoomFactor);
795
+ }
796
+ zoomTowardsPoint(canvasPoint, newZoom) {
797
+ const scaleChange = newZoom / this.zoomFactor;
798
+ const point = this.convertEventToViewPortCoordinates(canvasPoint);
799
+ const newCanvasOffset = {
800
+ x: -(point.x * (scaleChange - 1) + scaleChange * -this.canvasOffsetUnzoomed.x),
801
+ y: -(point.y * (scaleChange - 1) + scaleChange * -this.canvasOffsetUnzoomed.y)
802
+ };
803
+ this.zoomFactor = newZoom;
804
+ this.canvasOffsetUnzoomed = newCanvasOffset;
805
+ }
806
+ }
807
+ customElements.define('node-projects-designer-canvas', DesignerCanvas);