@node-projects/web-component-designer 0.0.199 → 0.0.201

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 (31) hide show
  1. package/dist/elements/helper/CssUnitConverter.d.ts +1 -1
  2. package/dist/elements/helper/GridHelper.d.ts +1 -2
  3. package/dist/elements/helper/GridHelper.js +3 -18
  4. package/dist/elements/item/DesignItem.js +8 -4
  5. package/dist/elements/services/DefaultServiceBootstrap.js +5 -3
  6. package/dist/elements/widgets/codeView/code-view-monaco.js +1 -5
  7. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.js +1 -1
  8. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js +0 -1
  9. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.d.ts +17 -0
  10. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.js +106 -0
  11. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtensionProvider.d.ts +10 -0
  12. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtensionProvider.js +20 -0
  13. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension copy 2.d.ts +51 -0
  14. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension copy 2.js +346 -0
  15. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension copy.d.ts +51 -0
  16. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension copy.js +346 -0
  17. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension.d.ts +8 -43
  18. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension.js +43 -318
  19. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider copy.d.ts +10 -0
  20. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider copy.js +22 -0
  21. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider.d.ts +1 -1
  22. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider.js +5 -9
  23. package/dist/elements/widgets/designerView/extensions/grid/NewEditGridExtensionProvider.d.ts +10 -0
  24. package/dist/elements/widgets/designerView/extensions/grid/NewEditGridExtensionProvider.js +22 -0
  25. package/dist/elements/widgets/designerView/extensions/grid/OldEditGridExtension.d.ts +51 -0
  26. package/dist/elements/widgets/designerView/extensions/grid/OldEditGridExtension.js +346 -0
  27. package/dist/elements/widgets/designerView/extensions/grid/OldEditGridExtensionProvider.d.ts +10 -0
  28. package/dist/elements/widgets/designerView/extensions/grid/OldEditGridExtensionProvider.js +22 -0
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.js +2 -2
  31. package/package.json +1 -1
