@node-projects/web-component-designer 0.1.128 → 0.1.129
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.
- package/dist/elements/services/DefaultServiceBootstrap.js +4 -2
- package/dist/elements/services/propertiesService/services/AbstractPropertiesService.js +6 -4
- package/dist/elements/widgets/designerView/extensions/MarginExtension.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/MarginExtension.js +32 -0
- package/dist/elements/widgets/designerView/extensions/MarginExtensionProvider.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/MarginExtensionProvider.js +16 -0
- package/dist/elements/widgets/designerView/extensions/PaddingExtension.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/PaddingExtension.js +36 -0
- package/dist/elements/widgets/designerView/extensions/PaddingExtensionProvider.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/PaddingExtensionProvider.js +16 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -2
- package/package.json +1 -1
|
@@ -12,7 +12,7 @@ import { Lit2PropertiesService } from './propertiesService/services/Lit2Properti
|
|
|
12
12
|
import { ExtensionType } from '../widgets/designerView/extensions/ExtensionType.js';
|
|
13
13
|
import { ElementDragTitleExtensionProvider } from '../widgets/designerView/extensions/ElementDragTitleExtensionProvider.js';
|
|
14
14
|
import { TransformOriginExtensionProvider } from '../widgets/designerView/extensions/TransformOriginExtensionProvider.js';
|
|
15
|
-
import {
|
|
15
|
+
import { MarginExtensionProvider } from '../widgets/designerView/extensions/MarginExtensionProvider.js';
|
|
16
16
|
import { PositionExtensionProvider } from '../widgets/designerView/extensions/PositionExtensionProvider.js';
|
|
17
17
|
import { HighlightElementExtensionProvider } from '../widgets/designerView/extensions/HighlightElementExtensionProvider.js';
|
|
18
18
|
import { NamedTools } from '../widgets/designerView/tools/NamedTools.js';
|
|
@@ -91,6 +91,7 @@ import { BlockToolbarExtensionProvider } from '../widgets/designerView/extension
|
|
|
91
91
|
import { ChildContextMenu } from '../widgets/designerView/extensions/contextMenu/ChildContextMenu.js';
|
|
92
92
|
import { GridChildToolbarExtensionProvider } from '../widgets/designerView/extensions/grid/GridChildToolbarExtensionProvider.js';
|
|
93
93
|
import { ToolbarExtensionsDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/ToolbarExtensionsDesignViewConfigButtons.js';
|
|
94
|
+
import { PaddingExtensionProvider } from '../widgets/designerView/extensions/PaddingExtensionProvider.js';
|
|
94
95
|
export function createDefaultServiceContainer() {
|
|
95
96
|
let serviceContainer = new ServiceContainer();
|
|
96
97
|
let defaultPlacementService = new DefaultPlacementService();
|
|
@@ -127,7 +128,8 @@ export function createDefaultServiceContainer() {
|
|
|
127
128
|
serviceContainer.designerExtensions.set(ExtensionType.PrimarySelection, [
|
|
128
129
|
new ConditionExtensionProvider(new ElementDragTitleExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
|
|
129
130
|
new TransformOriginExtensionProvider(true),
|
|
130
|
-
new
|
|
131
|
+
new MarginExtensionProvider(),
|
|
132
|
+
new PaddingExtensionProvider(),
|
|
131
133
|
new PositionExtensionProvider(),
|
|
132
134
|
new SvgElementExtensionProvider(),
|
|
133
135
|
new ResizeExtensionProvider(true),
|
|
@@ -164,10 +164,12 @@ export class AbstractPropertiesService {
|
|
|
164
164
|
if (!bindings) {
|
|
165
165
|
const services = designItem.serviceContainer.getServices('bindingService');
|
|
166
166
|
bindings = [];
|
|
167
|
-
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
167
|
+
if (services) {
|
|
168
|
+
for (const s of services) {
|
|
169
|
+
const bs = s.getBindings(designItem);
|
|
170
|
+
if (bs && bs.length > 0) {
|
|
171
|
+
bindings.push(...bs);
|
|
172
|
+
}
|
|
171
173
|
}
|
|
172
174
|
}
|
|
173
175
|
AbstractPropertiesService._bindingsCache.set(designItem, bindings);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IDesignItem } from '../../../item/IDesignItem.js';
|
|
2
|
+
import { IDesignerCanvas } from '../IDesignerCanvas.js';
|
|
3
|
+
import { AbstractExtension } from './AbstractExtension.js';
|
|
4
|
+
import { IExtensionManager } from './IExtensionManger.js';
|
|
5
|
+
export declare class MarginExtension extends AbstractExtension {
|
|
6
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
7
|
+
extend(): void;
|
|
8
|
+
refresh(): void;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AbstractExtension } from './AbstractExtension.js';
|
|
2
|
+
import { OverlayLayer } from './OverlayLayer.js';
|
|
3
|
+
export class MarginExtension extends AbstractExtension {
|
|
4
|
+
constructor(extensionManager, designerView, extendedItem) {
|
|
5
|
+
super(extensionManager, designerView, extendedItem);
|
|
6
|
+
}
|
|
7
|
+
extend() {
|
|
8
|
+
this.refresh();
|
|
9
|
+
}
|
|
10
|
+
refresh() {
|
|
11
|
+
const itemRect = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);
|
|
12
|
+
const computedStyle = getComputedStyle(this.extendedItem.element);
|
|
13
|
+
if (computedStyle.margin !== '0px') {
|
|
14
|
+
const left = Number.parseFloat(computedStyle.marginLeft.replace('px', ''));
|
|
15
|
+
const top = Number.parseFloat(computedStyle.marginTop.replace('px', ''));
|
|
16
|
+
const right = Number.parseFloat(computedStyle.marginRight.replace('px', ''));
|
|
17
|
+
const bottom = Number.parseFloat(computedStyle.marginBottom.replace('px', ''));
|
|
18
|
+
if (!isNaN(left) && !isNaN(top) && !isNaN(right) && !isNaN(bottom)) {
|
|
19
|
+
if (this._valuesHaveChanges(left, top, right, bottom, itemRect.x, itemRect.y, itemRect.width, itemRect.height)) {
|
|
20
|
+
this._removeAllOverlays();
|
|
21
|
+
this._drawRect(itemRect.x - left, itemRect.y - top, left + itemRect.width + right, top, 'svg-margin', null, OverlayLayer.Background);
|
|
22
|
+
this._drawRect(itemRect.x - left, itemRect.y, left, itemRect.height, 'svg-margin', null, OverlayLayer.Background);
|
|
23
|
+
this._drawRect(itemRect.x + itemRect.width, itemRect.y, right, itemRect.height, 'svg-margin', null, OverlayLayer.Background);
|
|
24
|
+
this._drawRect(itemRect.x - left, itemRect.y + itemRect.height, left + itemRect.width + right, bottom, 'svg-margin', null, OverlayLayer.Background);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
dispose() {
|
|
30
|
+
this._removeAllOverlays();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IDesignerExtensionProvider } from './IDesignerExtensionProvider.js';
|
|
2
|
+
import { IDesignItem } from '../../../item/IDesignItem.js';
|
|
3
|
+
import { IDesignerCanvas } from '../IDesignerCanvas.js';
|
|
4
|
+
import { IDesignerExtension } from './IDesignerExtension.js';
|
|
5
|
+
import { IExtensionManager } from './IExtensionManger.js';
|
|
6
|
+
export declare class MarginExtensionProvider implements IDesignerExtensionProvider {
|
|
7
|
+
shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
|
|
8
|
+
getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
|
|
9
|
+
readonly style: CSSStyleSheet;
|
|
10
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MarginExtension } from './MarginExtension.js';
|
|
2
|
+
import { css } from "@node-projects/base-custom-webcomponent";
|
|
3
|
+
import { NodeType } from '../../../item/NodeType.js';
|
|
4
|
+
export class MarginExtensionProvider {
|
|
5
|
+
shouldExtend(extensionManager, designerView, designItem) {
|
|
6
|
+
if (designItem.nodeType == NodeType.Element)
|
|
7
|
+
return true;
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
getExtension(extensionManager, designerView, designItem) {
|
|
11
|
+
return new MarginExtension(extensionManager, designerView, designItem);
|
|
12
|
+
}
|
|
13
|
+
style = css `
|
|
14
|
+
.svg-margin { fill: #ff944766; }
|
|
15
|
+
`;
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IDesignItem } from '../../../item/IDesignItem.js';
|
|
2
|
+
import { IDesignerCanvas } from '../IDesignerCanvas.js';
|
|
3
|
+
import { AbstractExtension } from './AbstractExtension.js';
|
|
4
|
+
import { IExtensionManager } from './IExtensionManger.js';
|
|
5
|
+
export declare class PaddingExtension extends AbstractExtension {
|
|
6
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
7
|
+
extend(): void;
|
|
8
|
+
refresh(): void;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AbstractExtension } from './AbstractExtension.js';
|
|
2
|
+
import { OverlayLayer } from './OverlayLayer.js';
|
|
3
|
+
export class PaddingExtension extends AbstractExtension {
|
|
4
|
+
constructor(extensionManager, designerView, extendedItem) {
|
|
5
|
+
super(extensionManager, designerView, extendedItem);
|
|
6
|
+
}
|
|
7
|
+
extend() {
|
|
8
|
+
this.refresh();
|
|
9
|
+
}
|
|
10
|
+
refresh() {
|
|
11
|
+
const itemRect = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);
|
|
12
|
+
const computedStyle = getComputedStyle(this.extendedItem.element);
|
|
13
|
+
if (computedStyle.margin !== '0px') {
|
|
14
|
+
const left = Number.parseFloat(computedStyle.paddingLeft.replace('px', ''));
|
|
15
|
+
const top = Number.parseFloat(computedStyle.paddingTop.replace('px', ''));
|
|
16
|
+
const right = Number.parseFloat(computedStyle.paddingRight.replace('px', ''));
|
|
17
|
+
const bottom = Number.parseFloat(computedStyle.paddingBottom.replace('px', ''));
|
|
18
|
+
const bleft = Number.parseFloat(computedStyle.borderLeftWidth.replace('px', ''));
|
|
19
|
+
const btop = Number.parseFloat(computedStyle.borderTopWidth.replace('px', ''));
|
|
20
|
+
const bright = Number.parseFloat(computedStyle.borderRightWidth.replace('px', ''));
|
|
21
|
+
const bbottom = Number.parseFloat(computedStyle.borderBottomWidth.replace('px', ''));
|
|
22
|
+
if (!isNaN(left) && !isNaN(top) && !isNaN(right) && !isNaN(bottom)) {
|
|
23
|
+
if (this._valuesHaveChanges(left, top, right, bottom, bleft, btop, bright, bbottom, itemRect.x, itemRect.y, itemRect.width, itemRect.height)) {
|
|
24
|
+
this._removeAllOverlays();
|
|
25
|
+
this._drawRect(itemRect.x + bleft + left, itemRect.y + btop, itemRect.width - left - right - bleft - bright, top, 'svg-padding', null, OverlayLayer.Background);
|
|
26
|
+
this._drawRect(itemRect.x + bleft, itemRect.y + btop, left, itemRect.height - btop - bbottom, 'svg-padding', null, OverlayLayer.Background);
|
|
27
|
+
this._drawRect(itemRect.x + bleft + left, itemRect.y + itemRect.height - bottom - bbottom, itemRect.width - left - right - bleft - bright, bottom, 'svg-padding', null, OverlayLayer.Background);
|
|
28
|
+
this._drawRect(itemRect.x + itemRect.width - right - bright, itemRect.y + btop, right, itemRect.height - btop - bbottom, 'svg-padding', null, OverlayLayer.Background);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
dispose() {
|
|
34
|
+
this._removeAllOverlays();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IDesignerExtensionProvider } from './IDesignerExtensionProvider.js';
|
|
2
|
+
import { IDesignItem } from '../../../item/IDesignItem.js';
|
|
3
|
+
import { IDesignerCanvas } from '../IDesignerCanvas.js';
|
|
4
|
+
import { IDesignerExtension } from './IDesignerExtension.js';
|
|
5
|
+
import { IExtensionManager } from './IExtensionManger.js';
|
|
6
|
+
export declare class PaddingExtensionProvider implements IDesignerExtensionProvider {
|
|
7
|
+
shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
|
|
8
|
+
getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
|
|
9
|
+
readonly style: CSSStyleSheet;
|
|
10
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { css } from "@node-projects/base-custom-webcomponent";
|
|
2
|
+
import { NodeType } from '../../../item/NodeType.js';
|
|
3
|
+
import { PaddingExtension } from './PaddingExtension.js';
|
|
4
|
+
export class PaddingExtensionProvider {
|
|
5
|
+
shouldExtend(extensionManager, designerView, designItem) {
|
|
6
|
+
if (designItem.nodeType == NodeType.Element)
|
|
7
|
+
return true;
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
getExtension(extensionManager, designerView, designItem) {
|
|
11
|
+
return new PaddingExtension(extensionManager, designerView, designItem);
|
|
12
|
+
}
|
|
13
|
+
style = css `
|
|
14
|
+
.svg-padding { fill: #32cd3266; }
|
|
15
|
+
`;
|
|
16
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -204,8 +204,10 @@ export * from "./elements/widgets/designerView/extensions/ExtensionType.js";
|
|
|
204
204
|
export * from "./elements/widgets/designerView/extensions/AbstractExtension.js";
|
|
205
205
|
export * from "./elements/widgets/designerView/extensions/AltToEnterContainerExtension.js";
|
|
206
206
|
export * from "./elements/widgets/designerView/extensions/AltToEnterContainerExtensionProvider.js";
|
|
207
|
-
export * from "./elements/widgets/designerView/extensions/
|
|
208
|
-
export * from "./elements/widgets/designerView/extensions/
|
|
207
|
+
export * from "./elements/widgets/designerView/extensions/MarginExtension.js";
|
|
208
|
+
export * from "./elements/widgets/designerView/extensions/MarginExtensionProvider.js";
|
|
209
|
+
export * from "./elements/widgets/designerView/extensions/PaddingExtension.js";
|
|
210
|
+
export * from "./elements/widgets/designerView/extensions/PaddingExtensionProvider.js";
|
|
209
211
|
export * from "./elements/widgets/designerView/extensions/logic/ConditionExtensionProvider.js";
|
|
210
212
|
export * from "./elements/widgets/designerView/extensions/ExtensionManager.js";
|
|
211
213
|
export * from "./elements/widgets/designerView/extensions/FlexboxExtension.js";
|
package/dist/index.js
CHANGED
|
@@ -145,8 +145,10 @@ export * from "./elements/widgets/designerView/extensions/ExtensionType.js";
|
|
|
145
145
|
export * from "./elements/widgets/designerView/extensions/AbstractExtension.js";
|
|
146
146
|
export * from "./elements/widgets/designerView/extensions/AltToEnterContainerExtension.js";
|
|
147
147
|
export * from "./elements/widgets/designerView/extensions/AltToEnterContainerExtensionProvider.js";
|
|
148
|
-
export * from "./elements/widgets/designerView/extensions/
|
|
149
|
-
export * from "./elements/widgets/designerView/extensions/
|
|
148
|
+
export * from "./elements/widgets/designerView/extensions/MarginExtension.js";
|
|
149
|
+
export * from "./elements/widgets/designerView/extensions/MarginExtensionProvider.js";
|
|
150
|
+
export * from "./elements/widgets/designerView/extensions/PaddingExtension.js";
|
|
151
|
+
export * from "./elements/widgets/designerView/extensions/PaddingExtensionProvider.js";
|
|
150
152
|
export * from "./elements/widgets/designerView/extensions/logic/ConditionExtensionProvider.js";
|
|
151
153
|
export * from "./elements/widgets/designerView/extensions/ExtensionManager.js";
|
|
152
154
|
export * from "./elements/widgets/designerView/extensions/FlexboxExtension.js";
|
package/package.json
CHANGED