@node-projects/web-component-designer 0.0.251 → 0.0.253

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 (99) hide show
  1. package/dist/elements/item/DesignItem.d.ts +2 -0
  2. package/dist/elements/item/DesignItem.js +14 -3
  3. package/dist/elements/item/IDesignItem.d.ts +2 -0
  4. package/dist/elements/services/DefaultServiceBootstrap.js +12 -9
  5. package/dist/elements/services/dragDropService/DragDropService.js +6 -6
  6. package/dist/elements/services/placementService/DefaultPlacementService.d.ts +1 -1
  7. package/dist/elements/services/placementService/DefaultPlacementService.js +4 -6
  8. package/dist/elements/services/placementService/FlexBoxPlacementService.d.ts +4 -2
  9. package/dist/elements/services/placementService/FlexBoxPlacementService.js +8 -4
  10. package/dist/elements/services/placementService/GridPlacementService.d.ts +4 -2
  11. package/dist/elements/services/placementService/GridPlacementService.js +8 -4
  12. package/dist/elements/services/placementService/IPlacementService.d.ts +1 -1
  13. package/dist/elements/services/propertiesService/PropertyTabsService.js +1 -0
  14. package/dist/elements/services/propertiesService/services/CssProperties.json +39 -6
  15. package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +2 -1
  16. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +9 -0
  17. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +1 -0
  18. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +9 -1
  19. package/dist/elements/widgets/designerView/extensions/ExtensionType.d.ts +10 -3
  20. package/dist/elements/widgets/designerView/extensions/ExtensionType.js +9 -2
  21. package/dist/elements/widgets/designerView/tools/DrawEllipsisTool.js +4 -0
  22. package/dist/elements/widgets/designerView/tools/DrawLineTool.js +4 -0
  23. package/dist/elements/widgets/designerView/tools/DrawPathTool.js +4 -0
  24. package/dist/elements/widgets/designerView/tools/DrawRectTool.js +4 -0
  25. package/dist/elements/widgets/designerView/tools/PointerTool.js +5 -5
  26. package/dist/index.d.ts +0 -1
  27. package/package.json +4 -4
  28. package/dist/elements/services/dragDropService/ExternalDragDropService copy.d.ts +0 -6
  29. package/dist/elements/services/dragDropService/ExternalDragDropService copy.js +0 -28
  30. package/dist/elements/services/dragDropService/IExternalDragDropService copy.d.ts +0 -5
  31. package/dist/elements/services/dragDropService/IExternalDragDropService copy.js +0 -1
  32. package/dist/elements/services/htmlParserService/AbstractClassElementParserService.d.ts +0 -9
  33. package/dist/elements/services/htmlParserService/AbstractClassElementParserService.js +0 -46
  34. package/dist/elements/services/htmlParserService/BaseCustomWebcomponentParserService copy.d.ts +0 -11
  35. package/dist/elements/services/htmlParserService/BaseCustomWebcomponentParserService copy.js +0 -90
  36. package/dist/elements/services/propertiesService/DefaultEditorTypesService copy.d.ts +0 -6
  37. package/dist/elements/services/propertiesService/DefaultEditorTypesService copy.js +0 -64
  38. package/dist/elements/services/propertiesService/GridEditorTypesService.d.ts +0 -6
  39. package/dist/elements/services/propertiesService/GridEditorTypesService.js +0 -64
  40. package/dist/elements/services/propertiesService/propertyEditors/GridCellPropertyEditor.d.ts +0 -9
  41. package/dist/elements/services/propertiesService/propertyEditors/GridCellPropertyEditor.js +0 -16
  42. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyEditor copy.d.ts +0 -9
  43. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyEditor copy.js +0 -21
  44. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction copy.d.ts +0 -15
  45. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction copy.js +0 -70
  46. package/dist/elements/services/undoService/transactionItems/ContentChangeAction.d.ts +0 -13
  47. package/dist/elements/services/undoService/transactionItems/ContentChangeAction.js +0 -38
  48. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction copy.d.ts +0 -14
  49. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction copy.js +0 -44
  50. package/dist/elements/services/undoService/transactionItems/InsertChildAction copy.d.ts +0 -16
  51. package/dist/elements/services/undoService/transactionItems/InsertChildAction copy.js +0 -37
  52. package/dist/elements/services/undoService/transactionItems/StylesheetStyleChangeAction.d.ts +0 -17
  53. package/dist/elements/services/undoService/transactionItems/StylesheetStyleChangeAction.js +0 -28
  54. package/dist/elements/widgets/codeView/code-view-ace copy.d.ts +0 -24
  55. package/dist/elements/widgets/codeView/code-view-ace copy.js +0 -133
  56. package/dist/elements/widgets/codeView/code-view-code-mirror copy.d.ts +0 -25
  57. package/dist/elements/widgets/codeView/code-view-code-mirror copy.js +0 -106
  58. package/dist/elements/widgets/codeView/code-view-code-mirror-6.d.ts +0 -25
  59. package/dist/elements/widgets/codeView/code-view-code-mirror-6.js +0 -102
  60. package/dist/elements/widgets/codeView/code-view-jar.d.ts +0 -23
  61. package/dist/elements/widgets/codeView/code-view-jar.js +0 -121
  62. package/dist/elements/widgets/designerView/extensions/GridExtension.d.ts +0 -51
  63. package/dist/elements/widgets/designerView/extensions/GridExtension.js +0 -346
  64. package/dist/elements/widgets/designerView/extensions/GridExtensionProvider.d.ts +0 -11
  65. package/dist/elements/widgets/designerView/extensions/GridExtensionProvider.js +0 -22
  66. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension copy 2.d.ts +0 -51
  67. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension copy 2.js +0 -346
  68. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension copy.d.ts +0 -51
  69. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension copy.js +0 -346
  70. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension.d.ts +0 -16
  71. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension.js +0 -71
  72. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider copy.d.ts +0 -10
  73. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider copy.js +0 -22
  74. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider.d.ts +0 -10
  75. package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider.js +0 -18
  76. package/dist/elements/widgets/designerView/extensions/grid/GridExtension copy.d.ts +0 -51
  77. package/dist/elements/widgets/designerView/extensions/grid/GridExtension copy.js +0 -346
  78. package/dist/elements/widgets/designerView/extensions/grid/GridExtension.d.ts +0 -51
  79. package/dist/elements/widgets/designerView/extensions/grid/GridExtension.js +0 -346
  80. package/dist/elements/widgets/designerView/extensions/grid/GridExtensionProvider copy.d.ts +0 -11
  81. package/dist/elements/widgets/designerView/extensions/grid/GridExtensionProvider copy.js +0 -22
  82. package/dist/elements/widgets/designerView/extensions/grid/GridExtensionProvider.d.ts +0 -11
  83. package/dist/elements/widgets/designerView/extensions/grid/GridExtensionProvider.js +0 -22
  84. package/dist/elements/widgets/designerView/extensions/grid/NewEditGridExtensionProvider.d.ts +0 -10
  85. package/dist/elements/widgets/designerView/extensions/grid/NewEditGridExtensionProvider.js +0 -22
  86. package/dist/elements/widgets/designerView/extensions/grid/OldEditGridExtension.d.ts +0 -51
  87. package/dist/elements/widgets/designerView/extensions/grid/OldEditGridExtension.js +0 -346
  88. package/dist/elements/widgets/designerView/extensions/grid/OldEditGridExtensionProvider.d.ts +0 -10
  89. package/dist/elements/widgets/designerView/extensions/grid/OldEditGridExtensionProvider.js +0 -22
  90. package/dist/elements/widgets/designerView/extensions/logic/ApplyFirstExtensionProvider.d.ts +0 -12
  91. package/dist/elements/widgets/designerView/extensions/logic/ApplyFirstExtensionProvider.js +0 -17
  92. package/dist/elements/widgets/designerView/extensions/logic/DisplayGridExtensionProvider.d.ts +0 -11
  93. package/dist/elements/widgets/designerView/extensions/logic/DisplayGridExtensionProvider.js +0 -23
  94. package/dist/elements/widgets/designerView/extensions/logic/OrCombineContainerProvider.d.ts +0 -12
  95. package/dist/elements/widgets/designerView/extensions/logic/OrCombineContainerProvider.js +0 -17
  96. package/dist/interfaces/ICommandHandler.d.ts +0 -5
  97. package/dist/interfaces/ICommandHandler.js +0 -1
  98. package/dist/polyfill/mobileDragDrop.d.ts +0 -2
  99. package/dist/polyfill/mobileDragDrop.js +0 -32
