@node-projects/web-component-designer 0.1.353 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/elements/controls/NumericStyleInput.d.ts +114 -2
  2. package/dist/elements/controls/NumericStyleInput.js +757 -30
  3. package/dist/elements/controls/NumericStyleInput.js.map +1 -1
  4. package/dist/elements/controls/NumericStyleInputValueHelpers.d.ts +14 -0
  5. package/dist/elements/controls/NumericStyleInputValueHelpers.js +31 -0
  6. package/dist/elements/controls/NumericStyleInputValueHelpers.js.map +1 -0
  7. package/dist/elements/documentContainer.js +1 -1
  8. package/dist/elements/documentContainer.js.map +1 -1
  9. package/dist/elements/helper/GridHelper.d.ts +41 -20
  10. package/dist/elements/helper/GridHelper.js +118 -19
  11. package/dist/elements/helper/GridHelper.js.map +1 -1
  12. package/dist/elements/helper/getBoxQuads.d.ts +2 -1
  13. package/dist/elements/helper/getBoxQuads.js +419 -154
  14. package/dist/elements/helper/getBoxQuads.js.map +1 -1
  15. package/dist/elements/item/DesignItem.js +46 -7
  16. package/dist/elements/item/DesignItem.js.map +1 -1
  17. package/dist/elements/services/DefaultServiceBootstrap.js +4 -7
  18. package/dist/elements/services/DefaultServiceBootstrap.js.map +1 -1
  19. package/dist/elements/services/InstanceServiceContainer.d.ts +20 -3
  20. package/dist/elements/services/InstanceServiceContainer.js +5 -3
  21. package/dist/elements/services/InstanceServiceContainer.js.map +1 -1
  22. package/dist/elements/services/ServiceContainer.d.ts +0 -2
  23. package/dist/elements/services/ServiceContainer.js.map +1 -1
  24. package/dist/elements/services/bindingsService/SpecialTagsBindingService.js +1 -1
  25. package/dist/elements/services/collaborationService/CollaborationNodeIndex.js +1 -1
  26. package/dist/elements/services/contentService/IContentChanged.js +10 -0
  27. package/dist/elements/services/contentService/IContentChanged.js.map +1 -1
  28. package/dist/elements/services/placementService/GridPlacementService.js +54 -70
  29. package/dist/elements/services/placementService/GridPlacementService.js.map +1 -1
  30. package/dist/elements/services/propertiesService/DefaultEditorTypesService.js +4 -6
  31. package/dist/elements/services/propertiesService/DefaultEditorTypesService.js.map +1 -1
  32. package/dist/elements/services/propertiesService/IProperty.d.ts +6 -1
  33. package/dist/elements/services/propertiesService/PropertyMutationHandling.d.ts +6 -0
  34. package/dist/elements/services/propertiesService/PropertyMutationHandling.js +89 -0
  35. package/dist/elements/services/propertiesService/PropertyMutationHandling.js.map +1 -0
  36. package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.d.ts +2 -0
  37. package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.js +12 -0
  38. package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.js.map +1 -1
  39. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditor.d.ts +1 -0
  40. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditor.js +2 -0
  41. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditor.js.map +1 -0
  42. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditorConfig.d.ts +3 -0
  43. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditorConfig.js +4 -0
  44. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditorConfig.js.map +1 -0
  45. package/dist/elements/services/propertiesService/propertyEditors/CssNumericPropertyEditor.d.ts +10 -0
  46. package/dist/elements/services/propertiesService/propertyEditors/CssNumericPropertyEditor.js +34 -0
  47. package/dist/elements/services/propertiesService/propertyEditors/CssNumericPropertyEditor.js.map +1 -0
  48. package/dist/elements/services/propertiesService/propertyEditors/CssNumericPropertyEditorConfig.d.ts +30 -0
  49. package/dist/elements/services/propertiesService/propertyEditors/CssNumericPropertyEditorConfig.js +475 -0
  50. package/dist/elements/services/propertiesService/propertyEditors/CssNumericPropertyEditorConfig.js.map +1 -0
  51. package/dist/elements/services/propertiesService/services/AbstractCssPropertiesService.d.ts +1 -0
  52. package/dist/elements/services/propertiesService/services/AbstractCssPropertiesService.js +4 -0
  53. package/dist/elements/services/propertiesService/services/AbstractCssPropertiesService.js.map +1 -1
  54. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js +6 -4
  55. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js.map +1 -1
  56. package/dist/elements/services/propertiesService/services/CssCustomPropertiesService.js +3 -3
  57. package/dist/elements/services/propertiesService/services/CssCustomPropertiesService.js.map +1 -1
  58. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +3 -3
  59. package/dist/elements/services/propertiesService/services/CssPropertiesService.js.map +1 -1
  60. package/dist/elements/services/propertiesService/services/IJsonPropertyDefinition.d.ts +2 -0
  61. package/dist/elements/services/selectionService/SelectionService.js +1 -1
  62. package/dist/elements/services/undoService/ChangeGroup.d.ts +8 -4
  63. package/dist/elements/services/undoService/ChangeGroup.js +25 -4
  64. package/dist/elements/services/undoService/ChangeGroup.js.map +1 -1
  65. package/dist/elements/services/undoService/ITransactionItem.d.ts +3 -2
  66. package/dist/elements/services/undoService/ITransactionItem.js.map +1 -1
  67. package/dist/elements/services/undoService/UndoService.js +15 -8
  68. package/dist/elements/services/undoService/UndoService.js.map +1 -1
  69. package/dist/elements/services/undoService/transactionItems/AttributeAndPropertyChangeAction.d.ts +3 -2
  70. package/dist/elements/services/undoService/transactionItems/AttributeAndPropertyChangeAction.js +12 -8
  71. package/dist/elements/services/undoService/transactionItems/AttributeAndPropertyChangeAction.js.map +1 -1
  72. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction.d.ts +3 -2
  73. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction.js +12 -8
  74. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction.js.map +1 -1
  75. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.d.ts +3 -2
  76. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.js +4 -2
  77. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.js.map +1 -1
  78. package/dist/elements/services/undoService/transactionItems/DeleteAction.d.ts +3 -2
  79. package/dist/elements/services/undoService/transactionItems/DeleteAction.js +2 -2
  80. package/dist/elements/services/undoService/transactionItems/DeleteAction.js.map +1 -1
  81. package/dist/elements/services/undoService/transactionItems/InsertAction.d.ts +3 -2
  82. package/dist/elements/services/undoService/transactionItems/InsertAction.js +2 -2
  83. package/dist/elements/services/undoService/transactionItems/InsertAction.js.map +1 -1
  84. package/dist/elements/services/undoService/transactionItems/InsertChildAction.d.ts +3 -2
  85. package/dist/elements/services/undoService/transactionItems/InsertChildAction.js +3 -3
  86. package/dist/elements/services/undoService/transactionItems/InsertChildAction.js.map +1 -1
  87. package/dist/elements/services/undoService/transactionItems/PropertyChangeAction.d.ts +3 -2
  88. package/dist/elements/services/undoService/transactionItems/PropertyChangeAction.js +2 -0
  89. package/dist/elements/services/undoService/transactionItems/PropertyChangeAction.js.map +1 -1
  90. package/dist/elements/services/undoService/transactionItems/SelectionChangedAction.d.ts +3 -2
  91. package/dist/elements/services/undoService/transactionItems/SelectionChangedAction.js +2 -0
  92. package/dist/elements/services/undoService/transactionItems/SelectionChangedAction.js.map +1 -1
  93. package/dist/elements/services/undoService/transactionItems/SetDesignItemsAction.d.ts +3 -2
  94. package/dist/elements/services/undoService/transactionItems/SetDesignItemsAction.js +2 -0
  95. package/dist/elements/services/undoService/transactionItems/SetDesignItemsAction.js.map +1 -1
  96. package/dist/elements/services/undoService/transactionItems/StylesheetChangedAction.d.ts +3 -2
  97. package/dist/elements/services/undoService/transactionItems/StylesheetChangedAction.js +2 -0
  98. package/dist/elements/services/undoService/transactionItems/StylesheetChangedAction.js.map +1 -1
  99. package/dist/elements/services/undoService/transactionItems/TextContentChangeAction.d.ts +3 -2
  100. package/dist/elements/services/undoService/transactionItems/TextContentChangeAction.js +2 -0
  101. package/dist/elements/services/undoService/transactionItems/TextContentChangeAction.js.map +1 -1
  102. package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
  103. package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +0 -2
  104. package/dist/elements/widgets/designerView/designerCanvas.d.ts +0 -1
  105. package/dist/elements/widgets/designerView/designerCanvas.js +14 -7
  106. package/dist/elements/widgets/designerView/designerCanvas.js.map +1 -1
  107. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +18 -16
  108. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js.map +1 -1
  109. package/dist/elements/widgets/designerView/extensions/ResizeExtension.d.ts +19 -10
  110. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +179 -52
  111. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js.map +1 -1
  112. package/dist/elements/widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js +1 -1
  113. package/dist/elements/widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js.map +1 -1
  114. package/dist/elements/widgets/designerView/extensions/flex/FlexboxExtension.d.ts +11 -0
  115. package/dist/elements/widgets/designerView/extensions/flex/FlexboxExtension.js +20 -0
  116. package/dist/elements/widgets/designerView/extensions/flex/FlexboxExtension.js.map +1 -0
  117. package/dist/elements/widgets/designerView/extensions/flex/FlexboxExtensionProvider.d.ts +11 -0
  118. package/dist/elements/widgets/designerView/extensions/flex/FlexboxExtensionProvider.js +18 -0
  119. package/dist/elements/widgets/designerView/extensions/flex/FlexboxExtensionProvider.js.map +1 -0
  120. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.js +10 -12
  121. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.js.map +1 -1
  122. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.d.ts +1 -0
  123. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.js +16 -13
  124. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.js.map +1 -1
  125. package/dist/elements/widgets/designerView/extensions/grid/GridChildResizeExtension.js +6 -39
  126. package/dist/elements/widgets/designerView/extensions/grid/GridChildResizeExtension.js.map +1 -1
  127. package/dist/elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtension.d.ts +33 -0
  128. package/dist/elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtension.js +337 -0
  129. package/dist/elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtension.js.map +1 -0
  130. package/dist/elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtensionProvider.d.ts +10 -0
  131. package/dist/elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtensionProvider.js +22 -0
  132. package/dist/elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtensionProvider.js.map +1 -0
  133. package/dist/elements/widgets/designerView/extensions/transforms/RotateExtension.d.ts +16 -0
  134. package/dist/elements/widgets/designerView/extensions/transforms/RotateExtension.js +109 -0
  135. package/dist/elements/widgets/designerView/extensions/transforms/RotateExtension.js.map +1 -0
  136. package/dist/elements/widgets/designerView/extensions/transforms/RotateExtensionProvider.d.ts +12 -0
  137. package/dist/elements/widgets/designerView/extensions/transforms/RotateExtensionProvider.js +25 -0
  138. package/dist/elements/widgets/designerView/extensions/transforms/RotateExtensionProvider.js.map +1 -0
  139. package/dist/elements/widgets/designerView/extensions/transforms/RotateGroupExtension.d.ts +29 -0
  140. package/dist/elements/widgets/designerView/extensions/transforms/RotateGroupExtension.js +229 -0
  141. package/dist/elements/widgets/designerView/extensions/transforms/RotateGroupExtension.js.map +1 -0
  142. package/dist/elements/widgets/designerView/extensions/transforms/RotateGroupExtensionProvider.d.ts +10 -0
  143. package/dist/elements/widgets/designerView/extensions/transforms/RotateGroupExtensionProvider.js +20 -0
  144. package/dist/elements/widgets/designerView/extensions/transforms/RotateGroupExtensionProvider.js.map +1 -0
  145. package/dist/elements/widgets/designerView/extensions/transforms/SkewExtension.d.ts +30 -0
  146. package/dist/elements/widgets/designerView/extensions/transforms/SkewExtension.js +291 -0
  147. package/dist/elements/widgets/designerView/extensions/transforms/SkewExtension.js.map +1 -0
  148. package/dist/elements/widgets/designerView/extensions/transforms/SkewExtensionProvider.d.ts +10 -0
  149. package/dist/elements/widgets/designerView/extensions/transforms/SkewExtensionProvider.js +20 -0
  150. package/dist/elements/widgets/designerView/extensions/transforms/SkewExtensionProvider.js.map +1 -0
  151. package/dist/elements/widgets/designerView/extensions/transforms/TransformOriginExtension.d.ts +16 -0
  152. package/dist/elements/widgets/designerView/extensions/transforms/TransformOriginExtension.js +122 -0
  153. package/dist/elements/widgets/designerView/extensions/transforms/TransformOriginExtension.js.map +1 -0
  154. package/dist/elements/widgets/designerView/extensions/transforms/TransformOriginExtensionProvider.d.ts +12 -0
  155. package/dist/elements/widgets/designerView/extensions/transforms/TransformOriginExtensionProvider.js +34 -0
  156. package/dist/elements/widgets/designerView/extensions/transforms/TransformOriginExtensionProvider.js.map +1 -0
  157. package/dist/elements/widgets/designerView/tools/PointerTool.js +2 -2
  158. package/dist/elements/widgets/designerView/tools/PointerTool.js.map +1 -1
  159. package/dist/elements/widgets/miniatureView/miniatureView.js +1 -1
  160. package/dist/elements/widgets/miniatureView/miniatureView.js.map +1 -1
  161. package/dist/elements/widgets/propertyGrid/PropertyGrid.d.ts +3 -3
  162. package/dist/elements/widgets/propertyGrid/PropertyGrid.js +7 -7
  163. package/dist/elements/widgets/propertyGrid/PropertyGrid.js.map +1 -1
  164. package/dist/elements/widgets/propertyGrid/PropertyGridMutationHandling.d.ts +5 -0
  165. package/dist/elements/widgets/propertyGrid/PropertyGridMutationHandling.js +13 -0
  166. package/dist/elements/widgets/propertyGrid/PropertyGridMutationHandling.js.map +1 -0
  167. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.d.ts +2 -0
  168. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +45 -24
  169. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js.map +1 -1
  170. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyStructureSignature.d.ts +4 -0
  171. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyStructureSignature.js +31 -0
  172. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyStructureSignature.js.map +1 -0
  173. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.d.ts +1 -0
  174. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js +52 -42
  175. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js.map +1 -1
  176. package/dist/elements/widgets/treeView/treeView.js +3 -3
  177. package/dist/elements/widgets/treeView/treeView.js.map +1 -1
  178. package/dist/index-min.js +7 -7
  179. package/dist/index-min.js.map +4 -4
  180. package/dist/index.d.ts +15 -15
  181. package/dist/index.js +15 -13
  182. package/dist/index.js.map +1 -1
  183. package/package.json +1 -1
  184. package/tests/ContextMenu.test.ts +0 -133
  185. package/tests/CssCombiner.test.ts +0 -340
  186. package/tests/PasteFormatSnapshot.test.ts +0 -92
  187. package/tests/PathDataPolyfill.test.ts +0 -49
  188. package/tests/SpecificityCalculator.test.ts +0 -625
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./elements/controls/DesignerTabControl.js";
2
+ export * from "./elements/controls/NumericStyleInput.js";
2
3
  export * from "./elements/controls/PlainScrollbar.js";
