@node-projects/web-component-designer 0.0.31 → 0.0.35
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/assets/images/chromeDevtools/accelerometer-back.svg +69 -0
- package/assets/images/chromeDevtools/accelerometer-front.svg +28 -0
- package/assets/images/chromeDevtools/accessibility-icon.svg +3 -0
- package/assets/images/chromeDevtools/add-icon.svg +3 -0
- package/assets/images/chromeDevtools/align-content-center-icon.svg +70 -0
- package/assets/images/chromeDevtools/align-content-flex-end-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-content-flex-start-icon.svg +66 -0
- package/assets/images/chromeDevtools/align-content-space-around-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-content-space-between-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-content-space-evenly-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-content-stretch-icon.svg +53 -0
- package/assets/images/chromeDevtools/align-items-baseline-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-items-center-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-items-end-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-items-flex-end-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-items-flex-start-icon.svg +57 -0
- package/assets/images/chromeDevtools/align-items-start-icon.svg +57 -0
- package/assets/images/chromeDevtools/align-items-stretch-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-self-center-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-self-flex-end-icon.svg +1 -0
- package/assets/images/chromeDevtools/align-self-flex-start-icon.svg +57 -0
- package/assets/images/chromeDevtools/align-self-stretch-icon.svg +1 -0
- package/assets/images/chromeDevtools/baseline-icon.svg +1 -0
- package/assets/images/chromeDevtools/checkboxCheckmark.svg +60 -0
- package/assets/images/chromeDevtools/chevrons.svg +62 -0
- package/assets/images/chromeDevtools/chromeSelect.svg +1 -0
- package/assets/images/chromeDevtools/chromeSelectDark.svg +1 -0
- package/assets/images/chromeDevtools/close-icon.svg +5 -0
- package/assets/images/chromeDevtools/copy_icon.svg +79 -0
- package/assets/images/chromeDevtools/dropdown_7x6_icon.svg +1 -0
- package/assets/images/chromeDevtools/elements_panel_icon.svg +1 -0
- package/assets/images/chromeDevtools/errorWave.svg +74 -0
- package/assets/images/chromeDevtools/error_icon.svg +125 -0
- package/assets/images/chromeDevtools/feedback_button_icon.svg +3 -0
- package/assets/images/chromeDevtools/flex-direction-icon.svg +1 -0
- package/assets/images/chromeDevtools/flex-nowrap-icon.svg +5 -0
- package/assets/images/chromeDevtools/flex-wrap-icon.svg +8 -0
- package/assets/images/chromeDevtools/help_outline.svg +1 -0
- package/assets/images/chromeDevtools/ic_checkmark_16x16.svg +3 -0
- package/assets/images/chromeDevtools/ic_command_go_to_line.svg +4 -0
- package/assets/images/chromeDevtools/ic_command_go_to_symbol.svg +3 -0
- package/assets/images/chromeDevtools/ic_command_help.svg +3 -0
- package/assets/images/chromeDevtools/ic_command_open_file.svg +3 -0
- package/assets/images/chromeDevtools/ic_command_run_command.svg +3 -0
- package/assets/images/chromeDevtools/ic_command_run_snippet.svg +3 -0
- package/assets/images/chromeDevtools/ic_delete_filter.svg +1 -0
- package/assets/images/chromeDevtools/ic_delete_list.svg +1 -0
- package/assets/images/chromeDevtools/ic_dimension_single.svg +4 -0
- package/assets/images/chromeDevtools/ic_file_default.svg +3 -0
- package/assets/images/chromeDevtools/ic_file_document.svg +3 -0
- package/assets/images/chromeDevtools/ic_file_font.svg +3 -0
- package/assets/images/chromeDevtools/ic_file_image.svg +3 -0
- package/assets/images/chromeDevtools/ic_file_script.svg +3 -0
- package/assets/images/chromeDevtools/ic_file_snippet.svg +3 -0
- package/assets/images/chromeDevtools/ic_file_stylesheet.svg +3 -0
- package/assets/images/chromeDevtools/ic_file_webbundle.svg +5 -0
- package/assets/images/chromeDevtools/ic_file_webbundle_inner_request.svg +9 -0
- package/assets/images/chromeDevtools/ic_folder_default.svg +3 -0
- package/assets/images/chromeDevtools/ic_folder_local.svg +3 -0
- package/assets/images/chromeDevtools/ic_folder_network.svg +3 -0
- package/assets/images/chromeDevtools/ic_info_black_18dp.svg +1 -0
- package/assets/images/chromeDevtools/ic_memory_16x16.svg +6 -0
- package/assets/images/chromeDevtools/ic_page_next_16x16_icon.svg +1 -0
- package/assets/images/chromeDevtools/ic_page_prev_16x16_icon.svg +1 -0
- package/assets/images/chromeDevtools/ic_preview_feature.svg +3 -0
- package/assets/images/chromeDevtools/ic_redo_16x16_icon.svg +1 -0
- package/assets/images/chromeDevtools/ic_request_response.svg +5 -0
- package/assets/images/chromeDevtools/ic_response.svg +4 -0
- package/assets/images/chromeDevtools/ic_show_node_16x16.svg +4 -0
- package/assets/images/chromeDevtools/ic_suggest_color.svg +6 -0
- package/assets/images/chromeDevtools/ic_undo_16x16_icon.svg +1 -0
- package/assets/images/chromeDevtools/ic_warning_black_18dp.svg +1 -0
- package/assets/images/chromeDevtools/issue-cross-icon.svg +70 -0
- package/assets/images/chromeDevtools/issue-exclamation-icon.svg +64 -0
- package/assets/images/chromeDevtools/issue-questionmark-icon.svg +82 -0
- package/assets/images/chromeDevtools/issue-text-icon.svg +56 -0
- package/assets/images/chromeDevtools/justify-content-center-icon.svg +1 -0
- package/assets/images/chromeDevtools/justify-content-end-icon.svg +71 -0
- package/assets/images/chromeDevtools/justify-content-flex-end-icon.svg +71 -0
- package/assets/images/chromeDevtools/justify-content-flex-start-icon.svg +1 -0
- package/assets/images/chromeDevtools/justify-content-space-around-icon.svg +1 -0
- package/assets/images/chromeDevtools/justify-content-space-between-icon.svg +1 -0
- package/assets/images/chromeDevtools/justify-content-space-evenly-icon.svg +1 -0
- package/assets/images/chromeDevtools/justify-content-start-icon.svg +1 -0
- package/assets/images/chromeDevtools/justify-items-center-icon.svg +1 -0
- package/assets/images/chromeDevtools/justify-items-end-icon.svg +57 -0
- package/assets/images/chromeDevtools/justify-items-start-icon.svg +1 -0
- package/assets/images/chromeDevtools/justify-items-stretch-icon.svg +1 -0
- package/assets/images/chromeDevtools/largeIcons.svg +1629 -0
- package/assets/images/chromeDevtools/lighthouse_logo.svg +158 -0
- package/assets/images/chromeDevtools/link_icon.svg +1 -0
- package/assets/images/chromeDevtools/mediumIcons.svg +1101 -0
- package/assets/images/chromeDevtools/network_conditions_icon.svg +6 -0
- package/assets/images/chromeDevtools/network_panel_icon.svg +1 -0
- package/assets/images/chromeDevtools/node_search_icon.svg +1 -0
- package/assets/images/chromeDevtools/preview_feature_video_thumbnail.svg +92 -0
- package/assets/images/chromeDevtools/refresh_12x12_icon.svg +1 -0
- package/assets/images/chromeDevtools/resizeDiagonal.svg +1 -0
- package/assets/images/chromeDevtools/resizeHorizontal.svg +1 -0
- package/assets/images/chromeDevtools/resizeVertical.svg +1 -0
- package/assets/images/chromeDevtools/securityIcons.svg +278 -0
- package/assets/images/chromeDevtools/settings_14x14_icon.svg +1 -0
- package/assets/images/chromeDevtools/smallIcons.svg +1277 -0
- package/assets/images/chromeDevtools/sources_panel_icon.svg +1 -0
- package/assets/images/chromeDevtools/survey_feedback_icon.svg +1 -0
- package/assets/images/chromeDevtools/switcherIcon.svg +57 -0
- package/assets/images/chromeDevtools/three_dots_menu_icon.svg +1 -0
- package/assets/images/chromeDevtools/trash_bin_icon.svg +1 -0
- package/assets/images/chromeDevtools/treeoutlineTriangles.svg +70 -0
- package/assets/images/chromeDevtools/warning_icon.svg +83 -0
- package/dist/commandHandling/CommandType.d.ts +1 -0
- package/dist/commandHandling/CommandType.js +1 -0
- package/dist/elements/controls/DesignerTabControl.js +4 -0
- package/dist/elements/controls/ImageButtonListSelector copy.d.ts +17 -0
- package/dist/elements/controls/ImageButtonListSelector copy.js +82 -0
- package/dist/elements/controls/ImageButtonListSelector.d.ts +17 -0
- package/dist/elements/controls/ImageButtonListSelector.js +82 -0
- package/dist/elements/controls/ThicknessEditor.d.ts +17 -0
- package/dist/elements/controls/ThicknessEditor.js +80 -0
- package/dist/elements/services/DefaultServiceBootstrap.js +2 -0
- package/dist/elements/services/ServiceContainer.d.ts +3 -0
- package/dist/elements/services/ServiceContainer.js +3 -0
- package/dist/elements/services/copyPasteService/CopyPasteService.d.ts +8 -0
- package/dist/elements/services/copyPasteService/CopyPasteService.js +12 -0
- package/dist/elements/services/copyPasteService/ICopyPasteService copy.d.ts +0 -0
- package/dist/elements/services/copyPasteService/ICopyPasteService copy.js +1 -0
- package/dist/elements/services/copyPasteService/ICopyPasteService.d.ts +7 -0
- package/dist/elements/services/copyPasteService/ICopyPasteService.js +1 -0
- package/dist/elements/services/propertiesService/DefaultEditorTypesService.js +10 -0
- package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor copy.d.ts +8 -0
- package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor copy.js +40 -0
- package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.d.ts +8 -0
- package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.js +40 -0
- package/dist/elements/services/propertiesService/propertyEditors/ThicknessPropertyEditor.d.ts +8 -0
- package/dist/elements/services/propertiesService/propertyEditors/ThicknessPropertyEditor.js +14 -0
- package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +3 -2
- package/dist/elements/services/propertiesService/services/CssPropertiesService.js +58 -49
- package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +1 -0
- package/dist/elements/widgets/designerView/designerCanvas.d.ts +2 -2
- package/dist/elements/widgets/designerView/designerCanvas.js +27 -27
- package/dist/elements/widgets/designerView/designerView.d.ts +1 -0
- package/dist/elements/widgets/designerView/designerView.js +39 -5
- package/dist/elements/widgets/designerView/overlayLayerView.js +1 -2
- package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.js +11 -11
- package/dist/elements/widgets/propertyGrid/PropertyGrid.js +14 -0
- package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +2 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/interfaces/IDesignerMousePoint.d.ts +2 -0
- package/package.json +1 -1
|
@@ -5,6 +5,8 @@ import { NumberPropertyEditor } from "./propertyEditors/NumberPropertyEditor";
|
|
|
5
5
|
import { SelectPropertyEditor } from "./propertyEditors/SelectPropertyEditor";
|
|
6
6
|
import { TextPropertyEditor } from './propertyEditors/TextPropertyEditor';
|
|
7
7
|
import { BooleanPropertyEditor } from './propertyEditors/BooleanPropertyEditor';
|
|
8
|
+
import { ImageButtonListPropertyEditor } from './propertyEditors/ImageButtonListPropertyEditor';
|
|
9
|
+
import { ThicknessPropertyEditor } from "./propertyEditors/ThicknessPropertyEditor.js";
|
|
8
10
|
export class DefaultEditorTypesService {
|
|
9
11
|
getEditorForProperty(property) {
|
|
10
12
|
if (property.createEditor)
|
|
@@ -38,6 +40,14 @@ export class DefaultEditorTypesService {
|
|
|
38
40
|
{
|
|
39
41
|
return new BooleanPropertyEditor(property);
|
|
40
42
|
}
|
|
43
|
+
case "img-list":
|
|
44
|
+
{
|
|
45
|
+
return new ImageButtonListPropertyEditor(property);
|
|
46
|
+
}
|
|
47
|
+
case "thickness":
|
|
48
|
+
{
|
|
49
|
+
return new ThicknessPropertyEditor(property);
|
|
50
|
+
}
|
|
41
51
|
case "css-length":
|
|
42
52
|
case "thickness":
|
|
43
53
|
case "string":
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IProperty } from "../IProperty";
|
|
2
|
+
import { BasePropertyEditor } from './BasePropertyEditor';
|
|
3
|
+
import { ValueType } from "../ValueType";
|
|
4
|
+
import { ImageButtonListSelector } from "../../../controls/ImageButtonListSelector.js";
|
|
5
|
+
export declare class ImageButtonListPropertyEditor extends BasePropertyEditor<ImageButtonListSelector> {
|
|
6
|
+
constructor(property: IProperty);
|
|
7
|
+
refreshValue(valueType: ValueType, value: any): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BasePropertyEditor } from './BasePropertyEditor';
|
|
2
|
+
import { ImageButtonListSelector } from "../../../controls/ImageButtonListSelector.js";
|
|
3
|
+
import { PropertiesHelper } from "../services/PropertiesHelper.js";
|
|
4
|
+
import { assetsPath } from "../../../../Constants.js";
|
|
5
|
+
export class ImageButtonListPropertyEditor extends BasePropertyEditor {
|
|
6
|
+
constructor(property) {
|
|
7
|
+
super(property);
|
|
8
|
+
const selector = new ImageButtonListSelector();
|
|
9
|
+
selector.property = property.name;
|
|
10
|
+
selector.unsetValue = property.defaultValue;
|
|
11
|
+
const propName = PropertiesHelper.camelToDashCase(property.name);
|
|
12
|
+
if (property.type == 'enum') {
|
|
13
|
+
for (let v of property.enumValues) {
|
|
14
|
+
let button = document.createElement("button");
|
|
15
|
+
button.dataset.value = v[1];
|
|
16
|
+
let img = document.createElement("img");
|
|
17
|
+
img.title = v[1];
|
|
18
|
+
img.src = assetsPath + 'images/chromeDevtools/' + propName + '-' + v[1] + '-icon.svg';
|
|
19
|
+
button.appendChild(img);
|
|
20
|
+
selector.appendChild(button);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
for (let v of property.values) {
|
|
25
|
+
let button = document.createElement("button");
|
|
26
|
+
button.dataset.value = v;
|
|
27
|
+
let img = document.createElement("img");
|
|
28
|
+
img.title = v;
|
|
29
|
+
img.src = assetsPath + 'images/chromeDevtools/' + propName + '-' + v + '-icon.svg';
|
|
30
|
+
button.appendChild(img);
|
|
31
|
+
selector.appendChild(button);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
selector.valueChanged.on((e) => this._valueChanged(e.newValue));
|
|
35
|
+
this.element = selector;
|
|
36
|
+
}
|
|
37
|
+
refreshValue(valueType, value) {
|
|
38
|
+
this.element.value = value;
|
|
39
|
+
}
|
|
40
|
+
}
|
package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IProperty } from "../IProperty";
|
|
2
|
+
import { BasePropertyEditor } from './BasePropertyEditor';
|
|
3
|
+
import { ValueType } from "../ValueType";
|
|
4
|
+
import { ImageButtonListSelector } from "../../../controls/ImageButtonListSelector.js";
|
|
5
|
+
export declare class ImageButtonListPropertyEditor extends BasePropertyEditor<ImageButtonListSelector> {
|
|
6
|
+
constructor(property: IProperty);
|
|
7
|
+
refreshValue(valueType: ValueType, value: any): void;
|
|
8
|
+
}
|
package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BasePropertyEditor } from './BasePropertyEditor';
|
|
2
|
+
import { ImageButtonListSelector } from "../../../controls/ImageButtonListSelector.js";
|
|
3
|
+
import { PropertiesHelper } from "../services/PropertiesHelper.js";
|
|
4
|
+
import { assetsPath } from "../../../../Constants.js";
|
|
5
|
+
export class ImageButtonListPropertyEditor extends BasePropertyEditor {
|
|
6
|
+
constructor(property) {
|
|
7
|
+
super(property);
|
|
8
|
+
const selector = new ImageButtonListSelector();
|
|
9
|
+
selector.property = property.name;
|
|
10
|
+
selector.unsetValue = property.defaultValue;
|
|
11
|
+
const propName = PropertiesHelper.camelToDashCase(property.name);
|
|
12
|
+
if (property.type == 'enum') {
|
|
13
|
+
for (let v of property.enumValues) {
|
|
14
|
+
let button = document.createElement("button");
|
|
15
|
+
button.dataset.value = v[1];
|
|
16
|
+
let img = document.createElement("img");
|
|
17
|
+
img.title = v[1];
|
|
18
|
+
img.src = assetsPath + 'images/chromeDevtools/' + propName + '-' + v[1] + '-icon.svg';
|
|
19
|
+
button.appendChild(img);
|
|
20
|
+
selector.appendChild(button);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
for (let v of property.values) {
|
|
25
|
+
let button = document.createElement("button");
|
|
26
|
+
button.dataset.value = v;
|
|
27
|
+
let img = document.createElement("img");
|
|
28
|
+
img.title = v;
|
|
29
|
+
img.src = assetsPath + 'images/chromeDevtools/' + propName + '-' + v + '-icon.svg';
|
|
30
|
+
button.appendChild(img);
|
|
31
|
+
selector.appendChild(button);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
selector.valueChanged.on((e) => this._valueChanged(e.newValue));
|
|
35
|
+
this.element = selector;
|
|
36
|
+
}
|
|
37
|
+
refreshValue(valueType, value) {
|
|
38
|
+
this.element.value = value;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IProperty } from "../IProperty";
|
|
2
|
+
import { BasePropertyEditor } from './BasePropertyEditor';
|
|
3
|
+
import { ValueType } from "../ValueType";
|
|
4
|
+
import { ThicknessEditor } from '../../../controls/ThicknessEditor';
|
|
5
|
+
export declare class ThicknessPropertyEditor extends BasePropertyEditor<ThicknessEditor> {
|
|
6
|
+
constructor(property: IProperty);
|
|
7
|
+
refreshValue(valueType: ValueType, value: any): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BasePropertyEditor } from './BasePropertyEditor';
|
|
2
|
+
import { ThicknessEditor } from '../../../controls/ThicknessEditor';
|
|
3
|
+
export class ThicknessPropertyEditor extends BasePropertyEditor {
|
|
4
|
+
constructor(property) {
|
|
5
|
+
super(property);
|
|
6
|
+
const selector = new ThicknessEditor();
|
|
7
|
+
selector.property = property.name;
|
|
8
|
+
selector.valueChanged.on((e) => this._valueChanged(e.newValue));
|
|
9
|
+
this.element = selector;
|
|
10
|
+
}
|
|
11
|
+
refreshValue(valueType, value) {
|
|
12
|
+
this.element.value = value;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -6,8 +6,9 @@ export declare class CssPropertiesService implements IPropertiesService {
|
|
|
6
6
|
private styles;
|
|
7
7
|
private alignment;
|
|
8
8
|
private grid;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
private flex;
|
|
10
|
+
name: 'set-styles' | 'alignment' | 'styles' | 'grid' | 'flex';
|
|
11
|
+
constructor(name: 'set-styles' | 'alignment' | 'styles' | 'grid' | 'flex');
|
|
11
12
|
isHandledElement(designItem: IDesignItem): boolean;
|
|
12
13
|
getProperty(designItem: IDesignItem, name: string): IProperty;
|
|
13
14
|
getProperties(designItem: IDesignItem): IProperty[];
|
|
@@ -86,59 +86,26 @@ export class CssPropertiesService {
|
|
|
86
86
|
//@ts-ignore
|
|
87
87
|
this.alignment = [
|
|
88
88
|
{
|
|
89
|
-
name: "position",
|
|
90
|
-
type: "list",
|
|
91
|
-
values: ["static", "relative", "absolute"],
|
|
92
|
-
service: this
|
|
93
|
-
}, {
|
|
94
89
|
name: "display",
|
|
95
90
|
type: "list",
|
|
96
91
|
values: ["block", "inline-block", "flex", "contents", "grid", "inherit", "initial", "none"],
|
|
97
92
|
service: this
|
|
98
93
|
}, {
|
|
99
|
-
name: "
|
|
100
|
-
type: "list",
|
|
101
|
-
values: ["row", "row-reverse", "column", "column-reverse"],
|
|
102
|
-
service: this
|
|
103
|
-
}, {
|
|
104
|
-
name: "flex-wrap",
|
|
105
|
-
type: "list",
|
|
106
|
-
values: ["nowrap", "wrap", "warp-reverse"],
|
|
107
|
-
service: this
|
|
108
|
-
}, {
|
|
109
|
-
name: "justify-self",
|
|
110
|
-
type: "list",
|
|
111
|
-
values: ["flex-start", "center", "flex-end", "space-between", "space-around"],
|
|
112
|
-
service: this
|
|
113
|
-
}, {
|
|
114
|
-
name: "justify-items",
|
|
115
|
-
type: "list",
|
|
116
|
-
values: ["flex-start", "center", "flex-end", "space-between", "space-around"],
|
|
117
|
-
service: this
|
|
118
|
-
}, {
|
|
119
|
-
name: "justify-content",
|
|
120
|
-
type: "list",
|
|
121
|
-
values: ["flex-start", "center", "flex-end", "space-between", "space-around"],
|
|
122
|
-
service: this
|
|
123
|
-
}, {
|
|
124
|
-
name: "align-self",
|
|
94
|
+
name: "position",
|
|
125
95
|
type: "list",
|
|
126
|
-
values: ["
|
|
96
|
+
values: ["static", "relative", "absolute"],
|
|
127
97
|
service: this
|
|
128
98
|
}, {
|
|
129
|
-
name: "
|
|
130
|
-
type: "
|
|
131
|
-
values: ["flex-start", "center", "flex-end", "space-between", "space-around"],
|
|
99
|
+
name: "inset",
|
|
100
|
+
type: "thickness",
|
|
132
101
|
service: this
|
|
133
102
|
}, {
|
|
134
|
-
name: "
|
|
135
|
-
type: "
|
|
136
|
-
values: ["flex-start", "center", "flex-end", "space-between", "space-around"],
|
|
103
|
+
name: "margin",
|
|
104
|
+
type: "thickness",
|
|
137
105
|
service: this
|
|
138
106
|
}, {
|
|
139
|
-
name: "
|
|
140
|
-
type: "
|
|
141
|
-
default: "0 1 auto",
|
|
107
|
+
name: "padding",
|
|
108
|
+
type: "thickness",
|
|
142
109
|
service: this
|
|
143
110
|
}
|
|
144
111
|
];
|
|
@@ -165,25 +132,59 @@ export class CssPropertiesService {
|
|
|
165
132
|
name: "row-gap",
|
|
166
133
|
type: "css-length",
|
|
167
134
|
service: this
|
|
135
|
+
}, {
|
|
136
|
+
name: "align-content",
|
|
137
|
+
type: "img-list",
|
|
138
|
+
values: ["center", "space-between", "space-around", "space-evenly", "stretch"],
|
|
139
|
+
service: this
|
|
168
140
|
}, {
|
|
169
141
|
name: "justify-content",
|
|
170
|
-
type: "list",
|
|
171
|
-
values: ["
|
|
142
|
+
type: "img-list",
|
|
143
|
+
values: ["center", "start", "end", "space-between", "space-around", "space-evenly"],
|
|
172
144
|
service: this
|
|
173
145
|
}, {
|
|
174
|
-
name: "align-
|
|
175
|
-
type: "list",
|
|
176
|
-
values: ["
|
|
146
|
+
name: "align-items",
|
|
147
|
+
type: "img-list",
|
|
148
|
+
values: ["center", "start", "end", "stretch", "baseline"],
|
|
177
149
|
service: this
|
|
178
150
|
}, {
|
|
179
151
|
name: "justify-items",
|
|
152
|
+
type: "img-list",
|
|
153
|
+
values: ["center", "start", "end", "stretch"],
|
|
154
|
+
service: this
|
|
155
|
+
}
|
|
156
|
+
];
|
|
157
|
+
//@ts-ignore
|
|
158
|
+
this.flex = [
|
|
159
|
+
{
|
|
160
|
+
name: "display",
|
|
180
161
|
type: "list",
|
|
181
|
-
values: ["
|
|
162
|
+
values: ["block", "inline-block", "flex", "contents", "grid", "inherit", "initial", "none"],
|
|
163
|
+
service: this
|
|
164
|
+
}, {
|
|
165
|
+
name: "flex-direction",
|
|
166
|
+
type: "img-list",
|
|
167
|
+
values: ["row", "column"],
|
|
168
|
+
service: this
|
|
169
|
+
}, {
|
|
170
|
+
name: "flex-wrap",
|
|
171
|
+
type: "img-list",
|
|
172
|
+
values: ["nowrap", "wrap"],
|
|
173
|
+
service: this
|
|
174
|
+
}, {
|
|
175
|
+
name: "align-content",
|
|
176
|
+
type: "img-list",
|
|
177
|
+
values: ["center", "flex-start", "flex-end", "space-between", "space-around", "stretch"],
|
|
178
|
+
service: this
|
|
179
|
+
}, {
|
|
180
|
+
name: "justify-content",
|
|
181
|
+
type: "img-list",
|
|
182
|
+
values: ["center", "flex-start", "flex-end", "space-between", "space-around", "space-evenly"],
|
|
182
183
|
service: this
|
|
183
184
|
}, {
|
|
184
185
|
name: "align-items",
|
|
185
|
-
type: "list",
|
|
186
|
-
values: ["
|
|
186
|
+
type: "img-list",
|
|
187
|
+
values: ["center", "flex-start", "flex-end", "stretch", "baseline"],
|
|
187
188
|
service: this
|
|
188
189
|
}
|
|
189
190
|
];
|
|
@@ -193,9 +194,17 @@ export class CssPropertiesService {
|
|
|
193
194
|
return true;
|
|
194
195
|
}
|
|
195
196
|
getProperty(designItem, name) {
|
|
197
|
+
if (this.name == 'set-styles') {
|
|
198
|
+
return { name: name, type: 'string', service: this };
|
|
199
|
+
}
|
|
196
200
|
return this[this.name][name];
|
|
197
201
|
}
|
|
198
202
|
getProperties(designItem) {
|
|
203
|
+
if (this.name == 'set-styles') {
|
|
204
|
+
if (!designItem)
|
|
205
|
+
return [];
|
|
206
|
+
return Array.from(designItem.styles.keys(), x => ({ name: x, type: 'string', service: this }));
|
|
207
|
+
}
|
|
199
208
|
return this[this.name];
|
|
200
209
|
}
|
|
201
210
|
setValue(designItems, property, value) {
|
|
@@ -19,6 +19,7 @@ export interface IDesignerCanvas extends IPlacementView, IUiCommandHandler {
|
|
|
19
19
|
readonly shadowRoot: ShadowRoot;
|
|
20
20
|
readonly alignOnGrid: boolean;
|
|
21
21
|
readonly alignOnSnap: boolean;
|
|
22
|
+
zoomFactor: number;
|
|
22
23
|
eatEvents: Element;
|
|
23
24
|
initialize(serviceContainer: ServiceContainer): any;
|
|
24
25
|
getDesignerMousepoint(event: MouseEvent, target: Element, startPoint?: IDesignerMousePoint): IDesignerMousePoint;
|
|
@@ -49,7 +49,8 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
|
|
|
49
49
|
set additionalStyle(value: CSSStyleSheet);
|
|
50
50
|
executeCommand(command: IUiCommand): Promise<void>;
|
|
51
51
|
canExecuteCommand(command: IUiCommand): boolean;
|
|
52
|
-
|
|
52
|
+
handleSelectAll(): void;
|
|
53
|
+
handleCopyCommand(): Promise<void>;
|
|
53
54
|
handlePasteCommand(): Promise<void>;
|
|
54
55
|
handleDeleteCommand(): void;
|
|
55
56
|
handleMoveCommand(command: CommandType): void;
|
|
@@ -63,7 +64,6 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
|
|
|
63
64
|
private _onDragLeave;
|
|
64
65
|
private _onDragOver;
|
|
65
66
|
private _onDrop;
|
|
66
|
-
private _onWheel;
|
|
67
67
|
private _onContextMenu;
|
|
68
68
|
showDesignItemContextMenu(designItem: IDesignItem, event: MouseEvent): ContextMenuHelper;
|
|
69
69
|
private _onDblClick;
|
|
@@ -7,7 +7,6 @@ import { BaseCustomWebComponentLazyAppend, css, html } from '@node-projects/base
|
|
|
7
7
|
import { dragDropFormatName } from '../../../Constants';
|
|
8
8
|
import { ContentService } from '../../services/contentService/ContentService';
|
|
9
9
|
import { InsertAction } from '../../services/undoService/transactionItems/InsertAction';
|
|
10
|
-
import { DomConverter } from './DomConverter';
|
|
11
10
|
import { Snaplines } from './Snaplines';
|
|
12
11
|
import { ContextMenuHelper } from '../../helper/contextMenu/ContextMenuHelper';
|
|
13
12
|
import { DeleteAction } from '../../services/undoService/transactionItems/DeleteAction';
|
|
@@ -134,6 +133,9 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
134
133
|
case CommandType.paste:
|
|
135
134
|
this.handlePasteCommand();
|
|
136
135
|
break;
|
|
136
|
+
case CommandType.selectAll:
|
|
137
|
+
this.handleSelectAll();
|
|
138
|
+
break;
|
|
137
139
|
}
|
|
138
140
|
}
|
|
139
141
|
canExecuteCommand(command) {
|
|
@@ -149,15 +151,15 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
149
151
|
return true;
|
|
150
152
|
}
|
|
151
153
|
/* --- end IUiCommandHandler --- */
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
154
|
+
handleSelectAll() {
|
|
155
|
+
this.instanceServiceContainer.selectionService.setSelectedElements(Array.from(this.rootDesignItem.children()));
|
|
156
|
+
}
|
|
157
|
+
async handleCopyCommand() {
|
|
158
|
+
await this.serviceContainer.copyPasteService.copyItems(this.instanceServiceContainer.selectionService.selectedElements);
|
|
155
159
|
}
|
|
156
160
|
async handlePasteCommand() {
|
|
157
|
-
const
|
|
158
|
-
const parserService = this.serviceContainer.htmlParserService;
|
|
161
|
+
const designItems = await this.serviceContainer.copyPasteService.getPasteItems(this.serviceContainer, this.instanceServiceContainer);
|
|
159
162
|
let grp = this.rootDesignItem.openGroup("Insert");
|
|
160
|
-
const designItems = await parserService.parse(text, this.serviceContainer, this.instanceServiceContainer);
|
|
161
163
|
if (designItems) {
|
|
162
164
|
for (let di of designItems) {
|
|
163
165
|
this.instanceServiceContainer.undoService.execute(new InsertAction(this.rootDesignItem, this.rootDesignItem.childCount, di));
|
|
@@ -178,7 +180,6 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
178
180
|
this.instanceServiceContainer.selectionService.setSelectedElements(null);
|
|
179
181
|
}
|
|
180
182
|
handleMoveCommand(command) {
|
|
181
|
-
//TODO: -> via undo redo service
|
|
182
183
|
let sel = this.instanceServiceContainer.selectionService.primarySelection;
|
|
183
184
|
if (command == CommandType.moveBackward)
|
|
184
185
|
this.instanceServiceContainer.undoService.execute(new MoveElementInDomAction(sel, DesignItem.GetDesignItem(sel.element.previousElementSibling), 'beforebegin', DesignItem.GetDesignItem(sel.element.previousElementSibling), 'afterend'));
|
|
@@ -217,14 +218,13 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
217
218
|
this._outercanvas2.addEventListener(EventNames.PointerDown, this._pointerEventHandlerBound);
|
|
218
219
|
this._outercanvas2.addEventListener(EventNames.PointerMove, this._pointerEventHandlerBound);
|
|
219
220
|
this._outercanvas2.addEventListener(EventNames.PointerUp, this._pointerEventHandlerBound);
|
|
220
|
-
this.
|
|
221
|
-
this.
|
|
222
|
-
this.
|
|
223
|
-
this.
|
|
221
|
+
this._outercanvas2.addEventListener(EventNames.DragEnter, event => this._onDragEnter(event));
|
|
222
|
+
this._outercanvas2.addEventListener(EventNames.DragLeave, event => this._onDragLeave(event));
|
|
223
|
+
this._outercanvas2.addEventListener(EventNames.DragOver, event => this._onDragOver(event));
|
|
224
|
+
this._outercanvas2.addEventListener(EventNames.Drop, event => this._onDrop(event));
|
|
224
225
|
this._canvas.addEventListener(EventNames.KeyDown, this._onKeyDownBound, true);
|
|
225
226
|
this._canvas.addEventListener(EventNames.KeyUp, this._onKeyUpBound, true);
|
|
226
227
|
this._canvas.addEventListener(EventNames.DblClick, this._onDblClickBound, true);
|
|
227
|
-
this.addEventListener(EventNames.Wheel, event => this._onWheel(event));
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
zoomFactorChanged() {
|
|
@@ -299,24 +299,14 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
299
299
|
let di = await this.serviceContainer.forSomeServicesTillResult("instanceService", (service) => service.getElement(elementDefinition, this.serviceContainer, this.instanceServiceContainer));
|
|
300
300
|
let grp = di.openGroup("Insert");
|
|
301
301
|
di.setStyle('position', 'absolute');
|
|
302
|
-
const
|
|
303
|
-
di.setStyle('top', event.offsetY +
|
|
304
|
-
di.setStyle('left', event.offsetX +
|
|
302
|
+
const canvasRect = this._canvasContainer.getBoundingClientRect();
|
|
303
|
+
di.setStyle('top', ((event.offsetY + event.target.scrollTop - (this.containerBoundingRect.y * this._zoomFactor)) / this._zoomFactor + canvasRect.top) + 'px');
|
|
304
|
+
di.setStyle('left', ((event.offsetX + event.target.scrollLeft - (this.containerBoundingRect.x * this._zoomFactor)) / this._zoomFactor + canvasRect.left) + 'px');
|
|
305
305
|
this.instanceServiceContainer.undoService.execute(new InsertAction(this.rootDesignItem, this.rootDesignItem.childCount, di));
|
|
306
306
|
grp.commit();
|
|
307
307
|
requestAnimationFrame(() => this.instanceServiceContainer.selectionService.setSelectedElements([di]));
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
|
-
_onWheel(event) {
|
|
311
|
-
if (event.ctrlKey) {
|
|
312
|
-
event.preventDefault();
|
|
313
|
-
this._zoomFactor += event.deltaY * -0.001; //deltamode = 0
|
|
314
|
-
if (this._zoomFactor < 0.1)
|
|
315
|
-
this._zoomFactor = 0.1;
|
|
316
|
-
this.zoomFactorChanged();
|
|
317
|
-
//TODO: we should zoom on the current cursor position, so it stays the center
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
310
|
_onContextMenu(event) {
|
|
321
311
|
event.preventDefault();
|
|
322
312
|
const designItem = DesignItem.GetOrCreateDesignItem(event.target, this.serviceContainer, this.instanceServiceContainer);
|
|
@@ -359,6 +349,14 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
359
349
|
this.executeCommand({ type: CommandType.redo });
|
|
360
350
|
else if ((event.ctrlKey || event.metaKey) && event.key === 'y')
|
|
361
351
|
this.executeCommand({ type: CommandType.redo });
|
|
352
|
+
else if ((event.ctrlKey || event.metaKey) && event.key === 'a')
|
|
353
|
+
this.executeCommand({ type: CommandType.selectAll });
|
|
354
|
+
else if ((event.ctrlKey || event.metaKey) && event.key === 'c')
|
|
355
|
+
this.executeCommand({ type: CommandType.copy });
|
|
356
|
+
else if ((event.ctrlKey || event.metaKey) && event.key === 'v')
|
|
357
|
+
this.executeCommand({ type: CommandType.paste });
|
|
358
|
+
else if ((event.ctrlKey || event.metaKey) && event.key === 'x')
|
|
359
|
+
this.executeCommand({ type: CommandType.cut });
|
|
362
360
|
else {
|
|
363
361
|
let primarySelection = this.instanceServiceContainer.selectionService.primarySelection;
|
|
364
362
|
if (!primarySelection) {
|
|
@@ -411,7 +409,9 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
411
409
|
y: (event.y - this.containerBoundingRect.y) / this._zoomFactor,
|
|
412
410
|
offsetInControlX: (startPoint ? startPoint.offsetInControlX : event.x - targetRect.x),
|
|
413
411
|
offsetInControlY: (startPoint ? startPoint.offsetInControlY : event.y - targetRect.y),
|
|
414
|
-
zoom: this._zoomFactor
|
|
412
|
+
zoom: this._zoomFactor,
|
|
413
|
+
normalizedX: ((event.offsetX + event.target.scrollLeft - (this.containerBoundingRect.x * this._zoomFactor)) / this._zoomFactor + targetRect.left),
|
|
414
|
+
normalizedY: ((event.offsetY + event.target.scrollTop - (this.containerBoundingRect.y * this._zoomFactor)) / this._zoomFactor + targetRect.top)
|
|
415
415
|
};
|
|
416
416
|
}
|
|
417
417
|
//todo remove, is in base custom webcomp domhelper
|
|
@@ -16,6 +16,7 @@ export declare class DesignerView extends BaseCustomWebComponentConstructorAppen
|
|
|
16
16
|
static readonly template: HTMLTemplateElement;
|
|
17
17
|
private _designerCanvas;
|
|
18
18
|
constructor();
|
|
19
|
+
private _onWheel;
|
|
19
20
|
get designerWidth(): string;
|
|
20
21
|
set designerWidth(value: string);
|
|
21
22
|
get designerHeight(): string;
|
|
@@ -2,6 +2,7 @@ import { css, DomHelper, html, BaseCustomWebComponentConstructorAppend } from '@
|
|
|
2
2
|
import { DesignerCanvas } from "./designerCanvas.js";
|
|
3
3
|
import { DomConverter } from './DomConverter.js';
|
|
4
4
|
import { DefaultHtmlParserService } from '../../services/htmlParserService/DefaultHtmlParserService.js';
|
|
5
|
+
import { EventNames } from '../../../enums/EventNames.js';
|
|
5
6
|
export class DesignerView extends BaseCustomWebComponentConstructorAppend {
|
|
6
7
|
constructor() {
|
|
7
8
|
super();
|
|
@@ -11,16 +12,37 @@ export class DesignerView extends BaseCustomWebComponentConstructorAppend {
|
|
|
11
12
|
this._designerCanvas.appendChild(document.createElement("slot"));
|
|
12
13
|
outer.insertAdjacentElement('afterbegin', this._designerCanvas);
|
|
13
14
|
this._zoomInput = this._getDomElement('zoomInput');
|
|
14
|
-
this._zoomInput.
|
|
15
|
+
this._zoomInput.onkeydown = (e) => {
|
|
16
|
+
if (e.key == 'Enter')
|
|
17
|
+
this._designerCanvas.zoomFactor = parseFloat(this._zoomInput.value) / 100;
|
|
18
|
+
this._zoomInput.value = Math.round(this._designerCanvas.zoomFactor * 100) + '%';
|
|
19
|
+
};
|
|
20
|
+
this._zoomInput.onblur = () => {
|
|
21
|
+
this._designerCanvas.zoomFactor = parseFloat(this._zoomInput.value) / 100;
|
|
22
|
+
this._zoomInput.value = Math.round(this._designerCanvas.zoomFactor * 100) + '%';
|
|
23
|
+
};
|
|
15
24
|
this._zoomInput.onclick = this._zoomInput.select;
|
|
16
25
|
let zoomIncrease = this._getDomElement('zoomIncrease');
|
|
17
|
-
zoomIncrease.onclick = () => {
|
|
26
|
+
zoomIncrease.onclick = () => {
|
|
27
|
+
this._designerCanvas.zoomFactor += 0.1;
|
|
28
|
+
this._zoomInput.value = Math.round(this._designerCanvas.zoomFactor * 100) + '%';
|
|
29
|
+
};
|
|
18
30
|
let zoomDecrease = this._getDomElement('zoomDecrease');
|
|
19
|
-
zoomDecrease.onclick = () => {
|
|
31
|
+
zoomDecrease.onclick = () => {
|
|
32
|
+
this._designerCanvas.zoomFactor -= 0.1;
|
|
33
|
+
this._zoomInput.value = Math.round(this._designerCanvas.zoomFactor * 100) + '%';
|
|
34
|
+
};
|
|
20
35
|
let zoomReset = this._getDomElement('zoomReset');
|
|
21
|
-
zoomReset.onclick = () => {
|
|
36
|
+
zoomReset.onclick = () => {
|
|
37
|
+
this._designerCanvas.zoomFactor = 1;
|
|
38
|
+
this._zoomInput.value = Math.round(this._designerCanvas.zoomFactor * 100) + '%';
|
|
39
|
+
};
|
|
22
40
|
let zoomFit = this._getDomElement('zoomFit');
|
|
23
|
-
zoomFit.onclick = () => {
|
|
41
|
+
zoomFit.onclick = () => {
|
|
42
|
+
this._designerCanvas.zoomFactor = 7.7;
|
|
43
|
+
this._zoomInput.value = Math.round(this._designerCanvas.zoomFactor * 100) + '%';
|
|
44
|
+
};
|
|
45
|
+
this.addEventListener(EventNames.Wheel, event => this._onWheel(event));
|
|
24
46
|
let alignSnap = this._getDomElement('alignSnap');
|
|
25
47
|
alignSnap.onclick = () => { this._designerCanvas.alignOnSnap = !this._designerCanvas.alignOnSnap; alignSnap.style.backgroundColor = this._designerCanvas.alignOnSnap ? 'deepskyblue' : ''; };
|
|
26
48
|
alignSnap.style.backgroundColor = this._designerCanvas.alignOnSnap ? 'deepskyblue' : '';
|
|
@@ -40,6 +62,18 @@ export class DesignerView extends BaseCustomWebComponentConstructorAppend {
|
|
|
40
62
|
set instanceServiceContainer(value) {
|
|
41
63
|
this._designerCanvas.instanceServiceContainer = value;
|
|
42
64
|
}
|
|
65
|
+
_onWheel(event) {
|
|
66
|
+
if (event.ctrlKey) {
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
let zf = this._designerCanvas.zoomFactor;
|
|
69
|
+
zf += event.deltaY * -0.001; //deltamode = 0
|
|
70
|
+
if (zf < 0.02)
|
|
71
|
+
zf = 0.02;
|
|
72
|
+
this._designerCanvas.zoomFactor = zf;
|
|
73
|
+
this._zoomInput.value = Math.round(zf * 100) + '%';
|
|
74
|
+
//TODO: we should zoom on the current cursor position, so it stays the center
|
|
75
|
+
}
|
|
76
|
+
}
|
|
43
77
|
get designerWidth() {
|
|
44
78
|
return this._designerCanvas.designerWidth;
|
|
45
79
|
}
|
|
@@ -66,8 +66,7 @@ OverlayLayerView.style = css `
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
.svg-snapline { stroke: purple; stroke-dasharray: 4; fill: transparent; }
|
|
69
|
-
|
|
70
|
-
.svg-selector { stroke: black; fill: transparent; stroke-width: 1; stroke-dasharray: 2; }
|
|
69
|
+
.svg-selector { stroke: black; fill: #3899ec55; stroke-width: 1; stroke-dasharray: 2; }
|
|
71
70
|
.svg-primary-selection-move { stroke: #3899ec; fill: #3899ec; cursor: move; pointer-events: all }
|
|
72
71
|
.svg-text { stroke: none; fill: white; stroke-width: 1; font-size: 10px; font-family: monospace; }
|
|
73
72
|
.svg-primary-resizer { stroke: #3899ec; fill: white; pointer-events: all }
|
|
@@ -16,8 +16,8 @@ export class RectangleSelectorTool {
|
|
|
16
16
|
if (!this._rect)
|
|
17
17
|
this._rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
|
|
18
18
|
this._rect.setAttribute('class', 'svg-selector');
|
|
19
|
-
this._rect.setAttribute('x', this._initialPoint.
|
|
20
|
-
this._rect.setAttribute('y', this._initialPoint.
|
|
19
|
+
this._rect.setAttribute('x', this._initialPoint.normalizedX);
|
|
20
|
+
this._rect.setAttribute('y', this._initialPoint.normalizedY);
|
|
21
21
|
this._rect.setAttribute('width', 0);
|
|
22
22
|
this._rect.setAttribute('height', 0);
|
|
23
23
|
designerCanvas.overlayLayer.addOverlay(this._rect, OverlayLayer.Foregorund);
|
|
@@ -27,19 +27,19 @@ export class RectangleSelectorTool {
|
|
|
27
27
|
let w = currentPoint.x - this._initialPoint.x;
|
|
28
28
|
let h = currentPoint.y - this._initialPoint.y;
|
|
29
29
|
if (w >= 0) {
|
|
30
|
-
this._rect.setAttribute('x', this._initialPoint.
|
|
30
|
+
this._rect.setAttribute('x', this._initialPoint.normalizedX);
|
|
31
31
|
this._rect.setAttribute('width', w);
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
this._rect.setAttribute('x', currentPoint.
|
|
34
|
+
this._rect.setAttribute('x', currentPoint.normalizedX);
|
|
35
35
|
this._rect.setAttribute('width', (-1 * w));
|
|
36
36
|
}
|
|
37
37
|
if (h >= 0) {
|
|
38
|
-
this._rect.setAttribute('y', this._initialPoint.
|
|
38
|
+
this._rect.setAttribute('y', this._initialPoint.normalizedY);
|
|
39
39
|
this._rect.setAttribute('height', h);
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
|
-
this._rect.setAttribute('y', currentPoint.
|
|
42
|
+
this._rect.setAttribute('y', currentPoint.normalizedY);
|
|
43
43
|
this._rect.setAttribute('height', (-1 * h));
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -53,17 +53,17 @@ export class RectangleSelectorTool {
|
|
|
53
53
|
let elementRect = e.getBoundingClientRect();
|
|
54
54
|
point.x = elementRect.left - designerCanvas.containerBoundingRect.left;
|
|
55
55
|
point.y = elementRect.top - designerCanvas.containerBoundingRect.top;
|
|
56
|
-
const p1 = this._rect.isPointInFill(point)
|
|
56
|
+
const p1 = this._rect.isPointInFill(point);
|
|
57
57
|
point.x = elementRect.left - designerCanvas.containerBoundingRect.left + elementRect.width;
|
|
58
58
|
point.y = elementRect.top - designerCanvas.containerBoundingRect.top;
|
|
59
|
-
const p2 =
|
|
59
|
+
const p2 = p1 && this._rect.isPointInFill(point);
|
|
60
60
|
point.x = elementRect.left - designerCanvas.containerBoundingRect.left;
|
|
61
61
|
point.y = elementRect.top - designerCanvas.containerBoundingRect.top + elementRect.height;
|
|
62
|
-
const p3 =
|
|
62
|
+
const p3 = p2 && this._rect.isPointInFill(point);
|
|
63
63
|
point.x = elementRect.left - designerCanvas.containerBoundingRect.left + elementRect.width;
|
|
64
64
|
point.y = elementRect.top - designerCanvas.containerBoundingRect.top + elementRect.height;
|
|
65
|
-
const p4 =
|
|
66
|
-
if (
|
|
65
|
+
const p4 = p3 && this._rect.isPointInFill(point);
|
|
66
|
+
if (p4) {
|
|
67
67
|
const desItem = DesignItem.GetOrCreateDesignItem(e, designerCanvas.serviceContainer, designerCanvas.instanceServiceContainer);
|
|
68
68
|
inSelectionElements.push(desItem);
|
|
69
69
|
}
|