@node-projects/web-component-designer 0.1.348 → 0.1.351

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 (135) hide show
  1. package/dist/elements/documentContainer.js +4 -0
  2. package/dist/elements/documentContainer.js.map +1 -1
  3. package/dist/elements/helper/CssCombiner.d.ts +9 -0
  4. package/dist/elements/helper/CssCombiner.js +147 -7
  5. package/dist/elements/helper/CssCombiner.js.map +1 -1
  6. package/dist/elements/helper/Helper.js +3 -1
  7. package/dist/elements/helper/Helper.js.map +1 -1
  8. package/dist/elements/helper/LayoutHelper.js +44 -4
  9. package/dist/elements/helper/LayoutHelper.js.map +1 -1
  10. package/dist/elements/helper/PathDataPolyfill.d.ts +1 -1
  11. package/dist/elements/helper/PathDataPolyfill.js +11 -49
  12. package/dist/elements/helper/PathDataPolyfill.js.map +1 -1
  13. package/dist/elements/helper/PopupHelper.d.ts +1 -0
  14. package/dist/elements/helper/PopupHelper.js +51 -0
  15. package/dist/elements/helper/PopupHelper.js.map +1 -0
  16. package/dist/elements/helper/QuadEdgeHandleHelper.d.ts +5 -0
  17. package/dist/elements/helper/QuadEdgeHandleHelper.js +42 -0
  18. package/dist/elements/helper/QuadEdgeHandleHelper.js.map +1 -0
  19. package/dist/elements/helper/SelectionHelper.d.ts +2 -2
  20. package/dist/elements/helper/SelectionHelper.js +22 -9
  21. package/dist/elements/helper/SelectionHelper.js.map +1 -1
  22. package/dist/elements/item/DesignItem.d.ts +1 -1
  23. package/dist/elements/services/DefaultServiceBootstrap.js +8 -3
  24. package/dist/elements/services/DefaultServiceBootstrap.js.map +1 -1
  25. package/dist/elements/services/GlobalContext.js +1 -1
  26. package/dist/elements/services/GlobalContext.js.map +1 -1
  27. package/dist/elements/services/InstanceServiceContainer.d.ts +2 -0
  28. package/dist/elements/services/InstanceServiceContainer.js +1 -0
  29. package/dist/elements/services/InstanceServiceContainer.js.map +1 -1
  30. package/dist/elements/services/ServiceContainer.d.ts +2 -0
  31. package/dist/elements/services/ServiceContainer.js.map +1 -1
  32. package/dist/elements/services/collaborationService/CollaborationNodeIndex.d.ts +4 -0
  33. package/dist/elements/services/collaborationService/CollaborationNodeIndex.js +46 -0
  34. package/dist/elements/services/collaborationService/CollaborationNodeIndex.js.map +1 -0
  35. package/dist/elements/services/collaborationService/DefaultCollaborationService.d.ts +45 -0
  36. package/dist/elements/services/collaborationService/DefaultCollaborationService.js +298 -0
  37. package/dist/elements/services/collaborationService/DefaultCollaborationService.js.map +1 -0
  38. package/dist/elements/services/collaborationService/ICollaborationService.d.ts +102 -0
  39. package/dist/elements/services/collaborationService/ICollaborationService.js +2 -0
  40. package/dist/elements/services/collaborationService/ICollaborationService.js.map +1 -0
  41. package/dist/elements/services/collaborationService/WebRtcTabCollaborationTransport.d.ts +95 -0
  42. package/dist/elements/services/collaborationService/WebRtcTabCollaborationTransport.js +571 -0
  43. package/dist/elements/services/collaborationService/WebRtcTabCollaborationTransport.js.map +1 -0
  44. package/dist/elements/services/copyPasteService/CopyPasteAsJsonService.d.ts +3 -0
  45. package/dist/elements/services/copyPasteService/CopyPasteAsJsonService.js +41 -27
  46. package/dist/elements/services/copyPasteService/CopyPasteAsJsonService.js.map +1 -1
  47. package/dist/elements/services/copyPasteService/CopyPasteService.js +1 -1
  48. package/dist/elements/services/copyPasteService/CopyPasteService.js.map +1 -1
  49. package/dist/elements/services/copyPasteService/PasteFormatSnapshot.d.ts +18 -0
  50. package/dist/elements/services/copyPasteService/PasteFormatSnapshot.js +87 -0
  51. package/dist/elements/services/copyPasteService/PasteFormatSnapshot.js.map +1 -0
  52. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService.d.ts +4 -2
  53. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService.js +29 -9
  54. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService.js.map +1 -1
  55. package/dist/elements/services/htmlWriterService/HtmlWriterService.d.ts +6 -2
  56. package/dist/elements/services/htmlWriterService/HtmlWriterService.js +48 -22
  57. package/dist/elements/services/htmlWriterService/HtmlWriterService.js.map +1 -1
  58. package/dist/elements/services/placementService/AbsolutePlacementService.js +1 -1
  59. package/dist/elements/services/placementService/AbsolutePlacementService.js.map +1 -1
  60. package/dist/elements/services/placementService/DefaultPlacementService.js +1 -1
  61. package/dist/elements/services/placementService/DefaultPlacementService.js.map +1 -1
  62. package/dist/elements/services/propertiesService/IEditorTypesService.d.ts +1 -1
  63. package/dist/elements/services/undoService/ChangeGroup.d.ts +3 -1
  64. package/dist/elements/services/undoService/ChangeGroup.js +3 -1
  65. package/dist/elements/services/undoService/ChangeGroup.js.map +1 -1
  66. package/dist/elements/services/undoService/IUndoChangeEvent.d.ts +8 -0
  67. package/dist/elements/services/undoService/IUndoChangeEvent.js +2 -0
  68. package/dist/elements/services/undoService/IUndoChangeEvent.js.map +1 -0
  69. package/dist/elements/services/undoService/IUndoService.d.ts +7 -4
  70. package/dist/elements/services/undoService/UndoService.d.ts +8 -4
  71. package/dist/elements/services/undoService/UndoService.js +14 -5
  72. package/dist/elements/services/undoService/UndoService.js.map +1 -1
  73. package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
  74. package/dist/elements/widgets/designerView/designerCanvas.js +12 -2
  75. package/dist/elements/widgets/designerView/designerCanvas.js.map +1 -1
  76. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtension.d.ts +11 -0
  77. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtension.js +72 -0
  78. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtension.js.map +1 -0
  79. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtensionProvider.d.ts +10 -0
  80. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtensionProvider.js +22 -0
  81. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtensionProvider.js.map +1 -0
  82. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtension.d.ts +10 -0
  83. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtension.js +116 -0
  84. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtension.js.map +1 -0
  85. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtensionProvider.d.ts +10 -0
  86. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtensionProvider.js +31 -0
  87. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtensionProvider.js.map +1 -0
  88. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.d.ts +30 -2
  89. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +390 -9
  90. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js.map +1 -1
  91. package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +1 -0
  92. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +10 -0
  93. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js.map +1 -1
  94. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtension.d.ts +33 -0
  95. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtension.js +337 -0
  96. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtension.js.map +1 -0
  97. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtensionProvider.d.ts +10 -0
  98. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtensionProvider.js +22 -0
  99. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtensionProvider.js.map +1 -0
  100. package/dist/elements/widgets/designerView/extensions/QuadEdgeHandleHelper.d.ts +5 -0
  101. package/dist/elements/widgets/designerView/extensions/QuadEdgeHandleHelper.js +42 -0
  102. package/dist/elements/widgets/designerView/extensions/QuadEdgeHandleHelper.js.map +1 -0
  103. package/dist/elements/widgets/designerView/extensions/RotateExtension.d.ts +3 -2
  104. package/dist/elements/widgets/designerView/extensions/RotateExtension.js +46 -13
  105. package/dist/elements/widgets/designerView/extensions/RotateExtension.js.map +1 -1
  106. package/dist/elements/widgets/designerView/extensions/SkewExtension.d.ts +30 -0
  107. package/dist/elements/widgets/designerView/extensions/SkewExtension.js +291 -0
  108. package/dist/elements/widgets/designerView/extensions/SkewExtension.js.map +1 -0
  109. package/dist/elements/widgets/designerView/extensions/SkewExtensionProvider.d.ts +10 -0
  110. package/dist/elements/widgets/designerView/extensions/SkewExtensionProvider.js +20 -0
  111. package/dist/elements/widgets/designerView/extensions/SkewExtensionProvider.js.map +1 -0
  112. package/dist/elements/widgets/designerView/extensions/contextMenu/CollaborationCommentsContextMenu.d.ts +9 -0
  113. package/dist/elements/widgets/designerView/extensions/contextMenu/CollaborationCommentsContextMenu.js +72 -0
  114. package/dist/elements/widgets/designerView/extensions/contextMenu/CollaborationCommentsContextMenu.js.map +1 -0
  115. package/dist/elements/widgets/designerView/extensions/contextMenu/PasteFormatContextMenu.d.ts +11 -0
  116. package/dist/elements/widgets/designerView/extensions/contextMenu/PasteFormatContextMenu.js +62 -0
  117. package/dist/elements/widgets/designerView/extensions/contextMenu/PasteFormatContextMenu.js.map +1 -0
  118. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtension.d.ts +20 -0
  119. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtension.js +412 -19
  120. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtension.js.map +1 -1
  121. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtensionProvider.d.ts +1 -0
  122. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtensionProvider.js +16 -0
  123. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtensionProvider.js.map +1 -1
  124. package/dist/elements/widgets/designerView/tools/DrawPathTool.d.ts +14 -6
  125. package/dist/elements/widgets/designerView/tools/DrawPathTool.js +57 -39
  126. package/dist/elements/widgets/designerView/tools/DrawPathTool.js.map +1 -1
  127. package/dist/elements/widgets/designerView/tools/ITool.d.ts +1 -1
  128. package/dist/index-min.js +13 -6
  129. package/dist/index-min.js.map +4 -4
  130. package/dist/index.d.ts +25 -2
  131. package/dist/index.js +23 -2
  132. package/dist/index.js.map +1 -1
  133. package/package.json +1 -1
  134. package/tests/CssCombiner.test.ts +340 -0
  135. package/tests/PasteFormatSnapshot.test.ts +92 -0