@@ -1,346 +0,0 @@
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 GridExtension 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
- }
@@ -1,11 +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 const gridExtensionShowOverlayOptionName = "gridExtensionShowOverlay";
7
- export declare class GridExtensionProvider implements IDesignerExtensionProvider {
8
- shouldExtend(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, designItem: IDesignItem): boolean;
9
- getExtension(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
10
- readonly style: CSSStyleSheet;
11
- }
@@ -1,22 +0,0 @@
1
- import { GridExtension } from './GridExtension.js';
2
- import { css } from "@node-projects/base-custom-webcomponent";
3
- export const gridExtensionShowOverlayOptionName = 'gridExtensionShowOverlay';
4
- export class GridExtensionProvider {
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 GridExtension(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
- }
@@ -1,11 +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 const gridExtensionShowOverlayOptionName = "gridExtensionShowOverlay";
7
- export declare class GridExtensionProvider implements IDesignerExtensionProvider {
8
- shouldExtend(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, designItem: IDesignItem): boolean;
9
- getExtension(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
10
- readonly style: CSSStyleSheet;
11
- }
@@ -1,22 +0,0 @@
1
- import { GridExtension } from './EditGridExtension.js';
2
- import { css } from "@node-projects/base-custom-webcomponent";
3
- export const gridExtensionShowOverlayOptionName = 'gridExtensionShowOverlay';
4
- export class GridExtensionProvider {
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 GridExtension(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
- }
@@ -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 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
- }
@@ -1,22 +0,0 @@
1
- import { EditGridExtension } from './EditGridExtension.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 EditGridExtension(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
- }
@@ -1,51 +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 EditGridExtension extends AbstractExtension {
6
- private _initialPoint;
7
- private _initialSizes;
8
- private _cells;
9
- private _gaps;
10
- private _headers;
11
- private _headerTexts;
12
- private _plusCircles;
13
- private _resizeCircles;
14
- private minPixelSize;
15
- private gridInformation;
16
- private defaultHeaderSize;
17
- private defaultPlusSize;
18
- private defaultDistanceToBox;
19
- private defaultDistanceBetweenHeaders;
20
- private defaultSizeOfNewRowOrColumn;
21
- constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
22
- extend(): void;
23
- refresh(): void;
24
- dispose(): void;
25
- _initSVGArrays(): void;
26
- _drawResizeCircle(gap: any, oldCircle?: SVGCircleElement): SVGCircleElement;
27
- _drawHeader(cell: any, oldHeader: any, index: any, alignment: "vertical" | "horizontal"): SVGRectElement;
28
- _drawHeaderText(cell: any, oldHeaderText: any, alignment: "vertical" | "horizontal"): SVGTextElement;
29
- _drawPlusCircle(x: any, y: any, oldPlusElement: {
30
- circle: SVGCircleElement;
31
- verticalLine: SVGLineElement;
32
- horizontalLine: SVGLineElement;
33
- }, index: any, alignment: "vertical" | "horizontal", final?: boolean): {
34
- circle: any;
35
- verticalLine: any;
36
- horizontalLine: any;
37
- };
38
- _getHeaderText(size: number, unit: string, percentTarget: "width" | "height"): string;
39
- _getInitialSizes(): {
40
- x: any[];
41
- xUnit: any[];
42
- y: any[];
43
- yUnit: any[];
44
- };
45
- _pointerActionTypeResize(event: PointerEvent, circle: SVGCircleElement, gapColumn: any, gapRow: any): void;
46
- _calculateNewSize(iSizes: number[], iUnits: string[], diff: any, gapIndex: any, percentTarget: 'width' | 'height', pointerUp?: boolean): string;
47
- _editGrid(pos: number, alignment: "vertical" | "horizontal", task: "add" | "del"): void;
48
- _calculateNewElementSize(elementTarget: "width" | "height"): string;
49
- _toggleDisplayPlusCircles(index: any, alignment: "vertical" | "horizontal", double?: boolean): void;
50
- _convertCssUnit(cssValue: string | number, target: HTMLElement, percentTarget: 'width' | 'height', unit: string): string | number;
51
- }