3
4
  export * from "./elements/services/DefaultServiceBootstrap.js";
4
5
  export * from "./elements/helper/CssAttributeParser.js";
@@ -49,9 +50,6 @@ export * from "./elements/services/pngCreatorService/ElectronPngWriterService.js
49
50
  export type { IPngCreatorService } from "./elements/services/pngCreatorService/IPngCreatorService.js";
50
51
  export * from "./elements/services/elementAtPointService/ElementAtPointService.js";
51
52
  export type { IElementAtPointService } from "./elements/services/elementAtPointService/IElementAtPointService.js";
52
- export * from "./elements/services/contentService/ContentService.js";
53
- export type { IContentChanged } from "./elements/services/contentService/IContentChanged.js";
54
- export type { IContentService } from "./elements/services/contentService/IContentService.js";
55
53
  export * from "./elements/services/copyPasteService/CopyPasteService.js";
56
54
  export * from "./elements/services/copyPasteService/CopyPasteAsJsonService.js";
57
55
  export type { ICopyPasteService } from "./elements/services/copyPasteService/ICopyPasteService.js";
@@ -113,6 +111,8 @@ export * from "./elements/services/propertiesService/PropertyGroupsService.js";
113
111
  export * from "./elements/services/propertiesService/propertyEditors/BasePropertyEditor.js";