@@ -7,51 +7,65 @@ export class CopyPasteAsJsonService {
7
7
  const items = filterChildPlaceItems(designItems);
8
8
  const copyText = DomConverter.ConvertToString(items, false);
9
9
  const positions = items.map(x => x.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(x.element));
10
- let data = { html: copyText, positions: positions };
11
- copyToClipboard([["application/json", JSON.stringify(data)]]);
10
+ const data = { html: copyText, positions: positions };
11
+ copyToClipboard([["text/html", copyText], ["text/plain", copyText], ["application/json", JSON.stringify(data)]]);
12
12
  }
13
13
  async getPasteItems(serviceContainer, instanceServiceContainer) {
14
- let data = '';
14
+ const pasteData = await this._readClipboardPasteData();
15
+ if (pasteData.imageData) {
16
+ let di = await DesignItem.createDesignItemFromImageBlob(serviceContainer, instanceServiceContainer, pasteData.imageData);
17
+ return [[di]];
18
+ }
19
+ const parserService = serviceContainer.htmlParserService;
20
+ return [await parserService.parse(pasteData.html, serviceContainer, instanceServiceContainer, true), pasteData.positions ?? undefined];
21
+ }
22
+ async _readClipboardPasteData() {
15
23
  let html = '';
16
24
  let positions = null;
25
+ let imageData = null;
17
26
  const items = await getFromClipboard();
18
27
  if (items != null) {
19
- try {
20
- data = await (await items[0].getType('text/html'))?.text();
28
+ const clipboardItem = items[0];
29
+ const jsonData = await this._tryReadClipboardType(clipboardItem, 'application/json');
30
+ if (jsonData) {
31
+ const parsedJson = this._parseJsonClipboardData(jsonData);
32
+ html = parsedJson?.html ?? '';
33
+ positions = parsedJson?.positions ?? null;
21
34
  }
22
- catch { }
23
- if (!data)
24
- try {
25
- data = await (await items[0].getType('text/plain'))?.text();
26
- }
27
- catch { }
28
- try {
29
- data = await (await items[0].getType('application/json'))?.text();
35
+ if (!html) {
36
+ html = await this._tryReadClipboardType(clipboardItem, 'text/html') ?? '';
37
+ }
38
+ if (!html) {
39
+ html = await this._tryReadClipboardType(clipboardItem, 'text/plain') ?? '';
30
40
  }
31
- catch { }
32
41
  try {
33
- let imageFmt = items[0].types.find(x => x.startsWith("image/"));
42
+ let imageFmt = clipboardItem.types.find(x => x.startsWith("image/"));
34
43
  if (imageFmt) {
35
- let imgData = await items[0].getType(imageFmt);
36
- let di = await DesignItem.createDesignItemFromImageBlob(serviceContainer, instanceServiceContainer, imgData);
37
- return [[di]];
44
+ imageData = await clipboardItem.getType(imageFmt);
38
45
  }
39
46
  }
40
47
  catch { }
41
48
  }
42
49
  else {
43
- data = await getTextFromClipboard();
50
+ html = await getTextFromClipboard();
44
51
  }
45
- if (data.startsWith('{')) {
46
- let dataObj = JSON.parse(data);
47
- html = dataObj.html;
48
- positions = dataObj.positions;
52
+ return { html, positions, imageData };
53
+ }
54
+ _parseJsonClipboardData(data) {
55
+ try {
56
+ return JSON.parse(data);
49
57
  }
50
- else {
51
- html = data;
58
+ catch {
59
+ return null;
60
+ }
61
+ }
62
+ async _tryReadClipboardType(item, type) {
63
+ try {
64
+ return await (await item.getType(type))?.text();
65
+ }
66
+ catch {
67
+ return null;
52
68
  }
53
- const parserService = serviceContainer.htmlParserService;
54
- return [await parserService.parse(html, serviceContainer, instanceServiceContainer, true), positions];
55
69
  }
56
70
  }
57
71
  //# sourceMappingURL=CopyPasteAsJsonService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CopyPasteAsJsonService.js","sourceRoot":"","sources":["../../../../src/elements/services/copyPasteService/CopyPasteAsJsonService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CopyPasteAsJsonService.js","sourceRoot":"","sources":["../../../../src/elements/services/copyPasteService/CopyPasteAsJsonService.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export class CopyPasteService {
30
30
  html = await getTextFromClipboard();
31
31
  }
32
32
  const parserService = serviceContainer.htmlParserService;
33
- return [await parserService.parse(html, serviceContainer, instanceServiceContainer, true), positions];
33
+ return [await parserService.parse(html, serviceContainer, instanceServiceContainer, true), positions ?? undefined];
34
34
  }
35
35
  }
