@teleporthq/teleport-plugin-html-base-component 0.34.0-alpha.0 → 0.34.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,75 +56,106 @@ 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");
65
66
  var constants_1 = require("./constants");
66
- var generateHtmlSynatx = function (node, templatesLookUp, propDefinitions, stateDefinitions, externals, 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, externals, routeDefinitions, structure)];
78
- case 'dynamic':
79
- return [2 /*return*/, generateDynamicNode(node, templatesLookUp, propDefinitions, stateDefinitions, externals, routeDefinitions, structure)];
80
- default:
81
- throw new teleport_types_1.HTMLComponentGeneratorError("generateHtmlSyntax encountered a node of unsupported type: ".concat(JSON.stringify(node, null, 2), " "));
67
+ var isValidURL = function (url) {
68
+ try {
69
+ /* tslint:disable:no-unused-expression */
70
+ new URL(url);
71
+ return true;
72
+ }
73
+ catch (error) {
74
+ return false;
75
+ }
76
+ };
77
+ var generateHtmlSyntax = function (node, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
78
+ var _a, elementNode, dynamicNode;
79
+ return __generator(this, function (_b) {
80
+ switch (_b.label) {
81
+ case 0:
82
+ _a = node.type;
83
+ switch (_a) {
84
+ case 'inject': return [3 /*break*/, 1];
85
+ case 'raw': return [3 /*break*/, 1];
86
+ case 'static': return [3 /*break*/, 2];
87
+ case 'slot': return [3 /*break*/, 3];
88
+ case 'element': return [3 /*break*/, 4];
89
+ case 'dynamic': return [3 /*break*/, 6];
90
+ }
91
+ return [3 /*break*/, 8];
92
+ case 1: return [2 /*return*/, teleport_plugin_common_1.HASTBuilders.createTextNode(node.content.toString())];
93
+ case 2: return [2 /*return*/, teleport_plugin_common_1.HASTBuilders.createTextNode(teleport_shared_1.StringUtils.encode(node.content.toString()))];
94
+ case 3: return [2 /*return*/, teleport_plugin_common_1.HASTBuilders.createHTMLNode(node.type)];
95
+ case 4: return [4 /*yield*/, generateElementNode(node, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
96
+ case 5:
97
+ elementNode = _b.sent();
98
+ return [2 /*return*/, elementNode];
99
+ case 6: return [4 /*yield*/, generateDynamicNode(node, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
100
+ case 7:
101
+ dynamicNode = _b.sent();
102
+ return [2 /*return*/, dynamicNode];
103
+ case 8: throw new teleport_types_1.HTMLComponentGeneratorError("generateHtmlSyntax encountered a node of unsupported type: ".concat(JSON.stringify(node, null, 2), " "));
82
104
  }
83
- return [2 /*return*/];
84
105
  });
85
106
  }); };
86
- exports.generateHtmlSynatx = generateHtmlSynatx;
87
- var generatElementNode = function (node, templatesLookUp, propDefinitions, stateDefinitions, externals, 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;
89
- return __generator(this, function (_e) {
90
- switch (_e.label) {
107
+ exports.generateHtmlSyntax = generateHtmlSyntax;
108
+ var generateElementNode = function (node, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
109
+ var _a, elementType, children, _b, attrs, _c, style, _d, referencedStyles, dependency, key, dependencies, _i, _e, attrKey, attr, compTag, elementNode, _f, children_1, child, childTag;
110
+ return __generator(this, function (_g) {
111
+ switch (_g.label) {
91
112
  case 0:
92
113
  _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;
95
114
  dependencies = structure.dependencies;
96
115
  if (dependency && (dependency === null || dependency === void 0 ? void 0 : dependency.type) !== 'local') {
97
116
  dependencies[dependency.path] = dependency;
98
117
  }
99
- if (!(dependency && (dependency === null || dependency === void 0 ? void 0 : dependency.type) === 'local')) return [3 /*break*/, 2];
100
- return [4 /*yield*/, generateComponentContent(node, propDefinitions, stateDefinitions, externals, routeDefinitions, structure)];
118
+ if (!(dependency && (dependency === null || dependency === void 0 ? void 0 : dependency.type) === 'local')) return [3 /*break*/, 6];
119
+ _i = 0, _e = Object.keys(attrs);
120
+ _g.label = 1;
101
121
  case 1:
102
- compTag = _e.sent();
103
- return [2 /*return*/, compTag];
122
+ if (!(_i < _e.length)) return [3 /*break*/, 4];
123
+ attrKey = _e[_i];
124
+ attr = attrs[attrKey];
125
+ if (!(attr.type === 'element')) return [3 /*break*/, 3];
126
+ return [4 /*yield*/, generateElementNode(attr, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
104
127
  case 2:
105
- if (!children) return [3 /*break*/, 6];
106
- _i = 0, children_1 = children;
107
- _e.label = 3;
128
+ _g.sent();
129
+ _g.label = 3;
108
130
  case 3:
109
- if (!(_i < children_1.length)) return [3 /*break*/, 6];
110
- child = children_1[_i];
111
- return [4 /*yield*/, (0, exports.generateHtmlSynatx)(child, templatesLookUp, propDefinitions, stateDefinitions, externals, routeDefinitions, structure)];
112
- case 4:
113
- childTag = _e.sent();
114
- if (!childTag) {
115
- return [2 /*return*/];
116
- }
131
+ _i++;
132
+ return [3 /*break*/, 1];
133
+ case 4: return [4 /*yield*/, generateComponentContent(node, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
134
+ case 5:
135
+ compTag = _g.sent();
136
+ return [2 /*return*/, compTag];
137
+ case 6:
138
+ elementNode = teleport_plugin_common_1.HASTBuilders.createHTMLNode(elementType);
139
+ if (!children) return [3 /*break*/, 10];
140
+ _f = 0, children_1 = children;
141
+ _g.label = 7;
142
+ case 7:
143
+ if (!(_f < children_1.length)) return [3 /*break*/, 10];
144
+ child = children_1[_f];
145
+ return [4 /*yield*/, (0, exports.generateHtmlSyntax)(child, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
146
+ case 8:
147
+ childTag = _g.sent();
117
148
  if (typeof childTag === 'string') {
118
149
  teleport_plugin_common_1.HASTUtils.addTextNode(elementNode, childTag);
119
150
  }
120
151
  else {
121
152
  teleport_plugin_common_1.HASTUtils.addChildNode(elementNode, childTag);
122
153
  }
123
- _e.label = 5;
124
- case 5:
125
- _i++;
126
- return [3 /*break*/, 3];
127
- case 6:
154
+ _g.label = 9;
155
+ case 9:
156
+ _f++;
157
+ return [3 /*break*/, 7];
158
+ case 10:
128
159
  if (Object.keys(referencedStyles).length > 0) {
129
160
  Object.keys(referencedStyles).forEach(function (styleRef) {
130
161
  var refStyle = referencedStyles[styleRef];
@@ -137,30 +168,31 @@ var generatElementNode = function (node, templatesLookUp, propDefinitions, state
137
168
  if (Object.keys(style).length > 0) {
138
169
  handleStyles(node, style, propDefinitions, stateDefinitions);
139
170
  }
140
- if (Object.keys(attrs).length > 0) {
141
- handleAttributes(elementNode, attrs, propDefinitions, stateDefinitions, routeDefinitions);
142
- }
171
+ handleAttributes(elementType, elementNode, attrs, propDefinitions, stateDefinitions, structure.options.projectRouteDefinition, structure.outputOptions);
172
+ nodesLookup[key] = elementNode;
143
173
  return [2 /*return*/, elementNode];
144
174
  }
145
175
  });
146
176
  }); };
147
- var generateComponentContent = function (node, propDefinitions, stateDefinitions, externals, routeDefinitions, structure) { return __awaiter(void 0, void 0, void 0, function () {
148
- var _a, elementType, _b, attrs, key, _c, children, dependencies, chunks, options, comp, lookUpTemplates, compHasSlots, combinedProps, propsForInstance, combinedStates, statesForInstance, elementNode, compTag, cssPlugin, result, chunk, styleChunk;
149
- var _d;
150
- return __generator(this, function (_e) {
151
- switch (_e.label) {
177
+ var generateComponentContent = function (node, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
178
+ var externals, plugins, _a, elementType, _b, attrs, key, _c, children, dependencies, _d, chunks, options, compName, component, componentClone, compHasSlots, combinedProps, propsForInstance, _i, _e, propKey, combinedStates, statesForInstance, componentWrapper, isExistingNode, componentInstanceToGenerate, compTag, cssPlugin, initialStructure, result, chunk, styleChunk;
179
+ var _f, _g, _h;
180
+ return __generator(this, function (_j) {
181
+ switch (_j.label) {
152
182
  case 0:
183
+ externals = subComponentOptions.externals, plugins = subComponentOptions.plugins;
153
184
  _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;
154
- dependencies = structure.dependencies, chunks = structure.chunks, options = structure.options;
155
- comp = teleport_shared_1.UIDLUtils.cloneObject(externals[elementType] || {});
156
- lookUpTemplates = {};
157
- compHasSlots = false;
158
- if (!comp || !(comp === null || comp === void 0 ? void 0 : comp.node)) {
159
- 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)));
185
+ dependencies = structure.dependencies, _d = structure.chunks, chunks = _d === void 0 ? [] : _d, options = structure.options;
186
+ compName = elementType === 'Component' ? 'AppComponent' : elementType;
187
+ component = externals[compName];
188
+ if (component === undefined) {
189
+ throw new teleport_types_1.HTMLComponentGeneratorError("".concat(compName, " is missing from externals object"));
160
190
  }
191
+ componentClone = teleport_shared_1.UIDLUtils.cloneObject(component);
192
+ compHasSlots = false;
161
193
  if (children.length) {
162
194
  compHasSlots = true;
163
- teleport_shared_1.UIDLUtils.traverseNodes(comp.node, function (childNode, parentNode) {
195
+ teleport_shared_1.UIDLUtils.traverseNodes(componentClone.node, function (childNode, parentNode) {
164
196
  var _a, _b;
165
197
  if (childNode.type === 'slot' && parentNode.type === 'element') {
166
198
  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'; });
@@ -188,18 +220,22 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
188
220
  */
189
221
  node.content.children = [];
190
222
  }
191
- combinedProps = __assign(__assign({}, propDefinitions), ((comp === null || comp === void 0 ? void 0 : comp.propDefinitions) || {}));
192
- propsForInstance = Object.keys(combinedProps).reduce(function (acc, propKey) {
193
- var _a, _b;
194
- if (attrs[propKey]) {
195
- 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) });
223
+ combinedProps = __assign(__assign({}, propDefinitions), ((componentClone === null || componentClone === void 0 ? void 0 : componentClone.propDefinitions) || {}));
224
+ propsForInstance = {};
225
+ for (_i = 0, _e = Object.keys(combinedProps); _i < _e.length; _i++) {
226
+ propKey = _e[_i];
227
+ // If the attribute is a named-slot, then we can directly pass the value instead of just the content
228
+ if (((_f = attrs[propKey]) === null || _f === void 0 ? void 0 : _f.type) === 'element') {
229
+ propsForInstance[propKey] = __assign(__assign({}, combinedProps[propKey]), { defaultValue: attrs[propKey] });
230
+ }
231
+ else if (attrs[propKey]) {
232
+ propsForInstance[propKey] = __assign(__assign({}, combinedProps[propKey]), { defaultValue: ((_g = attrs[propKey]) === null || _g === void 0 ? void 0 : _g.content) || ((_h = combinedProps[propKey]) === null || _h === void 0 ? void 0 : _h.defaultValue) });
196
233
  }
197
234
  else {
198
- acc[propKey] = combinedProps[propKey];
235
+ propsForInstance[propKey] = combinedProps[propKey];
199
236
  }
200
- return acc;
201
- }, {});
202
- combinedStates = __assign(__assign({}, stateDefinitions), ((comp === null || comp === void 0 ? void 0 : comp.stateDefinitions) || {}));
237
+ }
238
+ combinedStates = __assign(__assign({}, stateDefinitions), ((componentClone === null || componentClone === void 0 ? void 0 : componentClone.stateDefinitions) || {}));
203
239
  statesForInstance = Object.keys(combinedStates).reduce(function (acc, propKey) {
204
240
  var _a, _b;
205
241
  if (attrs[propKey]) {
@@ -210,41 +246,66 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
210
246
  }
211
247
  return acc;
212
248
  }, {});
213
- elementNode = teleport_plugin_common_1.HASTBuilders.createHTMLNode(teleport_shared_1.StringUtils.camelCaseToDashCase(elementType));
214
- lookUpTemplates[key] = elementNode;
215
- return [4 /*yield*/, (0, exports.generateHtmlSynatx)(__assign(__assign({}, comp.node), { content: __assign(__assign({}, comp.node.content), { style: __assign(__assign({}, (((_d = comp.node.content) === null || _d === void 0 ? void 0 : _d.style) || {})), { display: {
216
- type: 'static',
217
- content: 'contents',
218
- } }) }) }), lookUpTemplates, propsForInstance, statesForInstance, externals, routeDefinitions, structure)];
249
+ componentWrapper = teleport_shared_1.StringUtils.camelCaseToDashCase("".concat(compName, "-wrapper"));
250
+ isExistingNode = nodesLookup[componentWrapper];
251
+ if (isExistingNode !== undefined) {
252
+ componentWrapper = "".concat(componentWrapper, "-").concat(teleport_shared_1.StringUtils.generateRandomString());
253
+ }
254
+ componentInstanceToGenerate = {
255
+ type: 'element',
256
+ content: {
257
+ elementType: componentWrapper,
258
+ key: componentWrapper,
259
+ children: [componentClone.node],
260
+ style: {
261
+ display: {
262
+ type: 'static',
263
+ content: 'contents',
264
+ },
265
+ },
266
+ },
267
+ };
268
+ return [4 /*yield*/, (0, exports.generateHtmlSyntax)(componentInstanceToGenerate, nodesLookup, propsForInstance, statesForInstance, subComponentOptions, structure)];
219
269
  case 1:
220
- compTag = (_e.sent());
270
+ compTag = _j.sent();
221
271
  cssPlugin = (0, teleport_plugin_css_1.createCSSPlugin)({
222
272
  templateStyle: 'html',
223
- templateChunkName: 'html-template',
273
+ templateChunkName: constants_1.DEFAULT_COMPONENT_CHUNK_NAME,
224
274
  declareDependency: 'import',
225
275
  forceScoping: true,
226
- chunkName: comp.name,
276
+ chunkName: componentClone.name,
227
277
  staticPropReferences: true,
228
278
  });
229
- return [4 /*yield*/, cssPlugin({
230
- uidl: __assign(__assign({}, comp), { propDefinitions: propsForInstance, stateDefinitions: statesForInstance }),
231
- chunks: [
232
- {
233
- type: teleport_types_1.ChunkType.HAST,
234
- fileType: teleport_types_1.FileType.HTML,
235
- name: constants_1.DEFAULT_COMPONENT_CHUNK_NAME,
236
- linkAfter: [],
237
- content: compTag,
238
- meta: {
239
- nodesLookup: lookUpTemplates,
240
- },
279
+ initialStructure = {
280
+ uidl: __assign(__assign({}, componentClone), { propDefinitions: propsForInstance, stateDefinitions: statesForInstance }),
281
+ chunks: [
282
+ {
283
+ type: teleport_types_1.ChunkType.HAST,
284
+ fileType: teleport_types_1.FileType.HTML,
285
+ name: constants_1.DEFAULT_COMPONENT_CHUNK_NAME,
286
+ linkAfter: [],
287
+ content: compTag,
288
+ meta: {
289
+ nodesLookup: nodesLookup,
241
290
  },
242
- ],
243
- dependencies: dependencies,
244
- options: options,
245
- })];
291
+ },
292
+ ],
293
+ dependencies: dependencies,
294
+ options: options,
295
+ };
296
+ return [4 /*yield*/, __spreadArray([cssPlugin], plugins, true).reduce(function (previousPluginOperation, plugin) { return __awaiter(void 0, void 0, void 0, function () {
297
+ var modifiedStructure;
298
+ return __generator(this, function (_a) {
299
+ switch (_a.label) {
300
+ case 0: return [4 /*yield*/, previousPluginOperation];
301
+ case 1:
302
+ modifiedStructure = _a.sent();
303
+ return [2 /*return*/, plugin(modifiedStructure)];
304
+ }
305
+ });
306
+ }); }, Promise.resolve(initialStructure))];
246
307
  case 2:
247
- result = _e.sent();
308
+ result = _j.sent();
248
309
  if (compHasSlots) {
249
310
  result.chunks.forEach(function (chunk) {
250
311
  if (chunk.fileType === teleport_types_1.FileType.CSS) {
@@ -253,87 +314,149 @@ var generateComponentContent = function (node, propDefinitions, stateDefinitions
253
314
  });
254
315
  }
255
316
  else {
256
- chunk = chunks.find(function (item) { return item.name === comp.name; });
317
+ chunk = chunks.find(function (item) { return item.name === componentClone.name; });
257
318
  if (!chunk) {
258
- styleChunk = result.chunks.find(function (item) { return item.name === comp.name; });
319
+ styleChunk = result.chunks.find(function (item) { return item.fileType === teleport_types_1.FileType.CSS; });
320
+ if (!styleChunk) {
321
+ return [2 /*return*/];
322
+ }
259
323
  chunks.push(styleChunk);
260
324
  }
261
325
  }
326
+ nodesLookup[key] = compTag;
262
327
  return [2 /*return*/, compTag];
263
328
  }
264
329
  });
265
330
  }); };
266
- var generateDynamicNode = function (node, _, propDefinitions, stateDefinitions) {
267
- var spanTag = teleport_plugin_common_1.HASTBuilders.createHTMLNode('span');
268
- var usedReferenceValue = node.content.referenceType === 'prop'
269
- ? getValueFromReference(node.content.id, propDefinitions)
270
- : getValueFromReference(node.content.id, stateDefinitions);
271
- teleport_plugin_common_1.HASTUtils.addTextNode(spanTag, String(usedReferenceValue));
272
- return spanTag;
273
- };
331
+ var generateDynamicNode = function (node, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure) { return __awaiter(void 0, void 0, void 0, function () {
332
+ var usedReferenceValue, slotNode, spanTagWrapper, commentNode, spanTag;
333
+ return __generator(this, function (_a) {
334
+ switch (_a.label) {
335
+ case 0:
336
+ usedReferenceValue = getValueFromReference(node.content.id, node.content.referenceType === 'prop' ? propDefinitions : stateDefinitions);
337
+ if (!(usedReferenceValue.type === 'element' && usedReferenceValue.defaultValue)) return [3 /*break*/, 2];
338
+ return [4 /*yield*/, generateElementNode(usedReferenceValue.defaultValue, nodesLookup, propDefinitions, stateDefinitions, subComponentOptions, structure)];
339
+ case 1:
340
+ slotNode = _a.sent();
341
+ return [2 /*return*/, slotNode];
342
+ case 2:
343
+ if (usedReferenceValue.type === 'element' && usedReferenceValue.defaultValue === undefined) {
344
+ spanTagWrapper = teleport_plugin_common_1.HASTBuilders.createHTMLNode('span');
345
+ commentNode = teleport_plugin_common_1.HASTBuilders.createComment("Content for slot ".concat(node.content.id));
346
+ teleport_plugin_common_1.HASTUtils.addChildNode(spanTagWrapper, commentNode);
347
+ return [2 /*return*/, spanTagWrapper];
348
+ }
349
+ spanTag = teleport_plugin_common_1.HASTBuilders.createHTMLNode('span');
350
+ teleport_plugin_common_1.HASTUtils.addTextNode(spanTag, String(usedReferenceValue.defaultValue));
351
+ return [2 /*return*/, spanTag];
352
+ }
353
+ });
354
+ }); };
274
355
  var handleStyles = function (node, styles, propDefinitions, stateDefinitions) {
275
356
  Object.keys(styles).forEach(function (styleKey) {
276
357
  var _a;
277
358
  var style = styles[styleKey];
278
359
  if (style.type === 'dynamic' && ((_a = style.content) === null || _a === void 0 ? void 0 : _a.referenceType) !== 'token') {
279
- if (style.content.referenceType === 'prop') {
280
- style = getValueFromReference(style.content.id, propDefinitions);
281
- }
282
- else if (style.content.referenceType === 'state') {
283
- style = getValueFromReference(style.content.id, stateDefinitions);
360
+ var referencedValue = getValueFromReference(style.content.id, style.content.referenceType === 'prop' ? propDefinitions : stateDefinitions);
361
+ if (referencedValue.type === 'string' || referencedValue.type === 'number') {
362
+ style = String(referencedValue.defaultValue);
284
363
  }
285
364
  node.content.style[styleKey] = typeof style === 'string' ? (0, teleport_uidl_builders_1.staticNode)(style) : style;
286
365
  }
287
366
  });
288
367
  };
289
- var handleAttributes = function (htmlNode, attrs, propDefinitions, stateDefinitions, routeDefinitions) {
290
- Object.keys(attrs).forEach(function (attrKey) {
368
+ var handleAttributes = function (elementType, htmlNode, attrs, propDefinitions, stateDefinitions, routeDefinitions, outputOptions) {
369
+ var _loop_1 = function (attrKey) {
291
370
  var attrValue = attrs[attrKey];
292
- if (attrKey === 'href' &&
293
- attrValue.type === 'static' &&
294
- typeof attrValue.content === 'string' &&
295
- attrValue.content.startsWith('/')) {
296
- attrValue =
297
- attrValue.content === '/' ||
298
- attrValue.content ===
299
- "/".concat(teleport_shared_1.StringUtils.camelCaseToDashCase(teleport_shared_1.StringUtils.removeIllegalCharacters((routeDefinitions === null || routeDefinitions === void 0 ? void 0 : routeDefinitions.defaultValue) || '')))
300
- ? (0, teleport_uidl_builders_1.staticNode)('index.html')
301
- : (0, teleport_uidl_builders_1.staticNode)("".concat(attrValue.content.split('/').pop(), ".html"));
302
- teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, String(attrValue.content));
303
- return;
304
- }
305
- if (attrValue.type === 'dynamic') {
306
- var value = attrValue.content.referenceType === 'prop'
307
- ? getValueFromReference(attrValue.content.id, propDefinitions)
308
- : getValueFromReference(attrValue.content.id, stateDefinitions);
309
- teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, String(value));
310
- return;
311
- }
312
- if (attrValue.type === 'raw') {
313
- teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, attrValue.content);
314
- return;
315
- }
316
- if (typeof attrValue.content === 'boolean') {
317
- teleport_plugin_common_1.HASTUtils.addBooleanAttributeToNode(htmlNode, attrKey);
318
- return;
319
- }
320
- else if (typeof attrValue.content === 'string' || typeof attrValue.content === 'number') {
321
- teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, teleport_shared_1.StringUtils.encode(String(attrValue.content)));
322
- return;
371
+ var type = attrValue.type, content = attrValue.content;
372
+ switch (type) {
373
+ case 'static': {
374
+ if (attrKey === 'href' && typeof content === 'string' && content.startsWith('/')) {
375
+ var targetLink = void 0;
376
+ var targetRoute = ((routeDefinitions === null || routeDefinitions === void 0 ? void 0 : routeDefinitions.values) || []).find(function (route) { return route.pageOptions.navLink === content; });
377
+ if (targetRoute) {
378
+ targetLink = targetRoute.pageOptions.navLink;
379
+ }
380
+ if (!targetRoute && content === '/home') {
381
+ targetLink = '/';
382
+ }
383
+ if (!targetLink && !targetRoute) {
384
+ targetLink = content;
385
+ }
386
+ var currentPageRoute = path_1.join.apply(void 0, __spreadArray(__spreadArray([], ((outputOptions === null || outputOptions === void 0 ? void 0 : outputOptions.folderPath) || []), false), ['./'], false));
387
+ var localPrefix = (0, path_1.relative)("/".concat(currentPageRoute), "/".concat(targetLink === '/' ? 'index' : targetLink));
388
+ teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, "".concat(localPrefix, ".html"));
389
+ break;
390
+ }
391
+ if (typeof content === 'boolean') {
392
+ htmlNode.properties[attrKey] = content === true ? 'true' : 'false';
393
+ }
394
+ else if (typeof content === 'string' || typeof attrValue.content === 'number') {
395
+ var value = teleport_shared_1.StringUtils.encode(String(attrValue.content));
396
+ /*
397
+ elementType of image is always mapped to img.
398
+ For reference, check `html-mapping` file.
399
+ */
400
+ if (elementType === 'img' && attrKey === 'src' && !isValidURL(value)) {
401
+ /*
402
+ By default we just prefix all the asset paths with just the
403
+ assetPrefix that is configured in the project. But for `html` generators
404
+ we need to prefix that with the current file location.
405
+
406
+ Because, all the other frameworks have a build setup. which serves all the
407
+ assets from the `public` folder. But in the case of `html` here is how it works
408
+
409
+ We load a file from `index.html` the request for the image goes from
410
+ '...url.../public/...image...'
411
+ If it's a nested url, then the request goes from
412
+ '...url/nested/public/...image..'
413
+
414
+ But the nested folder is available only on the root. With this
415
+ The url changes prefixes to
416
+
417
+ ../public/playground_assets/..image.. etc depending on the dept the file is in.
418
+ */
419
+ value = (0, path_1.join)((0, path_1.relative)(path_1.join.apply(void 0, outputOptions.folderPath), './'), value);
420
+ }
421
+ teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, value);
422
+ }
423
+ break;
424
+ }
425
+ case 'dynamic': {
426
+ var value = getValueFromReference(content.id, content.referenceType === 'prop' ? propDefinitions : stateDefinitions);
427
+ teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, String(value.defaultValue));
428
+ break;
429
+ }
430
+ case 'raw': {
431
+ teleport_plugin_common_1.HASTUtils.addAttributeToNode(htmlNode, attrKey, content);
432
+ break;
433
+ }
434
+ case 'element':
435
+ case 'import':
436
+ case 'expr':
437
+ break;
438
+ default: {
439
+ throw new teleport_types_1.HTMLComponentGeneratorError("Received ".concat(JSON.stringify(attrValue, null, 2), " \n in handleAttributes for html"));
440
+ }
323
441
  }
324
- });
442
+ };
443
+ for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {
444
+ var attrKey = _a[_i];
445
+ _loop_1(attrKey);
446
+ }
325
447
  };
326
448
  var getValueFromReference = function (key, definitions) {
327
449
  var usedReferenceValue = definitions[key.includes('.') ? key.split('.')[0] : key];
328
450
  if (!usedReferenceValue) {
329
451
  throw new teleport_types_1.HTMLComponentGeneratorError("Definition for ".concat(key, " is missing from ").concat(JSON.stringify(definitions, null, 2)));
330
452
  }
331
- if (!usedReferenceValue.hasOwnProperty('defaultValue')) {
332
- throw new teleport_types_1.HTMLComponentGeneratorError("Default value is missing from dynamic reference - ".concat(JSON.stringify(usedReferenceValue, null, 2)));
333
- }
334
- if (!['string', 'number', 'object'].includes(usedReferenceValue === null || usedReferenceValue === void 0 ? void 0 : usedReferenceValue.type)) {
453
+ if (['string', 'number', 'object', 'element'].includes(usedReferenceValue === null || usedReferenceValue === void 0 ? void 0 : usedReferenceValue.type) === false) {
335
454
  throw new teleport_types_1.HTMLComponentGeneratorError("Attribute is using dynamic value, but received of type ".concat(JSON.stringify(usedReferenceValue, null, 2)));
336
455
  }
337
- return String(usedReferenceValue.defaultValue);
456
+ if (usedReferenceValue.type !== 'element' &&
457
+ usedReferenceValue.hasOwnProperty('defaultValue') === false) {
458
+ throw new teleport_types_1.HTMLComponentGeneratorError("Default value is missing from dynamic reference - ".concat(JSON.stringify(usedReferenceValue, null, 2)));
459
+ }
460
+ return usedReferenceValue;
338
461
  };
339
462
  //# 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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"}