@@ -0,0 +1,346 @@
1
+ import { EventNames } from "../../../../../enums/EventNames.js";
2
+ import { convertCssUnit, convertCssUnitToPixel, getCssUnit } from "../../../../helper/CssUnitConverter.js";
3
+ import { CalculateGridInformation } from "../../../../helper/GridHelper.js";
4
+ import { AbstractExtension } from '../AbstractExtension.js';
5
+ import { OverlayLayer } from "../OverlayLayer.js";
6
+ export class EditGridExtension extends AbstractExtension {
7
+ _initialPoint;
8
+ _initialSizes;
9
+ _cells;
10
+ _gaps;
11
+ _headers;
12
+ _headerTexts;
13
+ _plusCircles;
14
+ _resizeCircles;
15
+ minPixelSize = 10;
16
+ gridInformation;
17
+ defaultHeaderSize = 20;
18
+ defaultPlusSize = this.defaultHeaderSize * 2 / 3;
19
+ defaultDistanceToBox = 5;
20
+ defaultDistanceBetweenHeaders = 10;
21
+ defaultSizeOfNewRowOrColumn = "50px";
22
+ constructor(extensionManager, designerView, extendedItem) {
23
+ super(extensionManager, designerView, extendedItem);
24
+ }
25
+ extend() {
26
+ this._initSVGArrays();
27
+ this.refresh();
28
+ }
29
+ refresh() {
30
+ this.gridInformation = CalculateGridInformation(this.extendedItem);
31
+ let cells = this.gridInformation.cells;
32
+ if (cells[0][0] && !isNaN(cells[0][0].height) && !isNaN(cells[0][0].width)) {
33
+ if (this.gridInformation.cells.length != this._cells.length || this.gridInformation.cells[0].length != this._cells[0].length)
34
+ this._initSVGArrays();
35
+ //draw gaps
36
+ this.gridInformation.gaps.forEach((gap, i) => {
37
+ this._gaps[i] = this._drawRect(gap.x, gap.y, gap.width, gap.height, 'svg-grid-gap', this._gaps[i], OverlayLayer.Foregorund);
38
+ this._resizeCircles[i] = this._drawResizeCircle(gap, this._resizeCircles[i]);
39
+ });
40
+ //draw cells
41
+ cells.forEach((row, i) => {
42
+ row.forEach((cell, j) => {
43
+ this._cells[i][j] = this._drawRect(cell.x, cell.y, cell.width, cell.height, 'svg-grid', this._cells[i][j], OverlayLayer.Background);
44
+ if (cell.name) {
45
+ const text = this._drawText(cell.name, cell.x, cell.y, 'svg-grid-area', null, OverlayLayer.Background);
46
+ text.setAttribute("dominant-baseline", "hanging");
47
+ }
48
+ });
49
+ });
50
+ //draw headers
51
+ cells.forEach((row, i) => {
52
+ this._headers[0][i] = this._drawHeader(row[0], this._headers[0][i], i, "vertical");
53
+ this._headerTexts[0][i] = this._drawHeaderText(row[0], this._headerTexts[0][i], "vertical");
54
+ });
55
+ cells[0].forEach((column, i) => {
56
+ this._headers[1][i] = this._drawHeader(column, this._headers[1][i], i, "horizontal");
57
+ this._headerTexts[1][i] = this._drawHeaderText(column, this._headerTexts[1][i], "horizontal");
58
+ });
59
+ //draw circles for adding rows/columns
60
+ for (let i = 0; i < this._plusCircles[0].length; i++)
61
+ if (i < this._plusCircles[0].length - 1)
62
+ this._plusCircles[0][i] = this._drawPlusCircle(cells[i][0].x, cells[i][0].y, this._plusCircles[0][i], i, "vertical");
63
+ else
64
+ this._plusCircles[0][i] = this._drawPlusCircle(cells[i - 1][0].x, cells[i - 1][0].y + cells[i - 1][0].height, this._plusCircles[0][i], i, "vertical", true);
65
+ for (let i = 0; i < this._plusCircles[1].length; i++)
66
+ if (i < this._plusCircles[1].length - 1)
67
+ this._plusCircles[1][i] = this._drawPlusCircle(cells[0][i].x, cells[0][i].y, this._plusCircles[1][i], i, "horizontal");
68
+ else
69
+ this._plusCircles[1][i] = this._drawPlusCircle(cells[0][i - 1].x + cells[0][i - 1].width, cells[0][i - 1].y, this._plusCircles[1][i], i, "horizontal", true);
70
+ }
71
+ }
72
+ dispose() {
73
+ this._removeAllOverlays();
74
+ }
75
+ _initSVGArrays() {
76
+ this._removeAllOverlays();
77
+ this.gridInformation = CalculateGridInformation(this.extendedItem);
78
+ this._cells = new Array(this.gridInformation.cells.length);
79
+ this.gridInformation.cells.forEach((row, i) => this._cells[i] = new Array(row.length));
80
+ this._gaps = new Array(this.gridInformation.gaps.length);
81
+ this._headers = new Array(2);
82
+ this._headers[0] = new Array(this.gridInformation.cells.length + 1); //array for the headers of columns
83
+ this._headers[1] = new Array(this.gridInformation.cells[0].length + 1); //array for the headers of rows
84
+ this._headerTexts = new Array(2);
85
+ this._headerTexts[0] = new Array(this.gridInformation.cells.length + 1);
86
+ this._headerTexts[1] = new Array(this.gridInformation.cells[0].length + 1);
87
+ this._plusCircles = new Array(2);
88
+ this._plusCircles[0] = new Array(this.gridInformation.cells.length + 1);
89
+ this._plusCircles[1] = new Array(this.gridInformation.cells[0].length + 1);
90
+ this._resizeCircles = new Array(this.gridInformation.gaps.length);
91
+ }
92
+ _drawResizeCircle(gap, oldCircle) {
93
+ let resizeCircle = this._drawCircle((gap.x + (gap.width / 2)), (gap.y + (gap.height / 2)), 1.5, 'svg-grid-resizer', oldCircle, OverlayLayer.Foregorund);
94
+ resizeCircle.style.pointerEvents = "all";
95
+ resizeCircle.style.cursor = gap.width < gap.height ? "ew-resize" : "ns-resize";
96
+ if (!oldCircle) {
97
+ resizeCircle.addEventListener(EventNames.PointerDown, event => this._pointerActionTypeResize(event, resizeCircle, gap.column, gap.row));
98
+ resizeCircle.addEventListener(EventNames.PointerMove, event => this._pointerActionTypeResize(event, resizeCircle, gap.column, gap.row));
99
+ resizeCircle.addEventListener(EventNames.PointerUp, event => this._pointerActionTypeResize(event, resizeCircle, gap.column, gap.row));
100
+ }
101
+ return resizeCircle;
102
+ }
103
+ _drawHeader(cell, oldHeader, index, alignment) {
104
+ let xOffset;
105
+ let yOffset;
106
+ let width;
107
+ let height;
108
+ if (alignment == "vertical") {
109
+ xOffset = -(this.defaultHeaderSize + this.defaultDistanceToBox);
110
+ yOffset = this.defaultDistanceBetweenHeaders / 2;
111
+ width = this.defaultHeaderSize;
112
+ height = cell.height - this.defaultDistanceBetweenHeaders;
113
+ }
114
+ else {
115
+ xOffset = this.defaultDistanceBetweenHeaders / 2;
116
+ yOffset = -(this.defaultHeaderSize + this.defaultDistanceToBox);
117
+ width = cell.width - this.defaultDistanceBetweenHeaders;
118
+ height = this.defaultHeaderSize;
119
+ }
120
+ let tmpHeader = this._drawRect(cell.x + xOffset, cell.y + yOffset, width, height, "svg-grid-header", oldHeader, OverlayLayer.Foregorund);
121
+ tmpHeader.style.pointerEvents = "all";
122
+ if (!oldHeader) {
123
+ tmpHeader.addEventListener(EventNames.PointerMove, event => {
124
+ this._toggleDisplayPlusCircles(index, alignment, true);
125
+ });
126
+ }
127
+ return tmpHeader;
128
+ }
129
+ _drawHeaderText(cell, oldHeaderText, alignment) {
130
+ let text;
131
+ let xOffset;
132
+ let yOffset;
133
+ if (alignment == "vertical") {
134
+ text = this._getHeaderText(cell.height, cell.initHeightUnit, "height");
135
+ xOffset = -12.5;
136
+ yOffset = cell.height / 2;
137
+ }
138
+ else {
139
+ text = this._getHeaderText(cell.width, cell.initWidthUnit, "width");
140
+ xOffset = cell.width / 2;
141
+ yOffset = -12.5;
142
+ }
143
+ let rText = this._drawText(text, cell.x + xOffset, cell.y + yOffset, null, oldHeaderText, OverlayLayer.Background);
144
+ if (alignment == "vertical")
145
+ rText.setAttribute("transform", "rotate(-90, " + (cell.x + xOffset) + ", " + (cell.y + yOffset) + ")");
146
+ return rText;
147
+ }
148
+ _drawPlusCircle(x, y, oldPlusElement, index, alignment, final = false) {
149
+ let plusElement = { circle: null, verticalLine: null, horizontalLine: null };
150
+ let posX;
151
+ let posY;
152
+ let gapOffset = index == 0 || final ? 0 : -(convertCssUnitToPixel(this.extendedItem.getStyle(alignment == "vertical" ? "row-gap" : "column-gap"), this.extendedItem.element, alignment == "vertical" ? "height" : "width") / 2);
153
+ if (alignment == "vertical") {
154
+ posX = x - this.defaultDistanceToBox - this.defaultHeaderSize / 2;
155
+ posY = y + gapOffset;
156
+ }
157
+ else {
158
+ posX = x + gapOffset;
159
+ posY = y - this.defaultDistanceToBox - this.defaultHeaderSize / 2;
160
+ }
161
+ plusElement.circle = this._drawCircle(posX, posY, this.defaultHeaderSize / 2, 'svg-grid-resizer', oldPlusElement ? oldPlusElement.circle : null, OverlayLayer.Foregorund);
162
+ plusElement.circle.style.pointerEvents = "all";
163
+ plusElement.circle.style.cursor = "pointer";
164
+ plusElement.circle.style.display = "none";
165
+ if (!oldPlusElement) {
166
+ plusElement.circle.addEventListener(EventNames.PointerMove, event => this._toggleDisplayPlusCircles(index, alignment));
167
+ plusElement.circle.addEventListener(EventNames.PointerDown, event => {
168
+ this._editGrid(index, alignment, "add");
169
+ event.stopPropagation();
170
+ });
171
+ }
172
+ plusElement.verticalLine = this._drawLine(posX, posY - this.defaultPlusSize / 2, posX, posY + this.defaultPlusSize / 2, "svg-grid-plus-sign", oldPlusElement ? oldPlusElement.verticalLine : null, OverlayLayer.Foregorund);
173
+ plusElement.verticalLine.style.display = "none";
174
+ plusElement.horizontalLine = this._drawLine(posX - this.defaultPlusSize / 2, posY, posX + this.defaultPlusSize / 2, posY, "svg-grid-plus-sign", oldPlusElement ? oldPlusElement.horizontalLine : null, OverlayLayer.Foregorund);
175
+ plusElement.horizontalLine.style.display = "none";
176
+ return plusElement;
177
+ }
178
+ _getHeaderText(size, unit, percentTarget) {
179
+ return Math.round(parseFloat(this._convertCssUnit(size, this.extendedItem.element, percentTarget, unit)) * 10) / 10 + unit;
180
+ }
181
+ _getInitialSizes() {
182
+ let rX = []; //in pixels
183
+ let rXUnit = []; //original unit
184
+ let rY = []; //in pixels
185
+ let rYUnit = []; //original unit
186
+ this.gridInformation.cells[0].forEach(row => {
187
+ rX.push(row.width);
188
+ rXUnit.push(row.initWidthUnit);
189
+ });
190
+ this.gridInformation.cells.forEach(column => {
191
+ rY.push(column[0].height);
192
+ rYUnit.push(column[0].initHeightUnit);
193
+ });
194
+ return { x: rX, xUnit: rXUnit, y: rY, yUnit: rYUnit };
195
+ }
196
+ _pointerActionTypeResize(event, circle, gapColumn, gapRow) {
197
+ event.stopPropagation();
198
+ switch (event.type) {
199
+ case EventNames.PointerDown:
200
+ circle.setPointerCapture(event.pointerId);
201
+ this._initialPoint = { x: event.clientX, y: event.clientY };
202
+ this._initialSizes = this._getInitialSizes();
203
+ break;
204
+ case EventNames.PointerMove:
205
+ if (this._initialPoint) {
206
+ let elementStyle = this.extendedItem.element.style;
207
+ this.extendedItem.element.getBoundingClientRect;
208
+ if (circle.style.cursor == "ew-resize")
209
+ elementStyle.gridTemplateColumns = this._calculateNewSize(this._initialSizes.x, this._initialSizes.xUnit, (event.clientX - this._initialPoint.x) / this.designerCanvas.zoomFactor, gapColumn, "width");
210
+ else if (circle.style.cursor == "ns-resize")
211
+ elementStyle.gridTemplateRows = this._calculateNewSize(this._initialSizes.y, this._initialSizes.yUnit, (event.clientY - this._initialPoint.y) / this.designerCanvas.zoomFactor, gapRow, "height");
212
+ this.refresh();
213
+ }
214
+ break;
215
+ case EventNames.PointerUp:
216
+ circle.releasePointerCapture(event.pointerId);
217
+ if (circle.style.cursor == "ew-resize")
218
+ this.extendedItem.setStyle("grid-template-columns", this._calculateNewSize(this._initialSizes.x, this._initialSizes.xUnit, (event.clientX - this._initialPoint.x) / this.designerCanvas.zoomFactor, gapColumn, "width", true));
219
+ else if (circle.style.cursor == "ns-resize")
220
+ this.extendedItem.setStyle("grid-template-rows", this._calculateNewSize(this._initialSizes.y, this._initialSizes.yUnit, (event.clientY - this._initialPoint.y) / this.designerCanvas.zoomFactor, gapRow, "height", true));
221
+ this._initialPoint = null;
222
+ this._initialSizes = null;
223
+ this.refresh();
224
+ break;
225
+ }
226
+ }
227
+ _calculateNewSize(iSizes, iUnits, diff, gapIndex, percentTarget, pointerUp = false) {
228
+ let newSizes = [];
229
+ let edited = [];
230
+ for (let i = 0; i < iSizes.length; i++) {
231
+ newSizes.push(i + 1 == gapIndex ? iSizes[i] + diff : i == gapIndex ? iSizes[i] - diff : iSizes[i]);
232
+ edited.push(i + 1 == gapIndex || i == gapIndex);
233
+ }
234
+ for (let i = 0; i < newSizes.length; i++) {
235
+ let index = edited[i + 1] ? i + 1 : edited[i - 1] ? i - 1 : null;
236
+ if (newSizes[i] < 0 && pointerUp) {
237
+ if (confirm("Do you want to delete this " + (percentTarget == "width" ? "column" : "row") + "?")) {
238
+ this._editGrid(i, percentTarget == "width" ? "horizontal" : "vertical", "del");
239
+ newSizes[index] = iSizes[i] + iSizes[index];
240
+ newSizes.splice(i, 1);
241
+ break;
242
+ }
243
+ }
244
+ if (newSizes[i] < this.minPixelSize) {
245
+ newSizes[index] = newSizes[i] + newSizes[index] - this.minPixelSize;
246
+ newSizes[i] = this.minPixelSize;
247
+ break;
248
+ }
249
+ }
250
+ let retVal = "";
251
+ newSizes.forEach((newSize, i) => retVal += this._convertCssUnit(newSize + "px", this.extendedItem.element, percentTarget, iUnits[i]) + ' ');
252
+ return retVal;
253
+ }
254
+ _editGrid(pos, alignment, task) {
255
+ let cellTarget;
256
+ let elementTarget;
257
+ if (alignment == "vertical") {
258
+ cellTarget = "grid-template-rows";
259
+ elementTarget = "height";
260
+ }
261
+ else {
262
+ cellTarget = "grid-template-columns";
263
+ elementTarget = "width";
264
+ }
265
+ let sizes = this.extendedItem.getStyle(cellTarget).split(' ');
266
+ if (task == "add")
267
+ sizes.splice(pos, 0, this.defaultSizeOfNewRowOrColumn);
268
+ else
269
+ sizes.splice(pos, 1);
270
+ this.extendedItem.setStyle(cellTarget, sizes.join(' '));
271
+ if (task == "add") {
272
+ this.extendedItem.setStyle(elementTarget, convertCssUnit(this._calculateNewElementSize(elementTarget), this.designerCanvas.canvas, elementTarget, getCssUnit(this.extendedItem.getStyle(elementTarget))));
273
+ }
274
+ else {
275
+ this.extendedItem.setStyle(elementTarget, convertCssUnit(convertCssUnitToPixel(this.extendedItem.getStyle(elementTarget), this.designerCanvas.canvas, elementTarget) - convertCssUnitToPixel(this.extendedItem.getStyle(alignment == "vertical" ? "row-gap" : "column-gap"), this.extendedItem.element, elementTarget), this.designerCanvas.canvas, elementTarget, getCssUnit(this.extendedItem.getStyle(elementTarget))));
276
+ }
277
+ }
278
+ _calculateNewElementSize(elementTarget) {
279
+ let gc = CalculateGridInformation(this.extendedItem);
280
+ let tmpSize = 0;
281
+ if (elementTarget == "width") {
282
+ gc.cells[0].forEach(cell => { tmpSize += cell.width; });
283
+ tmpSize += convertCssUnitToPixel(this.extendedItem.getStyle("column-gap"), this.extendedItem.element, elementTarget) * (gc.cells[0].length - 1);
284
+ }
285
+ else {
286
+ gc.cells.forEach(row => { tmpSize += row[0].height; });
287
+ tmpSize += convertCssUnitToPixel(this.extendedItem.getStyle("row-gap"), this.extendedItem.element, elementTarget) * (gc.cells.length - 1);
288
+ }
289
+ return tmpSize + "px";
290
+ }
291
+ _toggleDisplayPlusCircles(index, alignment, double = false) {
292
+ this._plusCircles.forEach(alignment => {
293
+ alignment.forEach(element => {
294
+ element.circle.style.display = "none";
295
+ element.verticalLine.style.display = "none";
296
+ element.horizontalLine.style.display = "none";
297
+ });
298
+ });
299
+ if (index != -1) {
300
+ this._plusCircles[alignment == "vertical" ? 0 : 1][index].circle.style.display = "inline";
301
+ this._plusCircles[alignment == "vertical" ? 0 : 1][index].verticalLine.style.display = "inline";
302
+ this._plusCircles[alignment == "vertical" ? 0 : 1][index].horizontalLine.style.display = "inline";
303
+ if (double) {
304
+ this._plusCircles[alignment == "vertical" ? 0 : 1][index + 1].circle.style.display = "inline";
305
+ this._plusCircles[alignment == "vertical" ? 0 : 1][index + 1].verticalLine.style.display = "inline";
306
+ this._plusCircles[alignment == "vertical" ? 0 : 1][index + 1].horizontalLine.style.display = "inline";
307
+ }
308
+ }
309
+ }
310
+ _convertCssUnit(cssValue, target, percentTarget, unit) {
311
+ if (unit == "fr") {
312
+ let containerSize = convertCssUnitToPixel(target.style.width, target, percentTarget);
313
+ let amountGaps = percentTarget == "height" ? this.gridInformation.cells.length - 1 : this.gridInformation.cells[0].length - 1;
314
+ let gapSize = convertCssUnitToPixel(percentTarget == "width" ? target.style.columnGap : target.style.rowGap, target, percentTarget);
315
+ let containerSizeWithoutGaps = containerSize - gapSize * amountGaps;
316
+ let amountFrSizes = 0;
317
+ let leftOver = containerSizeWithoutGaps;
318
+ if (percentTarget == "width") {
319
+ this.gridInformation.cells[0].forEach((column, i) => {
320
+ if (column.initWidthUnit == "fr")
321
+ amountFrSizes++;
322
+ else
323
+ leftOver -= column.width;
324
+ });
325
+ }
326
+ else {
327
+ this.gridInformation.cells.forEach((row, i) => {
328
+ if (row[0].initHeightUnit == "fr")
329
+ amountFrSizes++;
330
+ else
331
+ leftOver -= row[0].height;
332
+ });
333
+ }
334
+ let frRatio = leftOver / amountFrSizes;
335
+ if (typeof cssValue == "number") {
336
+ //expected Value in Pixel
337
+ return (cssValue / frRatio) + "fr";
338
+ }
339
+ else {
340
+ return (convertCssUnitToPixel(cssValue, target, percentTarget) / frRatio) + "fr";
341
+ }
342
+ }
343
+ else
344
+ return convertCssUnit(cssValue, target, percentTarget, unit);
345
+ }
346
+ }
@@ -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 EditGridExtensionProvider implements IDesignerExtensionProvider {
7
+ shouldExtend(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, designItem: IDesignItem): boolean;
8
+ getExtension(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
9
+ readonly style: CSSStyleSheet;
10
+ }
@@ -0,0 +1,22 @@
1
+ import { EditGridColumnRowSizesExtension } from './EditGridColumnRowSizesExtension.js';
2
+ import { css } from "@node-projects/base-custom-webcomponent";
3
+ import { gridExtensionShowOverlayOptionName } from './DisplayGridExtensionProvider.js';
4
+ export class EditGridExtensionProvider {
5
+ shouldExtend(extensionManager, designerCanvas, designItem) {
6
+ const display = getComputedStyle(designItem.element).display;
7
+ if (display == 'grid' || display == 'inline-grid')
8
+ return designerCanvas.instanceServiceContainer.designContext.extensionOptions[gridExtensionShowOverlayOptionName] !== false;
9
+ return false;
10
+ }
11
+ getExtension(extensionManager, designerCanvas, designItem) {
12
+ return new EditGridColumnRowSizesExtension(extensionManager, designerCanvas, designItem);
13
+ }
14
+ style = css `
15
+ .svg-grid { stroke: orange; stroke-dasharray: 5; fill: #ff944722; }
16
+ .svg-grid-area { font-size: 8px; }
17
+ .svg-grid-gap { stroke: orange; stroke-dasharray: 5; fill: #0000ff22; }
18
+ .svg-grid-resizer { fill: white; stroke: #3899ec; }
19
+ .svg-grid-header { fill: #ff944722; stroke: orange; }
20
+ .svg-grid-plus-sign { stroke: black; }
21
+ `;
22
+ }
package/dist/index.d.ts CHANGED
@@ -192,8 +192,8 @@ export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtens
192
192
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js";
193
193
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtension.js";
194
194
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js";
195
- export * from "./elements/widgets/designerView/extensions/grid/EditGridExtension.js";
196
- export * from "./elements/widgets/designerView/extensions/grid/EditGridExtensionProvider.js";
195
+ export * from "./elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.js";
196
+ export * from "./elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtensionProvider.js";
197
197
  export * from "./elements/widgets/designerView/extensions/grid/DisplayGridExtension.js";
198
198
  export * from "./elements/widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js";
199
199
  export * from "./elements/widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.js";
package/dist/index.js CHANGED
@@ -146,8 +146,8 @@ export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtens
146
146
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js";
147
147
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtension.js";
148
148
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js";
149
- export * from "./elements/widgets/designerView/extensions/grid/EditGridExtension.js";
150
- export * from "./elements/widgets/designerView/extensions/grid/EditGridExtensionProvider.js";
149
+ export * from "./elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.js";
150
+ export * from "./elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtensionProvider.js";
151
151
  export * from "./elements/widgets/designerView/extensions/grid/DisplayGridExtension.js";
152
152
  export * from "./elements/widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js";
153
153
  export * from "./elements/widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "A UI designer for Polymer apps",
3
3
  "name": "@node-projects/web-component-designer",
4
- "version": "0.0.199",
4
+ "version": "0.0.201",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",