36
36
  //# sourceMappingURL=CopyPasteService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CopyPasteService.js","sourceRoot":"","sources":["../../../../src/elements/services/copyPasteService/CopyPasteService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAK1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAC,SAAS,CAAC,WAA0B;QACxC,MAAM,KAAK,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvH,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,gBAAkC,EAAE,wBAAkD;QACxG,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,SAAS,GAAY,IAAI,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACvC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,IAAI;gBACP,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC;gBACH,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAC9E,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,iBAAiB,CAAC;QACzD,OAAO,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;IACxG,CAAC;CACF"}
1
+ {"version":3,"file":"CopyPasteService.js","sourceRoot":"","sources":["../../../../src/elements/services/copyPasteService/CopyPasteService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAK1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAC,SAAS,CAAC,WAA0B;QACxC,MAAM,KAAK,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvH,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,gBAAkC,EAAE,wBAAkD;QACxG,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,SAAS,GAAmB,IAAI,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACvC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,IAAI;gBACP,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC;gBACH,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAC9E,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,iBAAiB,CAAC;QACzD,OAAO,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;IACrH,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ export declare const pasteFormatKinds: readonly ["all", "border", "background", "text"];
2
+ export type PasteFormatKind = typeof pasteFormatKinds[number];
3
+ export interface IPasteFormatEntry {
4
+ readonly name: string;
5
+ readonly value: string;
6
+ }
7
+ export interface IPasteFormatSnapshot {
8
+ readonly all: readonly IPasteFormatEntry[];
9
+ readonly border: readonly IPasteFormatEntry[];
10
+ readonly background: readonly IPasteFormatEntry[];
11
+ readonly text: readonly IPasteFormatEntry[];
12
+ }
13
+ type StyleArrayLike = Pick<CSSStyleDeclaration, 'getPropertyValue' | 'length'> & ArrayLike<string>;
14
+ type StyleEntries = Iterable<[name: string, value: string]>;
15
+ export declare function createPasteFormatSnapshot(style: StyleArrayLike): IPasteFormatSnapshot;
16
+ export declare function createPasteFormatSnapshotFromEntries(entries: StyleEntries): IPasteFormatSnapshot | null;
17
+ export declare function getPasteFormatEntries(snapshot: IPasteFormatSnapshot, kind: PasteFormatKind): readonly IPasteFormatEntry[];
18
+ export {};
@@ -0,0 +1,87 @@
1
+ import { PropertiesHelper } from "../propertiesService/services/PropertiesHelper.js";
2
+ export const pasteFormatKinds = ['all', 'border', 'background', 'text'];
3
+ const explicitTextProperties = new Set([
4
+ 'color',
5
+ 'caret-color',
6
+ 'line-height',
7
+ 'letter-spacing',
8
+ 'word-spacing',
9
+ 'white-space',
10
+ 'word-break',
11
+ 'overflow-wrap',
12
+ 'hyphens',
13
+ 'tab-size',
14
+ 'direction',
15
+ 'writing-mode',
16
+ 'unicode-bidi'
17
+ ]);
18
+ function isBorderProperty(name) {
19
+ return name.startsWith('border');
20
+ }
21
+ function isBackgroundProperty(name) {
22
+ return name.startsWith('background');
23
+ }
24
+ function isTextProperty(name) {
25
+ return name.startsWith('font')
26
+ || name.startsWith('text')
27
+ || explicitTextProperties.has(name);
28
+ }
29
+ function collectEntries(style, predicate) {
30
+ const entries = [];
31
+ const seen = new Set();
32
+ for (let index = 0; index < style.length; index++) {
33
+ const name = PropertiesHelper.camelToDashCase(style[index]);
34
+ if (!name || seen.has(name) || !predicate(name)) {
35
+ continue;
36
+ }
37
+ const value = style.getPropertyValue(name)?.trim();
38
+ if (!value) {
39
+ continue;
40
+ }
41
+ seen.add(name);
42
+ entries.push({ name, value });
43
+ }
44
+ return entries;
45
+ }
46
+ function createPasteFormatSnapshotFromNormalizedEntries(entries) {
47
+ const border = entries.filter(x => isBorderProperty(x.name));
48
+ const background = entries.filter(x => isBackgroundProperty(x.name));
49
+ const text = entries.filter(x => isTextProperty(x.name));
50
+ const all = [];
51
+ const seen = new Set();
52
+ for (const group of [border, background, text]) {
53
+ for (const entry of group) {
54
+ if (seen.has(entry.name)) {
55
+ continue;
56
+ }
57
+ seen.add(entry.name);
58
+ all.push(entry);
59
+ }
60
+ }
61
+ return { all, border, background, text };
62
+ }
63
+ export function createPasteFormatSnapshot(style) {
64
+ const entries = collectEntries(style, () => true);
65
+ return createPasteFormatSnapshotFromNormalizedEntries(entries);
66
+ }
67
+ export function createPasteFormatSnapshotFromEntries(entries) {
68
+ const normalizedEntries = [];
69
+ const seen = new Set();
70
+ for (const [rawName, rawValue] of entries) {
71
+ const name = rawName?.trim().toLowerCase();
72
+ const value = rawValue?.trim();
73
+ if (!name || !value || seen.has(name)) {
74
+ continue;
75
+ }
76
+ seen.add(name);
77
+ normalizedEntries.push({ name, value });
78
+ }
79
+ if (!normalizedEntries.length) {
80
+ return null;
81
+ }
82
+ return createPasteFormatSnapshotFromNormalizedEntries(normalizedEntries);
83
+ }
84
+ export function getPasteFormatEntries(snapshot, kind) {
85
+ return snapshot[kind];
86
+ }
87
+ //# sourceMappingURL=PasteFormatSnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasteFormatSnapshot.js","sourceRoot":"","sources":["../../../../src/elements/services/copyPasteService/PasteFormatSnapshot.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@ import { IHtmlWriterService } from './IHtmlWriterService.js';
3
3
  import { IHtmlWriterOptions } from './IHtmlWriterOptions.js';
4
4
  import { IndentedTextWriter } from '../../helper/IndentedTextWriter.js';
5
5
  declare enum ElementContainerType {
6
- block = 0,
7
- complex = 1
6
+ inline = 0,
7
+ block = 1,
8
+ complex = 2
8
9
  }
9
10
  export declare class FormatingHtmlWriterService implements IHtmlWriterService {
10
11
  options: IHtmlWriterOptions;
@@ -12,6 +13,7 @@ export declare class FormatingHtmlWriterService implements IHtmlWriterService {
12
13
  private writeAttributes;
13
14
  private writeStyles;
14
15
  private _writeTextNode;
16
+ private _normalizeInlineTextContent;
15
17
  private _writeCommentNode;
16
18
  private _writeElementNode;
17
19
  private _writeDesignItemList;
@@ -5,8 +5,9 @@ import { PropertiesHelper } from '../propertiesService/services/PropertiesHelper
5
5
  import { ElementDisplayType, getElementDisplaytype } from '../../helper/ElementHelper.js';
6
6
  var ElementContainerType;
7
7
  (function (ElementContainerType) {
8
- ElementContainerType[ElementContainerType["block"] = 0] = "block";
9
- ElementContainerType[ElementContainerType["complex"] = 1] = "complex";
8
+ ElementContainerType[ElementContainerType["inline"] = 0] = "inline";
9
+ ElementContainerType[ElementContainerType["block"] = 1] = "block";
10
+ ElementContainerType[ElementContainerType["complex"] = 2] = "complex";
10
11
  })(ElementContainerType || (ElementContainerType = {}));
11
12
  // const defaultDisplayNoneContainerDisplayType: ElementContainerType = ElementContainerType.complex;
12
13
  export class FormatingHtmlWriterService {
@@ -52,11 +53,23 @@ export class FormatingHtmlWriterService {
52
53
  }
53
54
  _writeTextNode(writeContext, designItem) {
54
55
  writeContext.lastElementDisplayType = ElementDisplayType.inline;
55
- let content = DomConverter.normalizeContentValue(designItem.content).trim();
56
+ let content = DomConverter.normalizeContentValue(designItem.content);
57
+ if (writeContext.containerDisplayType === ElementContainerType.inline)
58
+ content = this._normalizeInlineTextContent(content);
59
+ else
60
+ content = content.trim();
56
61
  if (content) {
57
62
  writeContext.indentedTextWriter.write(content);
58
63
  }
59
64
  }
65
+ _normalizeInlineTextContent(content) {
66
+ if (!content?.trim())
67
+ return '';
68
+ const hasLeadingWhitespace = /^\s/.test(content);
69
+ const hasTrailingWhitespace = /\s$/.test(content);
70
+ const normalized = content.replaceAll(/[\t\r\n ]+/g, ' ').trim();
71
+ return `${hasLeadingWhitespace ? ' ' : ''}${normalized}${hasTrailingWhitespace ? ' ' : ''}`;
72
+ }
60
73
  _writeCommentNode(writeContext, designItem) {
61
74
  writeContext.indentedTextWriter.write('<!--' + designItem.content + '-->');
62
75
  }
@@ -75,17 +88,19 @@ export class FormatingHtmlWriterService {
75
88
  if (designItem.hasChildren) {
76
89
  const children = designItem.children();
77
90
  contentSingleTextNode = designItem.childCount === 1 && designItem.firstChild.nodeType === NodeType.TextNode;
91
+ let previousContainerDisplayType = writeContext.containerDisplayType;
92
+ writeContext.containerDisplayType = this.getContainerType(designItem.element);
78
93
  if (contentSingleTextNode) {
79
94
  this._writeInternal(writeContext, designItem.firstChild);
80
95
  }
81
96
  else {
82
- let previousContainerDisplayType = writeContext.containerDisplayType;
83
- writeContext.containerDisplayType = this.getContainerType(designItem.element);
84
- writeContext.indentedTextWriter.levelRaise();
97
+ if (writeContext.containerDisplayType !== ElementContainerType.inline)
98
+ writeContext.indentedTextWriter.levelRaise();
85
99
  this._writeDesignItemList(currentElementDisplayType, writeContext, children);
86
- writeContext.indentedTextWriter.levelShrink();
87
- writeContext.containerDisplayType = previousContainerDisplayType;
100
+ if (writeContext.containerDisplayType !== ElementContainerType.inline)
101
+ writeContext.indentedTextWriter.levelShrink();
88
102
  }
103
+ writeContext.containerDisplayType = previousContainerDisplayType;
89
104
  }
90
105
  else if (designItem.hasContent) {
91
106
  writeContext.indentedTextWriter.write(DomConverter.normalizeContentValue(designItem.content));
@@ -106,6 +121,9 @@ export class FormatingHtmlWriterService {
106
121
  if (writeContext.lastElementDisplayType == null) {
107
122
  //first entry, do nothing
108
123
  }
124
+ else if (writeContext.containerDisplayType === ElementContainerType.inline) {
125
+ // Inline containers are whitespace-sensitive. Do not add beautification whitespace.
126
+ }
109
127
  else if (writeContext.containerDisplayType === ElementContainerType.complex)
110
128
  this._writeNewlineAndIntend(writeContext);
111
129
  else if (writeContext.lastElementDisplayType !== ElementDisplayType.inline /*|| currentElementDisplayType !== ElementDisplayType.inline*/)
@@ -130,7 +148,9 @@ export class FormatingHtmlWriterService {
130
148
  }
131
149
  }
132
150
  getContainerType(element) {
133
- const display = window.getComputedStyle(element).display;
151
+ const display = (element.ownerDocument.defaultView ?? window).getComputedStyle(element).display;
152
+ if (display === 'inline')
153
+ return ElementContainerType.inline;
134
154
  if (display === 'block' || display === "inline-block" || display == '')
135
155
  return ElementContainerType.block;
136
156
  return ElementContainerType.complex;
@@ -1 +1 @@
1
- {"version":3,"file":"FormatingHtmlWriterService.js","sourceRoot":"","sources":["../../../../src/elements/services/htmlWriterService/FormatingHtmlWriterService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormatingHtmlWriterService.js","sourceRoot":"","sources":["../../../../src/elements/services/htmlWriterService/FormatingHtmlWriterService.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { IDesignItem } from '../../item/IDesignItem.js';
2
- import { IndentedTextWriter } from '../../helper/IndentedTextWriter.js';
2
+ import { ITextWriter } from '../../helper/ITextWriter.js';
3
3
  import { AbstractHtmlWriterService } from './AbstractHtmlWriterService.js';
4
4
  import { IHtmlWriterOptions } from './IHtmlWriterOptions.js';
5
5
  export declare class HtmlWriterService extends AbstractHtmlWriterService {
@@ -7,7 +7,11 @@ export declare class HtmlWriterService extends AbstractHtmlWriterService {
7
7
  private _conditionalyWriteIndent;
8
8
  private _conditionalyWriteIndentBefore;
9
9
  private _conditionalyWriteNewline;
10
- write(indentedTextWriter: IndentedTextWriter, designItems: IDesignItem[], rootContainerKeepInline: boolean, updatePositions?: boolean): void;
10
+ write(indentedTextWriter: ITextWriter, designItems: IDesignItem[], rootContainerKeepInline: boolean, updatePositions?: boolean): void;
11
11
  private internalWrite;
12
12
  private writeTextNode;
13
+ private _hasInlineParent;
14
+ private _normalizeInlineTextContent;
15
+ private _isInlineContainer;
16
+ private _isInlineElement;
13
17
  }
@@ -6,20 +6,26 @@ export class HtmlWriterService extends AbstractHtmlWriterService {
6
6
  constructor(options) {
7
7
  super(options);
8
8
  }
9
- _conditionalyWriteIndent(indentedTextWriter, designItem) {
9
+ _conditionalyWriteIndent(indentedTextWriter, designItem, preserveInlineWhitespace) {
10
+ if (preserveInlineWhitespace)
11
+ return;
10
12
  if ((designItem.element instanceof designItem.window.HTMLElement && !isInlineAfter(designItem.element)) ||
11
13
  (designItem.element.previousElementSibling instanceof designItem.window.HTMLElement && !isInline(designItem.element.previousElementSibling)) ||
12
- (designItem.element.previousElementSibling == null && !isInline(designItem.element.parentElement) && (designItem.element.previousSibling == null || isEmptyTextNode(designItem.element.previousSibling))) ||
14
+ (designItem.element.previousElementSibling == null && !this._isInlineElement(designItem.element.parentElement) && (designItem.element.previousSibling == null || isEmptyTextNode(designItem.element.previousSibling))) ||
13
15
  (designItem.element instanceof designItem.window.SVGElement))
14
16
  indentedTextWriter.writeIndent();
15
17
  }
16
- _conditionalyWriteIndentBefore(indentedTextWriter, designItem) {
18
+ _conditionalyWriteIndentBefore(indentedTextWriter, designItem, preserveInlineWhitespace) {
19
+ if (preserveInlineWhitespace)
20
+ return;
17
21
  if ((designItem.element.previousElementSibling instanceof designItem.window.HTMLElement && !isInline(designItem.element.previousElementSibling)) ||
18
- (designItem.element.previousElementSibling == null && !isInline(designItem.element.parentElement) && (designItem.element.previousSibling == null || isEmptyTextNode(designItem.element.previousSibling))) ||
22
+ (designItem.element.previousElementSibling == null && !this._isInlineElement(designItem.element.parentElement) && (designItem.element.previousSibling == null || isEmptyTextNode(designItem.element.previousSibling))) ||
19
23
  (designItem.element instanceof designItem.window.SVGElement))
20
24
  indentedTextWriter.writeIndent();
21
25
  }
22
- _conditionalyWriteNewline(indentedTextWriter, designItem) {
26
+ _conditionalyWriteNewline(indentedTextWriter, designItem, preserveInlineWhitespace) {
27
+ if (preserveInlineWhitespace)
28
+ return;
23
29
  if ((designItem.element instanceof designItem.window.HTMLElement && !isInlineAfter(designItem.element)) ||
24
30
  (designItem.element.nextElementSibling instanceof designItem.window.HTMLElement && !isInline(designItem.element.nextElementSibling)) ||
25
31
  (designItem.element instanceof designItem.window.SVGElement))
@@ -27,31 +33,32 @@ export class HtmlWriterService extends AbstractHtmlWriterService {
27
33
  }
28
34
  write(indentedTextWriter, designItems, rootContainerKeepInline, updatePositions = false) {
29
35
  for (const d of designItems) {
30
- this.internalWrite(indentedTextWriter, d, updatePositions);
36
+ this.internalWrite(indentedTextWriter, d, updatePositions, false);
31
37
  }
32
38
  }
33
39
  //TODO: special case for style/script nodes, keep whitespace
34
- internalWrite(indentedTextWriter, designItem, updatePositions) {
40
+ internalWrite(indentedTextWriter, designItem, updatePositions, preserveInlineWhitespace) {
35
41
  let start = indentedTextWriter.position;
36
42
  let end = indentedTextWriter.position;
43
+ const currentPreserveInlineWhitespace = preserveInlineWhitespace || this._isInlineContainer(designItem);
37
44
  if (designItem.nodeType == NodeType.TextNode) {
38
45
  if (isEmptyTextNode(designItem.element) &&
39
46
  ((designItem.element.previousSibling instanceof designItem.window.HTMLElement && !isInlineAfter(designItem.element.previousSibling)) ||
40
47
  (designItem.element.nextSibling instanceof designItem.window.HTMLElement && !isInline(designItem.element.nextSibling)))) {
41
48
  }
42
49
  else
43
- this.writeTextNode(indentedTextWriter, designItem, true);
50
+ this.writeTextNode(indentedTextWriter, designItem, true, true, currentPreserveInlineWhitespace);
44
51
  end = indentedTextWriter.position;
45
52
  }
46
53
  else if (designItem.nodeType == NodeType.Comment) {
47
- this._conditionalyWriteIndent(indentedTextWriter, designItem);
54
+ this._conditionalyWriteIndent(indentedTextWriter, designItem, currentPreserveInlineWhitespace);
48
55
  start = indentedTextWriter.position;
49
56
  indentedTextWriter.write('<!--' + designItem.content + '-->');
50
57
  end = indentedTextWriter.position;
51
- this._conditionalyWriteNewline(indentedTextWriter, designItem);
58
+ this._conditionalyWriteNewline(indentedTextWriter, designItem, currentPreserveInlineWhitespace);
52
59
  }
53
60
  else {
54
- this._conditionalyWriteIndentBefore(indentedTextWriter, designItem);
61
+ this._conditionalyWriteIndentBefore(indentedTextWriter, designItem, currentPreserveInlineWhitespace);
55
62
  start = indentedTextWriter.position;
56
63
  indentedTextWriter.write('<' + designItem.name);
57
64
  this.writeAttributes(indentedTextWriter, designItem);
@@ -63,21 +70,21 @@ export class HtmlWriterService extends AbstractHtmlWriterService {
63
70
  contentSingleTextNode = designItem.childCount === 1 && designItem.firstChild.nodeType === NodeType.TextNode;
64
71
  if (contentSingleTextNode) {
65
72
  const notrim = designItem.name == 'script' || designItem.name == 'style' || designItem.name == 'pre';
66
- this.writeTextNode(indentedTextWriter, designItem, false, !notrim);
73
+ this.writeTextNode(indentedTextWriter, designItem, false, !notrim, currentPreserveInlineWhitespace);
67
74
  }
68
75
  else {
69
- if (designItem.element instanceof designItem.window.HTMLElement && !isInlineAfter(designItem.element) || (designItem.element instanceof designItem.window.SVGElement)) {
76
+ if (!currentPreserveInlineWhitespace && (designItem.element instanceof designItem.window.HTMLElement && !isInlineAfter(designItem.element) || (designItem.element instanceof designItem.window.SVGElement))) {
70
77
  indentedTextWriter.writeNewline();
71
78
  indentedTextWriter.levelRaise();
72
79
  }
73
80
  for (const c of children) {
74
- this.internalWrite(indentedTextWriter, c, updatePositions);
81
+ this.internalWrite(indentedTextWriter, c, updatePositions, currentPreserveInlineWhitespace);
75
82
  let childSingleTextNode = c.childCount === 1 && c.firstChild.nodeType === NodeType.TextNode;
76
83
  if (childSingleTextNode)
77
84
  if (!indentedTextWriter.isLastCharNewline())
78
- this._conditionalyWriteNewline(indentedTextWriter, c);
85
+ this._conditionalyWriteNewline(indentedTextWriter, c, currentPreserveInlineWhitespace);
79
86
  }
80
- if (designItem.element instanceof designItem.window.HTMLElement && !isInlineAfter(designItem.element) || (designItem.element instanceof designItem.window.SVGElement)) {
87
+ if (!currentPreserveInlineWhitespace && (designItem.element instanceof designItem.window.HTMLElement && !isInlineAfter(designItem.element) || (designItem.element instanceof designItem.window.SVGElement))) {
81
88
  indentedTextWriter.levelShrink();
82
89
  if (!indentedTextWriter.isLastCharNewline())
83
90
  indentedTextWriter.writeNewline();
@@ -94,29 +101,48 @@ export class HtmlWriterService extends AbstractHtmlWriterService {
94
101
  indentedTextWriter.write('</' + designItem.name + '>');
95
102
  end = indentedTextWriter.position;
96
103
  //if (!contentSingleTextNode)
97
- if (!indentedTextWriter.isLastCharNewline() && (!designItem.parent || !isInlineAfter(designItem.parent.element)))
98
- this._conditionalyWriteNewline(indentedTextWriter, designItem);
104
+ if (!currentPreserveInlineWhitespace && !indentedTextWriter.isLastCharNewline() && (!designItem.parent || !isInlineAfter(designItem.parent.element)))
105
+ this._conditionalyWriteNewline(indentedTextWriter, designItem, currentPreserveInlineWhitespace);
99
106
  }
100
107
  if (updatePositions && designItem.instanceServiceContainer.designItemDocumentPositionService) {
101
108
  designItem.instanceServiceContainer.designItemDocumentPositionService.setPosition(designItem, { start: start, length: end - start });
102
109
  }
103
110
  }
104
- writeTextNode(indentedTextWriter, designItem, indentAndNewline, trim = true) {
111
+ writeTextNode(indentedTextWriter, designItem, indentAndNewline, trim = true, preserveInlineWhitespace = false) {
105
112
  let start = indentedTextWriter.position;
106
113
  let end = indentedTextWriter.position;
107
114
  let content = DomConverter.normalizeContentValue(designItem.content);
108
- if (trim)
115
+ if (preserveInlineWhitespace || this._hasInlineParent(designItem))
116
+ content = this._normalizeInlineTextContent(content);
117
+ else if (trim)
109
118
  content = content.trim();
110
119
  if (content) {
111
120
  if (indentAndNewline)
112
- this._conditionalyWriteIndent(indentedTextWriter, designItem);
121
+ this._conditionalyWriteIndent(indentedTextWriter, designItem, preserveInlineWhitespace);
113
122
  indentedTextWriter.write(content);
114
123
  if (indentAndNewline)
115
- this._conditionalyWriteNewline(indentedTextWriter, designItem);
124
+ this._conditionalyWriteNewline(indentedTextWriter, designItem, preserveInlineWhitespace);
116
125
  }
117
126
  end = indentedTextWriter.position;
118
127
  for (const d of designItem.children())
119
128
  designItem.instanceServiceContainer.designItemDocumentPositionService.setPosition(d, { start: start, length: end - start });
120
129
  }
130
+ _hasInlineParent(designItem) {
131
+ return designItem.parent?.element instanceof designItem.window.HTMLElement && isInline(designItem.parent.element);
132
+ }
133
+ _normalizeInlineTextContent(content) {
134
+ if (!content?.trim())
135
+ return '';
136
+ const hasLeadingWhitespace = /^\s/.test(content);
137
+ const hasTrailingWhitespace = /\s$/.test(content);
138
+ const normalized = content.replaceAll(/[\t\r\n ]+/g, ' ').trim();
139
+ return `${hasLeadingWhitespace ? ' ' : ''}${normalized}${hasTrailingWhitespace ? ' ' : ''}`;
140
+ }
141
+ _isInlineContainer(designItem) {
142
+ return designItem.nodeType === NodeType.Element && designItem.element instanceof designItem.window.HTMLElement && isInline(designItem.element);
143
+ }
144
+ _isInlineElement(element) {
145
+ return element instanceof HTMLElement && isInline(element);
146
+ }
121
147
  }
122
148
  //# sourceMappingURL=HtmlWriterService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HtmlWriterService.js","sourceRoot":"","sources":["../../../../src/elements/services/htmlWriterService/HtmlWriterService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HtmlWriterService.js","sourceRoot":"","sources":["../../../../src/elements/services/htmlWriterService/HtmlWriterService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,MAAM,OAAO,iBAAkB,SAAQ,yBAAyB;IAC9D,YAAY,OAA4B;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAEO,wBAAwB,CAAC,kBAA+B,EAAE,UAAuB,EAAE,wBAAiC;QAC1H,IAAI,wBAAwB;YAC1B,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACrG,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC5I,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YACtN,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;YAE5D,kBAAkB,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAEO,8BAA8B,CAAC,kBAA+B,EAAE,UAAuB,EAAE,wBAAiC;QAChI,IAAI,wBAAwB;YAC1B,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC9I,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YACtN,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;YAE5D,kBAAkB,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAEO,yBAAyB,CAAC,kBAA+B,EAAE,UAAuB,EAAE,wBAAiC;QAC3H,IAAI,wBAAwB;YAC1B,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACrG,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACpI,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;YAE5D,kBAAkB,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,kBAA+B,EAAE,WAA0B,EAAE,uBAAgC,EAAE,kBAA2B,KAAK;QACnI,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,4DAA4D;IACpD,aAAa,CAAC,kBAA+B,EAAE,UAAuB,EAAE,eAAwB,EAAE,wBAAiC;QACzI,IAAI,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QACxC,IAAI,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QACtC,MAAM,+BAA+B,GAAG,wBAAwB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAExG,IAAI,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC;gBACrC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAClI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9H,CAAC;;gBACC,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAC;YAClG,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QACpC,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnD,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,UAAU,EAAE,+BAA+B,CAAC,CAAC;YAC/F,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YACpC,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;YAC9D,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,UAAU,EAAE,+BAA+B,CAAC,CAAC;QAClG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,8BAA8B,CAAC,kBAAkB,EAAE,UAAU,EAAE,+BAA+B,CAAC,CAAC;YACrG,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YACpC,kBAAkB,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;YAEjD,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,qBAAqB,GAAG,KAAK,CAAC;YAClC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACvC,qBAAqB,GAAG,UAAU,CAAC,UAAU,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;gBAC5G,IAAI,qBAAqB,EAAE,CAAC;oBAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,IAAI,QAAQ,IAAI,UAAU,CAAC,IAAI,IAAI,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC;oBACrG,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;gBACtG,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,+BAA+B,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;wBAC5M,kBAAkB,CAAC,YAAY,EAAE,CAAC;wBAClC,kBAAkB,CAAC,UAAU,EAAE,CAAC;oBAClC,CAAC;oBACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;wBACzB,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC,EAAE,eAAe,EAAE,+BAA+B,CAAC,CAAC;wBAC5F,IAAI,mBAAmB,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;wBAC5F,IAAI,mBAAmB;4BACrB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;gCACzC,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;oBAC7F,CAAC;oBACD,IAAI,CAAC,+BAA+B,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;wBAC5M,kBAAkB,CAAC,WAAW,EAAE,CAAC;wBACjC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;4BACzC,kBAAkB,CAAC,YAAY,EAAE,CAAC;wBACpC,kBAAkB,CAAC,WAAW,EAAE,CAAC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBACjC,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjF,iEAAiE;YACnE,CAAC;YAED,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrD,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;YACzD,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YAClC,6BAA6B;YAC7B,IAAI,CAAC,+BAA+B,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,aAAa,CAAc,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/J,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,UAAU,EAAE,+BAA+B,CAAC,CAAC;QACpG,CAAC;QAED,IAAI,eAAe,IAAI,UAAU,CAAC,wBAAwB,CAAC,iCAAiC,EAAE,CAAC;YAC7F,UAAU,CAAC,wBAAwB,CAAC,iCAAiC,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;QACvI,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,kBAA+B,EAAE,UAAuB,EAAE,gBAAyB,EAAE,IAAI,GAAG,IAAI,EAAE,wBAAwB,GAAG,KAAK;QACtJ,IAAI,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QACxC,IAAI,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAEtC,IAAI,OAAO,GAAG,YAAY,CAAC,qBAAqB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,wBAAwB,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;YAC/D,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;aACjD,IAAI,IAAI;YACX,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,gBAAgB;gBAClB,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;YAC1F,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,gBAAgB;gBAClB,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;QAC7F,CAAC;QACD,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAElC,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE;YACnC,UAAU,CAAC,wBAAwB,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;IAChI,CAAC;IAEO,gBAAgB,CAAC,UAAuB;QAC9C,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpH,CAAC;IAEO,2BAA2B,CAAC,OAAe;QACjD,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAClB,OAAO,EAAE,CAAC;QAEZ,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAEjE,OAAO,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC9F,CAAC;IAEO,kBAAkB,CAAC,UAAuB;QAChD,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,YAAY,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjJ,CAAC;IAEO,gBAAgB,CAAC,OAAuB;QAC9C,OAAO,OAAO,YAAY,WAAW,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -101,7 +101,7 @@ export class AbsolutePlacementService {
101
101
  //maybe a undo actions returns itself or an id so it could be changed?
102
102
  let track = this.calculateTrack(event, designerCanvas, startPoint, offsetInControl, newPoint, items[0]);
103
103
  if (event.shiftKey) {
104
- track = straightenLine({ x: 0, y: 0 }, track, true);
104
+ track = straightenLine({ x: 0, y: 0 }, track, 90);
105
105
  }
106
106
  let filteredItems = filterChildPlaceItems(filterNonElementItems(items));
107
107
  for (const designItem of filteredItems) {