@node-projects/web-component-designer 0.0.217 → 0.0.219
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/RemoveOldRemoteBranches.bat +7 -0
- package/dist/elements/services/htmlParserService/AbstractClassElementParserService.d.ts +4 -7
- package/dist/elements/services/htmlParserService/AbstractClassElementParserService.js +39 -99
- package/dist/elements/services/htmlParserService/BaseCustomWebcomponentParserService.d.ts +9 -0
- package/dist/elements/services/htmlParserService/BaseCustomWebcomponentParserService.js +47 -0
- package/dist/elements/widgets/designerView/designerCanvas.d.ts +3 -0
- package/dist/elements/widgets/designerView/designerCanvas.js +122 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +1 -1
|
@@ -2,11 +2,8 @@ import { InstanceServiceContainer } from '../InstanceServiceContainer.js';
|
|
|
2
2
|
import { ServiceContainer } from '../ServiceContainer.js';
|
|
3
3
|
import { IHtmlParserService } from './IHtmlParserService.js';
|
|
4
4
|
import { IDesignItem } from '../../item/IDesignItem.js';
|
|
5
|
-
export declare
|
|
6
|
-
private
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
parse(module: string, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, parseSnippet: boolean): Promise<IDesignItem[]>;
|
|
10
|
-
private _parseDiv;
|
|
11
|
-
_createDesignItemsRecursive(item: any, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, namespace: string): IDesignItem;
|
|
5
|
+
export declare class AbstractClassElementParserService implements IHtmlParserService {
|
|
6
|
+
private htmlParser;
|
|
7
|
+
constructor(htmlParser: IHtmlParserService);
|
|
8
|
+
parse(code: string, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, parseSnippet: boolean): Promise<IDesignItem[]>;
|
|
12
9
|
}
|
|
@@ -1,106 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
case 'Program':
|
|
7
|
-
yield node.body;
|
|
8
|
-
break;
|
|
9
|
-
case 'ClassDeclaration':
|
|
10
|
-
yield node.body;
|
|
11
|
-
break;
|
|
12
|
-
case 'MethodDefinition':
|
|
13
|
-
yield node.value;
|
|
14
|
-
break;
|
|
15
|
-
}
|
|
1
|
+
function* findAllNodesOfKind(node, kind) {
|
|
2
|
+
if (node.kind == kind)
|
|
3
|
+
yield node;
|
|
4
|
+
for (const c of node.getChildren())
|
|
5
|
+
yield* findAllNodesOfKind(c, kind);
|
|
16
6
|
}
|
|
17
|
-
//WIP - not yet workin
|
|
18
|
-
//Parse HTML inside of Javascript Classes
|
|
19
7
|
export class AbstractClassElementParserService {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this._parserUrl = parserUrl;
|
|
24
|
-
this._esprimaUrl = esprimaUrl;
|
|
8
|
+
htmlParser;
|
|
9
|
+
constructor(htmlParser) {
|
|
10
|
+
this.htmlParser = htmlParser;
|
|
25
11
|
}
|
|
26
|
-
async parse(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
12
|
+
async parse(code, serviceContainer, instanceServiceContainer, parseSnippet) {
|
|
13
|
+
const compilerHost /*: ts.CompilerHost*/ = {
|
|
14
|
+
fileExists: () => true,
|
|
15
|
+
getCanonicalFileName: filename => filename,
|
|
16
|
+
getCurrentDirectory: () => '',
|
|
17
|
+
getDefaultLibFileName: () => 'lib.d.ts',
|
|
18
|
+
getNewLine: () => '\n',
|
|
19
|
+
getSourceFile: filename => {
|
|
20
|
+
//@ts-ignore
|
|
21
|
+
return ts.createSourceFile(filename, code, ts.ScriptTarget.Latest, true);
|
|
22
|
+
},
|
|
23
|
+
readFile: () => null,
|
|
24
|
+
useCaseSensitiveFileNames: () => true,
|
|
25
|
+
writeFile: () => null,
|
|
26
|
+
};
|
|
27
|
+
const filename = 'aa.ts';
|
|
37
28
|
//@ts-ignore
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
let designItem = null;
|
|
53
|
-
if (item.nodeType == 1) {
|
|
54
|
-
let element;
|
|
55
|
-
let manualCreatedElement = false;
|
|
56
|
-
if (!namespace)
|
|
57
|
-
element = newElementFromString('<' + item.rawTagName + ' ' + item.rawAttrs + '></' + item.rawTagName + '>'); // some custom elements only parse attributes during constructor call
|
|
58
|
-
if (!element) {
|
|
59
|
-
if (namespace)
|
|
60
|
-
element = document.createElementNS(namespace, item.rawTagName);
|
|
61
|
-
else
|
|
62
|
-
element = document.createElement(item.rawTagName);
|
|
63
|
-
manualCreatedElement = true;
|
|
64
|
-
}
|
|
65
|
-
designItem = new DesignItem(element, item, serviceContainer, instanceServiceContainer);
|
|
66
|
-
let style = '';
|
|
67
|
-
let attr = item.attributes;
|
|
68
|
-
for (let a in attr) {
|
|
69
|
-
if (a !== 'style') {
|
|
70
|
-
designItem._withoutUndoSetAttribute(a, attr[a]);
|
|
71
|
-
if (manualCreatedElement) {
|
|
72
|
-
element.setAttribute(a, attr[a]);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
style = attr[a];
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if ((element instanceof HTMLElement || element instanceof SVGElement) && style) {
|
|
80
|
-
let styleParser = new CssAttributeParser();
|
|
81
|
-
styleParser.parse(style);
|
|
82
|
-
for (let s of styleParser.entries) {
|
|
83
|
-
designItem._withoutUndoSetStyle(s.name, s.value);
|
|
84
|
-
if (manualCreatedElement) {
|
|
85
|
-
element.style[s.name] = s.value;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
element.draggable = false; //even if it should be true, for better designer exp.
|
|
90
|
-
for (let c of item.childNodes) {
|
|
91
|
-
let di = this._createDesignItemsRecursive(c, serviceContainer, instanceServiceContainer, element instanceof SVGElement ? 'http://www.w3.org/2000/svg' : null);
|
|
92
|
-
designItem._insertChildInternal(di);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
else if (item.nodeType == 3) {
|
|
96
|
-
this._parseDiv.innerHTML = item.rawText;
|
|
97
|
-
let element = this._parseDiv.childNodes[0];
|
|
98
|
-
designItem = new DesignItem(element, item, serviceContainer, instanceServiceContainer);
|
|
99
|
-
}
|
|
100
|
-
else if (item.nodeType == 8) {
|
|
101
|
-
let element = document.createComment(item.rawText);
|
|
102
|
-
designItem = new DesignItem(element, item, serviceContainer, instanceServiceContainer);
|
|
29
|
+
const program = ts.createProgram([filename], {
|
|
30
|
+
noResolve: true,
|
|
31
|
+
//@ts-ignore
|
|
32
|
+
target: ts.ScriptTarget.Latest,
|
|
33
|
+
}, compilerHost);
|
|
34
|
+
const sourceFile = program.getSourceFile(filename);
|
|
35
|
+
let htmlCode = "";
|
|
36
|
+
let cssStyle = "";
|
|
37
|
+
const nodes = findAllNodesOfKind(sourceFile, 212);
|
|
38
|
+
for (let nd of nodes) {
|
|
39
|
+
if (nd.tag.escapedText == 'html' && nd.parent.name.escapedText == "template")
|
|
40
|
+
htmlCode = nd.template.rawText;
|
|
41
|
+
if (nd.tag.escapedText == 'css' && nd.parent.name.escapedText == "style")
|
|
42
|
+
cssStyle = nd.template.rawText;
|
|
103
43
|
}
|
|
104
|
-
return
|
|
44
|
+
return this.htmlParser.parse(htmlCode, serviceContainer, instanceServiceContainer, parseSnippet);
|
|
105
45
|
}
|
|
106
46
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InstanceServiceContainer } from '../InstanceServiceContainer.js';
|
|
2
|
+
import { ServiceContainer } from '../ServiceContainer.js';
|
|
3
|
+
import { IHtmlParserService } from './IHtmlParserService.js';
|
|
4
|
+
import { IDesignItem } from '../../item/IDesignItem.js';
|
|
5
|
+
export declare class BaseCustomWebcomponentParserService implements IHtmlParserService {
|
|
6
|
+
private htmlParser;
|
|
7
|
+
constructor(htmlParser: IHtmlParserService);
|
|
8
|
+
parse(code: string, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, parseSnippet: boolean): Promise<IDesignItem[]>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function* findAllNodesOfKind(node, kind) {
|
|
2
|
+
if (node.kind == kind)
|
|
3
|
+
yield node;
|
|
4
|
+
for (const c of node.getChildren())
|
|
5
|
+
yield* findAllNodesOfKind(c, kind);
|
|
6
|
+
}
|
|
7
|
+
export class BaseCustomWebcomponentParserService {
|
|
8
|
+
htmlParser;
|
|
9
|
+
constructor(htmlParser) {
|
|
10
|
+
this.htmlParser = htmlParser;
|
|
11
|
+
}
|
|
12
|
+
async parse(code, serviceContainer, instanceServiceContainer, parseSnippet) {
|
|
13
|
+
const compilerHost = {
|
|
14
|
+
fileExists: () => true,
|
|
15
|
+
getCanonicalFileName: filename => filename,
|
|
16
|
+
getCurrentDirectory: () => '',
|
|
17
|
+
getDefaultLibFileName: () => 'lib.d.ts',
|
|
18
|
+
getNewLine: () => '\n',
|
|
19
|
+
getSourceFile: filename => {
|
|
20
|
+
//@ts-ignore
|
|
21
|
+
return ts.createSourceFile(filename, code, ts.ScriptTarget.Latest, true);
|
|
22
|
+
},
|
|
23
|
+
readFile: () => null,
|
|
24
|
+
useCaseSensitiveFileNames: () => true,
|
|
25
|
+
writeFile: () => null,
|
|
26
|
+
};
|
|
27
|
+
const filename = 'aa.ts';
|
|
28
|
+
//@ts-ignore
|
|
29
|
+
const program = ts.createProgram([filename], {
|
|
30
|
+
noResolve: true,
|
|
31
|
+
//@ts-ignore
|
|
32
|
+
target: ts.ScriptTarget.Latest,
|
|
33
|
+
}, compilerHost);
|
|
34
|
+
const sourceFile = program.getSourceFile(filename);
|
|
35
|
+
let htmlCode = "";
|
|
36
|
+
let cssStyle = "";
|
|
37
|
+
const nodes = findAllNodesOfKind(sourceFile, 212);
|
|
38
|
+
for (let nd of nodes) {
|
|
39
|
+
if (nd.tag.escapedText == 'html' && nd.parent.name.escapedText == "template")
|
|
40
|
+
htmlCode = nd.template.rawText;
|
|
41
|
+
if (nd.tag.escapedText == 'css' && nd.parent.name.escapedText == "style")
|
|
42
|
+
cssStyle = nd.template.rawText;
|
|
43
|
+
}
|
|
44
|
+
instanceServiceContainer.stylesheetService.setStylesheets([{ name: 'css', content: cssStyle }]);
|
|
45
|
+
return this.htmlParser.parse(htmlCode, serviceContainer, instanceServiceContainer, parseSnippet);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -98,6 +98,9 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
|
|
|
98
98
|
private _onDrop;
|
|
99
99
|
showDesignItemContextMenu(designItem: IDesignItem, event: MouseEvent): ContextMenu;
|
|
100
100
|
private _onDblClick;
|
|
101
|
+
private _searchShowOverlay;
|
|
102
|
+
private _searchHideOverlay;
|
|
103
|
+
private _searchRun;
|
|
101
104
|
private onKeyUp;
|
|
102
105
|
private onKeyDown;
|
|
103
106
|
/**
|
|
@@ -148,7 +148,86 @@ class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
148
148
|
#node-projects-designer-canvas-helper-element {
|
|
149
149
|
height: 0;
|
|
150
150
|
width: 0;
|
|
151
|
-
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
#node-projects-designer-search-container {
|
|
154
|
+
position:absolute;
|
|
155
|
+
display: grid;
|
|
156
|
+
grid-template-columns: 1fr auto auto;
|
|
157
|
+
align-items: center;
|
|
158
|
+
justify-content: left;
|
|
159
|
+
gap: 8px;
|
|
160
|
+
width: auto;
|
|
161
|
+
right: 10px;
|
|
162
|
+
top: 0;
|
|
163
|
+
background:rgb(242, 242, 242);
|
|
164
|
+
padding: 5px 6px;
|
|
165
|
+
border-bottom-left-radius: 5px;
|
|
166
|
+
border-bottom-right-radius: 5px;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
#node-projects-designer-search-container > #node-projects-designer-search-bar {
|
|
170
|
+
border: 1px solid black;
|
|
171
|
+
padding: 0;
|
|
172
|
+
display: grid;
|
|
173
|
+
grid-template-columns: 1fr auto;
|
|
174
|
+
align-items: center;
|
|
175
|
+
background-color: white;
|
|
176
|
+
padding: 1px 2px;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
#node-projects-designer-search-container > div > input {
|
|
180
|
+
height:20px;
|
|
181
|
+
padding-left: 6px;
|
|
182
|
+
font-size: 13px;
|
|
183
|
+
border: none;
|
|
184
|
+
outline: none;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
#node-projects-designer-search-container > div > #node-projects-designer-search-start {
|
|
188
|
+
height:22px;
|
|
189
|
+
border: none;
|
|
190
|
+
background-color: white;
|
|
191
|
+
font-size: 13px;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
#node-projects-designer-search-container > div > #node-projects-designer-search-start:hover {
|
|
195
|
+
background-color: #D3D3D3;
|
|
196
|
+
transition: 0.9s;
|
|
197
|
+
border-radius: 2px;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
#node-projects-designer-search-container > #node-projects-designer-search-close {
|
|
201
|
+
position: relative;
|
|
202
|
+
width: 20px;
|
|
203
|
+
height: 20px;
|
|
204
|
+
border: none;
|
|
205
|
+
background-color: transparent;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
#node-projects-designer-search-container > span {
|
|
209
|
+
font-family:sans-serif;
|
|
210
|
+
font-size: 12px;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
#node-projects-designer-search-container > #node-projects-designer-search-close::before,
|
|
214
|
+
#node-projects-designer-search-container > #node-projects-designer-search-close::after {
|
|
215
|
+
content: "";
|
|
216
|
+
position: absolute;
|
|
217
|
+
top: 50%;
|
|
218
|
+
left: 50%;
|
|
219
|
+
width: 60%;
|
|
220
|
+
background-color: black;
|
|
221
|
+
height: 1px;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
#node-projects-designer-search-container > #node-projects-designer-search-close::before {
|
|
225
|
+
transform: translate(-50%, -50%) rotate(45deg);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
#node-projects-designer-search-container > #node-projects-designer-search-close::after {
|
|
229
|
+
transform: translate(-50%, -50%) rotate(-45deg);
|
|
230
|
+
}
|
|
152
231
|
`;
|
|
153
232
|
static template = html `
|
|
154
233
|
<div style="display: flex;flex-direction: column;width: 100%;height: 100%; margin: 0 !important; padding: 0 !important; border: none !important;">
|
|
@@ -161,6 +240,15 @@ class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
161
240
|
</div>
|
|
162
241
|
<div id="node-projects-designer-canvas-clickOverlay" tabindex="0" style="pointer-events: auto; margin: 0 !important; padding: 0 !important; border: none !important;"></div>
|
|
163
242
|
</div>
|
|
243
|
+
|
|
244
|
+
<div id="node-projects-designer-search-container" style="display: none;">
|
|
245
|
+
<div id="node-projects-designer-search-bar">
|
|
246
|
+
<input id="node-projects-designer-search-input">
|
|
247
|
+
<button id="node-projects-designer-search-start">↓</button>
|
|
248
|
+
</div>
|
|
249
|
+
<span id="node-projects-designer-search-result">0 selected</span>
|
|
250
|
+
<button id="node-projects-designer-search-close"></button>
|
|
251
|
+
</div>
|
|
164
252
|
</div>`;
|
|
165
253
|
extensionManager;
|
|
166
254
|
_pointerextensions;
|
|
@@ -176,6 +264,12 @@ class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
176
264
|
this.onKeyUp = this.onKeyUp.bind(this);
|
|
177
265
|
this._onDblClick = this._onDblClick.bind(this);
|
|
178
266
|
this._pointerEventHandler = this._pointerEventHandler.bind(this);
|
|
267
|
+
this._getDomElement('node-projects-designer-search-close').onclick = () => this._searchHideOverlay();
|
|
268
|
+
this._getDomElement('node-projects-designer-search-start').onclick = () => this._searchRun();
|
|
269
|
+
this._getDomElement('node-projects-designer-search-container').onkeydown = (event) => {
|
|
270
|
+
if (event.key === "Enter")
|
|
271
|
+
this._searchRun();
|
|
272
|
+
};
|
|
179
273
|
this.clickOverlay.oncontextmenu = (e) => e.preventDefault();
|
|
180
274
|
}
|
|
181
275
|
get designerWidth() {
|
|
@@ -756,6 +850,31 @@ class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
756
850
|
event.preventDefault();
|
|
757
851
|
this.extensionManager.applyExtension(this.instanceServiceContainer.selectionService.primarySelection, ExtensionType.Doubleclick, event);
|
|
758
852
|
}
|
|
853
|
+
_searchShowOverlay() {
|
|
854
|
+
let divElement = this._getDomElement('node-projects-designer-search-container');
|
|
855
|
+
divElement.style.display = '';
|
|
856
|
+
this._getDomElement('node-projects-designer-search-input').focus();
|
|
857
|
+
}
|
|
858
|
+
_searchHideOverlay() {
|
|
859
|
+
let divElement = this._getDomElement('node-projects-designer-search-container');
|
|
860
|
+
divElement.style.display = 'none';
|
|
861
|
+
}
|
|
862
|
+
_searchRun() {
|
|
863
|
+
let input = this._getDomElement('node-projects-designer-search-input');
|
|
864
|
+
this._getDomElement('node-projects-designer-search-result').innerHTML = "0 selected";
|
|
865
|
+
if (input.value != "") {
|
|
866
|
+
let selectedElements = this.shadowRoot.querySelectorAll(input.value);
|
|
867
|
+
let designItems = [];
|
|
868
|
+
for (let i = 0; i <= selectedElements.length; i++) {
|
|
869
|
+
if (this._canvasContainer.contains(selectedElements[i]))
|
|
870
|
+
designItems.push(DesignItem.GetDesignItem(selectedElements[i]));
|
|
871
|
+
}
|
|
872
|
+
if (designItems.length > 0) {
|
|
873
|
+
this.instanceServiceContainer.selectionService.setSelectedElements(designItems);
|
|
874
|
+
this._getDomElement('node-projects-designer-search-result').innerHTML = designItems.length.toString() + " selected";
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
}
|
|
759
878
|
onKeyUp(event) {
|
|
760
879
|
if (event.composedPath().indexOf(this.eatEvents) >= 0)
|
|
761
880
|
return;
|
|
@@ -778,6 +897,8 @@ class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
778
897
|
this.executeCommand({ type: CommandType.paste, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
|
|
779
898
|
else if ((event.ctrlKey || event.metaKey) && event.key === 'x')
|
|
780
899
|
this.executeCommand({ type: CommandType.cut, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey });
|
|
900
|
+
else if ((event.ctrlKey || event.metaKey) && event.key === 'f')
|
|
901
|
+
this._searchShowOverlay();
|
|
781
902
|
else {
|
|
782
903
|
let primarySelection = this.instanceServiceContainer.selectionService.primarySelection;
|
|
783
904
|
if (!primarySelection) {
|
package/dist/index.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ export * from "./elements/services/htmlWriterService/AbstractHtmlWriterService.j
|
|
|
57
57
|
export * from "./elements/services/htmlWriterService/FormatingHtmlWriterService.js";
|
|
58
58
|
export * from "./elements/services/htmlWriterService/HtmlWriterService.js";
|
|
59
59
|
export * from "./elements/services/htmlWriterService/LitTsElementWriterService.js";
|
|
60
|
+
export * from "./elements/services/htmlParserService/BaseCustomWebcomponentParserService.js";
|
|
60
61
|
export * from "./elements/services/htmlParserService/DefaultHtmlParserService.js";
|
|
61
62
|
export * from "./elements/services/htmlParserService/NodeHtmlParserService.js";
|
|
62
63
|
export * from "./elements/services/htmlParserService/LitElementParserService.js";
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,7 @@ export * from "./elements/services/htmlWriterService/AbstractHtmlWriterService.j
|
|
|
35
35
|
export * from "./elements/services/htmlWriterService/FormatingHtmlWriterService.js";
|
|
36
36
|
export * from "./elements/services/htmlWriterService/HtmlWriterService.js";
|
|
37
37
|
export * from "./elements/services/htmlWriterService/LitTsElementWriterService.js";
|
|
38
|
+
export * from "./elements/services/htmlParserService/BaseCustomWebcomponentParserService.js";
|
|
38
39
|
export * from "./elements/services/htmlParserService/DefaultHtmlParserService.js";
|
|
39
40
|
export * from "./elements/services/htmlParserService/NodeHtmlParserService.js";
|
|
40
41
|
export * from "./elements/services/htmlParserService/LitElementParserService.js";
|