114
112
  export * from "./elements/services/propertiesService/propertyEditors/BooleanPropertyEditor.js";
115
113
  export * from "./elements/services/propertiesService/propertyEditors/ColorPropertyEditor.js";
114
+ export * from "./elements/services/propertiesService/propertyEditors/CssNumericPropertyEditor.js";
115
+ export * from "./elements/services/propertiesService/propertyEditors/CssLengthPropertyEditor.js";
116
116
  export * from "./elements/services/propertiesService/propertyEditors/DatePropertyEditor.js";
117
117
  export * from "./elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.js";
118
118
  export * from "./elements/services/propertiesService/propertyEditors/JsonPropertyEditor.js";
@@ -240,12 +240,12 @@ export * from "./elements/widgets/designerView/extensions/MarginExtension.js";
240
240
  export * from "./elements/widgets/designerView/extensions/MarginExtensionProvider.js";
241
241
  export * from "./elements/widgets/designerView/extensions/PaddingExtension.js";
242
242
  export * from "./elements/widgets/designerView/extensions/PaddingExtensionProvider.js";
243
- export * from "./elements/widgets/designerView/extensions/ProjectiveTransformExtension.js";
244
- export * from "./elements/widgets/designerView/extensions/ProjectiveTransformExtensionProvider.js";
243
+ export * from "./elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtension.js";
244
+ export * from "./elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtensionProvider.js";
245
245
  export * from "./elements/widgets/designerView/extensions/logic/ConditionExtensionProvider.js";
