@node-projects/web-component-designer 0.1.235 → 0.1.237
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/helper/getBoxQuads.js +14 -9
- package/dist/elements/helper/getBoxQuads.js.map +1 -1
- package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js +14 -10
- package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js.map +1 -1
- package/dist/elements/services/propertiesService/services/CssProperties.json +0 -2
- package/package.json +1 -1
- package/dist/elements/services/DefaultServiceBootstrap.ts.BASE.d.ts +0 -3
- package/dist/elements/services/DefaultServiceBootstrap.ts.BASE.js +0 -216
- package/dist/elements/services/DefaultServiceBootstrap.ts.LOCAL.d.ts +0 -3
- package/dist/elements/services/DefaultServiceBootstrap.ts.LOCAL.js +0 -220
- package/dist/elements/services/DefaultServiceBootstrap.ts.REMOTE.d.ts +0 -3
- package/dist/elements/services/DefaultServiceBootstrap.ts.REMOTE.js +0 -220
- package/dist/elements/services/designItemService/DesignItemService copy.d.ts +0 -7
- package/dist/elements/services/designItemService/DesignItemService copy.js +0 -6
- package/dist/elements/services/placementService/AbsolutePlacementService copy.d.ts +0 -19
- package/dist/elements/services/placementService/AbsolutePlacementService copy.js +0 -155
- package/dist/elements/widgets/bindings/BindingsEditor.d.ts +0 -17
- package/dist/elements/widgets/bindings/BindingsEditor.js +0 -54
- package/dist/elements/widgets/bindings/BindingsEditor.js.map +0 -1
- package/dist/elements/widgets/designerView/extensions/CanvasExtension.d.ts +0 -10
- package/dist/elements/widgets/designerView/extensions/CanvasExtension.js +0 -31
- package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.d.ts +0 -10
- package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.js +0 -16
- package/dist/elements/widgets/designerView/extensions/MarginExtension copy.d.ts +0 -10
- package/dist/elements/widgets/designerView/extensions/MarginExtension copy.js +0 -32
- package/dist/elements/widgets/designerView/extensions/MarginExtensionProvider copy.d.ts +0 -10
- package/dist/elements/widgets/designerView/extensions/MarginExtensionProvider copy.js +0 -16
- package/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton copy.d.ts +0 -12
- package/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton copy.js +0 -46
- package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons copy.d.ts +0 -4
- package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons copy.js +0 -7
- package/dist/elements/widgets/designerView/extensions/buttons/OptionsConfigButton.d.ts +0 -12
- package/dist/elements/widgets/designerView/extensions/buttons/OptionsConfigButton.js +0 -46
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { DomConverter } from '../../widgets/designerView/DomConverter.js';
|
|
2
|
-
import { combineTransforms, extractTranslationFromDOMMatrix, getResultingTransformationBetweenElementAndAllAncestors } from '../../helper/TransformHelper.js';
|
|
3
|
-
import { filterChildPlaceItems, getDesignItemCurrentPos, placeDesignItem } from '../../helper/LayoutHelper.js';
|
|
4
|
-
import { ExtensionType } from '../../widgets/designerView/extensions/ExtensionType.js';
|
|
5
|
-
import { straightenLine } from '../../helper/PathDataPolyfill.js';
|
|
6
|
-
export class AbsolutePlacementService {
|
|
7
|
-
serviceForContainer(container, containerStyle, mode, item, event) {
|
|
8
|
-
if (item != null && (item.getComputedStyle()?.position == 'absolute' || item.getComputedStyle()?.position == 'relative'))
|
|
9
|
-
return true;
|
|
10
|
-
/*if (containerStyle.display === 'grid' || containerStyle.display === 'inline-grid' ||
|
|
11
|
-
containerStyle.display === 'flex' || containerStyle.display === 'inline-flex')
|
|
12
|
-
return false;*/
|
|
13
|
-
return mode == 'drop' && event.ctrlKey;
|
|
14
|
-
}
|
|
15
|
-
isEnterableContainer(container) {
|
|
16
|
-
if (DomConverter.IsSelfClosingElement(container.element.localName))
|
|
17
|
-
return false;
|
|
18
|
-
if (!container.isRootItem && container.element.shadowRoot && container.element.shadowRoot.querySelector('slot') == null)
|
|
19
|
-
return false;
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
canEnter(container, items) {
|
|
23
|
-
if (!this.isEnterableContainer(container))
|
|
24
|
-
return false;
|
|
25
|
-
if (!items.every(x => !x.element.contains(container.element) && x !== container))
|
|
26
|
-
return false;
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
canLeave(container, items) {
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
getElementOffset(container, designItem) {
|
|
33
|
-
return container.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(container.element);
|
|
34
|
-
}
|
|
35
|
-
calculateTrack(event, designerCanvas, startPoint, offsetInControl, newPoint, item) {
|
|
36
|
-
let trackX = newPoint.x - startPoint.x;
|
|
37
|
-
let trackY = newPoint.y - startPoint.y;
|
|
38
|
-
if (!event.ctrlKey) {
|
|
39
|
-
if (designerCanvas.alignOnGrid) {
|
|
40
|
-
let p = getDesignItemCurrentPos(item, 'position');
|
|
41
|
-
p.x = p.x % designerCanvas.gridSize;
|
|
42
|
-
p.y = p.y % designerCanvas.gridSize;
|
|
43
|
-
trackX = Math.round(trackX / designerCanvas.gridSize) * designerCanvas.gridSize - p.x;
|
|
44
|
-
trackY = Math.round(trackY / designerCanvas.gridSize) * designerCanvas.gridSize - p.y;
|
|
45
|
-
}
|
|
46
|
-
else if (designerCanvas.alignOnSnap) {
|
|
47
|
-
let rect = item.element.getBoundingClientRect();
|
|
48
|
-
let newPos = designerCanvas.snapLines.snapToPosition({ x: (newPoint.x - offsetInControl.x), y: (newPoint.y - offsetInControl.y) }, { width: rect.width / designerCanvas.scaleFactor, height: rect.height / designerCanvas.scaleFactor }, { x: trackX > 0 ? 1 : -1, y: trackY > 0 ? 1 : -1 });
|
|
49
|
-
if (newPos.x !== null) {
|
|
50
|
-
trackX = newPos.x - Math.round(startPoint.x) + Math.round(offsetInControl.x);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
trackX = Math.round(trackX);
|
|
54
|
-
}
|
|
55
|
-
if (newPos.y !== null) {
|
|
56
|
-
trackY = newPos.y - Math.round(startPoint.y) + Math.round(offsetInControl.y);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
trackY = Math.round(trackY);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return { x: trackX, y: trackY };
|
|
64
|
-
}
|
|
65
|
-
placePoint(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
|
|
66
|
-
let trackX = newPoint.x;
|
|
67
|
-
let trackY = newPoint.y;
|
|
68
|
-
if (!event.ctrlKey) {
|
|
69
|
-
if (designerCanvas.alignOnGrid) {
|
|
70
|
-
trackX = Math.round(trackX / designerCanvas.gridSize) * designerCanvas.gridSize;
|
|
71
|
-
trackY = Math.round(trackY / designerCanvas.gridSize) * designerCanvas.gridSize;
|
|
72
|
-
}
|
|
73
|
-
else if (designerCanvas.alignOnSnap) {
|
|
74
|
-
let newPos = designerCanvas.snapLines.snapToPosition({ x: newPoint.x - offsetInControl.x, y: newPoint.y - offsetInControl.y }, null, { x: trackX > 0 ? 1 : -1, y: trackY > 0 ? 1 : -1 });
|
|
75
|
-
if (newPos.x !== null) {
|
|
76
|
-
trackX = newPos.x;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
trackX = Math.round(trackX);
|
|
80
|
-
}
|
|
81
|
-
if (newPos.y !== null) {
|
|
82
|
-
trackY = newPos.y;
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
trackY = Math.round(trackY);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return { x: trackX, y: trackY };
|
|
90
|
-
}
|
|
91
|
-
startPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
|
|
92
|
-
}
|
|
93
|
-
place(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
|
|
94
|
-
//TODO: this should revert all undo actions while active
|
|
95
|
-
//maybe a undo actions returns itself or an id so it could be changed?
|
|
96
|
-
let track = this.calculateTrack(event, designerCanvas, startPoint, offsetInControl, newPoint, items[0]);
|
|
97
|
-
if (event.shiftKey) {
|
|
98
|
-
track = straightenLine({ x: 0, y: 0 }, track, true);
|
|
99
|
-
}
|
|
100
|
-
let filteredItems = filterChildPlaceItems(items);
|
|
101
|
-
for (const designItem of filteredItems) {
|
|
102
|
-
const canvas = designItem.instanceServiceContainer.designerCanvas.rootDesignItem.element;
|
|
103
|
-
let originalElementAndAllAncestorsMultipliedMatrix = getResultingTransformationBetweenElementAndAllAncestors(designItem.parent.element, canvas, true);
|
|
104
|
-
let transformMatrixParentTransformsCompensated = null;
|
|
105
|
-
if (originalElementAndAllAncestorsMultipliedMatrix) {
|
|
106
|
-
transformMatrixParentTransformsCompensated = new DOMPoint(track.x, track.y, 0, 0).matrixTransform(originalElementAndAllAncestorsMultipliedMatrix.inverse());
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
transformMatrixParentTransformsCompensated = new DOMPoint(track.x, track.y, 0, 0);
|
|
110
|
-
}
|
|
111
|
-
const translationMatrix = new DOMMatrix().translate(transformMatrixParentTransformsCompensated.x, transformMatrixParentTransformsCompensated.y);
|
|
112
|
-
combineTransforms(designItem.element, designItem.getStyle('transform'), translationMatrix.toString());
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
moveElements(designItems, position, absolute) {
|
|
116
|
-
//TODO: Check if we set left or right
|
|
117
|
-
//TODO: Use CSS units
|
|
118
|
-
for (let d of designItems) {
|
|
119
|
-
if (position.x)
|
|
120
|
-
d.setStyle('left', parseInt(d.element.style.left) - position.x + 'px');
|
|
121
|
-
if (position.y)
|
|
122
|
-
d.setStyle('top', parseInt(d.element.style.top) - position.y + 'px');
|
|
123
|
-
}
|
|
124
|
-
designItems[0].instanceServiceContainer.designerCanvas.extensionManager.refreshExtensions(designItems);
|
|
125
|
-
}
|
|
126
|
-
enterContainer(container, items, mode) {
|
|
127
|
-
let filterdItems = filterChildPlaceItems(items);
|
|
128
|
-
for (let i of filterdItems) {
|
|
129
|
-
if (mode == 'drop')
|
|
130
|
-
i.setStyle('position', 'absolute');
|
|
131
|
-
container.insertChild(i);
|
|
132
|
-
if (i.lastContainerSize) {
|
|
133
|
-
if (!i.hasStyle('width'))
|
|
134
|
-
i.setStyle('width', i.lastContainerSize.width + 'px');
|
|
135
|
-
if (!i.hasStyle('height'))
|
|
136
|
-
i.setStyle('height', i.lastContainerSize.height + 'px');
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
leaveContainer(container, items) {
|
|
141
|
-
}
|
|
142
|
-
finishPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
|
|
143
|
-
let filterdItems = filterChildPlaceItems(items);
|
|
144
|
-
for (const designItem of filterdItems) {
|
|
145
|
-
let translation = extractTranslationFromDOMMatrix(new DOMMatrix(designItem.element.style.transform));
|
|
146
|
-
const stylesMapOffset = extractTranslationFromDOMMatrix(new DOMMatrix(designItem.getStyle('transform') ?? ''));
|
|
147
|
-
designItem.element.style.transform = designItem.getStyle('transform') ?? '';
|
|
148
|
-
let track = { x: translation.x, y: translation.y };
|
|
149
|
-
placeDesignItem(container, designItem, { x: track.x - stylesMapOffset.x, y: track.y - stylesMapOffset.y }, 'position');
|
|
150
|
-
}
|
|
151
|
-
for (const item of items) {
|
|
152
|
-
designerCanvas.extensionManager.removeExtension(item, ExtensionType.Placement);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { BaseCustomWebComponentConstructorAppend } from '@node-projects/base-custom-webcomponent';
|
|
2
|
-
export declare enum targetType {
|
|
3
|
-
'property' = "property",
|
|
4
|
-
'style' = "style",
|
|
5
|
-
'attribute' = "attribute",
|
|
6
|
-
'event' = "event"
|
|
7
|
-
}
|
|
8
|
-
export declare enum valueType {
|
|
9
|
-
'string' = "string",
|
|
10
|
-
'number' = "number",
|
|
11
|
-
'boolean' = "boolean"
|
|
12
|
-
}
|
|
13
|
-
export declare class BindingsEditor extends BaseCustomWebComponentConstructorAppend {
|
|
14
|
-
static readonly style: CSSStyleSheet;
|
|
15
|
-
static readonly template: HTMLTemplateElement;
|
|
16
|
-
constructor(targetType: targetType);
|
|
17
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { css, BaseCustomWebComponentConstructorAppend, html } from '@node-projects/base-custom-webcomponent';
|
|
2
|
-
export var targetType;
|
|
3
|
-
(function (targetType) {
|
|
4
|
-
targetType["property"] = "property";
|
|
5
|
-
targetType["style"] = "style";
|
|
6
|
-
targetType["attribute"] = "attribute";
|
|
7
|
-
targetType["event"] = "event";
|
|
8
|
-
})(targetType || (targetType = {}));
|
|
9
|
-
export var valueType;
|
|
10
|
-
(function (valueType) {
|
|
11
|
-
valueType["string"] = "string";
|
|
12
|
-
valueType["number"] = "number";
|
|
13
|
-
valueType["boolean"] = "boolean";
|
|
14
|
-
})(valueType || (valueType = {}));
|
|
15
|
-
export class BindingsEditor extends BaseCustomWebComponentConstructorAppend {
|
|
16
|
-
static style = css `
|
|
17
|
-
* { font-size: 16px; }
|
|
18
|
-
.list {
|
|
19
|
-
display: flex;
|
|
20
|
-
flex-direction: column;
|
|
21
|
-
gap: 5px;
|
|
22
|
-
}
|
|
23
|
-
`;
|
|
24
|
-
static template = html `
|
|
25
|
-
<div class="list" style="">
|
|
26
|
-
<span>Expression</span>
|
|
27
|
-
<div>
|
|
28
|
-
<input style="width:100%;">
|
|
29
|
-
<button>...</button>
|
|
30
|
-
</div>
|
|
31
|
-
<!--<span>Target</span>
|
|
32
|
-
<select id="target">
|
|
33
|
-
<option>Property</option>
|
|
34
|
-
<option>Attribute</option>
|
|
35
|
-
<option>Style</option>
|
|
36
|
-
<option>Event</option>
|
|
37
|
-
</select>-->
|
|
38
|
-
<div>
|
|
39
|
-
<input id="mode" type="checkbox"><label for="mode">Two Way</label>
|
|
40
|
-
</div>
|
|
41
|
-
<div>
|
|
42
|
-
<input id="inverted" type="checkbox"><label for="inverted">Inverted</label>
|
|
43
|
-
</div>
|
|
44
|
-
<div>
|
|
45
|
-
<input id="nullSafe" type="checkbox"><label for="nullSafe">Null Safe</label>
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
`;
|
|
49
|
-
constructor(targetType) {
|
|
50
|
-
super();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
customElements.define('node-projects-bindings-editor', BindingsEditor);
|
|
54
|
-
//# sourceMappingURL=BindingsEditor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BindingsEditor.js","sourceRoot":"","sources":["../../../../src/elements/widgets/bindings/BindingsEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,uCAAuC,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAC;AAE7G,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,8BAAmB,CAAA;IACnB,8BAAmB,CAAA;IACnB,gCAAqB,CAAA;AACvB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAED,MAAM,OAAO,cAAe,SAAQ,uCAAuC;IAEzE,MAAM,CAAmB,KAAK,GAAG,GAAG,CAAA;;;;;;;KAOjC,CAAC;IAEJ,MAAM,CAAmB,QAAQ,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBvC,CAAC;IAEF,YAAY,UAAsB;QAChC,KAAK,EAAE,CAAC;IACV,CAAC;;AAMH,cAAc,CAAC,MAAM,CAAC,+BAA+B,EAAE,cAAc,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
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 CanvasExtension extends AbstractExtension {
|
|
6
|
-
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
7
|
-
extend(): void;
|
|
8
|
-
refresh(): void;
|
|
9
|
-
dispose(): void;
|
|
10
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { AbstractExtension } from './AbstractExtension.js';
|
|
2
|
-
export class CanvasExtension extends AbstractExtension {
|
|
3
|
-
constructor(extensionManager, designerView, extendedItem) {
|
|
4
|
-
super(extensionManager, designerView, extendedItem);
|
|
5
|
-
}
|
|
6
|
-
extend() {
|
|
7
|
-
this.refresh();
|
|
8
|
-
}
|
|
9
|
-
refresh() {
|
|
10
|
-
const itemRect = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);
|
|
11
|
-
const computedStyle = getComputedStyle(this.extendedItem.element);
|
|
12
|
-
if (computedStyle.margin !== '0px') {
|
|
13
|
-
const left = Number.parseFloat(computedStyle.marginLeft.replace('px', ''));
|
|
14
|
-
const top = Number.parseFloat(computedStyle.marginTop.replace('px', ''));
|
|
15
|
-
const right = Number.parseFloat(computedStyle.marginRight.replace('px', ''));
|
|
16
|
-
const bottom = Number.parseFloat(computedStyle.marginBottom.replace('px', ''));
|
|
17
|
-
if (!isNaN(left) && !isNaN(top) && !isNaN(right) && !isNaN(bottom)) {
|
|
18
|
-
if (this._valuesHaveChanges(left, top, right, bottom, itemRect.x, itemRect.y, itemRect.width, itemRect.height)) {
|
|
19
|
-
this._removeAllOverlays();
|
|
20
|
-
this._drawRect(itemRect.x - left, itemRect.y - top, left + itemRect.width + right, top, 'svg-margin');
|
|
21
|
-
this._drawRect(itemRect.x - left, itemRect.y, left, itemRect.height, 'svg-margin');
|
|
22
|
-
this._drawRect(itemRect.x + itemRect.width, itemRect.y, right, itemRect.height, 'svg-margin');
|
|
23
|
-
this._drawRect(itemRect.x - left, itemRect.y + itemRect.height, left + itemRect.width + right, bottom, 'svg-margin');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
dispose() {
|
|
29
|
-
this._removeAllOverlays();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
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 CanvasExtensionProvider 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
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { CanvasExtension } from './CanvasExtension.js';
|
|
2
|
-
import { css } from "@node-projects/base-custom-webcomponent";
|
|
3
|
-
import { NodeType } from '../../../item/NodeType.js';
|
|
4
|
-
export class CanvasExtensionProvider {
|
|
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 CanvasExtension(extensionManager, designerView, designItem);
|
|
12
|
-
}
|
|
13
|
-
style = css `
|
|
14
|
-
.svg-margin { fill: #ff944766; }
|
|
15
|
-
`;
|
|
16
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { IContextMenuItem } from "../../../../helper/contextMenu/IContextMenuItem.js";
|
|
2
|
-
import { DesignerView } from "../../designerView.js";
|
|
3
|
-
import { IDesignerCanvas } from '../../IDesignerCanvas.js';
|
|
4
|
-
import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
|
|
5
|
-
export declare class AbstractDesignViewConfigButton implements IDesignViewConfigButtonsProvider {
|
|
6
|
-
protected settingName: any;
|
|
7
|
-
private content;
|
|
8
|
-
private tooltp;
|
|
9
|
-
private contextmenu;
|
|
10
|
-
constructor(settingName: string, content: string | HTMLElement, tooltip: string, contextmenu?: IContextMenuItem[]);
|
|
11
|
-
provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
|
|
12
|
-
}
|
package/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton copy.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ContextMenu } from "../../../../helper/contextMenu/ContextMenu.js";
|
|
2
|
-
export class AbstractDesignViewConfigButton {
|
|
3
|
-
settingName;
|
|
4
|
-
content;
|
|
5
|
-
tooltp;
|
|
6
|
-
contextmenu;
|
|
7
|
-
constructor(settingName, content, tooltip, contextmenu) {
|
|
8
|
-
this.settingName = settingName;
|
|
9
|
-
this.content = content;
|
|
10
|
-
this.tooltp = tooltip;
|
|
11
|
-
this.contextmenu = contextmenu;
|
|
12
|
-
}
|
|
13
|
-
provideButtons(designerView, designerCanvas) {
|
|
14
|
-
const btn = document.createElement('div');
|
|
15
|
-
if (typeof this.content == 'string')
|
|
16
|
-
btn.innerHTML = this.content;
|
|
17
|
-
else
|
|
18
|
-
btn.appendChild(this.content);
|
|
19
|
-
btn.title = this.tooltp;
|
|
20
|
-
btn.className = 'toolbar-control';
|
|
21
|
-
designerCanvas.instanceServiceContainer.designContext.extensionOptionsChanged.on(() => {
|
|
22
|
-
if (extensionOptions[this.settingName] !== false)
|
|
23
|
-
btn.classList.add('selected');
|
|
24
|
-
else
|
|
25
|
-
btn.classList.remove('selected');
|
|
26
|
-
});
|
|
27
|
-
const extensionOptions = designerCanvas.instanceServiceContainer.designContext.extensionOptions;
|
|
28
|
-
if (extensionOptions[this.settingName] !== false)
|
|
29
|
-
btn.classList.add('selected');
|
|
30
|
-
btn.onclick = () => {
|
|
31
|
-
const val = extensionOptions[this.settingName];
|
|
32
|
-
extensionOptions[this.settingName] = val === false ? true : false;
|
|
33
|
-
if (extensionOptions[this.settingName] !== false)
|
|
34
|
-
btn.classList.add('selected');
|
|
35
|
-
else
|
|
36
|
-
btn.classList.remove('selected');
|
|
37
|
-
};
|
|
38
|
-
btn.oncontextmenu = (e) => {
|
|
39
|
-
e.preventDefault();
|
|
40
|
-
if (this.contextmenu) {
|
|
41
|
-
ContextMenu.show(this.contextmenu, e);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
return [btn];
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { gridExtensionShowOverlayOptionName } from "../grid/DisplayGridExtensionProvider.js";
|
|
2
|
-
import { AbstractDesignViewConfigButton } from "./AbstractDesignViewConfigButton.js";
|
|
3
|
-
export class GridExtensionDesignViewConfigButtons extends AbstractDesignViewConfigButton {
|
|
4
|
-
constructor() {
|
|
5
|
-
super(gridExtensionShowOverlayOptionName, "G", "show grid overlay");
|
|
6
|
-
}
|
|
7
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { IContextMenuItem } from "../../../../helper/contextMenu/IContextMenuItem.js";
|
|
2
|
-
import { DesignerView } from "../../designerView.js";
|
|
3
|
-
import { IDesignerCanvas } from '../../IDesignerCanvas.js';
|
|
4
|
-
import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
|
|
5
|
-
export declare class AbstractDesignViewConfigButton implements IDesignViewConfigButtonsProvider {
|
|
6
|
-
protected settingName: any;
|
|
7
|
-
private content;
|
|
8
|
-
private tooltp;
|
|
9
|
-
private contextmenu;
|
|
10
|
-
constructor(settingName: string, content: string | HTMLElement, tooltip: string, contextmenu?: IContextMenuItem[]);
|
|
11
|
-
provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
|
|
12
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ContextMenu } from "../../../../helper/contextMenu/ContextMenu.js";
|
|
2
|
-
export class AbstractDesignViewConfigButton {
|
|
3
|
-
settingName;
|
|
4
|
-
content;
|
|
5
|
-
tooltp;
|
|
6
|
-
contextmenu;
|
|
7
|
-
constructor(settingName, content, tooltip, contextmenu) {
|
|
8
|
-
this.settingName = settingName;
|
|
9
|
-
this.content = content;
|
|
10
|
-
this.tooltp = tooltip;
|
|
11
|
-
this.contextmenu = contextmenu;
|
|
12
|
-
}
|
|
13
|
-
provideButtons(designerView, designerCanvas) {
|
|
14
|
-
const btn = document.createElement('div');
|
|
15
|
-
if (typeof this.content == 'string')
|
|
16
|
-
btn.innerHTML = this.content;
|
|
17
|
-
else
|
|
18
|
-
btn.appendChild(this.content);
|
|
19
|
-
btn.title = this.tooltp;
|
|
20
|
-
btn.className = 'toolbar-control';
|
|
21
|
-
designerCanvas.instanceServiceContainer.designContext.extensionOptionsChanged.on(() => {
|
|
22
|
-
if (extensionOptions[this.settingName] !== false)
|
|
23
|
-
btn.classList.add('selected');
|
|
24
|
-
else
|
|
25
|
-
btn.classList.remove('selected');
|
|
26
|
-
});
|
|
27
|
-
const extensionOptions = designerCanvas.instanceServiceContainer.designContext.extensionOptions;
|
|
28
|
-
if (extensionOptions[this.settingName] !== false)
|
|
29
|
-
btn.classList.add('selected');
|
|
30
|
-
btn.onclick = () => {
|
|
31
|
-
const val = extensionOptions[this.settingName];
|
|
32
|
-
extensionOptions[this.settingName] = val === false ? true : false;
|
|
33
|
-
if (extensionOptions[this.settingName] !== false)
|
|
34
|
-
btn.classList.add('selected');
|
|
35
|
-
else
|
|
36
|
-
btn.classList.remove('selected');
|
|
37
|
-
};
|
|
38
|
-
btn.oncontextmenu = (e) => {
|
|
39
|
-
e.preventDefault();
|
|
40
|
-
if (this.contextmenu) {
|
|
41
|
-
ContextMenu.show(this.contextmenu, e);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
return [btn];
|
|
45
|
-
}
|
|
46
|
-
}
|