@node-projects/web-component-designer 0.0.186 → 0.0.187
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/helper/NpmPackageLoader.d.ts +1 -1
- package/dist/elements/helper/NpmPackageLoader.js +2 -2
- package/dist/elements/item/DesignItem.d.ts +1 -0
- package/dist/elements/item/DesignItem.js +9 -0
- package/dist/elements/item/IDesignItem.d.ts +1 -0
- package/dist/elements/services/htmlParserService/AbstractClassElementParserService.js +7 -6
- package/dist/elements/widgets/designerView/designerCanvas.d.ts +1 -0
- package/dist/elements/widgets/designerView/designerCanvas.js +13 -0
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ export declare class NpmPackageLoader {
|
|
|
6
6
|
private _dependecies;
|
|
7
7
|
constructor(packageSource?: string);
|
|
8
8
|
static patchCustomElementsRegistryToHandleErrors(): void;
|
|
9
|
-
loadNpmPackage(pkg: string, serviceContainer: ServiceContainer, paletteTree: PaletteTreeView, reportState?: (state: string) => void): Promise<void>;
|
|
9
|
+
loadNpmPackage(pkg: string, serviceContainer: ServiceContainer, paletteTree: PaletteTreeView, loadAllImports: boolean, reportState?: (state: string) => void): Promise<void>;
|
|
10
10
|
loadDependency(dependency: string, version?: string, reportState?: (state: string) => void): Promise<void>;
|
|
11
11
|
addToImportmap(baseUrl: string, packageJsonObj: {
|
|
12
12
|
name?: string;
|
|
@@ -41,7 +41,7 @@ export class NpmPackageLoader {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
//TODO: remove paletteTree form params. elements should be added to serviceconatiner, and the container should notify
|
|
44
|
-
async loadNpmPackage(pkg, serviceContainer, paletteTree, reportState) {
|
|
44
|
+
async loadNpmPackage(pkg, serviceContainer, paletteTree, loadAllImports, reportState) {
|
|
45
45
|
const baseUrl = window.location.protocol + this._packageSource + pkg + '/';
|
|
46
46
|
const packageJsonUrl = baseUrl + 'package.json';
|
|
47
47
|
if (reportState)
|
|
@@ -106,7 +106,7 @@ export class NpmPackageLoader {
|
|
|
106
106
|
serviceContainer.register('elementsService', elements);
|
|
107
107
|
let properties = new WebcomponentManifestPropertiesService(packageJsonObj.name, customElementsJsonObj);
|
|
108
108
|
serviceContainer.register('propertyService', properties);
|
|
109
|
-
if (
|
|
109
|
+
if (loadAllImports) {
|
|
110
110
|
for (let e of await elements.getElements()) {
|
|
111
111
|
//@ts-ignore
|
|
112
112
|
importShim(e.import);
|
|
@@ -17,6 +17,7 @@ export declare class DesignItem implements IDesignItem {
|
|
|
17
17
|
appliedDesignerExtensions: Map<ExtensionType, IDesignerExtension[]>;
|
|
18
18
|
shouldAppliedDesignerExtensions: Map<ExtensionType, IDesignerExtensionProvider[]>;
|
|
19
19
|
clone(): Promise<IDesignItem>;
|
|
20
|
+
allMatching(selectors: string): Generator<IDesignItem, void, undefined>;
|
|
20
21
|
replaceNode(newNode: Node): void;
|
|
21
22
|
get nodeType(): NodeType;
|
|
22
23
|
private _attributes;
|
|
@@ -31,6 +31,15 @@ export class DesignItem {
|
|
|
31
31
|
}
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
|
+
*allMatching(selectors) {
|
|
35
|
+
if (this.hasChildren) {
|
|
36
|
+
for (let d of this.children()) {
|
|
37
|
+
if (d.element.matches(selectors))
|
|
38
|
+
yield d;
|
|
39
|
+
yield* d.allMatching(selectors);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
34
43
|
replaceNode(newNode) {
|
|
35
44
|
DesignItem._designItemMap.delete(this.node);
|
|
36
45
|
DesignItem._designItemMap.set(newNode, this);
|
|
@@ -19,6 +19,7 @@ export interface IDesignItem {
|
|
|
19
19
|
readonly hasStyles: boolean;
|
|
20
20
|
readonly hasChildren: boolean;
|
|
21
21
|
children(): IterableIterator<IDesignItem>;
|
|
22
|
+
allMatching(selectors: string): IterableIterator<IDesignItem>;
|
|
22
23
|
readonly childCount: number;
|
|
23
24
|
readonly firstChild: IDesignItem;
|
|
24
25
|
readonly parent: IDesignItem;
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import { DesignItem } from '../../item/DesignItem.js';
|
|
2
2
|
import { CssAttributeParser } from '../../helper/CssAttributeParser.js';
|
|
3
3
|
import { newElementFromString } from '../../helper/ElementHelper.js';
|
|
4
|
-
import * as esprima from "esprima-next/dist/esm/esprima";
|
|
5
4
|
function* getChildNodes(node) {
|
|
6
5
|
switch (node.type) {
|
|
7
|
-
case
|
|
6
|
+
case 'Program':
|
|
8
7
|
yield node.body;
|
|
9
8
|
break;
|
|
10
|
-
case
|
|
9
|
+
case 'ClassDeclaration':
|
|
11
10
|
yield node.body;
|
|
12
11
|
break;
|
|
13
|
-
case
|
|
12
|
+
case 'MethodDefinition':
|
|
14
13
|
yield node.value;
|
|
15
14
|
break;
|
|
16
15
|
}
|
|
17
16
|
}
|
|
18
|
-
//
|
|
19
|
-
//
|
|
17
|
+
//WIP - not yet workin
|
|
18
|
+
//Parse HTML inside of Javascript Classes
|
|
20
19
|
export class AbstractClassElementParserService {
|
|
21
20
|
_parserUrl;
|
|
22
21
|
_esprimaUrl;
|
|
@@ -32,6 +31,8 @@ export class AbstractClassElementParserService {
|
|
|
32
31
|
const renderMethodStatement = renderMethod.value.body.body[0];
|
|
33
32
|
const taggedTemplate = renderMethodStatement.argument;
|
|
34
33
|
const templateLiteral = taggedTemplate.quasi;
|
|
34
|
+
//@ts-ignore
|
|
35
|
+
const tmp = getChildNodes(parsedModule);
|
|
35
36
|
const html = templateLiteral.quasis.map(x => x.value.raw).join();
|
|
36
37
|
//@ts-ignore
|
|
37
38
|
let parser = await import(this._parserUrl);
|
|
@@ -35,6 +35,7 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
|
|
|
35
35
|
private _additionalStyle;
|
|
36
36
|
private _currentContextMenu;
|
|
37
37
|
private _backgroundImage;
|
|
38
|
+
private _enableSelectTextNodesOnClick;
|
|
38
39
|
get zoomFactor(): number;
|
|
39
40
|
set zoomFactor(value: number);
|
|
40
41
|
get scaleFactor(): number;
|
|
@@ -40,6 +40,7 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
40
40
|
_additionalStyle;
|
|
41
41
|
_currentContextMenu;
|
|
42
42
|
_backgroundImage;
|
|
43
|
+
_enableSelectTextNodesOnClick = false;
|
|
43
44
|
get zoomFactor() {
|
|
44
45
|
return this._zoomFactor;
|
|
45
46
|
}
|
|
@@ -910,6 +911,18 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
910
911
|
if (!currentElement) {
|
|
911
912
|
currentElement = this._canvas;
|
|
912
913
|
}
|
|
914
|
+
else if (this._enableSelectTextNodesOnClick) {
|
|
915
|
+
const norm = this.getNormalizedEventCoordinates(event);
|
|
916
|
+
for (let n of currentElement.childNodes) {
|
|
917
|
+
if (n.nodeType == NodeType.TextNode) {
|
|
918
|
+
let nc = this.getNormalizedElementCoordinates(n);
|
|
919
|
+
if (nc.x <= norm.x && nc.x + nc.width >= norm.x && nc.y <= norm.y && nc.y + nc.height >= norm.y) {
|
|
920
|
+
currentElement = n;
|
|
921
|
+
break;
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
}
|
|
913
926
|
}
|
|
914
927
|
if (this._activeTool) {
|
|
915
928
|
this._activeTool.pointerEventHandler(this, event, currentElement);
|