@quandis/qbo4.configuration 4.0.1-CI-20240611-143233 → 4.0.1-CI-20240613-150623
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/package.json +1 -1
- package/readme.md +5 -4
- package/scss/qbo-configuration.scss +15 -9
- package/src/qbo-template.js +76 -9
- package/src/qbo-template.js.map +1 -1
- package/src/qbo-template.ts +79 -9
- package/src/styles.js +1 -1
- package/src/styles.js.map +1 -1
- package/src/styles.ts +1 -1
- package/wwwroot/css/qbo-configuration.css +76 -59
- package/wwwroot/css/qbo-configuration.css.map +1 -1
- package/wwwroot/css/qbo-configuration.min.css +1 -1
- package/wwwroot/js/qbo4.configuration.js +90 -19
- package/wwwroot/js/qbo4.configuration.min.js +12 -11
- package/wwwroot/js/qbo4.configuration.min.js.map +1 -1
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -207,16 +207,17 @@ When the `ctrl-dblclick` event is triggered, a dialog will open, presenting the
|
|
|
207
207
|
---
|
|
208
208
|
**Edit Template**
|
|
209
209
|
|
|
210
|
-
|
|
210
|
+
[ default ↓ ] <- *a datalist of available templates*
|
|
211
211
|
|
|
212
212
|
```html
|
|
213
213
|
1 <input name="first" placeholder="First name" value="${component.jsonData.Contact.First]}"/>
|
|
214
214
|
2 <input name="middle" placeholder="Middle name" value="${component.jsonData.Contact.Middle]}"/>
|
|
215
215
|
3 <input name="last" placeholder="Last name" value="${component.jsonData.Contact.Last}"/>
|
|
216
216
|
```
|
|
217
|
-
|
|
218
217
|
^ *an editor for editing the rendering function*
|
|
219
218
|
|
|
219
|
+
[ *Ask AI to code...* ]
|
|
220
|
+
|
|
220
221
|
[ Save ] [ Cancel ]
|
|
221
222
|
|
|
222
223
|
---
|
|
@@ -224,9 +225,10 @@ When the `ctrl-dblclick` event is triggered, a dialog will open, presenting the
|
|
|
224
225
|
Feature include:
|
|
225
226
|
|
|
226
227
|
- As the power user modifies the template, the underlying UI will update in real-time.
|
|
227
|
-
- Any syntax errors will be trapped and displayed in the editor
|
|
228
|
+
- Any syntax errors will be trapped and displayed in the editor
|
|
228
229
|
- The editor can be dragged and resized as needed
|
|
229
230
|
- The `type` at the top can be selected from a `datalist`, and new types can be entered.
|
|
231
|
+
- The `Ask AI to code...` input will apply Generative AI to modify the code as you describe.
|
|
230
232
|
- Clicking `Save` will save the template in configuration (server-side), and be available for use.
|
|
231
233
|
- Clicking `Cancel` will discard any changes, reverting to the original rendering.
|
|
232
234
|
|
|
@@ -260,4 +262,3 @@ As with all qbo-based configuration, enable and test in a lower environment befo
|
|
|
260
262
|
- create a GUI designer that detects available web components via DI
|
|
261
263
|
- propagate changes to a components `type` property to parent components
|
|
262
264
|
- if a user creates a new `type` of an address control called `streetview`, and the address control is part of a property control, save the property control such that it uses `<qbo-address type="streetview">`
|
|
263
|
-
- add AI modifications to the default editor
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@import "../node_modules/bootstrap/scss/bootstrap";
|
|
2
2
|
|
|
3
|
-
.
|
|
3
|
+
.qbo-code {
|
|
4
4
|
position: fixed;
|
|
5
5
|
top: 100px;
|
|
6
6
|
left: 100px;
|
|
@@ -15,39 +15,45 @@
|
|
|
15
15
|
overflow: auto;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
.
|
|
18
|
+
.qbo-code header {
|
|
19
19
|
/*background: #f0f0f0;
|
|
20
20
|
padding: 10px;*/
|
|
21
21
|
cursor: move;
|
|
22
22
|
@extend .modal-header;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
.
|
|
25
|
+
.qbo-code section {
|
|
26
26
|
/*padding: 10px;*/
|
|
27
27
|
@extend .modal-body;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
.
|
|
30
|
+
.qbo-code footer {
|
|
31
31
|
@extend .modal-footer;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
.
|
|
34
|
+
.qbo-code input {
|
|
35
35
|
@extend .form-control;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
.
|
|
38
|
+
.qbo-code button {
|
|
39
39
|
@extend .btn;
|
|
40
40
|
}
|
|
41
|
-
.
|
|
41
|
+
.qbo-code button[type="submit"]
|
|
42
42
|
{
|
|
43
43
|
@extend .btn-primary;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
.
|
|
46
|
+
.qbo-code button[type="reset"] {
|
|
47
47
|
@extend .btn-light;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
.working {
|
|
51
|
+
@extend .alert-success;
|
|
52
|
+
opacity: 1;
|
|
53
|
+
cursor: not-allowed;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/*.qbo-code .resize-handle {
|
|
51
57
|
@extend .modal-footer;
|
|
52
58
|
}*/
|
|
53
59
|
.error {
|
package/src/qbo-template.js
CHANGED
|
@@ -51,6 +51,7 @@ export const QboTemplateMixin = (superClass) => {
|
|
|
51
51
|
this.map = undefined;
|
|
52
52
|
this.editor = null;
|
|
53
53
|
this.editorType = this.type;
|
|
54
|
+
this.editorCoding = false;
|
|
54
55
|
}
|
|
55
56
|
async connectedCallback() {
|
|
56
57
|
super.connectedCallback();
|
|
@@ -81,20 +82,20 @@ export const QboTemplateMixin = (superClass) => {
|
|
|
81
82
|
window.removeEventListener('mouseup', this._onMouseUp.bind(this));
|
|
82
83
|
}
|
|
83
84
|
_onMouseDown(event) {
|
|
84
|
-
if (!event.target.closest('.
|
|
85
|
+
if (!event.target.closest('.qbo-code header'))
|
|
85
86
|
return;
|
|
86
87
|
this.dragging = true;
|
|
87
|
-
const editor = this.shadowRoot?.querySelector('.
|
|
88
|
+
const editor = this.shadowRoot?.querySelector('.qbo-code');
|
|
88
89
|
if (editor) {
|
|
89
90
|
this.offsetX = event.clientX - editor.getBoundingClientRect().left;
|
|
90
91
|
this.offsetY = event.clientY - editor.getBoundingClientRect().top;
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
94
|
_onResizeMouseDown(event) {
|
|
94
|
-
if (!event.target.closest('.
|
|
95
|
+
if (!event.target.closest('.qbo-code .resize-handle'))
|
|
95
96
|
return;
|
|
96
97
|
this.resizing = true;
|
|
97
|
-
const editor = this.shadowRoot?.querySelector('.
|
|
98
|
+
const editor = this.shadowRoot?.querySelector('.qbo-code');
|
|
98
99
|
if (editor) {
|
|
99
100
|
this.startWidth = editor.offsetWidth;
|
|
100
101
|
this.startHeight = editor.offsetHeight;
|
|
@@ -104,7 +105,7 @@ export const QboTemplateMixin = (superClass) => {
|
|
|
104
105
|
}
|
|
105
106
|
_onMouseMove(event) {
|
|
106
107
|
if (this.dragging) {
|
|
107
|
-
const editor = this.shadowRoot?.querySelector('.
|
|
108
|
+
const editor = this.shadowRoot?.querySelector('.qbo-code');
|
|
108
109
|
const x = event.clientX - this.offsetX;
|
|
109
110
|
const y = event.clientY - this.offsetY;
|
|
110
111
|
if (editor) {
|
|
@@ -113,7 +114,7 @@ export const QboTemplateMixin = (superClass) => {
|
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
else if (this.resizing) {
|
|
116
|
-
const editor = this.shadowRoot?.querySelector('.
|
|
117
|
+
const editor = this.shadowRoot?.querySelector('.qbo-code');
|
|
117
118
|
if (editor) {
|
|
118
119
|
editor.style.width = `${this.startWidth + (event.clientX - this.offsetX)}px`;
|
|
119
120
|
editor.style.height = `${this.startHeight + (event.clientY - this.offsetY)}px`;
|
|
@@ -158,6 +159,36 @@ export const QboTemplateMixin = (superClass) => {
|
|
|
158
159
|
});
|
|
159
160
|
return keys.map(key => ({ label: key, type: 'variable' }));
|
|
160
161
|
}
|
|
162
|
+
_isSerializable(value) {
|
|
163
|
+
if (typeof value === 'function' || typeof value === 'undefined') {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
JSON.stringify(value);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
getComponent() {
|
|
175
|
+
let json = {};
|
|
176
|
+
const ownProperties = new Set(Object.keys(this));
|
|
177
|
+
// Filter properties to exclude those defined by the base class
|
|
178
|
+
ownProperties.forEach(prop => {
|
|
179
|
+
if (prop.startsWith('_'))
|
|
180
|
+
return;
|
|
181
|
+
if (prop === 'constructor'
|
|
182
|
+
|| prop === 'shadowRoot'
|
|
183
|
+
|| prop === 'renderOptions'
|
|
184
|
+
|| prop === 'renderRoot'
|
|
185
|
+
|| prop === 'editor'
|
|
186
|
+
|| typeof this[prop] === 'function')
|
|
187
|
+
return;
|
|
188
|
+
json[prop] = this[prop];
|
|
189
|
+
});
|
|
190
|
+
return json;
|
|
191
|
+
}
|
|
161
192
|
async loadScript(prefix) {
|
|
162
193
|
if (!scriptCache[prefix]) {
|
|
163
194
|
scriptCache[prefix] = this.fetchScript(prefix);
|
|
@@ -256,10 +287,10 @@ export const QboTemplateMixin = (superClass) => {
|
|
|
256
287
|
}
|
|
257
288
|
}
|
|
258
289
|
edit() {
|
|
259
|
-
this.testTemplate ??= this.
|
|
290
|
+
this.testTemplate ??= this.map?.get(this.type) ?? this.defaultTemplate;
|
|
260
291
|
const id = Math.random().toString(36).substring(2, 15);
|
|
261
292
|
return html `
|
|
262
|
-
<dialog class="
|
|
293
|
+
<dialog class="qbo-code" open>
|
|
263
294
|
<header>
|
|
264
295
|
<h5>Edit Template</h5>
|
|
265
296
|
</header>
|
|
@@ -271,7 +302,8 @@ export const QboTemplateMixin = (superClass) => {
|
|
|
271
302
|
<div class="editor"></div>
|
|
272
303
|
${this.editorError ? html `<hr/><span class="error">${this.editorError.message}<span>` : html ``}
|
|
273
304
|
</section>
|
|
274
|
-
<footer
|
|
305
|
+
<footer>
|
|
306
|
+
<input @change=${this.code} ?disabled="${this.editorCoding}" class="${this.editorCoding ? 'working' : ''}" placeholder="Ask AI to code..." />
|
|
275
307
|
<button type="submit" @click=${this.save}>Save</button>
|
|
276
308
|
<button type="reset" @click=${this.cancel}>Cancel</button>
|
|
277
309
|
</footer>
|
|
@@ -302,6 +334,37 @@ export const QboTemplateMixin = (superClass) => {
|
|
|
302
334
|
throw e;
|
|
303
335
|
}
|
|
304
336
|
}
|
|
337
|
+
async code(event) {
|
|
338
|
+
try {
|
|
339
|
+
if (this.editor == null)
|
|
340
|
+
return;
|
|
341
|
+
this.editorCoding = true;
|
|
342
|
+
const prompt = event.target?.value;
|
|
343
|
+
const response = await fetch(`${this.templateEndpoint}/code`, {
|
|
344
|
+
method: 'POST',
|
|
345
|
+
headers: { 'Content-Type': 'application/json' },
|
|
346
|
+
body: JSON.stringify({
|
|
347
|
+
'HtmlTemplate': this.editor.state.doc.toString(),
|
|
348
|
+
'Component': this.getComponent(),
|
|
349
|
+
'Prompt': prompt
|
|
350
|
+
})
|
|
351
|
+
});
|
|
352
|
+
this.editorCoding = false;
|
|
353
|
+
if (response.ok) {
|
|
354
|
+
const html = await response.text();
|
|
355
|
+
this.editor.dispatch({
|
|
356
|
+
changes: { from: 0, to: this.editor.state.doc.length, insert: html }
|
|
357
|
+
});
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
else
|
|
361
|
+
throw new Error(`Failed to generate code: ${response.statusText}`);
|
|
362
|
+
}
|
|
363
|
+
catch (e) {
|
|
364
|
+
this.editorCoding = false;
|
|
365
|
+
throw e;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
305
368
|
render() {
|
|
306
369
|
let template = this.defaultTemplate;
|
|
307
370
|
if (this.type && this.map?.has(this.type))
|
|
@@ -344,6 +407,10 @@ export const QboTemplateMixin = (superClass) => {
|
|
|
344
407
|
property({ attribute: false }),
|
|
345
408
|
__metadata("design:type", Object)
|
|
346
409
|
], QboTemplateClass.prototype, "map", void 0);
|
|
410
|
+
__decorate([
|
|
411
|
+
property({ attribute: false }),
|
|
412
|
+
__metadata("design:type", Boolean)
|
|
413
|
+
], QboTemplateClass.prototype, "editorCoding", void 0);
|
|
347
414
|
;
|
|
348
415
|
return QboTemplateClass;
|
|
349
416
|
};
|
package/src/qbo-template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qbo-template.js","sourceRoot":"","sources":["qbo-template.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qbo-template.js","sourceRoot":"","sources":["qbo-template.ts"],"names":[],"mappings":"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"}
|
package/src/qbo-template.ts
CHANGED
|
@@ -5,6 +5,8 @@ import { basicSetup } from "codemirror"
|
|
|
5
5
|
import { EditorView, keymap } from "@codemirror/view"
|
|
6
6
|
import { html as htmlcode } from "@codemirror/lang-html"
|
|
7
7
|
import { indentWithTab } from "@codemirror/commands"
|
|
8
|
+
import { ChangeSpec } from "@codemirror/state";
|
|
9
|
+
|
|
8
10
|
import { autocompletion, completeFromList } from '@codemirror/autocomplete';
|
|
9
11
|
import { configurationCss } from './styles.js';
|
|
10
12
|
|
|
@@ -76,6 +78,9 @@ export const QboTemplateMixin = <T extends Constructor<LitElement>>(superClass:
|
|
|
76
78
|
editor: EditorView | null = null;
|
|
77
79
|
editorType: string | null = this.type;
|
|
78
80
|
|
|
81
|
+
@property({ attribute: false })
|
|
82
|
+
editorCoding: boolean = false;
|
|
83
|
+
|
|
79
84
|
|
|
80
85
|
constructor(...args: any[]) {
|
|
81
86
|
super(...args);
|
|
@@ -112,9 +117,9 @@ export const QboTemplateMixin = <T extends Constructor<LitElement>>(superClass:
|
|
|
112
117
|
}
|
|
113
118
|
|
|
114
119
|
_onMouseDown(event) {
|
|
115
|
-
if (!event.target.closest('.
|
|
120
|
+
if (!event.target.closest('.qbo-code header')) return;
|
|
116
121
|
this.dragging = true;
|
|
117
|
-
const editor = this.shadowRoot?.querySelector('.
|
|
122
|
+
const editor = this.shadowRoot?.querySelector('.qbo-code');
|
|
118
123
|
if (editor) {
|
|
119
124
|
this.offsetX = event.clientX - editor.getBoundingClientRect().left;
|
|
120
125
|
this.offsetY = event.clientY - editor.getBoundingClientRect().top;
|
|
@@ -122,9 +127,9 @@ export const QboTemplateMixin = <T extends Constructor<LitElement>>(superClass:
|
|
|
122
127
|
}
|
|
123
128
|
|
|
124
129
|
_onResizeMouseDown(event) {
|
|
125
|
-
if (!event.target.closest('.
|
|
130
|
+
if (!event.target.closest('.qbo-code .resize-handle')) return;
|
|
126
131
|
this.resizing = true;
|
|
127
|
-
const editor = this.shadowRoot?.querySelector('.
|
|
132
|
+
const editor = this.shadowRoot?.querySelector('.qbo-code') as HTMLElement;
|
|
128
133
|
if (editor) {
|
|
129
134
|
this.startWidth = editor.offsetWidth;
|
|
130
135
|
this.startHeight = editor.offsetHeight;
|
|
@@ -135,7 +140,7 @@ export const QboTemplateMixin = <T extends Constructor<LitElement>>(superClass:
|
|
|
135
140
|
|
|
136
141
|
_onMouseMove(event) {
|
|
137
142
|
if (this.dragging) {
|
|
138
|
-
const editor = this.shadowRoot?.querySelector('.
|
|
143
|
+
const editor = this.shadowRoot?.querySelector('.qbo-code') as HTMLElement;
|
|
139
144
|
const x = event.clientX - this.offsetX;
|
|
140
145
|
const y = event.clientY - this.offsetY;
|
|
141
146
|
if (editor) {
|
|
@@ -143,7 +148,7 @@ export const QboTemplateMixin = <T extends Constructor<LitElement>>(superClass:
|
|
|
143
148
|
editor.style.top = `${y}px`;
|
|
144
149
|
}
|
|
145
150
|
} else if (this.resizing) {
|
|
146
|
-
const editor = this.shadowRoot?.querySelector('.
|
|
151
|
+
const editor = this.shadowRoot?.querySelector('.qbo-code') as HTMLElement;
|
|
147
152
|
if (editor) {
|
|
148
153
|
editor.style.width = `${this.startWidth + (event.clientX - this.offsetX)}px`;
|
|
149
154
|
editor.style.height = `${this.startHeight + (event.clientY - this.offsetY)}px`;
|
|
@@ -192,6 +197,39 @@ export const QboTemplateMixin = <T extends Constructor<LitElement>>(superClass:
|
|
|
192
197
|
return keys.map(key => ({ label: key, type: 'variable' }));
|
|
193
198
|
}
|
|
194
199
|
|
|
200
|
+
|
|
201
|
+
_isSerializable(value) {
|
|
202
|
+
if (typeof value === 'function' || typeof value === 'undefined') {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
try {
|
|
207
|
+
JSON.stringify(value);
|
|
208
|
+
} catch (error) {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
getComponent(): object {
|
|
215
|
+
let json = {};
|
|
216
|
+
|
|
217
|
+
const ownProperties = new Set(Object.keys(this));
|
|
218
|
+
|
|
219
|
+
// Filter properties to exclude those defined by the base class
|
|
220
|
+
ownProperties.forEach(prop => {
|
|
221
|
+
if (prop.startsWith('_')) return;
|
|
222
|
+
if (prop === 'constructor'
|
|
223
|
+
|| prop === 'shadowRoot'
|
|
224
|
+
|| prop === 'renderOptions'
|
|
225
|
+
|| prop === 'renderRoot'
|
|
226
|
+
|| prop === 'editor'
|
|
227
|
+
|| typeof this[prop] === 'function') return;
|
|
228
|
+
json[prop] = this[prop];
|
|
229
|
+
});
|
|
230
|
+
return json;
|
|
231
|
+
}
|
|
232
|
+
|
|
195
233
|
async loadScript(prefix: string): Promise<void> {
|
|
196
234
|
if (!scriptCache[prefix]) {
|
|
197
235
|
scriptCache[prefix] = this.fetchScript(prefix);
|
|
@@ -302,10 +340,10 @@ export const QboTemplateMixin = <T extends Constructor<LitElement>>(superClass:
|
|
|
302
340
|
}
|
|
303
341
|
|
|
304
342
|
edit() {
|
|
305
|
-
this.testTemplate ??= this.
|
|
343
|
+
this.testTemplate ??= this.map?.get(this.type!) as TemplateFunction ?? this.defaultTemplate;
|
|
306
344
|
const id = Math.random().toString(36).substring(2, 15);
|
|
307
345
|
return html`
|
|
308
|
-
<dialog class="
|
|
346
|
+
<dialog class="qbo-code" open>
|
|
309
347
|
<header>
|
|
310
348
|
<h5>Edit Template</h5>
|
|
311
349
|
</header>
|
|
@@ -317,7 +355,8 @@ export const QboTemplateMixin = <T extends Constructor<LitElement>>(superClass:
|
|
|
317
355
|
<div class="editor"></div>
|
|
318
356
|
${this.editorError ? html`<hr/><span class="error">${this.editorError.message}<span>` : html``}
|
|
319
357
|
</section>
|
|
320
|
-
<footer
|
|
358
|
+
<footer>
|
|
359
|
+
<input @change=${this.code} ?disabled="${this.editorCoding}" class="${this.editorCoding ? 'working' : ''}" placeholder="Ask AI to code..." />
|
|
321
360
|
<button type="submit" @click=${this.save}>Save</button>
|
|
322
361
|
<button type="reset" @click=${this.cancel}>Cancel</button>
|
|
323
362
|
</footer>
|
|
@@ -349,6 +388,37 @@ export const QboTemplateMixin = <T extends Constructor<LitElement>>(superClass:
|
|
|
349
388
|
}
|
|
350
389
|
}
|
|
351
390
|
|
|
391
|
+
async code(event: Event) {
|
|
392
|
+
try {
|
|
393
|
+
if (this.editor == null) return;
|
|
394
|
+
this.editorCoding = true;
|
|
395
|
+
const prompt = (event.target as HTMLInputElement)?.value;
|
|
396
|
+
const response = await fetch(`${this.templateEndpoint}/code`, {
|
|
397
|
+
method: 'POST',
|
|
398
|
+
headers: { 'Content-Type': 'application/json' },
|
|
399
|
+
body: JSON.stringify({
|
|
400
|
+
'HtmlTemplate': this.editor.state.doc.toString(),
|
|
401
|
+
'Component': this.getComponent(),
|
|
402
|
+
'Prompt': prompt
|
|
403
|
+
})
|
|
404
|
+
});
|
|
405
|
+
this.editorCoding = false;
|
|
406
|
+
|
|
407
|
+
if (response.ok) {
|
|
408
|
+
const html = await response.text();
|
|
409
|
+
this.editor.dispatch({
|
|
410
|
+
changes: { from: 0, to: this.editor.state.doc.length, insert: html }
|
|
411
|
+
});
|
|
412
|
+
return;
|
|
413
|
+
} else
|
|
414
|
+
throw new Error(`Failed to generate code: ${response.statusText}`);
|
|
415
|
+
} catch (e) {
|
|
416
|
+
this.editorCoding = false;
|
|
417
|
+
throw e;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
}
|
|
421
|
+
|
|
352
422
|
render() {
|
|
353
423
|
let template = this.defaultTemplate;
|
|
354
424
|
if (this.type && this.map?.has(this.type))
|