246
246
  export * from "./elements/widgets/designerView/extensions/ExtensionManager.js";
247
- export * from "./elements/widgets/designerView/extensions/FlexboxExtension.js";
248
- export * from "./elements/widgets/designerView/extensions/FlexboxExtensionProvider.js";
247
+ export * from "./elements/widgets/designerView/extensions/flex/FlexboxExtension.js";
248
+ export * from "./elements/widgets/designerView/extensions/flex/FlexboxExtensionProvider.js";
249
249
  export * from "./elements/widgets/designerView/extensions/GrayOutExtension.js";
250
250
  export * from "./elements/widgets/designerView/extensions/GrayOutExtensionProvider.js";
251
251
  export * from "./elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js";
@@ -278,16 +278,16 @@ export * from "./elements/widgets/designerView/extensions/ElementDragTitleExtens
278
278
  export * from "./elements/widgets/designerView/extensions/ElementDragTitleExtensionProvider.js";
279
279
  export * from "./elements/widgets/designerView/extensions/ResizeExtension.js";
280
280
  export * from "./elements/widgets/designerView/extensions/ResizeExtensionProvider.js";
281
- export * from "./elements/widgets/designerView/extensions/SkewExtension.js";
282
- export * from "./elements/widgets/designerView/extensions/SkewExtensionProvider.js";
283
- export * from "./elements/widgets/designerView/extensions/RotateExtension.js";
284
- export * from "./elements/widgets/designerView/extensions/RotateExtensionProvider.js";
285
- export * from "./elements/widgets/designerView/extensions/RotateGroupExtension.js";
286
- export * from "./elements/widgets/designerView/extensions/RotateGroupExtensionProvider.js";
281
+ export * from "./elements/widgets/designerView/extensions/transforms/SkewExtension.js";
282
+ export * from "./elements/widgets/designerView/extensions/transforms/SkewExtensionProvider.js";
283
+ export * from "./elements/widgets/designerView/extensions/transforms/RotateExtension.js";
284
+ export * from "./elements/widgets/designerView/extensions/transforms/RotateExtensionProvider.js";
285
+ export * from "./elements/widgets/designerView/extensions/transforms/RotateGroupExtension.js";
286
+ export * from "./elements/widgets/designerView/extensions/transforms/RotateGroupExtensionProvider.js";
287
287
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtension.js";
288
288
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js";
289
- export * from "./elements/widgets/designerView/extensions/TransformOriginExtension.js";
290
- export * from "./elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js";
289
+ export * from "./elements/widgets/designerView/extensions/transforms/TransformOriginExtension.js";
290
+ export * from "./elements/widgets/designerView/extensions/transforms/TransformOriginExtensionProvider.js";
291
291
  export * from "./elements/widgets/designerView/extensions/PlacementExtension.js";
292
292
  export * from "./elements/widgets/designerView/extensions/PlacementExtensionProvider.js";
293
293
  export * from "./elements/widgets/designerView/extensions/PreviousElementSelectExtension.js";
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./elements/controls/DesignerTabControl.js";
2
+ export * from "./elements/controls/NumericStyleInput.js";
2
3
  export * from "./elements/controls/PlainScrollbar.js";
3
4
  export * from "./elements/services/DefaultServiceBootstrap.js";
4
5
  export * from "./elements/helper/CssAttributeParser.js";
@@ -37,7 +38,6 @@ export * from "./elements/services/placementService/SnaplinesProviderService.js"
37
38
  export * from "./elements/services/pngCreatorService/DisplayMediaPngWriterService.js";
38
39
  export * from "./elements/services/pngCreatorService/ElectronPngWriterService.js";
39
40
  export * from "./elements/services/elementAtPointService/ElementAtPointService.js";
40
- export * from "./elements/services/contentService/ContentService.js";
41
41
  export * from "./elements/services/copyPasteService/CopyPasteService.js";
42
42
  export * from "./elements/services/copyPasteService/CopyPasteAsJsonService.js";
43
43
  export * from "./elements/services/copyPasteService/PasteFormatSnapshot.js";
@@ -69,6 +69,8 @@ export * from "./elements/services/propertiesService/PropertyGroupsService.js";
69
69
  export * from "./elements/services/propertiesService/propertyEditors/BasePropertyEditor.js";
70
70
  export * from "./elements/services/propertiesService/propertyEditors/BooleanPropertyEditor.js";
71
71
  export * from "./elements/services/propertiesService/propertyEditors/ColorPropertyEditor.js";
72
+ export * from "./elements/services/propertiesService/propertyEditors/CssNumericPropertyEditor.js";
73
+ export * from "./elements/services/propertiesService/propertyEditors/CssLengthPropertyEditor.js";
72
74
  export * from "./elements/services/propertiesService/propertyEditors/DatePropertyEditor.js";
73
75
  export * from "./elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.js";
74
76
  export * from "./elements/services/propertiesService/propertyEditors/JsonPropertyEditor.js";
@@ -174,12 +176,12 @@ export * from "./elements/widgets/designerView/extensions/MarginExtension.js";
174
176
  export * from "./elements/widgets/designerView/extensions/MarginExtensionProvider.js";
