@teleporthq/teleport-plugin-html-base-component 0.36.0-alpha.0 → 0.36.0

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.
@@ -56,64 +56,98 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
56
56
  return to.concat(ar || Array.prototype.slice.call(from));
57
57
  };
58
58
  Object.defineProperty(exports, "__esModule", { value: true });
59
- exports.generateHtmlSynatx = void 0;
59
+ exports.generateHtmlSyntax = void 0;
60
60
  var teleport_types_1 = require("@teleporthq/teleport-types");
61
+ var path_1 = require("path");
61
62
  var teleport_plugin_common_1 = require("@teleporthq/teleport-plugin-common");
62
63
  var teleport_shared_1 = require("@teleporthq/teleport-shared");
63
64
  var teleport_uidl_builders_1 = require("@teleporthq/teleport-uidl-builders");
64
65
  var teleport_plugin_css_1 = require("@teleporthq/teleport-plugin-css");
66
+ var teleport_uidl_resolver_1 = require("@teleporthq/teleport-uidl-resolver");
65
67
  var constants_1 = require("./constants");
66
- var generateHtmlSynatx = function (node, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure) { return __awaiter(void 0, void 0, void 0, function () {
67
- return __generator(this, function (_a) {
68
- switch (node.type) {
69
- case 'inject':
70
- case 'raw':
71
- return [2 /*return*/, teleport_plugin_common_1.HASTBuilders.createTextNode(node.content.toString())];
72
- case 'static':
73
- return [2 /*return*/, teleport_plugin_common_1.HASTBuilders.createTextNode(teleport_shared_1.StringUtils.encode(node.content.toString()))];
74
- case 'slot':
75
- return [2 /*return*/, teleport_plugin_common_1.HASTBuilders.createHTMLNode(node.type)];
76
- case 'element':
77
- return [2 /*return*/, generatElementNode(node, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure)];
78
- case 'dynamic':
79
- return [2 /*return*/, generateDynamicNode(node, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure)];
80
- default:
81
- throw new teleport_types_1.HTMLComponentGeneratorError("generateHtmlSyntax encountered a node of unsupported type: ".concat(JSON.stringify(node, null, 2), " "));
68
+ var isValidURL = function (url) {
69
+ try {
70
+ /* tslint:disable:no-unused-expression */
71
+ new URL(url);
72
+ return true;
73
+ }
74
+ catch (error) {
75
+ return false;
76
+ }
77
+ };
78
+ var addNodeToLookup = function (node, tag, nodesLoookup, hierarchy) {
79
+ if (hierarchy === void 0) { hierarchy = []; }
80
+ // In html code-generation we combine the nodes of the component that is being consumed with the current component.
81
+ // As html can't load the component at runtime like react or any other frameworks. So, we merge the component as a standalone
82
+ // component in the current component.
83
+ if (nodesLoookup[node.content.key]) {
84
+ throw new teleport_types_1.HTMLComponentGeneratorError("\n".concat(hierarchy.join(' -> '), " \n\nDuplicate key found in nodesLookup: ").concat(node.content.key, " \n\n\nA node with the same key already exists\n\nReceived \n\n ").concat(JSON.stringify(tag), "\n ").concat(JSON.stringify(node), "\nExisting \n\n ").concat(JSON.stringify(nodesLoookup[node.content.key]), " \n\n"));
85
+ }
86
+ nodesLoookup[node.content.key] = tag;
87
+ };
88
+ var generateHtmlSyntax = function (node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
89
+ var _a, elementNode, dynamicNode;
90
+ return __generator(this, function (_b) {
91
+ switch (_b.label) {
92
+ case 0:
93
+ _a = node.type;
94
+ switch (_a) {
95
+ case 'inject': return [3 /*break*/, 1];
96
+ case 'raw': return [3 /*break*/, 1];
97
+ case 'static': return [3 /*break*/, 2];
98
+ case 'slot': return [3 /*break*/, 3];
99
+ case 'element': return [3 /*break*/, 4];
100
+ case 'dynamic': return [3 /*break*/, 6];
101
+ }
102
+ return [3 /*break*/, 8];
103
+ case 1: return [2 /*return*/, teleport_plugin_common_1.HASTBuilders.createTextNode(node.content.toString())];
104
+ case 2: return [2 /*return*/, teleport_plugin_common_1.HASTBuilders.createTextNode(teleport_shared_1.StringUtils.encode(node.content.toString()))];
105
+ case 3: return [2 /*return*/, teleport_plugin_common_1.HASTBuilders.createHTMLNode(node.type)];
106
+ case 4: return [4 /*yield*/, generateElementNode(node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
107
+ case 5:
108
+ elementNode = _b.sent();
109
+ return [2 /*return*/, elementNode];
110
+ case 6: return [4 /*yield*/, generateDynamicNode(node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
111
+ case 7:
112
+ dynamicNode = _b.sent();
113
+ return [2 /*return*/, dynamicNode];
114
+ case 8: throw new teleport_types_1.HTMLComponentGeneratorError("generateHtmlSyntax encountered a node of unsupported type: ".concat(JSON.stringify(node, null, 2), " "));
82
115
  }
83
- return [2 /*return*/];
84
116
  });
85
117
  }); };
86
- exports.generateHtmlSynatx = generateHtmlSynatx;
87
- var generatElementNode = function (node, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure) { return __awaiter(void 0, void 0, void 0, function () {
88
- var _a, elementType, children, _b, attrs, _c, style, _d, referencedStyles, dependency, key, elementNode, dependencies, compTag, _i, children_1, child, childTag;
118
+ exports.generateHtmlSyntax = generateHtmlSyntax;
119
+ var generateElementNode = function (node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
120
+ var _a, elementType, children, _b, attrs, _c, style, _d, referencedStyles, dependency, dependencies, compTag, elementNode, _i, children_1, child, childTag;
89
121
  return __generator(this, function (_e) {
90
122
  switch (_e.label) {
91
123
  case 0:
92
- _a = node.content, elementType = _a.elementType, children = _a.children, _b = _a.attrs, attrs = _b === void 0 ? {} : _b, _c = _a.style, style = _c === void 0 ? {} : _c, _d = _a.referencedStyles, referencedStyles = _d === void 0 ? {} : _d, dependency = _a.dependency, key = _a.key;
93
- elementNode = teleport_plugin_common_1.HASTBuilders.createHTMLNode(elementType);
94
- templatesLookUp[key] = elementNode;
124
+ _a = node.content, elementType = _a.elementType, children = _a.children, _b = _a.attrs, attrs = _b === void 0 ? {} : _b, _c = _a.style, style = _c === void 0 ? {} : _c, _d = _a.referencedStyles, referencedStyles = _d === void 0 ? {} : _d, dependency = _a.dependency;
95
125
  dependencies = structure.dependencies;
96
126
  if (dependency && (dependency === null || dependency === void 0 ? void 0 : dependency.type) !== 'local') {
97
127
  dependencies[dependency.path] = dependency;
98
128
  }
99
129
  if (!(dependency && (dependency === null || dependency === void 0 ? void 0 : dependency.type) === 'local')) return [3 /*break*/, 2];
100
- return [4 /*yield*/, generateComponentContent(node, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure)];
130
+ if (nodesLookup[node.content.key]) {
131
+ return [2 /*return*/, nodesLookup[node.content.key]];
132
+ }
133
+ return [4 /*yield*/, generateComponentContent(node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
101
134
  case 1:
102
135
  compTag = _e.sent();
136
+ if ('tagName' in compTag) {
137
+ compTag.children.unshift(teleport_plugin_common_1.HASTBuilders.createComment("".concat(node.content.semanticType, " component")));
138
+ }
103
139
  return [2 /*return*/, compTag];
104
140
  case 2:
141
+ elementNode = teleport_plugin_common_1.HASTBuilders.createHTMLNode(elementType);
105
142
  if (!children) return [3 /*break*/, 6];
106
143
  _i = 0, children_1 = children;
107
144
  _e.label = 3;
108
145
  case 3:
109
146
  if (!(_i < children_1.length)) return [3 /*break*/, 6];
110
147
  child = children_1[_i];
111
- return [4 /*yield*/, (0, exports.generateHtmlSynatx)(child, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure)];
148
+ return [4 /*yield*/, (0, exports.generateHtmlSyntax)(child, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
112
149
  case 4:
113
150
  childTag = _e.sent();
114
- if (!childTag) {
115
- return [2 /*return*/];
116
- }
117
151
  if (typeof childTag === 'string') {
118
152
  teleport_plugin_common_1.HASTUtils.addTextNode(elementNode, childTag);
119
153
  }
@@ -130,38 +164,49 @@ var generatElementNode = function (node, templatesLookUp, propDefinitions, state
130
164
  var refStyle = referencedStyles[styleRef];
131
165
  if (refStyle.content.mapType === 'inlined') {
132
166
  handleStyles(node, refStyle.content.styles, propDefinitions, stateDefinitions);
133
- return;
134
167
  }
135
168
  });
136
169
  }
137
170
  if (Object.keys(style).length > 0) {
138
171
  handleStyles(node, style, propDefinitions, stateDefinitions);
139
172
  }
140
- if (Object.keys(attrs).length > 0) {
141
- handleAttributes(elementNode, attrs, propDefinitions, stateDefinitions, routeDefinitions);
142
- }
173
+ handleAttributes(elementType, elementNode, attrs, propDefinitions, stateDefinitions, structure.options.projectRouteDefinition, structure.outputOptions);
174
+ addNodeToLookup(node, elementNode, nodesLookup, [compName]);
143
175
  return [2 /*return*/, elementNode];
144
176
  }
145
177
  });
146
178
  }); };
147
- var generateComponentContent = function (node, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure) { return __awaiter(void 0, void 0, void 0, function () {
148
- var externals, plugins, _a, elementType, _b, attrs, key, _c, children, dependencies, _d, chunks, options, comp, lookUpTemplates, compHasSlots, combinedProps, propsForInstance, combinedStates, statesForInstance, elementNode, compTag, cssPlugin, initialStructure, result, chunk, styleChunk;
149
- var _e;
150
- return __generator(this, function (_f) {
151
- switch (_f.label) {
179
+ var createLookupTable = function (component, nodesLookup) {
180
+ var lookup = {};
181
+ for (var _i = 0, _a = Object.keys(nodesLookup); _i < _a.length; _i++) {
182
+ var node = _a[_i];
183
+ lookup[node] = {
184
+ count: 1,
185
+ nextKey: '1',
186
+ };
187
+ }
188
+ (0, teleport_uidl_resolver_1.createNodesLookup)(component, lookup);
189
+ return lookup;
190
+ };
191
+ var generateComponentContent = function (node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
192
+ var externals, plugins, _a, elementType, _b, attrs, _c, children, dependencies, _d, chunks, options, componentName, component, componentClone, compHasSlots, lookupTableForCurrentPage, combinedProps, combinedStates, statesForInstance, propsForInstance, _i, _e, propKey, prop, propFromCurrentComponent, componentWrapper, isExistingNode, componentInstanceToGenerate, compTag, cssPlugin, initialStructure, result, chunk, styleChunk;
193
+ var _f, _g;
194
+ return __generator(this, function (_h) {
195
+ switch (_h.label) {
152
196
  case 0:
153
197
  externals = subComponentOptions.externals, plugins = subComponentOptions.plugins;
154
- _a = node.content, elementType = _a.elementType, _b = _a.attrs, attrs = _b === void 0 ? {} : _b, key = _a.key, _c = _a.children, children = _c === void 0 ? [] : _c;
198
+ _a = node.content, elementType = _a.elementType, _b = _a.attrs, attrs = _b === void 0 ? {} : _b, _c = _a.children, children = _c === void 0 ? [] : _c;
155
199
  dependencies = structure.dependencies, _d = structure.chunks, chunks = _d === void 0 ? [] : _d, options = structure.options;
156
- comp = teleport_shared_1.UIDLUtils.cloneObject(externals[elementType] || {});
157
- lookUpTemplates = {};
158
- compHasSlots = false;
159
- if (!comp || !(comp === null || comp === void 0 ? void 0 : comp.node)) {
160
- throw new teleport_types_1.HTMLComponentGeneratorError("".concat(elementType, " is not found from the externals. \n\n Received ").concat(JSON.stringify(Object.keys(externals), null, 2)));
200
+ componentName = elementType === 'Component' ? 'AppComponent' : elementType;
201
+ component = externals[componentName];
202
+ if (component === undefined) {
203
+ throw new teleport_types_1.HTMLComponentGeneratorError("".concat(componentName, " is missing from externals object"));
161
204
  }
205
+ componentClone = teleport_shared_1.UIDLUtils.cloneObject(component);
206
+ compHasSlots = false;
162
207
  if (children.length) {
163
208
  compHasSlots = true;
164
- teleport_shared_1.UIDLUtils.traverseNodes(comp.node, function (childNode, parentNode) {
209
+ teleport_shared_1.UIDLUtils.traverseNodes(componentClone.node, function (childNode, parentNode) {
165
210
  var _a, _b;
166
211
  if (childNode.type === 'slot' && parentNode.type === 'element') {
167
212
  var nonSlotNodes = (_b = (_a = parentNode.content) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.filter(function (n) { return n.type !== 'slot'; });
@@ -171,6 +216,7 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
171
216
  content: {
172
217
  key: 'custom-slot',
173
218
  elementType: 'slot',
219
+ name: componentClone.name + 'slot',
174
220
  style: {
175
221
  display: {
176
222
  type: 'static',
@@ -189,18 +235,17 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
189
235
  */
190
236
  node.content.children = [];
191
237
  }
192
- combinedProps = __assign(__assign({}, propDefinitions), ((comp === null || comp === void 0 ? void 0 : comp.propDefinitions) || {}));
193
- propsForInstance = Object.keys(combinedProps).reduce(function (acc, propKey) {
194
- var _a, _b;
195
- if (attrs[propKey]) {
196
- acc[propKey] = __assign(__assign({}, combinedProps[propKey]), { defaultValue: ((_a = attrs[propKey]) === null || _a === void 0 ? void 0 : _a.content) || ((_b = combinedProps[propKey]) === null || _b === void 0 ? void 0 : _b.defaultValue) });
197
- }
198
- else {
199
- acc[propKey] = combinedProps[propKey];
238
+ lookupTableForCurrentPage = createLookupTable(componentClone, nodesLookup);
239
+ (0, teleport_uidl_resolver_1.generateUniqueKeys)(componentClone, lookupTableForCurrentPage);
240
+ combinedProps = __assign(__assign({}, Object.keys(propDefinitions).reduce(function (acc, propKey) {
241
+ var _a;
242
+ if (((_a = propDefinitions[propKey]) === null || _a === void 0 ? void 0 : _a.type) === 'element') {
243
+ return acc;
200
244
  }
245
+ acc[propKey] = propDefinitions[propKey];
201
246
  return acc;
202
- }, {});
203
- combinedStates = __assign(__assign({}, stateDefinitions), ((comp === null || comp === void 0 ? void 0 : comp.stateDefinitions) || {}));
247
+ }, {})), ((componentClone === null || componentClone === void 0 ? void 0 : componentClone.propDefinitions) || {}));
248
+ combinedStates = __assign(__assign({}, stateDefinitions), ((componentClone === null || componentClone === void 0 ? void 0 : componentClone.stateDefinitions) || {}));
204
249
  statesForInstance = Object.keys(combinedStates).reduce(function (acc, propKey) {
205
250
  var _a, _b;
206
251
  if (attrs[propKey]) {
@@ -211,24 +256,86 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
211
256
  }
212
257
  return acc;
213
258
  }, {});
214
- elementNode = teleport_plugin_common_1.HASTBuilders.createHTMLNode(teleport_shared_1.StringUtils.camelCaseToDashCase(elementType));
215
- lookUpTemplates[key] = elementNode;
216
- return [4 /*yield*/, (0, exports.generateHtmlSynatx)(__assign(__assign({}, comp.node), { content: __assign(__assign({}, comp.node.content), { style: __assign(__assign({}, (((_e = comp.node.content) === null || _e === void 0 ? void 0 : _e.style) || {})), { display: {
217
- type: 'static',
218
- content: 'contents',
219
- } }) }) }), lookUpTemplates, propsForInstance, statesForInstance, subComponentOptions, routeDefinitions, structure)];
259
+ propsForInstance = {};
260
+ _i = 0, _e = Object.keys(combinedProps);
261
+ _h.label = 1;
220
262
  case 1:
221
- compTag = (_f.sent());
263
+ if (!(_i < _e.length)) return [3 /*break*/, 9];
264
+ propKey = _e[_i];
265
+ prop = attrs[propKey];
266
+ if (!((prop === null || prop === void 0 ? void 0 : prop.type) === 'element')) return [3 /*break*/, 3];
267
+ propsForInstance[propKey] = __assign(__assign({}, combinedProps[propKey]), { defaultValue: attrs[propKey] });
268
+ return [4 /*yield*/, (0, exports.generateHtmlSyntax)(attrs[propKey], component.name, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
269
+ case 2:
270
+ _h.sent();
271
+ return [3 /*break*/, 8];
272
+ case 3:
273
+ if (!((prop === null || prop === void 0 ? void 0 : prop.type) === 'dynamic')) return [3 /*break*/, 4];
274
+ // When we are using a component instance in a component and the attribute
275
+ // that is passed to the component is of dynamic reference.
276
+ // If means, the component is redirecting the prop that is received to the prop of the component that it is consuming.
277
+ // In this case, we need to pass the value of the prop that is received to the prop of the component that it is consuming.
278
+ // And similary we do the same for the states.
279
+ switch (prop.content.referenceType) {
280
+ case 'prop':
281
+ propsForInstance[propKey] = combinedProps[propKey];
282
+ break;
283
+ case 'state':
284
+ propsForInstance[propKey] = combinedStates[propKey];
285
+ break;
286
+ default:
287
+ throw new Error("ReferenceType ".concat(prop.content.referenceType, " is not supported in HTML Export."));
288
+ }
289
+ return [3 /*break*/, 8];
290
+ case 4:
291
+ if (!prop) return [3 /*break*/, 5];
292
+ propsForInstance[propKey] = __assign(__assign({}, combinedProps[propKey]), { defaultValue: ((_f = attrs[propKey]) === null || _f === void 0 ? void 0 : _f.content) || ((_g = combinedProps[propKey]) === null || _g === void 0 ? void 0 : _g.defaultValue) });
293
+ return [3 /*break*/, 8];
294
+ case 5:
295
+ propFromCurrentComponent = combinedProps[propKey];
296
+ if (!(propFromCurrentComponent.type === 'element' && propFromCurrentComponent.defaultValue)) return [3 /*break*/, 7];
297
+ return [4 /*yield*/, (0, exports.generateHtmlSyntax)(propFromCurrentComponent.defaultValue, component.name, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
298
+ case 6:
299
+ _h.sent();
300
+ _h.label = 7;
301
+ case 7:
302
+ propsForInstance[propKey] = propFromCurrentComponent;
303
+ _h.label = 8;
304
+ case 8:
305
+ _i++;
306
+ return [3 /*break*/, 1];
307
+ case 9:
308
+ componentWrapper = teleport_shared_1.StringUtils.camelCaseToDashCase("".concat(componentName, "-wrapper"));
309
+ isExistingNode = nodesLookup[componentWrapper];
310
+ if (isExistingNode !== undefined) {
311
+ componentWrapper = "".concat(componentWrapper, "-").concat(teleport_shared_1.StringUtils.generateRandomString());
312
+ }
313
+ componentInstanceToGenerate = {
314
+ type: 'element',
315
+ content: {
316
+ elementType: componentWrapper,
317
+ key: componentWrapper,
318
+ children: [componentClone.node],
319
+ style: {
320
+ display: {
321
+ type: 'static',
322
+ content: 'contents',
323
+ },
324
+ },
325
+ },
326
+ };
327
+ return [4 /*yield*/, (0, exports.generateHtmlSyntax)(componentInstanceToGenerate, component.name, nodesLookup, propsForInstance, statesForInstance, subComponentOptions, structure)];
328
+ case 10:
329
+ compTag = _h.sent();
222
330
  cssPlugin = (0, teleport_plugin_css_1.createCSSPlugin)({
223
331
  templateStyle: 'html',
224
332
  templateChunkName: constants_1.DEFAULT_COMPONENT_CHUNK_NAME,
225
333
  declareDependency: 'import',
226
- forceScoping: true,
227
- chunkName: comp.name,
334
+ chunkName: componentClone.name,
228
335
  staticPropReferences: true,
229
336
  });
230
337
  initialStructure = {
231
- uidl: __assign(__assign({}, comp), { propDefinitions: propsForInstance, stateDefinitions: statesForInstance }),
338
+ uidl: __assign(__assign({}, componentClone), { node: componentInstanceToGenerate, propDefinitions: propsForInstance, stateDefinitions: statesForInstance }),
232
339
  chunks: [
233
340
  {
234
341
  type: teleport_types_1.ChunkType.HAST,
@@ -237,7 +344,7 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
237
344
  linkAfter: [],
238
345
  content: compTag,
239
346
  meta: {
240
- nodesLookup: lookUpTemplates,
347
+ nodesLookup: nodesLookup,
241
348
  },
242
349
  },
243
350
  ],
@@ -255,8 +362,8 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
255
362
  }
256
363
  });
257
364
  }); }, Promise.resolve(initialStructure))];
258
- case 2:
259
- result = _f.sent();
365
+ case 11:
366
+ result = _h.sent();
260
367
  if (compHasSlots) {
261
368
  result.chunks.forEach(function (chunk) {
262
369
  if (chunk.fileType === teleport_types_1.FileType.CSS) {
@@ -265,7 +372,7 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
265
372
  });
266
373
  }
267
374
  else {
268
- chunk = chunks.find(function (item) { return item.name === comp.name; });
375
+ chunk = chunks.find(function (item) { return item.name === componentClone.name; });
269
376
  if (!chunk) {
270
377
  styleChunk = result.chunks.find(function (item) { return item.fileType === teleport_types_1.FileType.CSS; });
271
378
  if (!styleChunk) {
@@ -274,81 +381,143 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
274
381
  chunks.push(styleChunk);
275
382
  }
276
383
  }
384
+ addNodeToLookup(node, compTag, nodesLookup, [compName, component.name]);
277
385
  return [2 /*return*/, compTag];
278
386
  }
279
387
  });
280
388
  }); };
281
- var generateDynamicNode = function (node, _, propDefinitions, stateDefinitions) {
282
- var spanTag = teleport_plugin_common_1.HASTBuilders.createHTMLNode('span');
283
- var usedReferenceValue = node.content.referenceType === 'prop'
284
- ? getValueFromReference(node.content.id, propDefinitions)
285
- : getValueFromReference(node.content.id, stateDefinitions);
286
- teleport_plugin_common_1.HASTUtils.addTextNode(spanTag, String(usedReferenceValue));
287
- return spanTag;
288
- };
389
+ var generateDynamicNode = function (node,
390
+ /* tslint:disable variable-name */
391
+ _compName, nodesLookup, propDefinitions, stateDefinitions) { return __awaiter(void 0, void 0, void 0, function () {
392
+ var usedReferenceValue, elementNode, spanTagWrapper, commentNode, spanTagWrapper, commentNode, spanTag;
393
+ return __generator(this, function (_a) {
394
+ usedReferenceValue = getValueFromReference(node.content.id, node.content.referenceType === 'prop' ? propDefinitions : stateDefinitions);
395
+ if (usedReferenceValue.type === 'element' && usedReferenceValue.defaultValue) {
396
+ elementNode = usedReferenceValue.defaultValue;
397
+ if (elementNode.content.key in nodesLookup) {
398
+ return [2 /*return*/, nodesLookup[elementNode.content.key]];
399
+ }
400
+ spanTagWrapper = teleport_plugin_common_1.HASTBuilders.createHTMLNode('span');
401
+ commentNode = teleport_plugin_common_1.HASTBuilders.createComment("Content for slot ".concat(node.content.id));
402
+ teleport_plugin_common_1.HASTUtils.addChildNode(spanTagWrapper, commentNode);
403
+ return [2 /*return*/, spanTagWrapper];
404
+ }
405
+ if (usedReferenceValue.type === 'element' && usedReferenceValue.defaultValue === undefined) {
406
+ spanTagWrapper = teleport_plugin_common_1.HASTBuilders.createHTMLNode('span');
407
+ commentNode = teleport_plugin_common_1.HASTBuilders.createComment("Content for slot ".concat(node.content.id));
408
+ teleport_plugin_common_1.HASTUtils.addChildNode(spanTagWrapper, commentNode);
409
+ return [2 /*return*/, spanTagWrapper];
410
+ }
411
+ spanTag = teleport_plugin_common_1.HASTBuilders.createHTMLNode('span');
412
+ teleport_plugin_common_1.HASTUtils.addTextNode(spanTag, String(usedReferenceValue.defaultValue));
413
+ return [2 /*return*/, spanTag];
414
+ });
415
+ }); };
289
416
  var handleStyles = function (node, styles, propDefinitions, stateDefinitions) {
290
417
  Object.keys(styles).forEach(function (styleKey) {
291
418
  var _a;
292
419
  var style = styles[styleKey];
293
420
  if (style.type === 'dynamic' && ((_a = style.content) === null || _a === void 0 ? void 0 : _a.referenceType) !== 'token') {
294
- if (style.content.referenceType === 'prop') {
295
- style = getValueFromReference(style.content.id, propDefinitions);
296
- }
297
- else if (style.content.referenceType === 'state') {
298
- style = getValueFromReference(style.content.id, stateDefinitions);
421
+ var referencedValue = getValueFromReference(style.content.id, style.content.referenceType === 'prop' ? propDefinitions : stateDefinitions);
422
+ if (referencedValue.type === 'string' || referencedValue.type === 'number') {
423
+ style = String(referencedValue.defaultValue);
299
424
  }
300
425
  node.content.style[styleKey] = typeof style === 'string' ? (0, teleport_uidl_builders_1.staticNode)(style) : style;
301
426
  }
302
427
  });
303
428
  };
304
- var handleAttributes = function (htmlNode, attrs, propDefinitions, stateDefinitions, routeDefinitions) {
305
- Object.keys(attrs).forEach(function (attrKey) {
429
+ var handleAttributes = function (elementType, htmlNode, attrs, propDefinitions, stateDefinitions, routeDefinitions, outputOptions) {
430
+ var _loop_1 = function (attrKey) {
306
431
  var attrValue = attrs[attrKey];
307
- if (attrKey === 'href' &&
308
- attrValue.type === 'static' &&
309
- typeof attrValue.content === 'string' &&
310
- attrValue.content.startsWith('/')) {
311
- attrValue =
312
- attrValue.content === '/' ||
313
- attrValue.content ===
314
- "/".concat(teleport_shared_1.StringUtils.camelCaseToDashCase(teleport_shared_1.StringUtils.removeIllegalCharacters((routeDefinitions === null || routeDefinitions === void 0 ? void 0 : routeDefinitions.defaultValue) || '')))
315
- ? (0, teleport_uidl_builders_1.staticNode)('index.html')
316
- : (0, teleport_uidl_builders_1.staticNode)("".concat(attrValue.content.split('/').pop(), ".html"));
317
- teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, String(attrValue.content));
318
- return;
319
- }
320
- if (attrValue.type === 'dynamic') {
321
- var value = attrValue.content.referenceType === 'prop'
322
- ? getValueFromReference(attrValue.content.id, propDefinitions)
323
- : getValueFromReference(attrValue.content.id, stateDefinitions);
324
- teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, String(value));
325
- return;
326
- }
327
- if (attrValue.type === 'raw') {
328
- teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, attrValue.content);
329
- return;
330
- }
331
- if (typeof attrValue.content === 'boolean') {
332
- teleport_plugin_common_1.HASTUtils.addBooleanAttributeToNode(htmlNode, attrKey);
333
- return;
334
- }
335
- else if (typeof attrValue.content === 'string' || typeof attrValue.content === 'number') {
336
- teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, teleport_shared_1.StringUtils.encode(String(attrValue.content)));
337
- return;
432
+ var type = attrValue.type, content = attrValue.content;
433
+ switch (type) {
434
+ case 'static': {
435
+ if (attrKey === 'href' && typeof content === 'string' && content.startsWith('/')) {
436
+ var targetLink = void 0;
437
+ var targetRoute = ((routeDefinitions === null || routeDefinitions === void 0 ? void 0 : routeDefinitions.values) || []).find(function (route) { return route.pageOptions.navLink === content; });
438
+ if (targetRoute) {
439
+ targetLink = targetRoute.pageOptions.navLink;
440
+ }
441
+ if (!targetRoute && content === '/home') {
442
+ targetLink = '/';
443
+ }
444
+ if (!targetLink && !targetRoute) {
445
+ targetLink = content;
446
+ }
447
+ var currentPageRoute = path_1.join.apply(void 0, __spreadArray(__spreadArray([], ((outputOptions === null || outputOptions === void 0 ? void 0 : outputOptions.folderPath) || []), false), ['./'], false));
448
+ var localPrefix = (0, path_1.relative)("/".concat(currentPageRoute), "/".concat(targetLink === '/' ? 'index' : targetLink));
449
+ teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, "".concat(localPrefix, ".html"));
450
+ break;
451
+ }
452
+ if (typeof content === 'boolean') {
453
+ htmlNode.properties[attrKey] = content === true ? 'true' : 'false';
454
+ }
455
+ else if (typeof content === 'string' || typeof attrValue.content === 'number') {
456
+ var value = teleport_shared_1.StringUtils.encode(String(attrValue.content));
457
+ /*
458
+ elementType of image is always mapped to img.
459
+ For reference, check `html-mapping` file.
460
+ */
461
+ if (elementType === 'img' && attrKey === 'src' && !isValidURL(value)) {
462
+ /*
463
+ By default we just prefix all the asset paths with just the
464
+ assetPrefix that is configured in the project. But for `html` generators
465
+ we need to prefix that with the current file location.
466
+
467
+ Because, all the other frameworks have a build setup. which serves all the
468
+ assets from the `public` folder. But in the case of `html` here is how it works
469
+
470
+ We load a file from `index.html` the request for the image goes from
471
+ '...url.../public/...image...'
472
+ If it's a nested url, then the request goes from
473
+ '...url/nested/public/...image..'
474
+
475
+ But the nested folder is available only on the root. With this
476
+ The url changes prefixes to
477
+
478
+ ../public/playground_assets/..image.. etc depending on the dept the file is in.
479
+ */
480
+ value = (0, path_1.join)((0, path_1.relative)(path_1.join.apply(void 0, outputOptions.folderPath), './'), value);
481
+ }
482
+ teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, value);
483
+ }
484
+ break;
485
+ }
486
+ case 'dynamic': {
487
+ var value = getValueFromReference(content.id, content.referenceType === 'prop' ? propDefinitions : stateDefinitions);
488
+ teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, String(value.defaultValue));
489
+ break;
490
+ }
491
+ case 'raw': {
492
+ teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, content);
493
+ break;
494
+ }
495
+ case 'element':
496
+ case 'import':
497
+ case 'expr':
498
+ break;
499
+ default: {
500
+ throw new teleport_types_1.HTMLComponentGeneratorError("Received ".concat(JSON.stringify(attrValue, null, 2), " \n in handleAttributes for html"));
501
+ }
338
502
  }
339
- });
503
+ };
504
+ for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {
505
+ var attrKey = _a[_i];
506
+ _loop_1(attrKey);
507
+ }
340
508
  };
341
509
  var getValueFromReference = function (key, definitions) {
342
510
  var usedReferenceValue = definitions[key.includes('.') ? key.split('.')[0] : key];
343
511
  if (!usedReferenceValue) {
344
512
  throw new teleport_types_1.HTMLComponentGeneratorError("Definition for ".concat(key, " is missing from ").concat(JSON.stringify(definitions, null, 2)));
345
513
  }
346
- if (!usedReferenceValue.hasOwnProperty('defaultValue')) {
347
- throw new teleport_types_1.HTMLComponentGeneratorError("Default value is missing from dynamic reference - ".concat(JSON.stringify(usedReferenceValue, null, 2)));
348
- }
349
- if (!['string', 'number', 'object'].includes(usedReferenceValue === null || usedReferenceValue === void 0 ? void 0 : usedReferenceValue.type)) {
514
+ if (['string', 'number', 'object', 'element'].includes(usedReferenceValue === null || usedReferenceValue === void 0 ? void 0 : usedReferenceValue.type) === false) {
350
515
  throw new teleport_types_1.HTMLComponentGeneratorError("Attribute is using dynamic value, but received of type ".concat(JSON.stringify(usedReferenceValue, null, 2)));
351
516
  }
352
- return String(usedReferenceValue.defaultValue);
517
+ if (usedReferenceValue.type !== 'element' &&
518
+ usedReferenceValue.hasOwnProperty('defaultValue') === false) {
519
+ throw new teleport_types_1.HTMLComponentGeneratorError("Default value is missing from dynamic reference - ".concat(JSON.stringify(usedReferenceValue, null, 2)));
520
+ }
521
+ return usedReferenceValue;
353
522
  };
354
523
  //# sourceMappingURL=node-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-handlers.js","sourceRoot":"","sources":["../../src/node-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-handlers.js","sourceRoot":"","sources":["../../src/node-handlers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAwBmC;AACnC,6BAAqC;AACrC,6EAA4E;AAC5E,+DAAoE;AACpE,6EAA+D;AAC/D,uEAAiE;AACjE,6EAA0F;AAC1F,yCAA0D;AAE1D,IAAM,UAAU,GAAG,UAAC,GAAW;IAC7B,IAAI;QACF,yCAAyC;QACzC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACZ,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AAED,IAAM,eAAe,GAAG,UACtB,IAAqB,EACrB,GAAwB,EACxB,YAAiD,EACjD,SAAwB;IAAxB,0BAAA,EAAA,cAAwB;IAExB,mHAAmH;IACnH,6HAA6H;IAC7H,sCAAsC;IACtC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAClC,MAAM,IAAI,4CAA2B,CACnC,YAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,sDACK,IAAI,CAAC,OAAO,CAAC,GAAG,6EAGtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAC7C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAO,CAChE,CAAA;KACF;IAED,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;AACtC,CAAC,CAAA;AAoBM,IAAM,kBAAkB,GAAuD,UACpF,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS;;;;;gBAED,KAAA,IAAI,CAAC,IAAI,CAAA;;yBACV,QAAQ,CAAC,CAAT,wBAAQ;yBACR,KAAK,CAAC,CAAN,wBAAK;yBAGL,QAAQ,CAAC,CAAT,wBAAQ;yBAGR,MAAM,CAAC,CAAP,wBAAM;yBAGN,SAAS,CAAC,CAAV,wBAAS;yBAYT,SAAS,CAAC,CAAV,wBAAS;;;oBApBZ,sBAAO,qCAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAA;oBAG3D,sBAAO,qCAAY,CAAC,cAAc,CAAC,6BAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAA;oBAG/E,sBAAO,qCAAY,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA;oBAGzB,qBAAM,mBAAmB,CAC3C,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,CACV,EAAA;;gBARK,WAAW,GAAG,SAQnB;gBACD,sBAAO,WAAW,EAAA;oBAGE,qBAAM,mBAAmB,CAC3C,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,CACV,EAAA;;gBARK,WAAW,GAAG,SAQnB;gBACD,sBAAO,WAAW,EAAA;oBAGlB,MAAM,IAAI,4CAA2B,CACnC,qEAA8D,IAAI,CAAC,SAAS,CAC1E,IAAI,EACJ,IAAI,EACJ,CAAC,CACF,MAAG,CACL,CAAA;;;KAEN,CAAA;AArDY,QAAA,kBAAkB,sBAqD9B;AAED,IAAM,mBAAmB,GAA8D,UACrF,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS;;;;;gBAEH,KAOF,IAAI,CAAC,OAAO,EANd,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,wBAAqB,EAArB,gBAAgB,mBAAG,EAAE,KAAA,EACrB,UAAU,gBAAA,CACI;gBACR,YAAY,GAAK,SAAS,aAAd,CAAc;gBAClC,IAAI,UAAU,IAAI,CAAC,UAA6B,aAA7B,UAAU,uBAAV,UAAU,CAAqB,IAAI,MAAK,OAAO,EAAE;oBAClE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAA;iBAC3C;qBAEG,CAAA,UAAU,IAAI,CAAC,UAA6B,aAA7B,UAAU,uBAAV,UAAU,CAAqB,IAAI,MAAK,OAAO,CAAA,EAA9D,wBAA8D;gBAChE,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACjC,sBAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAA;iBACrC;gBAEe,qBAAM,wBAAwB,CAC5C,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,CACV,EAAA;;gBARK,OAAO,GAAG,SAQf;gBAED,IAAI,SAAS,IAAI,OAAO,EAAE;oBACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,qCAAY,CAAC,aAAa,CAAC,UAAG,IAAI,CAAC,OAAO,CAAC,YAAY,eAAY,CAAC,CAAC,CAAA;iBAC/F;gBAED,sBAAO,OAAO,EAAA;;gBAGV,WAAW,GAAG,qCAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;qBAExD,QAAQ,EAAR,wBAAQ;sBACkB,EAAR,qBAAQ;;;qBAAR,CAAA,sBAAQ,CAAA;gBAAjB,KAAK;gBACG,qBAAM,IAAA,0BAAkB,EACvC,KAAK,EACL,QAAQ,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,CACV,EAAA;;gBARK,QAAQ,GAAG,SAQhB;gBAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oBAChC,kCAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;iBAC7C;qBAAM;oBACL,kCAAS,CAAC,YAAY,CAAC,WAAW,EAAE,QAAoB,CAAC,CAAA;iBAC1D;;;gBAfiB,IAAQ,CAAA;;;gBAmB9B,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5C,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;wBAC7C,IAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;wBAC3C,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;4BAC1C,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;yBAC/E;oBACH,CAAC,CAAC,CAAA;iBACH;gBAED,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;iBAC7D;gBAED,gBAAgB,CACd,WAAW,EACX,WAAW,EACX,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,CAAC,OAAO,CAAC,sBAAsB,EACxC,SAAS,CAAC,aAAa,CACxB,CAAA;gBAED,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAC3D,sBAAO,WAAW,EAAA;;;KACnB,CAAA;AAED,IAAM,iBAAiB,GAAG,UACxB,SAAwB,EACxB,WAAgD;IAEhD,IAAM,MAAM,GAAmB,EAAE,CAAA;IACjC,KAAmB,UAAwB,EAAxB,KAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAxB,cAAwB,EAAxB,IAAwB,EAAE;QAAxC,IAAM,IAAI,SAAA;QACb,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,GAAG;SACb,CAAA;KACF;IACD,IAAA,0CAAiB,EAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACpC,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,IAAM,wBAAwB,GAAG,UAC/B,IAAqB,EACrB,QAAgB,EAChB,WAAgD,EAChD,eAAmD,EACnD,gBAAqD,EACrD,mBAGC,EACD,SAKC;;;;;;gBAEO,SAAS,GAAc,mBAAmB,UAAjC,EAAE,OAAO,GAAK,mBAAmB,QAAxB,CAAwB;gBAC5C,KAA6C,IAAI,CAAC,OAAO,EAAvD,WAAW,iBAAA,EAAE,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EAAE,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA,CAAiB;gBACvD,YAAY,GAA2B,SAAS,aAApC,EAAE,KAAyB,SAAS,OAAvB,EAAX,MAAM,mBAAG,EAAE,KAAA,EAAE,OAAO,GAAK,SAAS,QAAd,CAAc;gBAElD,aAAa,GAAG,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAA;gBAC1E,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;gBAC1C,IAAI,SAAS,KAAK,SAAS,EAAE;oBAC3B,MAAM,IAAI,4CAA2B,CAAC,UAAG,aAAa,sCAAmC,CAAC,CAAA;iBAC3F;gBAEK,cAAc,GAAG,2BAAS,CAAC,WAAW,CAAgB,SAAS,CAAC,CAAA;gBAElE,YAAY,GAAY,KAAK,CAAA;gBACjC,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACnB,YAAY,GAAG,IAAI,CAAA;oBACnB,2BAAS,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,UAAC,SAAS,EAAE,UAAU;;wBACjE,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE;4BAC9D,IAAM,YAAY,GAAG,MAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,QAAQ,0CAAE,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,MAAM,EAAjB,CAAiB,CAAC,CAAA;4BACnF,UAAU,CAAC,OAAO,CAAC,QAAQ,mCACtB,YAAY;gCACf;oCACE,IAAI,EAAE,SAAS;oCACf,OAAO,EAAE;wCACP,GAAG,EAAE,aAAa;wCAClB,WAAW,EAAE,MAAM;wCACnB,IAAI,EAAE,cAAc,CAAC,IAAI,GAAG,MAAM;wCAClC,KAAK,EAAE;4CACL,OAAO,EAAE;gDACP,IAAI,EAAE,QAAQ;gDACd,OAAO,EAAE,UAAU;6CACpB;yCACF;wCACD,QAAQ,UAAA;qCACT;iCACF;qCACF,CAAA;yBACF;oBACH,CAAC,CAAC,CAAA;oBACF;;;sBAGE;oBACF,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAA;iBAC3B;gBAWK,yBAAyB,GAAG,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;gBAChF,IAAA,2CAAkB,EAAC,cAAc,EAAE,yBAAyB,CAAC,CAAA;gBAQvD,aAAa,yBACd,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CACpC,UAAC,GAAuC,EAAE,OAAO;;oBAC/C,IAAI,CAAA,MAAA,eAAe,CAAC,OAAO,CAAC,0CAAE,IAAI,MAAK,SAAS,EAAE;wBAChD,OAAO,GAAG,CAAA;qBACX;oBACD,GAAG,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;oBACvC,OAAO,GAAG,CAAA;gBACZ,CAAC,EACD,EAAE,CACH,GACE,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,eAAe,KAAI,EAAE,CAAC,CAC3C,CAAA;gBACK,cAAc,yBAAQ,gBAAgB,GAAK,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,gBAAgB,KAAI,EAAE,CAAC,CAAE,CAAA;gBACrF,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAC1D,UAAC,GAAwC,EAAE,OAAO;;oBAChD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;wBAClB,GAAG,CAAC,OAAO,CAAC,yBACP,cAAc,CAAC,OAAO,CAAC,KAC1B,YAAY,EAAE,CAAA,MAAA,KAAK,CAAC,OAAO,CAAC,0CAAE,OAAO,MAAI,MAAA,cAAc,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAA,GAC/E,CAAA;qBACF;yBAAM;wBACL,GAAG,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;qBACvC;oBAED,OAAO,GAAG,CAAA;gBACZ,CAAC,EACD,EAAE,CACH,CAAA;gBAEK,gBAAgB,GAAuC,EAAE,CAAA;sBAIf,EAA1B,KAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;;;qBAA1B,CAAA,cAA0B,CAAA;gBAArC,OAAO;gBACV,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;qBACvB,CAAA,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,SAAS,CAAA,EAAxB,wBAAwB;gBAC1B,gBAAgB,CAAC,OAAO,CAAC,yBACpB,aAAa,CAAC,OAAO,CAAC,KACzB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAC7B,CAAA;gBACD,qBAAM,IAAA,0BAAkB,EACtB,KAAK,CAAC,OAAO,CAAoB,EACjC,SAAS,CAAC,IAAI,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,CACV,EAAA;;gBARD,SAQC,CAAA;;;qBACQ,CAAA,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,SAAS,CAAA,EAAxB,wBAAwB;gBACjC,0EAA0E;gBAC1E,2DAA2D;gBAC3D,sHAAsH;gBACtH,0HAA0H;gBAC1H,8CAA8C;gBAC9C,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;oBAClC,KAAK,MAAM;wBACT,gBAAgB,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;wBAClD,MAAK;oBACP,KAAK,OAAO;wBACV,gBAAgB,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;wBACnD,MAAK;oBACP;wBACE,MAAM,IAAI,KAAK,CACb,wBAAiB,IAAI,CAAC,OAAO,CAAC,aAAa,sCAAmC,CAC/E,CAAA;iBACJ;;;qBACQ,IAAI,EAAJ,wBAAI;gBACb,gBAAgB,CAAC,OAAO,CAAC,yBACpB,aAAa,CAAC,OAAO,CAAC,KACzB,YAAY,EAAE,CAAA,MAAA,KAAK,CAAC,OAAO,CAAC,0CAAE,OAAO,MAAI,MAAA,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAA,GAC9E,CAAA;;;gBAEK,wBAAwB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;qBACnD,CAAA,wBAAwB,CAAC,IAAI,KAAK,SAAS,IAAI,wBAAwB,CAAC,YAAY,CAAA,EAApF,wBAAoF;gBACtF,qBAAM,IAAA,0BAAkB,EACtB,wBAAwB,CAAC,YAA+B,EACxD,SAAS,CAAC,IAAI,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,CACV,EAAA;;gBARD,SAQC,CAAA;;;gBAEH,gBAAgB,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAA;;;gBApDlC,IAA0B,CAAA;;;gBAwD5C,gBAAgB,GAAG,6BAAW,CAAC,mBAAmB,CAAC,UAAG,aAAa,aAAU,CAAC,CAAA;gBAC5E,cAAc,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAA;gBACpD,IAAI,cAAc,KAAK,SAAS,EAAE;oBAChC,gBAAgB,GAAG,UAAG,gBAAgB,cAAI,6BAAW,CAAC,oBAAoB,EAAE,CAAE,CAAA;iBAC/E;gBAEK,2BAA2B,GAAoB;oBACnD,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACP,WAAW,EAAE,gBAAgB;wBAC7B,GAAG,EAAE,gBAAgB;wBACrB,QAAQ,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;wBAC/B,KAAK,EAAE;4BACL,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,UAAU;6BACpB;yBACF;qBACF;iBACF,CAAA;gBAEe,qBAAM,IAAA,0BAAkB,EACtC,2BAA2B,EAC3B,SAAS,CAAC,IAAI,EACd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,CACV,EAAA;;gBARK,OAAO,GAAG,SAQf;gBAEK,SAAS,GAAG,IAAA,qCAAe,EAAC;oBAChC,aAAa,EAAE,MAAM;oBACrB,iBAAiB,EAAE,wCAA4B;oBAC/C,iBAAiB,EAAE,QAAQ;oBAC3B,SAAS,EAAE,cAAc,CAAC,IAAI;oBAC9B,oBAAoB,EAAE,IAAI;iBAC3B,CAAC,CAAA;gBAEI,gBAAgB,GAAuB;oBAC3C,IAAI,wBACC,cAAc,KACjB,IAAI,EAAE,2BAA2B,EACjC,eAAe,EAAE,gBAAgB,EACjC,gBAAgB,EAAE,iBAAiB,GACpC;oBACD,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,0BAAS,CAAC,IAAI;4BACpB,QAAQ,EAAE,yBAAQ,CAAC,IAAI;4BACvB,IAAI,EAAE,wCAA4B;4BAClC,SAAS,EAAE,EAAE;4BACb,OAAO,EAAE,OAAO;4BAChB,IAAI,EAAE;gCACJ,WAAW,aAAA;6BACZ;yBACF;qBACF;oBACD,YAAY,cAAA;oBACZ,OAAO,SAAA;iBACR,CAAA;gBAEc,qBAAM,eAAC,SAAS,GAAK,OAAO,QAAE,MAAM,CACjD,UAAO,uBAAoD,EAAE,MAAM;;;;wCACvC,qBAAM,uBAAuB,EAAA;;oCAAjD,iBAAiB,GAAG,SAA6B;oCACvD,sBAAO,MAAM,CAAC,iBAAiB,CAAC,EAAA;;;yBACjC,EACD,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAClC,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,IAAI,YAAY,EAAE;oBAChB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK;wBAC1B,IAAI,KAAK,CAAC,QAAQ,KAAK,yBAAQ,CAAC,GAAG,EAAE;4BACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;yBACnB;oBACH,CAAC,CAAC,CAAA;iBACH;qBAAM;oBACC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,EAAjC,CAAiC,CAAC,CAAA;oBACtE,IAAI,CAAC,KAAK,EAAE;wBACJ,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACnC,UAAC,IAAqB,IAAK,OAAA,IAAI,CAAC,QAAQ,KAAK,yBAAQ,CAAC,GAAG,EAA9B,CAA8B,CAC1D,CAAA;wBACD,IAAI,CAAC,UAAU,EAAE;4BACf,sBAAM;yBACP;wBACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;qBACxB;iBACF;gBAED,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;gBACvE,sBAAO,OAAO,EAAA;;;KACf,CAAA;AAED,IAAM,mBAAmB,GAAmE,UAC1F,IAAI;AACJ,kCAAkC;AAClC,SAAS,EACT,WAAW,EACX,eAAe,EACf,gBAAgB;;;QAEV,kBAAkB,GAAG,qBAAqB,CAC9C,IAAI,CAAC,OAAO,CAAC,EAAE,EACf,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAC3E,CAAA;QAED,IAAI,kBAAkB,CAAC,IAAI,KAAK,SAAS,IAAI,kBAAkB,CAAC,YAAY,EAAE;YACtE,WAAW,GAAG,kBAAkB,CAAC,YAA+B,CAAA;YAEtE,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,WAAW,EAAE;gBAC1C,sBAAO,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAA;aAC5C;YAEK,cAAc,GAAG,qCAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACpD,WAAW,GAAG,qCAAY,CAAC,aAAa,CAAC,2BAAoB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC,CAAA;YACrF,kCAAS,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;YACnD,sBAAO,cAAc,EAAA;SACtB;QAED,IAAI,kBAAkB,CAAC,IAAI,KAAK,SAAS,IAAI,kBAAkB,CAAC,YAAY,KAAK,SAAS,EAAE;YACpF,cAAc,GAAG,qCAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACpD,WAAW,GAAG,qCAAY,CAAC,aAAa,CAAC,2BAAoB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC,CAAA;YACrF,kCAAS,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;YACnD,sBAAO,cAAc,EAAA;SACtB;QAEK,OAAO,GAAG,qCAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QACnD,kCAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAA;QACvE,sBAAO,OAAO,EAAA;;KACf,CAAA;AAED,IAAM,YAAY,GAAG,UACnB,IAAqB,EACrB,MAA4B,EAC5B,eAAmD,EACnD,gBAAqD;IAErD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;;QACnC,IAAI,KAAK,GAA4B,MAAM,CAAC,QAAQ,CAAC,CAAA;QACrD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,aAAa,MAAK,OAAO,EAAE;YACxE,IAAM,eAAe,GAAG,qBAAqB,CAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,EAChB,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAC5E,CAAA;YACD,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC1E,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;aAC7C;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,mCAAU,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;SACrF;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,IAAM,gBAAgB,GAAG,UACvB,WAAuC,EACvC,QAAkB,EAClB,KAAyC,EACzC,eAAmD,EACnD,gBAAqD,EACrD,gBAAsC,EACtC,aAAyC;4BAE9B,OAAO;QAChB,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;QACxB,IAAA,IAAI,GAAc,SAAS,KAAvB,EAAE,OAAO,GAAK,SAAS,QAAd,CAAc;QAEnC,QAAQ,IAAI,EAAE;YACZ,KAAK,QAAQ,CAAC,CAAC;gBACb,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBAChF,IAAI,UAAU,SAAA,CAAA;oBAEd,IAAM,WAAW,GAAG,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,KAAI,EAAE,CAAC,CAAC,IAAI,CACvD,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO,EAArC,CAAqC,CACjD,CAAA;oBAED,IAAI,WAAW,EAAE;wBACf,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAA;qBAC7C;oBAED,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,OAAO,EAAE;wBACvC,UAAU,GAAG,GAAG,CAAA;qBACjB;oBAED,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE;wBAC/B,UAAU,GAAG,OAAO,CAAA;qBACrB;oBAED,IAAM,gBAAgB,GAAG,WAAI,+CAAI,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,KAAI,EAAE,CAAC,WAAE,IAAI,UAAC,CAAA;oBACzE,IAAM,WAAW,GAAG,IAAA,eAAQ,EAC1B,WAAI,gBAAgB,CAAE,EACtB,WAAI,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAE,CAChD,CAAA;oBAED,kCAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAG,WAAW,UAAO,CAAC,CAAA;oBACtE,MAAK;iBACN;gBAED,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE;oBAChC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;iBACnE;qBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE;oBAC/E,IAAI,KAAK,GAAG,6BAAW,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;oBAEzD;;;sBAGE;oBACF,IAAI,WAAW,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;wBACpE;;;;;;;;;;;;;;;;;0BAiBE;wBACF,KAAK,GAAG,IAAA,WAAI,EAAC,IAAA,eAAQ,EAAC,WAAI,eAAI,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;qBACvE;oBAED,kCAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;iBACvD;gBAED,MAAK;aACN;YAED,KAAK,SAAS,CAAC,CAAC;gBACd,IAAM,KAAK,GAAG,qBAAqB,CACjC,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CACtE,CAAA;gBAED,kCAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;gBAC3E,MAAK;aACN;YAED,KAAK,KAAK,CAAC,CAAC;gBACV,kCAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;gBACxD,MAAK;aACN;YAED,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ,CAAC;YACd,KAAK,MAAM;gBACT,MAAK;YAEP,OAAO,CAAC,CAAC;gBACP,MAAM,IAAI,4CAA2B,CACnC,mBAAY,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,qCAAkC,CACjF,CAAA;aACF;SACF;;IAjGH,KAAsB,UAAkB,EAAlB,KAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAlB,cAAkB,EAAlB,IAAkB;QAAnC,IAAM,OAAO,SAAA;gBAAP,OAAO;KAkGjB;AACH,CAAC,CAAA;AAED,IAAM,qBAAqB,GAAG,UAC5B,GAAW,EACX,WAA+C;IAE/C,IAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAEnF,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,IAAI,4CAA2B,CACnC,yBAAkB,GAAG,8BAAoB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE,CAChF,CAAA;KACF;IAED,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,CAAC,KAAK,KAAK,EAAE;QAC1F,MAAM,IAAI,4CAA2B,CACnC,iEAA0D,IAAI,CAAC,SAAS,CACtE,kBAAkB,EAClB,IAAI,EACJ,CAAC,CACF,CAAE,CACJ,CAAA;KACF;IAED,IACE,kBAAkB,CAAC,IAAI,KAAK,SAAS;QACrC,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,KAAK,EAC3D;QACA,MAAM,IAAI,4CAA2B,CACnC,4DAAqD,IAAI,CAAC,SAAS,CACjE,kBAAkB,EAClB,IAAI,EACJ,CAAC,CACF,CAAE,CACJ,CAAA;KACF;IAED,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAA"}