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

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.
@@ -55,61 +55,95 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
55
  return to.concat(ar || Array.prototype.slice.call(from));
56
56
  };
57
57
  import { HTMLComponentGeneratorError, ChunkType, FileType, } from '@teleporthq/teleport-types';
58
+ import { join, relative } from 'path';
58
59
  import { HASTBuilders, HASTUtils } from '@teleporthq/teleport-plugin-common';
59
60
  import { StringUtils, UIDLUtils } from '@teleporthq/teleport-shared';
60
61
  import { staticNode } from '@teleporthq/teleport-uidl-builders';
61
62
  import { createCSSPlugin } from '@teleporthq/teleport-plugin-css';
63
+ import { generateUniqueKeys, createNodesLookup } from '@teleporthq/teleport-uidl-resolver';
62
64
  import { DEFAULT_COMPONENT_CHUNK_NAME } from './constants';
63
- export var generateHtmlSynatx = function (node, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure) { return __awaiter(void 0, void 0, void 0, function () {
64
- return __generator(this, function (_a) {
65
- switch (node.type) {
66
- case 'inject':
67
- case 'raw':
68
- return [2 /*return*/, HASTBuilders.createTextNode(node.content.toString())];
69
- case 'static':
70
- return [2 /*return*/, HASTBuilders.createTextNode(StringUtils.encode(node.content.toString()))];
71
- case 'slot':
72
- return [2 /*return*/, HASTBuilders.createHTMLNode(node.type)];
73
- case 'element':
74
- return [2 /*return*/, generatElementNode(node, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure)];
75
- case 'dynamic':
76
- return [2 /*return*/, generateDynamicNode(node, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure)];
77
- default:
78
- throw new HTMLComponentGeneratorError("generateHtmlSyntax encountered a node of unsupported type: ".concat(JSON.stringify(node, null, 2), " "));
65
+ var isValidURL = function (url) {
66
+ try {
67
+ /* tslint:disable:no-unused-expression */
68
+ new URL(url);
69
+ return true;
70
+ }
71
+ catch (error) {
72
+ return false;
73
+ }
74
+ };
75
+ var addNodeToLookup = function (node, tag, nodesLoookup, hierarchy) {
76
+ if (hierarchy === void 0) { hierarchy = []; }
77
+ // In html code-generation we combine the nodes of the component that is being consumed with the current component.
78
+ // As html can't load the component at runtime like react or any other frameworks. So, we merge the component as a standalone
79
+ // component in the current component.
80
+ if (nodesLoookup[node.content.key]) {
81
+ throw new 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"));
82
+ }
83
+ nodesLoookup[node.content.key] = tag;
84
+ };
85
+ export var generateHtmlSyntax = function (node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
86
+ var _a, elementNode, dynamicNode;
87
+ return __generator(this, function (_b) {
88
+ switch (_b.label) {
89
+ case 0:
90
+ _a = node.type;
91
+ switch (_a) {
92
+ case 'inject': return [3 /*break*/, 1];
93
+ case 'raw': return [3 /*break*/, 1];
94
+ case 'static': return [3 /*break*/, 2];
95
+ case 'slot': return [3 /*break*/, 3];
96
+ case 'element': return [3 /*break*/, 4];
97
+ case 'dynamic': return [3 /*break*/, 6];
98
+ }
99
+ return [3 /*break*/, 8];
100
+ case 1: return [2 /*return*/, HASTBuilders.createTextNode(node.content.toString())];
101
+ case 2: return [2 /*return*/, HASTBuilders.createTextNode(StringUtils.encode(node.content.toString()))];
102
+ case 3: return [2 /*return*/, HASTBuilders.createHTMLNode(node.type)];
103
+ case 4: return [4 /*yield*/, generateElementNode(node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
104
+ case 5:
105
+ elementNode = _b.sent();
106
+ return [2 /*return*/, elementNode];
107
+ case 6: return [4 /*yield*/, generateDynamicNode(node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
108
+ case 7:
109
+ dynamicNode = _b.sent();
110
+ return [2 /*return*/, dynamicNode];
111
+ case 8: throw new HTMLComponentGeneratorError("generateHtmlSyntax encountered a node of unsupported type: ".concat(JSON.stringify(node, null, 2), " "));
79
112
  }
80
- return [2 /*return*/];
81
113
  });
82
114
  }); };
83
- var generatElementNode = function (node, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure) { return __awaiter(void 0, void 0, void 0, function () {
84
- var _a, elementType, children, _b, attrs, _c, style, _d, referencedStyles, dependency, key, elementNode, dependencies, compTag, _i, children_1, child, childTag;
115
+ var generateElementNode = function (node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
116
+ var _a, elementType, children, _b, attrs, _c, style, _d, referencedStyles, dependency, dependencies, compTag, elementNode, _i, children_1, child, childTag;
85
117
  return __generator(this, function (_e) {
86
118
  switch (_e.label) {
87
119
  case 0:
88
- _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;
89
- elementNode = HASTBuilders.createHTMLNode(elementType);
90
- templatesLookUp[key] = elementNode;
120
+ _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;
91
121
  dependencies = structure.dependencies;
92
122
  if (dependency && (dependency === null || dependency === void 0 ? void 0 : dependency.type) !== 'local') {
93
123
  dependencies[dependency.path] = dependency;
94
124
  }
95
125
  if (!(dependency && (dependency === null || dependency === void 0 ? void 0 : dependency.type) === 'local')) return [3 /*break*/, 2];
96
- return [4 /*yield*/, generateComponentContent(node, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure)];
126
+ if (nodesLookup[node.content.key]) {
127
+ return [2 /*return*/, nodesLookup[node.content.key]];
128
+ }
129
+ return [4 /*yield*/, generateComponentContent(node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
97
130
  case 1:
98
131
  compTag = _e.sent();
132
+ if ('tagName' in compTag) {
133
+ compTag.children.unshift(HASTBuilders.createComment("".concat(node.content.semanticType, " component")));
134
+ }
99
135
  return [2 /*return*/, compTag];
100
136
  case 2:
137
+ elementNode = HASTBuilders.createHTMLNode(elementType);
101
138
  if (!children) return [3 /*break*/, 6];
102
139
  _i = 0, children_1 = children;
103
140
  _e.label = 3;
104
141
  case 3:
105
142
  if (!(_i < children_1.length)) return [3 /*break*/, 6];
106
143
  child = children_1[_i];
107
- return [4 /*yield*/, generateHtmlSynatx(child, templatesLookUp, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure)];
144
+ return [4 /*yield*/, generateHtmlSyntax(child, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
108
145
  case 4:
109
146
  childTag = _e.sent();
110
- if (!childTag) {
111
- return [2 /*return*/];
112
- }
113
147
  if (typeof childTag === 'string') {
114
148
  HASTUtils.addTextNode(elementNode, childTag);
115
149
  }
@@ -126,38 +160,49 @@ var generatElementNode = function (node, templatesLookUp, propDefinitions, state
126
160
  var refStyle = referencedStyles[styleRef];
127
161
  if (refStyle.content.mapType === 'inlined') {
128
162
  handleStyles(node, refStyle.content.styles, propDefinitions, stateDefinitions);
129
- return;
130
163
  }
131
164
  });
132
165
  }
133
166
  if (Object.keys(style).length > 0) {
134
167
  handleStyles(node, style, propDefinitions, stateDefinitions);
135
168
  }
136
- if (Object.keys(attrs).length > 0) {
137
- handleAttributes(elementNode, attrs, propDefinitions, stateDefinitions, routeDefinitions);
138
- }
169
+ handleAttributes(elementType, elementNode, attrs, propDefinitions, stateDefinitions, structure.options.projectRouteDefinition, structure.outputOptions);
170
+ addNodeToLookup(node, elementNode, nodesLookup, [compName]);
139
171
  return [2 /*return*/, elementNode];
140
172
  }
141
173
  });
142
174
  }); };
143
- var generateComponentContent = function (node, propDefinitions, stateDefinitions, subComponentOptions, routeDefinitions, structure) { return __awaiter(void 0, void 0, void 0, function () {
144
- 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;
145
- var _e;
146
- return __generator(this, function (_f) {
147
- switch (_f.label) {
175
+ var createLookupTable = function (component, nodesLookup) {
176
+ var lookup = {};
177
+ for (var _i = 0, _a = Object.keys(nodesLookup); _i < _a.length; _i++) {
178
+ var node = _a[_i];
179
+ lookup[node] = {
180
+ count: 1,
181
+ nextKey: '1',
182
+ };
183
+ }
184
+ createNodesLookup(component, lookup);
185
+ return lookup;
186
+ };
187
+ var generateComponentContent = function (node, compName, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
188
+ 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;
189
+ var _f, _g;
190
+ return __generator(this, function (_h) {
191
+ switch (_h.label) {
148
192
  case 0:
149
193
  externals = subComponentOptions.externals, plugins = subComponentOptions.plugins;
150
- _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;
194
+ _a = node.content, elementType = _a.elementType, _b = _a.attrs, attrs = _b === void 0 ? {} : _b, _c = _a.children, children = _c === void 0 ? [] : _c;
151
195
  dependencies = structure.dependencies, _d = structure.chunks, chunks = _d === void 0 ? [] : _d, options = structure.options;
152
- comp = UIDLUtils.cloneObject(externals[elementType] || {});
153
- lookUpTemplates = {};
154
- compHasSlots = false;
155
- if (!comp || !(comp === null || comp === void 0 ? void 0 : comp.node)) {
156
- throw new HTMLComponentGeneratorError("".concat(elementType, " is not found from the externals. \n\n Received ").concat(JSON.stringify(Object.keys(externals), null, 2)));
196
+ componentName = elementType === 'Component' ? 'AppComponent' : elementType;
197
+ component = externals[componentName];
198
+ if (component === undefined) {
199
+ throw new HTMLComponentGeneratorError("".concat(componentName, " is missing from externals object"));
157
200
  }
201
+ componentClone = UIDLUtils.cloneObject(component);
202
+ compHasSlots = false;
158
203
  if (children.length) {
159
204
  compHasSlots = true;
160
- UIDLUtils.traverseNodes(comp.node, function (childNode, parentNode) {
205
+ UIDLUtils.traverseNodes(componentClone.node, function (childNode, parentNode) {
161
206
  var _a, _b;
162
207
  if (childNode.type === 'slot' && parentNode.type === 'element') {
163
208
  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'; });
@@ -167,6 +212,7 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
167
212
  content: {
168
213
  key: 'custom-slot',
169
214
  elementType: 'slot',
215
+ name: componentClone.name + 'slot',
170
216
  style: {
171
217
  display: {
172
218
  type: 'static',
@@ -185,18 +231,17 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
185
231
  */
186
232
  node.content.children = [];
187
233
  }
188
- combinedProps = __assign(__assign({}, propDefinitions), ((comp === null || comp === void 0 ? void 0 : comp.propDefinitions) || {}));
189
- propsForInstance = Object.keys(combinedProps).reduce(function (acc, propKey) {
190
- var _a, _b;
191
- if (attrs[propKey]) {
192
- 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) });
193
- }
194
- else {
195
- acc[propKey] = combinedProps[propKey];
234
+ lookupTableForCurrentPage = createLookupTable(componentClone, nodesLookup);
235
+ generateUniqueKeys(componentClone, lookupTableForCurrentPage);
236
+ combinedProps = __assign(__assign({}, Object.keys(propDefinitions).reduce(function (acc, propKey) {
237
+ var _a;
238
+ if (((_a = propDefinitions[propKey]) === null || _a === void 0 ? void 0 : _a.type) === 'element') {
239
+ return acc;
196
240
  }
241
+ acc[propKey] = propDefinitions[propKey];
197
242
  return acc;
198
- }, {});
199
- combinedStates = __assign(__assign({}, stateDefinitions), ((comp === null || comp === void 0 ? void 0 : comp.stateDefinitions) || {}));
243
+ }, {})), ((componentClone === null || componentClone === void 0 ? void 0 : componentClone.propDefinitions) || {}));
244
+ combinedStates = __assign(__assign({}, stateDefinitions), ((componentClone === null || componentClone === void 0 ? void 0 : componentClone.stateDefinitions) || {}));
200
245
  statesForInstance = Object.keys(combinedStates).reduce(function (acc, propKey) {
201
246
  var _a, _b;
202
247
  if (attrs[propKey]) {
@@ -207,24 +252,86 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
207
252
  }
208
253
  return acc;
209
254
  }, {});
210
- elementNode = HASTBuilders.createHTMLNode(StringUtils.camelCaseToDashCase(elementType));
211
- lookUpTemplates[key] = elementNode;
212
- return [4 /*yield*/, 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: {
213
- type: 'static',
214
- content: 'contents',
215
- } }) }) }), lookUpTemplates, propsForInstance, statesForInstance, subComponentOptions, routeDefinitions, structure)];
255
+ propsForInstance = {};
256
+ _i = 0, _e = Object.keys(combinedProps);
257
+ _h.label = 1;
216
258
  case 1:
217
- compTag = (_f.sent());
259
+ if (!(_i < _e.length)) return [3 /*break*/, 9];
260
+ propKey = _e[_i];
261
+ prop = attrs[propKey];
262
+ if (!((prop === null || prop === void 0 ? void 0 : prop.type) === 'element')) return [3 /*break*/, 3];
263
+ propsForInstance[propKey] = __assign(__assign({}, combinedProps[propKey]), { defaultValue: attrs[propKey] });
264
+ return [4 /*yield*/, generateHtmlSyntax(attrs[propKey], component.name, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
265
+ case 2:
266
+ _h.sent();
267
+ return [3 /*break*/, 8];
268
+ case 3:
269
+ if (!((prop === null || prop === void 0 ? void 0 : prop.type) === 'dynamic')) return [3 /*break*/, 4];
270
+ // When we are using a component instance in a component and the attribute
271
+ // that is passed to the component is of dynamic reference.
272
+ // If means, the component is redirecting the prop that is received to the prop of the component that it is consuming.
273
+ // 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.
274
+ // And similary we do the same for the states.
275
+ switch (prop.content.referenceType) {
276
+ case 'prop':
277
+ propsForInstance[propKey] = combinedProps[propKey];
278
+ break;
279
+ case 'state':
280
+ propsForInstance[propKey] = combinedStates[propKey];
281
+ break;
282
+ default:
283
+ throw new Error("ReferenceType ".concat(prop.content.referenceType, " is not supported in HTML Export."));
284
+ }
285
+ return [3 /*break*/, 8];
286
+ case 4:
287
+ if (!prop) return [3 /*break*/, 5];
288
+ 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) });
289
+ return [3 /*break*/, 8];
290
+ case 5:
291
+ propFromCurrentComponent = combinedProps[propKey];
292
+ if (!(propFromCurrentComponent.type === 'element' && propFromCurrentComponent.defaultValue)) return [3 /*break*/, 7];
293
+ return [4 /*yield*/, generateHtmlSyntax(propFromCurrentComponent.defaultValue, component.name, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
294
+ case 6:
295
+ _h.sent();
296
+ _h.label = 7;
297
+ case 7:
298
+ propsForInstance[propKey] = propFromCurrentComponent;
299
+ _h.label = 8;
300
+ case 8:
301
+ _i++;
302
+ return [3 /*break*/, 1];
303
+ case 9:
304
+ componentWrapper = StringUtils.camelCaseToDashCase("".concat(componentName, "-wrapper"));
305
+ isExistingNode = nodesLookup[componentWrapper];
306
+ if (isExistingNode !== undefined) {
307
+ componentWrapper = "".concat(componentWrapper, "-").concat(StringUtils.generateRandomString());
308
+ }
309
+ componentInstanceToGenerate = {
310
+ type: 'element',
311
+ content: {
312
+ elementType: componentWrapper,
313
+ key: componentWrapper,
314
+ children: [componentClone.node],
315
+ style: {
316
+ display: {
317
+ type: 'static',
318
+ content: 'contents',
319
+ },
320
+ },
321
+ },
322
+ };
323
+ return [4 /*yield*/, generateHtmlSyntax(componentInstanceToGenerate, component.name, nodesLookup, propsForInstance, statesForInstance, subComponentOptions, structure)];
324
+ case 10:
325
+ compTag = _h.sent();
218
326
  cssPlugin = createCSSPlugin({
219
327
  templateStyle: 'html',
220
328
  templateChunkName: DEFAULT_COMPONENT_CHUNK_NAME,
221
329
  declareDependency: 'import',
222
- forceScoping: true,
223
- chunkName: comp.name,
330
+ chunkName: componentClone.name,
224
331
  staticPropReferences: true,
225
332
  });
226
333
  initialStructure = {
227
- uidl: __assign(__assign({}, comp), { propDefinitions: propsForInstance, stateDefinitions: statesForInstance }),
334
+ uidl: __assign(__assign({}, componentClone), { node: componentInstanceToGenerate, propDefinitions: propsForInstance, stateDefinitions: statesForInstance }),
228
335
  chunks: [
229
336
  {
230
337
  type: ChunkType.HAST,
@@ -233,7 +340,7 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
233
340
  linkAfter: [],
234
341
  content: compTag,
235
342
  meta: {
236
- nodesLookup: lookUpTemplates,
343
+ nodesLookup: nodesLookup,
237
344
  },
238
345
  },
239
346
  ],
@@ -251,8 +358,8 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
251
358
  }
252
359
  });
253
360
  }); }, Promise.resolve(initialStructure))];
254
- case 2:
255
- result = _f.sent();
361
+ case 11:
362
+ result = _h.sent();
256
363
  if (compHasSlots) {
257
364
  result.chunks.forEach(function (chunk) {
258
365
  if (chunk.fileType === FileType.CSS) {
@@ -261,7 +368,7 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
261
368
  });
262
369
  }
263
370
  else {
264
- chunk = chunks.find(function (item) { return item.name === comp.name; });
371
+ chunk = chunks.find(function (item) { return item.name === componentClone.name; });
265
372
  if (!chunk) {
266
373
  styleChunk = result.chunks.find(function (item) { return item.fileType === FileType.CSS; });
267
374
  if (!styleChunk) {
@@ -270,81 +377,143 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
270
377
  chunks.push(styleChunk);
271
378
  }
272
379
  }
380
+ addNodeToLookup(node, compTag, nodesLookup, [compName, component.name]);
273
381
  return [2 /*return*/, compTag];
274
382
  }
275
383
  });
276
384
  }); };
277
- var generateDynamicNode = function (node, _, propDefinitions, stateDefinitions) {
278
- var spanTag = HASTBuilders.createHTMLNode('span');
279
- var usedReferenceValue = node.content.referenceType === 'prop'
280
- ? getValueFromReference(node.content.id, propDefinitions)
281
- : getValueFromReference(node.content.id, stateDefinitions);
282
- HASTUtils.addTextNode(spanTag, String(usedReferenceValue));
283
- return spanTag;
284
- };
385
+ var generateDynamicNode = function (node,
386
+ /* tslint:disable variable-name */
387
+ _compName, nodesLookup, propDefinitions, stateDefinitions) { return __awaiter(void 0, void 0, void 0, function () {
388
+ var usedReferenceValue, elementNode, spanTagWrapper, commentNode, spanTagWrapper, commentNode, spanTag;
389
+ return __generator(this, function (_a) {
390
+ usedReferenceValue = getValueFromReference(node.content.id, node.content.referenceType === 'prop' ? propDefinitions : stateDefinitions);
391
+ if (usedReferenceValue.type === 'element' && usedReferenceValue.defaultValue) {
392
+ elementNode = usedReferenceValue.defaultValue;
393
+ if (elementNode.content.key in nodesLookup) {
394
+ return [2 /*return*/, nodesLookup[elementNode.content.key]];
395
+ }
396
+ spanTagWrapper = HASTBuilders.createHTMLNode('span');
397
+ commentNode = HASTBuilders.createComment("Content for slot ".concat(node.content.id));
398
+ HASTUtils.addChildNode(spanTagWrapper, commentNode);
399
+ return [2 /*return*/, spanTagWrapper];
400
+ }
401
+ if (usedReferenceValue.type === 'element' && usedReferenceValue.defaultValue === undefined) {
402
+ spanTagWrapper = HASTBuilders.createHTMLNode('span');
403
+ commentNode = HASTBuilders.createComment("Content for slot ".concat(node.content.id));
404
+ HASTUtils.addChildNode(spanTagWrapper, commentNode);
405
+ return [2 /*return*/, spanTagWrapper];
406
+ }
407
+ spanTag = HASTBuilders.createHTMLNode('span');
408
+ HASTUtils.addTextNode(spanTag, String(usedReferenceValue.defaultValue));
409
+ return [2 /*return*/, spanTag];
410
+ });
411
+ }); };
285
412
  var handleStyles = function (node, styles, propDefinitions, stateDefinitions) {
286
413
  Object.keys(styles).forEach(function (styleKey) {
287
414
  var _a;
288
415
  var style = styles[styleKey];
289
416
  if (style.type === 'dynamic' && ((_a = style.content) === null || _a === void 0 ? void 0 : _a.referenceType) !== 'token') {
290
- if (style.content.referenceType === 'prop') {
291
- style = getValueFromReference(style.content.id, propDefinitions);
292
- }
293
- else if (style.content.referenceType === 'state') {
294
- style = getValueFromReference(style.content.id, stateDefinitions);
417
+ var referencedValue = getValueFromReference(style.content.id, style.content.referenceType === 'prop' ? propDefinitions : stateDefinitions);
418
+ if (referencedValue.type === 'string' || referencedValue.type === 'number') {
419
+ style = String(referencedValue.defaultValue);
295
420
  }
296
421
  node.content.style[styleKey] = typeof style === 'string' ? staticNode(style) : style;
297
422
  }
298
423
  });
299
424
  };
300
- var handleAttributes = function (htmlNode, attrs, propDefinitions, stateDefinitions, routeDefinitions) {
301
- Object.keys(attrs).forEach(function (attrKey) {
425
+ var handleAttributes = function (elementType, htmlNode, attrs, propDefinitions, stateDefinitions, routeDefinitions, outputOptions) {
426
+ var _loop_1 = function (attrKey) {
302
427
  var attrValue = attrs[attrKey];
303
- if (attrKey === 'href' &&
304
- attrValue.type === 'static' &&
305
- typeof attrValue.content === 'string' &&
306
- attrValue.content.startsWith('/')) {
307
- attrValue =
308
- attrValue.content === '/' ||
309
- attrValue.content ===
310
- "/".concat(StringUtils.camelCaseToDashCase(StringUtils.removeIllegalCharacters((routeDefinitions === null || routeDefinitions === void 0 ? void 0 : routeDefinitions.defaultValue) || '')))
311
- ? staticNode('index.html')
312
- : staticNode("".concat(attrValue.content.split('/').pop(), ".html"));
313
- HASTUtils.addAttributeToNode(htmlNode, attrKey, String(attrValue.content));
314
- return;
315
- }
316
- if (attrValue.type === 'dynamic') {
317
- var value = attrValue.content.referenceType === 'prop'
318
- ? getValueFromReference(attrValue.content.id, propDefinitions)
319
- : getValueFromReference(attrValue.content.id, stateDefinitions);
320
- HASTUtils.addAttributeToNode(htmlNode, attrKey, String(value));
321
- return;
322
- }
323
- if (attrValue.type === 'raw') {
324
- HASTUtils.addAttributeToNode(htmlNode, attrKey, attrValue.content);
325
- return;
326
- }
327
- if (typeof attrValue.content === 'boolean') {
328
- HASTUtils.addBooleanAttributeToNode(htmlNode, attrKey);
329
- return;
330
- }
331
- else if (typeof attrValue.content === 'string' || typeof attrValue.content === 'number') {
332
- HASTUtils.addAttributeToNode(htmlNode, attrKey, StringUtils.encode(String(attrValue.content)));
333
- return;
428
+ var type = attrValue.type, content = attrValue.content;
429
+ switch (type) {
430
+ case 'static': {
431
+ if (attrKey === 'href' && typeof content === 'string' && content.startsWith('/')) {
432
+ var targetLink = void 0;
433
+ var targetRoute = ((routeDefinitions === null || routeDefinitions === void 0 ? void 0 : routeDefinitions.values) || []).find(function (route) { return route.pageOptions.navLink === content; });
434
+ if (targetRoute) {
435
+ targetLink = targetRoute.pageOptions.navLink;
436
+ }
437
+ if (!targetRoute && content === '/home') {
438
+ targetLink = '/';
439
+ }
440
+ if (!targetLink && !targetRoute) {
441
+ targetLink = content;
442
+ }
443
+ var currentPageRoute = join.apply(void 0, __spreadArray(__spreadArray([], ((outputOptions === null || outputOptions === void 0 ? void 0 : outputOptions.folderPath) || []), false), ['./'], false));
444
+ var localPrefix = relative("/".concat(currentPageRoute), "/".concat(targetLink === '/' ? 'index' : targetLink));
445
+ HASTUtils.addAttributeToNode(htmlNode, attrKey, "".concat(localPrefix, ".html"));
446
+ break;
447
+ }
448
+ if (typeof content === 'boolean') {
449
+ htmlNode.properties[attrKey] = content === true ? 'true' : 'false';
450
+ }
451
+ else if (typeof content === 'string' || typeof attrValue.content === 'number') {
452
+ var value = StringUtils.encode(String(attrValue.content));
453
+ /*
454
+ elementType of image is always mapped to img.
455
+ For reference, check `html-mapping` file.
456
+ */
457
+ if (elementType === 'img' && attrKey === 'src' && !isValidURL(value)) {
458
+ /*
459
+ By default we just prefix all the asset paths with just the
460
+ assetPrefix that is configured in the project. But for `html` generators
461
+ we need to prefix that with the current file location.
462
+
463
+ Because, all the other frameworks have a build setup. which serves all the
464
+ assets from the `public` folder. But in the case of `html` here is how it works
465
+
466
+ We load a file from `index.html` the request for the image goes from
467
+ '...url.../public/...image...'
468
+ If it's a nested url, then the request goes from
469
+ '...url/nested/public/...image..'
470
+
471
+ But the nested folder is available only on the root. With this
472
+ The url changes prefixes to
473
+
474
+ ../public/playground_assets/..image.. etc depending on the dept the file is in.
475
+ */
476
+ value = join(relative(join.apply(void 0, outputOptions.folderPath), './'), value);
477
+ }
478
+ HASTUtils.addAttributeToNode(htmlNode, attrKey, value);
479
+ }
480
+ break;
481
+ }
482
+ case 'dynamic': {
483
+ var value = getValueFromReference(content.id, content.referenceType === 'prop' ? propDefinitions : stateDefinitions);
484
+ HASTUtils.addAttributeToNode(htmlNode, attrKey, String(value.defaultValue));
485
+ break;
486
+ }
487
+ case 'raw': {
488
+ HASTUtils.addAttributeToNode(htmlNode, attrKey, content);
489
+ break;
490
+ }
491
+ case 'element':
492
+ case 'import':
493
+ case 'expr':
494
+ break;
495
+ default: {
496
+ throw new HTMLComponentGeneratorError("Received ".concat(JSON.stringify(attrValue, null, 2), " \n in handleAttributes for html"));
497
+ }
334
498
  }
335
- });
499
+ };
500
+ for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {
501
+ var attrKey = _a[_i];
502
+ _loop_1(attrKey);
503
+ }
336
504
  };
337
505
  var getValueFromReference = function (key, definitions) {
338
506
  var usedReferenceValue = definitions[key.includes('.') ? key.split('.')[0] : key];
339
507
  if (!usedReferenceValue) {
340
508
  throw new HTMLComponentGeneratorError("Definition for ".concat(key, " is missing from ").concat(JSON.stringify(definitions, null, 2)));
341
509
  }
342
- if (!usedReferenceValue.hasOwnProperty('defaultValue')) {
343
- throw new HTMLComponentGeneratorError("Default value is missing from dynamic reference - ".concat(JSON.stringify(usedReferenceValue, null, 2)));
344
- }
345
- if (!['string', 'number', 'object'].includes(usedReferenceValue === null || usedReferenceValue === void 0 ? void 0 : usedReferenceValue.type)) {
510
+ if (['string', 'number', 'object', 'element'].includes(usedReferenceValue === null || usedReferenceValue === void 0 ? void 0 : usedReferenceValue.type) === false) {
346
511
  throw new HTMLComponentGeneratorError("Attribute is using dynamic value, but received of type ".concat(JSON.stringify(usedReferenceValue, null, 2)));
347
512
  }
348
- return String(usedReferenceValue.defaultValue);
513
+ if (usedReferenceValue.type !== 'element' &&
514
+ usedReferenceValue.hasOwnProperty('defaultValue') === false) {
515
+ throw new HTMLComponentGeneratorError("Default value is missing from dynamic reference - ".concat(JSON.stringify(usedReferenceValue, null, 2)));
516
+ }
517
+ return usedReferenceValue;
349
518
  };
350
519
  //# 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":"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"}