175
177
  export * from "./elements/widgets/designerView/extensions/PaddingExtension.js";
176
178
  export * from "./elements/widgets/designerView/extensions/PaddingExtensionProvider.js";
177
- export * from "./elements/widgets/designerView/extensions/ProjectiveTransformExtension.js";
178
- export * from "./elements/widgets/designerView/extensions/ProjectiveTransformExtensionProvider.js";
179
+ export * from "./elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtension.js";
180
+ export * from "./elements/widgets/designerView/extensions/transforms/ProjectiveTransformExtensionProvider.js";
179
181
  export * from "./elements/widgets/designerView/extensions/logic/ConditionExtensionProvider.js";
180
182
  export * from "./elements/widgets/designerView/extensions/ExtensionManager.js";
181
- export * from "./elements/widgets/designerView/extensions/FlexboxExtension.js";
182
- export * from "./elements/widgets/designerView/extensions/FlexboxExtensionProvider.js";
183
+ export * from "./elements/widgets/designerView/extensions/flex/FlexboxExtension.js";
184
+ export * from "./elements/widgets/designerView/extensions/flex/FlexboxExtensionProvider.js";
183
185
  export * from "./elements/widgets/designerView/extensions/GrayOutExtension.js";
184
186
  export * from "./elements/widgets/designerView/extensions/GrayOutExtensionProvider.js";
185
187
  export * from "./elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js";
@@ -212,16 +214,16 @@ export * from "./elements/widgets/designerView/extensions/ElementDragTitleExtens
212
214
  export * from "./elements/widgets/designerView/extensions/ElementDragTitleExtensionProvider.js";
213
215
  export * from "./elements/widgets/designerView/extensions/ResizeExtension.js";
214
216
  export * from "./elements/widgets/designerView/extensions/ResizeExtensionProvider.js";
215
- export * from "./elements/widgets/designerView/extensions/SkewExtension.js";
216
- export * from "./elements/widgets/designerView/extensions/SkewExtensionProvider.js";
217
- export * from "./elements/widgets/designerView/extensions/RotateExtension.js";
218
- export * from "./elements/widgets/designerView/extensions/RotateExtensionProvider.js";
219
- export * from "./elements/widgets/designerView/extensions/RotateGroupExtension.js";
220
- export * from "./elements/widgets/designerView/extensions/RotateGroupExtensionProvider.js";
217
+ export * from "./elements/widgets/designerView/extensions/transforms/SkewExtension.js";
218
+ export * from "./elements/widgets/designerView/extensions/transforms/SkewExtensionProvider.js";
219
+ export * from "./elements/widgets/designerView/extensions/transforms/RotateExtension.js";
220
+ export * from "./elements/widgets/designerView/extensions/transforms/RotateExtensionProvider.js";
221
+ export * from "./elements/widgets/designerView/extensions/transforms/RotateGroupExtension.js";
222
+ export * from "./elements/widgets/designerView/extensions/transforms/RotateGroupExtensionProvider.js";
221
223
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtension.js";
222
224
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js";
223
- export * from "./elements/widgets/designerView/extensions/TransformOriginExtension.js";
224
- export * from "./elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js";
225
+ export * from "./elements/widgets/designerView/extensions/transforms/TransformOriginExtension.js";
226
+ export * from "./elements/widgets/designerView/extensions/transforms/TransformOriginExtensionProvider.js";
225
227
  export * from "./elements/widgets/designerView/extensions/PlacementExtension.js";
226
228
  export * from "./elements/widgets/designerView/extensions/PlacementExtensionProvider.js";
227
229
  export * from "./elements/widgets/designerView/extensions/PreviousElementSelectExtension.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "A WYSIWYG designer webcomponent for html components",
3
3
  "name": "@node-projects/web-component-designer",
4
- "version": "0.1.353",
4
+ "version": "0.2.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",
@@ -1,133 +0,0 @@
1
- /** @jest-environment jsdom */
2
-
3
- import { afterAll, afterEach, beforeAll, beforeEach, expect, test } from '@jest/globals';
4
-
5
- let ContextMenu: typeof import('../src/elements/helper/contextMenu/ContextMenu').ContextMenu;
6
-
7
- const originalCSSStyleSheet = globalThis.CSSStyleSheet;
8
- const originalShowPopover = HTMLElement.prototype.showPopover;
9
- const originalHidePopover = HTMLElement.prototype.hidePopover;
10
- const originalMatches = HTMLElement.prototype.matches;
11
- const popoverOpenAttribute = 'data-test-popover-open';
12
-
13
- function makeRect(left: number, top: number, width: number, height: number): DOMRect {
14
- return {
15
- x: left,
16
- y: top,
17
- width,
18
- height,
19
- top,
20
- right: left + width,
21
- bottom: top + height,
22
- left,
23
- toJSON() {
24
- return {};
25
- }
26
- } as DOMRect;
27
- }
28
-
29
- beforeAll(async () => {
30
- Object.defineProperty(globalThis, 'CSSStyleSheet', {
31
- configurable: true,
32
- value: class {
33
- replaceSync() {
34
- }
35
- }
36
- });
37
- Object.defineProperty(document, 'adoptedStyleSheets', {
38
- configurable: true,
39
- writable: true,
40
- value: []
41
- });
42
-
43
- HTMLElement.prototype.showPopover = function () {
44
- this.setAttribute(popoverOpenAttribute, '');
45
- };
46
- HTMLElement.prototype.hidePopover = function () {
47
- this.removeAttribute(popoverOpenAttribute);
48
- };
49
- HTMLElement.prototype.matches = function (selectors: string) {
50
- if (selectors === ':popover-open') {
51
- return this.hasAttribute(popoverOpenAttribute);
52
- }
53
-
54
- return originalMatches.call(this, selectors);
55
- };
56
-
57
- ({ ContextMenu } = await import('../src/elements/helper/contextMenu/ContextMenu'));
58
- });
59
-
60
- beforeEach(() => {
61
- document.body.innerHTML = '';
62
- document.adoptedStyleSheets = [];
63
- });
64
-
65
- afterEach(() => {
66
- ContextMenu?.closeAll();
67
- document.body.innerHTML = '';
68
- });
69
-
70
- afterAll(() => {
71
- Object.defineProperty(globalThis, 'CSSStyleSheet', {
72
- configurable: true,
73
- value: originalCSSStyleSheet
74
- });
75
-
76
- if (originalShowPopover == null)
77
- delete HTMLElement.prototype.showPopover;
78
- else
79
- HTMLElement.prototype.showPopover = originalShowPopover;
80
-
81
- if (originalHidePopover == null)
82
- delete HTMLElement.prototype.hidePopover;
83
- else
84
- HTMLElement.prototype.hidePopover = originalHidePopover;
85
-
86
- HTMLElement.prototype.matches = originalMatches;
87
- });
88
-
89
- test('displays the root menu as a manual popover', () => {
90
- const menu = new ContextMenu([{ title: 'Item' }]);
91
- menu.display(new MouseEvent('contextmenu', { bubbles: true, cancelable: true, clientX: 48, clientY: 64 }));
92
-
93
- const menuElement = document.querySelector('.context_menu') as HTMLDivElement;
94
-
95
- expect(menuElement.getAttribute('popover')).toBe('manual');
96
- expect(menuElement.hasAttribute(popoverOpenAttribute)).toBe(true);
97
- expect(menuElement.style.left).toBe('50px');
98
- expect(menuElement.style.top).toBe('66px');
99
- });
100
-
101
- test('opens submenus as manual popovers', () => {
102
- new ContextMenu([{ title: 'Parent', children: [{ title: 'Child' }] }]);
103
-
104
- const parentItem = document.querySelector('.context_menu li') as HTMLLIElement;
105
- const childmenu = parentItem.querySelector('ul') as HTMLUListElement;
106
- Object.defineProperty(parentItem, 'getBoundingClientRect', {
107
- configurable: true,
108
- value: () => makeRect(40, 20, 80, 24)
109
- });
110
- Object.defineProperty(childmenu, 'getBoundingClientRect', {
111
- configurable: true,
112
- value: () => makeRect(0, 0, 90, 100)
113
- });
114
- Object.defineProperty(childmenu, 'offsetWidth', { configurable: true, value: 90 });
115
- Object.defineProperty(childmenu, 'offsetHeight', { configurable: true, value: 100 });
116
-
117
- parentItem.dispatchEvent(new MouseEvent('mouseenter', { bubbles: true }));
118
-
119
- expect(childmenu.getAttribute('popover')).toBe('manual');
120
- expect(childmenu.classList.contains('context_menu_submenu_popover')).toBe(true);
121
- expect(childmenu.hasAttribute(popoverOpenAttribute)).toBe(true);
122
- expect(childmenu.style.left).toBe('120px');
123
- expect(childmenu.style.top).toBe('20px');
124
- });
125
-
126
- test('closeAll removes the menu from the document', () => {
127
- const menu = new ContextMenu([{ title: 'Item' }]);
128
- menu.display(new MouseEvent('contextmenu', { bubbles: true, cancelable: true, clientX: 12, clientY: 24 }));
129
-
130
- ContextMenu.closeAll();
131
-
132
- expect(document.querySelector('.context_menu')).toBeNull();
133
- });
@@ -1,340 +0,0 @@
1
- import { afterAll, afterEach, beforeAll, beforeEach, expect, test } from '@jest/globals';
2
-
3
- const camelToDashCase = (text: string) => text.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`);
4
-
5
- const compressBoxValues = (top: string, right: string, bottom: string, left: string) => {
6
- if (top === right && top === bottom && top === left)
7
- return top;
8
- if (top === bottom && right === left)
9
- return `${top} ${right}`;
10
- if (right === left)
11
- return `${top} ${right} ${bottom}`;
12
- return `${top} ${right} ${bottom} ${left}`;
13
- };
14
-
15
- const expandBoxValues = (value: string) => {
16
- const values = value.trim().split(/\s+/);
17
- if (values.length === 1)
18
- return [values[0], values[0], values[0], values[0]];
19
- if (values.length === 2)
20
- return [values[0], values[1], values[0], values[1]];
21
- if (values.length === 3)
22
- return [values[0], values[1], values[2], values[1]];
23
- return [values[0], values[1], values[2], values[3]];
24
- };
25
-
26
- class FakeStyleStore {
27
- private declarations = new Map<string, string>();
28
-
29
- reset() {
30
- this.declarations.clear();
31
- }
32
-
33
- setProperty(name: string, value: string) {
34
- this.declarations.set(name, value);
35
- }
36
-
37
- getPropertyValue(name: string) {
38
- const directValue = this.declarations.get(name);
39
- if (directValue != null)
40
- return directValue;
41
-
42
- const boxSideMap: Record<string, [string, number]> = {
43
- 'margin-top': ['margin', 0],
44
- 'margin-right': ['margin', 1],
45
- 'margin-bottom': ['margin', 2],
46
- 'margin-left': ['margin', 3],
47
- 'padding-top': ['padding', 0],
48
- 'padding-right': ['padding', 1],
49
- 'padding-bottom': ['padding', 2],
50
- 'padding-left': ['padding', 3],
51
- 'top': ['inset', 0],
52
- 'right': ['inset', 1],
53
- 'bottom': ['inset', 2],
54
- 'left': ['inset', 3],
55
- 'border-top-width': ['border-width', 0],
56
- 'border-right-width': ['border-width', 1],
57
- 'border-bottom-width': ['border-width', 2],
58
- 'border-left-width': ['border-width', 3],
59
- 'border-top-style': ['border-style', 0],
60
- 'border-right-style': ['border-style', 1],
61
- 'border-bottom-style': ['border-style', 2],
62
- 'border-left-style': ['border-style', 3],
63
- 'border-top-color': ['border-color', 0],
64
- 'border-right-color': ['border-color', 1],
65
- 'border-bottom-color': ['border-color', 2],
66
- 'border-left-color': ['border-color', 3]
67
- };
68
-
69
- const boxSide = boxSideMap[name];
70
- if (boxSide) {
71
- const boxValue = this.declarations.get(boxSide[0]);
72
- if (boxValue != null)
73
- return expandBoxValues(boxValue)[boxSide[1]];
74
- }
75
-
76
- const gap = this.declarations.get('gap');
77
- if (gap && (name === 'row-gap' || name === 'column-gap')) {
78
- const [rowGap, columnGap = rowGap] = gap.trim().split(/\s+/, 2);
79
- return name === 'row-gap' ? rowGap : columnGap;
80
- }
81
-
82
- const flexFlow = this.declarations.get('flex-flow');
83
- if (flexFlow && (name === 'flex-direction' || name === 'flex-wrap')) {
84
- const [flexDirection = '', flexWrap = ''] = flexFlow.trim().split(/\s+/, 2);
85
- return name === 'flex-direction' ? flexDirection : flexWrap;
86
- }
87
-
88
- const placeContent = this.declarations.get('place-content');
89
- if (placeContent && (name === 'align-content' || name === 'justify-content')) {
90
- const [alignContent = '', justifyContent = alignContent] = placeContent.trim().split(/\s+/, 2);
91
- return name === 'align-content' ? alignContent : justifyContent;
92
- }
93
-
94
- return '';
95
- }
96
-
97
- get cssText() {
98
- const serialized: [string, string][] = [];
99
- const consumed = new Set<string>();
100
- const get = (name: string) => this.declarations.get(name);
101
-
102
- const append = (name: string, value: string, consumedNames: string[] = [name]) => {
103
- serialized.push([name, value]);
104
- for (const consumedName of consumedNames)
105
- consumed.add(consumedName);
106
- };
107
-
108
- const appendDirect = (name: string) => {
109
- const value = get(name);
110
- if (value)
111
- append(name, value);
112
- };
113
-
114
- appendDirect('border');
115
- appendDirect('border-width');
116
- appendDirect('border-style');
117
- appendDirect('border-color');
118
- appendDirect('background');
119
- appendDirect('font');
120
-
121
- const marginTop = get('margin-top');
122
- const marginRight = get('margin-right');
123
- const marginBottom = get('margin-bottom');
124
- const marginLeft = get('margin-left');
125
- if (!consumed.has('margin') && marginTop && marginRight && marginBottom && marginLeft)
126
- append('margin', compressBoxValues(marginTop, marginRight, marginBottom, marginLeft), ['margin-top', 'margin-right', 'margin-bottom', 'margin-left']);
127
-
128
- const paddingTop = get('padding-top');
129
- const paddingRight = get('padding-right');
130
- const paddingBottom = get('padding-bottom');
131
- const paddingLeft = get('padding-left');
132
- if (!consumed.has('padding') && paddingTop && paddingRight && paddingBottom && paddingLeft)
133
- append('padding', compressBoxValues(paddingTop, paddingRight, paddingBottom, paddingLeft), ['padding-top', 'padding-right', 'padding-bottom', 'padding-left']);
134
-
135
- const top = get('top');
136
- const right = get('right');
137
- const bottom = get('bottom');
138
- const left = get('left');
139
- if (!consumed.has('inset') && top && right && bottom && left)
140
- append('inset', compressBoxValues(top, right, bottom, left), ['top', 'right', 'bottom', 'left']);
141
-
142
- const rowGap = get('row-gap');
143
- const columnGap = get('column-gap');
144
- if (rowGap && columnGap)
145
- append('gap', `${rowGap} ${columnGap}`, ['row-gap', 'column-gap']);
146
-
147
- const flexDirection = get('flex-direction');
148
- const flexWrap = get('flex-wrap');
149
- if (flexDirection && flexWrap)
150
- append('flex-flow', `${flexDirection} ${flexWrap}`, ['flex-direction', 'flex-wrap']);
151
-
152
- const alignContent = get('align-content');
153
- const justifyContent = get('justify-content');
154
- if (alignContent && justifyContent)
155
- append('place-content', `${alignContent} ${justifyContent}`, ['align-content', 'justify-content']);
156
-
157
- const borderTop = get('border-top');
158
- const borderLeft = get('border-left');
159
- const borderStyle = get('border-style');
160
- if (borderStyle && (borderTop || borderLeft)) {
161
- const [topStyle, rightStyle, bottomStyle, leftStyle] = expandBoxValues(borderStyle);
162
- if (borderTop && topStyle)
163
- append('border-top', `${borderTop} ${topStyle}`.trim(), ['border-top']);
164
- if (borderLeft && leftStyle)
165
- append('border-left', `${borderLeft} ${leftStyle}`.trim(), ['border-left']);
166
- if (rightStyle)
167
- append('border-right-style', rightStyle, ['border-style']);
168
- if (bottomStyle)
169
- append('border-bottom-style', bottomStyle, ['border-style']);
170
- }
171
-
172
- for (const [name, value] of this.declarations) {
173
- if (!consumed.has(name) && !serialized.some(x => x[0] === name))
174
- append(name, value);
175
- }
176
-
177
- return serialized.map(([name, value]) => `${name}: ${value};`).join(' ');
178
- }
179
- }
180
-
181
- const createFakeStyle = () => {
182
- const store = new FakeStyleStore();
183
- return new Proxy(store as any, {
184
- get(target, prop) {
185
- if (typeof prop === 'string' && !(prop in target))
186
- return target.getPropertyValue(camelToDashCase(prop));
187
-
188
- const value = target[prop];
189
- return typeof value === 'function' ? value.bind(target) : value;
190
- },
191
- set(target, prop, value) {
192
- if (typeof prop === 'string' && !(prop in target)) {
193
- target.setProperty(camelToDashCase(prop), String(value));
194
- return true;
195
- }
196
-
197
- target[prop] = value;
198
- return true;
199
- }
200
- });
201
- };
202
-
203
- class FakeHelperElement {
204
- style = createFakeStyle();
205
-
206
- setAttribute(name: string, value: string) {
207
- if (name === 'style' && value === '')
208
- this.style.reset();
209
- }
210
- }
211
-
212
- let CssCombiner: typeof import('../src/elements/helper/CssCombiner').CssCombiner;
213
- let originalDocument: unknown;
214
- let originalHelperElement: unknown;
215
-
216
- beforeAll(async () => {
217
- originalDocument = (<any>globalThis).document;
218
- (<any>globalThis).document = {
219
- createElement: () => new FakeHelperElement()
220
- };
221
-
222
- ({ CssCombiner } = await import('../src/elements/helper/CssCombiner'));
223
- });
224
-
225
- afterAll(() => {
226
- (<any>globalThis).document = originalDocument;
227
- });
228
-
229
- beforeEach(() => {
230
- originalHelperElement = (<any>CssCombiner)._helperElement;
231
- (<any>CssCombiner)._helperElement = new FakeHelperElement();
232
- });
233
-
234
- afterEach(() => {
235
- (<any>CssCombiner)._helperElement = originalHelperElement;
236
- });
237
-
238
- const combine = (styles: Record<string, string>, globalStyles?: Record<string, string>) =>
239
- CssCombiner.combine(
240
- new Map(Object.entries(styles)),
241
- globalStyles ? new Map(Object.entries(globalStyles)) : undefined
242
- );
243
-
244
- test('combines border and font longhands into shorthand declarations', () => {
245
- const result = combine({
246
- 'border-top-style': 'solid',
247
- 'border-right-style': 'solid',
248
- 'border-bottom-style': 'solid',
249
- 'border-left-style': 'solid',
250
- 'border-top-color': 'red',
251
- 'border-right-color': 'red',
252
- 'border-bottom-color': 'red',
253
- 'border-left-color': 'red',
254
- 'border-top-width': '1px',
255
- 'border-right-width': '1px',
256
- 'border-bottom-width': '1px',
257
- 'border-left-width': '1px',
258
- 'font-style': 'italic',
259
- 'font-weight': '700',
260
- 'font-size': '16px',
261
- 'line-height': '24px',
262
- 'font-family': '"Fira Code", monospace'
263
- });
264
-
265
- expect(result.get('border')).toBe('1px solid red');
266
- expect(result.has('border-top-width')).toBe(false);
267
- expect(result.has('border-right-width')).toBe(false);
268
- expect(result.has('border-bottom-width')).toBe(false);
269
- expect(result.has('border-left-width')).toBe(false);
270
-
271
- const font = result.get('font');
272
- expect(font).toContain('italic');
273
- expect(font).toContain('700');
274
- expect(font).toContain('16px');
275
- expect(font).toContain('24px');
276
- expect(font).toContain('Fira Code');
277
- expect(result.has('font-style')).toBe(false);
278
- expect(result.has('font-weight')).toBe(false);
279
- expect(result.has('font-size')).toBe(false);
280
- expect(result.has('line-height')).toBe(false);
281
- expect(result.has('font-family')).toBe(false);
282
- });
283
-
284
- test('combines additional browser-supported shorthand groups through CSSOM serialization', () => {
285
- const result = combine({
286
- 'row-gap': '4px',
287
- 'column-gap': '8px',
288
- 'flex-direction': 'column',
289
- 'flex-wrap': 'wrap',
290
- 'align-content': 'center',
291
- 'justify-content': 'space-between'
292
- });
293
-
294
- expect(result.get('gap')).toBe('4px 8px');
295
- expect(result.get('flex-flow')).toBe('column wrap');
296
- expect(result.get('place-content')).toBe('center space-between');
297
-
298
- expect(result.has('row-gap')).toBe(false);
299
- expect(result.has('column-gap')).toBe(false);
300
- expect(result.has('flex-direction')).toBe(false);
301
- expect(result.has('flex-wrap')).toBe(false);
302
- expect(result.has('align-content')).toBe(false);
303
- expect(result.has('justify-content')).toBe(false);
304
- });
305
-
306
- test('keeps custom properties and removes shorthand declarations that match global styles', () => {
307
- const result = combine({
308
- '--brand-color': '#c00',
309
- 'row-gap': '4px',
310
- 'column-gap': '8px'
311
- }, {
312
- 'gap': '4px 8px'
313
- });
314
-
315
- expect(result.get('--brand-color')).toBe('#c00');
316
- expect(result.has('gap')).toBe(false);
317
- });
318
-
319
- test('parses cssText declarations with semicolons inside urls', () => {
320
- const result = (<any>CssCombiner).parseStyleDeclarationList(
321
- 'background: url("data:image/svg+xml;utf8,<svg viewBox=\\"0 0 1 1\\"></svg>") no-repeat center / cover; color: red;'
322
- );
323
-
324
- expect(result.get('background')).toBe('url("data:image/svg+xml;utf8,<svg viewBox=\\"0 0 1 1\\"></svg>") no-repeat center / cover');
325
- expect(result.get('color')).toBe('red');
326
- });
327
-
328
- test('does not replace declarations with longer browser cssText expansions', () => {
329
- const result = combine({
330
- 'border-top': '4px',
331
- 'border-left': '2px',
332
- 'border-style': 'solid'
333
- });
334
-
335
- expect(result.get('border-top')).toBe('4px');
336
- expect(result.get('border-left')).toBe('2px');
337
- expect(result.get('border-style')).toBe('solid');
338
- expect(result.has('border-right-style')).toBe(false);
339
- expect(result.has('border-bottom-style')).toBe(false);
340
- });