@lwc/template-compiler 2.7.1 → 2.7.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.
Files changed (45) hide show
  1. package/dist/commonjs/codegen/codegen.js +3 -73
  2. package/dist/commonjs/codegen/codegen.js.map +1 -1
  3. package/dist/commonjs/codegen/helpers.js +20 -34
  4. package/dist/commonjs/codegen/helpers.js.map +1 -1
  5. package/dist/commonjs/codegen/index.js +192 -183
  6. package/dist/commonjs/codegen/index.js.map +1 -1
  7. package/dist/commonjs/codegen/scope.js +61 -0
  8. package/dist/commonjs/codegen/scope.js.map +1 -0
  9. package/dist/commonjs/index.js +5 -12
  10. package/dist/commonjs/index.js.map +1 -1
  11. package/dist/commonjs/parser/attribute.js +3 -3
  12. package/dist/commonjs/parser/attribute.js.map +1 -1
  13. package/dist/commonjs/parser/constants.js +7 -1
  14. package/dist/commonjs/parser/constants.js.map +1 -1
  15. package/dist/commonjs/parser/expression.js +2 -5
  16. package/dist/commonjs/parser/expression.js.map +1 -1
  17. package/dist/commonjs/parser/html.js +1 -2
  18. package/dist/commonjs/parser/html.js.map +1 -1
  19. package/dist/commonjs/parser/index.js +337 -355
  20. package/dist/commonjs/parser/index.js.map +1 -1
  21. package/dist/commonjs/parser/parser.js +30 -85
  22. package/dist/commonjs/parser/parser.js.map +1 -1
  23. package/dist/commonjs/shared/ir.js +90 -0
  24. package/dist/commonjs/shared/ir.js.map +1 -0
  25. package/dist/commonjs/shared/parse5.js +15 -1
  26. package/dist/commonjs/shared/parse5.js.map +1 -1
  27. package/dist/commonjs/shared/types.js +7 -1
  28. package/dist/commonjs/shared/types.js.map +1 -1
  29. package/dist/types/codegen/codegen.d.ts +3 -25
  30. package/dist/types/codegen/helpers.d.ts +5 -11
  31. package/dist/types/codegen/index.d.ts +2 -2
  32. package/dist/types/codegen/scope.d.ts +8 -0
  33. package/dist/types/index.d.ts +2 -1
  34. package/dist/types/parser/attribute.d.ts +7 -7
  35. package/dist/types/parser/constants.d.ts +6 -0
  36. package/dist/types/parser/expression.d.ts +4 -3
  37. package/dist/types/parser/parser.d.ts +28 -57
  38. package/dist/types/shared/estree.d.ts +2 -0
  39. package/dist/types/shared/ir.d.ts +15 -0
  40. package/dist/types/shared/parse5.d.ts +1 -0
  41. package/dist/types/shared/types.d.ts +86 -129
  42. package/package.json +5 -5
  43. package/dist/commonjs/shared/ast.js +0 -303
  44. package/dist/commonjs/shared/ast.js.map +0 -1
  45. package/dist/types/shared/ast.d.ts +0 -45
@@ -31,9 +31,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
31
31
  const astring = __importStar(require("astring"));
32
32
  const shared_1 = require("@lwc/shared");
33
33
  const errors_1 = require("@lwc/errors");
34
- const ast_1 = require("../shared/ast");
34
+ const ir_1 = require("../shared/ir");
35
35
  const constants_1 = require("../shared/constants");
36
+ const types_1 = require("../shared/types");
36
37
  const codegen_1 = __importDefault(require("./codegen"));
38
+ const scope_1 = require("./scope");
37
39
  const helpers_1 = require("./helpers");
38
40
  const module_1 = require("./formatters/module");
39
41
  const function_1 = require("./formatters/function");
@@ -41,32 +43,54 @@ const t = __importStar(require("../shared/estree"));
41
43
  const attribute_1 = require("../parser/attribute");
42
44
  const constants_2 = require("../parser/constants");
43
45
  function transform(codeGen) {
46
+ const parentStack = [];
44
47
  function transformElement(element) {
45
48
  const databag = elementDataBag(element);
46
49
  let res;
47
50
  const children = transformChildren(element);
48
51
  // Check wether it has the special directive lwc:dynamic
49
- const { name } = element;
50
- const dynamic = element.directives.find(ast_1.isDynamicDirective);
51
- if (dynamic) {
52
- const expression = codeGen.bindExpression(dynamic.value);
53
- res = codeGen.genDynamicElement(name, expression, databag, children);
52
+ if (element.lwc && element.lwc.dynamic) {
53
+ const expression = (0, scope_1.bindExpression)(element.lwc.dynamic, element, parentStack);
54
+ res = codeGen.genDynamicElement(element.tag, expression, databag, children);
54
55
  }
55
- else if ((0, ast_1.isComponent)(element)) {
56
- res = codeGen.genCustomElement(name, (0, helpers_1.identifierFromComponentName)(name), databag, children);
56
+ else if ((0, ir_1.isCustomElement)(element)) {
57
+ // Make sure to register the component
58
+ const componentClassName = element.component;
59
+ res = codeGen.genCustomElement(element.tag, (0, helpers_1.identifierFromComponentName)(componentClassName), databag, children);
57
60
  }
58
- else if ((0, ast_1.isSlot)(element)) {
61
+ else if ((0, ir_1.isSlot)(element)) {
59
62
  const defaultSlot = children;
60
63
  res = codeGen.getSlot(element.slotName, databag, defaultSlot);
61
64
  }
62
65
  else {
63
- res = codeGen.genElement(name, databag, children);
66
+ res = codeGen.genElement(element.tag, databag, children);
64
67
  }
68
+ res = applyInlineIf(element, res);
69
+ res = applyInlineFor(element, res);
65
70
  return res;
66
71
  }
72
+ function transformTemplate(element) {
73
+ const children = transformChildren(element);
74
+ let res = applyTemplateIf(element, children);
75
+ if (element.forEach) {
76
+ res = applyTemplateFor(element, res);
77
+ }
78
+ else if (element.forOf) {
79
+ res = applyTemplateForOf(element, res);
80
+ }
81
+ if (t.isArrayExpression(res) && element.if) {
82
+ // The `if` transformation does not use the SpreadElement, neither null, therefore we can safely
83
+ // typecast it to t.Expression[]
84
+ return res.elements;
85
+ }
86
+ else {
87
+ return res;
88
+ }
89
+ }
67
90
  function transformText(consecutiveText) {
68
- return codeGen.genText(consecutiveText.map(({ value }) => {
69
- return (0, ast_1.isStringLiteral)(value) ? value.value : codeGen.bindExpression(value);
91
+ return codeGen.genText(consecutiveText.map((text) => {
92
+ const { value } = text;
93
+ return typeof value === 'string' ? value : (0, scope_1.bindExpression)(value, text, parentStack);
70
94
  }));
71
95
  }
72
96
  function transformComment(comment) {
@@ -77,37 +101,40 @@ function transform(codeGen) {
77
101
  const children = parent.children;
78
102
  const childrenIterator = children[Symbol.iterator]();
79
103
  let current;
104
+ parentStack.push(parent);
80
105
  while ((current = childrenIterator.next()) && !current.done) {
81
106
  let child = current.value;
82
- if ((0, ast_1.isText)(child)) {
107
+ if ((0, ir_1.isTextNode)(child)) {
83
108
  const continuousText = [];
84
109
  // Consume all the contiguous text nodes.
85
110
  do {
86
111
  continuousText.push(child);
87
112
  current = childrenIterator.next();
88
113
  child = current.value;
89
- } while (!current.done && (0, ast_1.isText)(child));
114
+ } while (!current.done && (0, ir_1.isTextNode)(child));
90
115
  res.push(transformText(continuousText));
91
116
  // Early exit if a text node is the last child node.
92
117
  if (current.done) {
93
118
  break;
94
119
  }
95
120
  }
96
- if ((0, ast_1.isForBlock)(child)) {
97
- res.push(transformForBlock(child));
98
- }
99
- else if ((0, ast_1.isIf)(child)) {
100
- const children = transformIf(child);
101
- Array.isArray(children) ? res.push(...children) : res.push(children);
102
- }
103
- else if ((0, ast_1.isBaseElement)(child)) {
104
- res.push(transformElement(child));
121
+ if ((0, ir_1.isElement)(child)) {
122
+ if ((0, ir_1.isTemplate)(child)) {
123
+ const templateChildren = transformTemplate(child);
124
+ Array.isArray(templateChildren)
125
+ ? res.push(...templateChildren)
126
+ : res.push(templateChildren);
127
+ }
128
+ else {
129
+ res.push(transformElement(child));
130
+ }
105
131
  }
106
- else if ((0, ast_1.isComment)(child) && codeGen.preserveComments) {
132
+ if ((0, ir_1.isCommentNode)(child) && codeGen.preserveComments) {
107
133
  res.push(transformComment(child));
108
134
  }
109
135
  }
110
- if ((0, helpers_1.shouldFlatten)(codeGen, children)) {
136
+ parentStack.pop();
137
+ if ((0, helpers_1.shouldFlatten)(children, codeGen)) {
111
138
  if (children.length === 1 && !(0, helpers_1.containsDynamicChildren)(children)) {
112
139
  return res[0];
113
140
  }
@@ -119,33 +146,15 @@ function transform(codeGen) {
119
146
  return t.arrayExpression(res);
120
147
  }
121
148
  }
122
- function transformIf(ifNode) {
123
- const expression = transformChildren(ifNode);
124
- let res;
125
- if (t.isArrayExpression(expression)) {
126
- // Bind the expression once for all the template children
127
- const testExpression = codeGen.bindExpression(ifNode.condition);
128
- res = t.arrayExpression(expression.elements.map((element) => element !== null
129
- ? applyInlineIf(ifNode, element, testExpression)
130
- : null));
131
- }
132
- else {
133
- // If the template has a single children, make sure the ternary expression returns an array
134
- res = applyInlineIf(ifNode, expression, undefined, t.arrayExpression([]));
149
+ function applyInlineIf(element, node, testExpression, falseValue) {
150
+ if (!element.if) {
151
+ return node;
135
152
  }
136
- if (t.isArrayExpression(res)) {
137
- // The `if` transformation does not use the SpreadElement, neither null, therefore we can safely
138
- // typecast it to t.Expression[]
139
- res = res.elements;
140
- }
141
- return res;
142
- }
143
- function applyInlineIf(ifNode, node, testExpression, falseValue) {
144
153
  if (!testExpression) {
145
- testExpression = codeGen.bindExpression(ifNode.condition);
154
+ testExpression = (0, scope_1.bindExpression)(element.if, element, parentStack);
146
155
  }
147
156
  let leftExpression;
148
- const modifier = ifNode.modifier;
157
+ const modifier = element.ifModifier;
149
158
  if (modifier === 'true') {
150
159
  leftExpression = testExpression;
151
160
  }
@@ -163,48 +172,24 @@ function transform(codeGen) {
163
172
  }
164
173
  return t.conditionalExpression(leftExpression, node, falseValue !== null && falseValue !== void 0 ? falseValue : t.literal(null));
165
174
  }
166
- function transformForBlock(forBlock) {
167
- let expression = transformForChildren(forBlock);
168
- if (t.isArrayExpression(expression) && expression.elements.length === 1) {
169
- expression = expression.elements[0];
175
+ function applyInlineFor(element, node) {
176
+ if (!element.forEach) {
177
+ return node;
170
178
  }
171
- let res;
172
- if ((0, ast_1.isForEach)(forBlock)) {
173
- res = applyInlineFor(forBlock, expression);
174
- }
175
- else {
176
- res = applyInlineForOf(forBlock, expression);
177
- }
178
- return res;
179
- }
180
- function transformForChildren(forBlock) {
181
- codeGen.beginScope();
182
- if ((0, ast_1.isForEach)(forBlock)) {
183
- const { item, index } = forBlock;
184
- if (index) {
185
- codeGen.declareIdentifier(index);
186
- }
187
- codeGen.declareIdentifier(item);
188
- }
189
- else {
190
- codeGen.declareIdentifier(forBlock.iterator);
191
- }
192
- const children = transformChildren(forBlock);
193
- codeGen.endScope();
194
- return children;
195
- }
196
- function applyInlineFor(forEach, node) {
197
- const { expression, item, index } = forEach;
179
+ const { expression, item, index } = element.forEach;
198
180
  const params = [item];
199
181
  if (index) {
200
182
  params.push(index);
201
183
  }
202
- const iterable = codeGen.bindExpression(expression);
184
+ const iterable = (0, scope_1.bindExpression)(expression, element, parentStack);
203
185
  const iterationFunction = t.functionExpression(null, params, t.blockStatement([t.returnStatement(node)]));
204
186
  return codeGen.genIterator(iterable, iterationFunction);
205
187
  }
206
- function applyInlineForOf(forOf, node) {
207
- const { expression, iterator } = forOf;
188
+ function applyInlineForOf(element, node) {
189
+ if (!element.forOf) {
190
+ return node;
191
+ }
192
+ const { expression, iterator } = element.forOf;
208
193
  const { name: iteratorName } = iterator;
209
194
  const argsMapping = {
210
195
  value: `${iteratorName}Value`,
@@ -213,111 +198,136 @@ function transform(codeGen) {
213
198
  last: `${iteratorName}Last`,
214
199
  };
215
200
  const iteratorArgs = Object.values(argsMapping).map((arg) => t.identifier(arg));
216
- const iteratorObject = t.objectExpression(Object.entries(argsMapping).map(([prop, arg]) => t.property(t.identifier(prop), t.identifier(arg))));
217
- const iterable = codeGen.bindExpression(expression);
201
+ const iteratorObjet = t.objectExpression(Object.entries(argsMapping).map(([prop, arg]) => t.property(t.identifier(prop), t.identifier(arg))));
202
+ const iterable = (0, scope_1.bindExpression)(expression, element, parentStack);
218
203
  const iterationFunction = t.functionExpression(null, iteratorArgs, t.blockStatement([
219
204
  t.variableDeclaration('const', [
220
- t.variableDeclarator(t.identifier(iteratorName), iteratorObject),
205
+ t.variableDeclarator(t.identifier(iteratorName), iteratorObjet),
221
206
  ]),
222
207
  t.returnStatement(node),
223
208
  ]));
224
209
  return codeGen.genIterator(iterable, iterationFunction);
225
210
  }
226
- function computeAttrValue(attr, element) {
227
- const { name: elmName, namespace = '' } = element;
228
- const { value: attrValue } = attr;
229
- // Evaluate properties based on their attribute name
230
- const attrName = (0, ast_1.isProperty)(attr) ? attr.attributeName : attr.name;
231
- const isUsedAsAttribute = (0, attribute_1.isAttribute)(element, attrName);
232
- if ((0, ast_1.isExpression)(attrValue)) {
233
- const expression = codeGen.bindExpression(attrValue);
234
- // TODO [#2012]: Normalize global boolean attrs values passed to custom elements as props
235
- if (isUsedAsAttribute && (0, shared_1.isBooleanAttribute)(attrName, elmName)) {
236
- // We need to do some manipulation to allow the diffing algorithm add/remove the attribute
237
- // without handling special cases at runtime.
238
- return codeGen.genBooleanAttributeExpr(expression);
239
- }
240
- if (attrName === 'tabindex') {
241
- return codeGen.genTabIndex([expression]);
242
- }
243
- if (attrName === 'id' || (0, attribute_1.isIdReferencingAttribute)(attrName)) {
244
- return codeGen.genScopedId(expression);
245
- }
246
- if (codeGen.scopeFragmentId &&
247
- (0, attribute_1.isAllowedFragOnlyUrlsXHTML)(elmName, attrName, namespace)) {
248
- return codeGen.genScopedFragId(expression);
249
- }
250
- if ((0, attribute_1.isSvgUseHref)(elmName, attrName, namespace)) {
251
- codeGen.usedLwcApis.add('sanitizeAttribute');
252
- return t.callExpression(t.identifier('sanitizeAttribute'), [
253
- t.literal(elmName),
254
- t.literal(namespace),
255
- t.literal(attrName),
256
- codeGen.genScopedFragId(expression),
257
- ]);
258
- }
259
- return expression;
211
+ function applyTemplateForOf(element, fragmentNodes) {
212
+ let expression = fragmentNodes;
213
+ if (t.isArrayExpression(expression) && expression.elements.length === 1) {
214
+ expression = expression.elements[0];
260
215
  }
261
- else if ((0, ast_1.isStringLiteral)(attrValue)) {
262
- if (attrName === 'id') {
263
- return codeGen.genScopedId(attrValue.value);
264
- }
265
- if (attrName === 'spellcheck') {
266
- return t.literal(attrValue.value.toLowerCase() !== 'false');
267
- }
268
- if (!isUsedAsAttribute && (0, shared_1.isBooleanAttribute)(attrName, elmName)) {
269
- // We are in presence of a string value, for a recognized boolean attribute, which is used as
270
- // property. for these cases, always set the property to true.
271
- return t.literal(true);
272
- }
273
- if ((0, attribute_1.isIdReferencingAttribute)(attrName)) {
274
- return codeGen.genScopedId(attrValue.value);
216
+ return applyInlineForOf(element, expression);
217
+ }
218
+ function applyTemplateFor(element, fragmentNodes) {
219
+ let expression = fragmentNodes;
220
+ if (t.isArrayExpression(expression) && expression.elements.length === 1) {
221
+ expression = expression.elements[0];
222
+ }
223
+ return applyInlineFor(element, expression);
224
+ }
225
+ function applyTemplateIf(element, fragmentNodes) {
226
+ if (!element.if) {
227
+ return fragmentNodes;
228
+ }
229
+ if (t.isArrayExpression(fragmentNodes)) {
230
+ // Bind the expression once for all the template children
231
+ const testExpression = (0, scope_1.bindExpression)(element.if, element, parentStack);
232
+ return t.arrayExpression(fragmentNodes.elements.map((child) => child !== null
233
+ ? applyInlineIf(element, child, testExpression)
234
+ : null));
235
+ }
236
+ else {
237
+ // If the template has a single children, make sure the ternary expression returns an array
238
+ return applyInlineIf(element, fragmentNodes, undefined, t.arrayExpression([]));
239
+ }
240
+ }
241
+ function computeAttrValue(attr, element) {
242
+ const { tag, namespace } = element;
243
+ const isUsedAsAttribute = (0, attribute_1.isAttribute)(element, attr.name);
244
+ switch (attr.type) {
245
+ case types_1.IRAttributeType.Expression: {
246
+ const expression = (0, scope_1.bindExpression)(attr.value, element, parentStack);
247
+ // TODO [#2012]: Normalize global boolean attrs values passed to custom elements as props
248
+ if (isUsedAsAttribute && (0, shared_1.isBooleanAttribute)(attr.name, tag)) {
249
+ // We need to do some manipulation to allow the diffing algorithm add/remove the attribute
250
+ // without handling special cases at runtime.
251
+ return codeGen.genBooleanAttributeExpr(expression);
252
+ }
253
+ if (attr.name === 'tabindex') {
254
+ return codeGen.genTabIndex([expression]);
255
+ }
256
+ if (attr.name === 'id' || (0, attribute_1.isIdReferencingAttribute)(attr.name)) {
257
+ return codeGen.genScopedId(expression);
258
+ }
259
+ if (codeGen.scopeFragmentId &&
260
+ (0, attribute_1.isAllowedFragOnlyUrlsXHTML)(tag, attr.name, namespace)) {
261
+ return codeGen.genScopedFragId(expression);
262
+ }
263
+ if ((0, attribute_1.isSvgUseHref)(tag, attr.name, namespace)) {
264
+ codeGen.usedLwcApis.add('sanitizeAttribute');
265
+ return t.callExpression(t.identifier('sanitizeAttribute'), [
266
+ t.literal(tag),
267
+ t.literal(namespace),
268
+ t.literal(attr.name),
269
+ codeGen.genScopedFragId(expression),
270
+ ]);
271
+ }
272
+ return expression;
275
273
  }
276
- if (codeGen.scopeFragmentId &&
277
- (0, attribute_1.isAllowedFragOnlyUrlsXHTML)(elmName, attrName, namespace) &&
278
- (0, attribute_1.isFragmentOnlyUrl)(attrValue.value)) {
279
- return codeGen.genScopedFragId(attrValue.value);
274
+ case types_1.IRAttributeType.String: {
275
+ if (attr.name === 'id') {
276
+ return codeGen.genScopedId(attr.value);
277
+ }
278
+ if (attr.name === 'spellcheck') {
279
+ return t.literal(attr.value.toLowerCase() !== 'false');
280
+ }
281
+ if (!isUsedAsAttribute && (0, shared_1.isBooleanAttribute)(attr.name, tag)) {
282
+ // We are in presence of a string value, for a recognized boolean attribute, which is used as
283
+ // property. for these cases, always set the property to true.
284
+ return t.literal(true);
285
+ }
286
+ if ((0, attribute_1.isIdReferencingAttribute)(attr.name)) {
287
+ return codeGen.genScopedId(attr.value);
288
+ }
289
+ if (codeGen.scopeFragmentId &&
290
+ (0, attribute_1.isAllowedFragOnlyUrlsXHTML)(tag, attr.name, namespace) &&
291
+ (0, attribute_1.isFragmentOnlyUrl)(attr.value)) {
292
+ return codeGen.genScopedFragId(attr.value);
293
+ }
294
+ if ((0, attribute_1.isSvgUseHref)(tag, attr.name, namespace)) {
295
+ codeGen.usedLwcApis.add('sanitizeAttribute');
296
+ return t.callExpression(t.identifier('sanitizeAttribute'), [
297
+ t.literal(tag),
298
+ t.literal(namespace),
299
+ t.literal(attr.name),
300
+ (0, attribute_1.isFragmentOnlyUrl)(attr.value)
301
+ ? codeGen.genScopedFragId(attr.value)
302
+ : t.literal(attr.value),
303
+ ]);
304
+ }
305
+ return t.literal(attr.value);
280
306
  }
281
- if ((0, attribute_1.isSvgUseHref)(elmName, attrName, namespace)) {
282
- codeGen.usedLwcApis.add('sanitizeAttribute');
283
- return t.callExpression(t.identifier('sanitizeAttribute'), [
284
- t.literal(elmName),
285
- t.literal(namespace),
286
- t.literal(attrName),
287
- (0, attribute_1.isFragmentOnlyUrl)(attrValue.value)
288
- ? codeGen.genScopedFragId(attrValue.value)
289
- : t.literal(attrValue.value),
290
- ]);
307
+ case types_1.IRAttributeType.Boolean: {
308
+ // A boolean value used in an attribute should always generate .setAttribute(attr.name, ''),
309
+ // regardless if is a boolean attribute or not.
310
+ return isUsedAsAttribute ? t.literal('') : t.literal(attr.value);
291
311
  }
292
- return t.literal(attrValue.value);
293
- }
294
- else {
295
- // A boolean value used in an attribute should always generate .setAttribute(attr.name, ''),
296
- // regardless if is a boolean attribute or not.
297
- return isUsedAsAttribute ? t.literal('') : t.literal(attrValue.value);
298
312
  }
299
313
  }
300
314
  function elementDataBag(element) {
301
315
  const data = [];
302
- const { attributes, properties, listeners } = element;
303
- const innerHTML = element.directives.find(ast_1.isInnerHTMLDirective);
304
- const forKey = element.directives.find(ast_1.isKeyDirective);
305
- const dom = element.directives.find(ast_1.isDomDirective);
316
+ const { attrs, props, on, forKey, lwc } = element;
306
317
  // Attributes
307
- if (attributes.length) {
318
+ if (attrs) {
308
319
  const rest = {};
309
- for (const attr of attributes) {
310
- const { name, value } = attr;
320
+ for (const [name, value] of Object.entries(attrs)) {
311
321
  if (name === 'class') {
312
322
  // Handle class attribute:
313
323
  // - expression values are turned into a `className` property.
314
324
  // - string values are parsed and turned into a `classMap` object associating
315
325
  // each individual class name with a `true` boolean.
316
- if ((0, ast_1.isExpression)(value)) {
317
- const classExpression = codeGen.bindExpression(value);
326
+ if (value.type === types_1.IRAttributeType.Expression) {
327
+ const classExpression = (0, scope_1.bindExpression)(value.value, element, parentStack);
318
328
  data.push(t.property(t.identifier('className'), classExpression));
319
329
  }
320
- else if ((0, ast_1.isStringLiteral)(value)) {
330
+ else if (value.type === types_1.IRAttributeType.String) {
321
331
  const classNames = (0, helpers_1.parseClassNames)(value.value);
322
332
  const classMap = t.objectExpression(classNames.map((name) => t.property(t.literal(name), t.literal(true))));
323
333
  data.push(t.property(t.identifier('classMap'), classMap));
@@ -328,18 +338,18 @@ function transform(codeGen) {
328
338
  // - expression values are turned into a `style` property.
329
339
  // - string values are parsed and turned into a `styles` array
330
340
  // containing triples of [name, value, important (optional)]
331
- if ((0, ast_1.isExpression)(value)) {
332
- const styleExpression = codeGen.bindExpression(value);
341
+ if (value.type === types_1.IRAttributeType.Expression) {
342
+ const styleExpression = (0, scope_1.bindExpression)(value.value, element, parentStack);
333
343
  data.push(t.property(t.identifier('style'), styleExpression));
334
344
  }
335
- else if ((0, ast_1.isStringLiteral)(value)) {
345
+ else if (value.type === types_1.IRAttributeType.String) {
336
346
  const styleMap = (0, helpers_1.parseStyleText)(value.value);
337
347
  const styleAST = (0, helpers_1.styleMapToStyleDeclsAST)(styleMap);
338
348
  data.push(t.property(t.identifier('styleDecls'), styleAST));
339
349
  }
340
350
  }
341
351
  else {
342
- rest[name] = computeAttrValue(attr, element);
352
+ rest[name] = computeAttrValue(attrs[name], element);
343
353
  }
344
354
  }
345
355
  // Add all the remaining attributes to an `attrs` object where the key is the attribute
@@ -351,24 +361,24 @@ function transform(codeGen) {
351
361
  }
352
362
  // Properties
353
363
  const propsObj = t.objectExpression([]);
354
- // Properties
355
- if (properties.length) {
356
- for (const prop of properties) {
357
- propsObj.properties.push(t.property(t.literal(prop.name), computeAttrValue(prop, element)));
364
+ // Properties: standard props
365
+ if (props) {
366
+ for (const [key, value] of Object.entries(props)) {
367
+ propsObj.properties.push(t.property(t.literal(key), computeAttrValue(value, element)));
358
368
  }
359
369
  }
360
370
  // Properties: lwc:inner-html directive
361
- if (innerHTML) {
362
- const expr = (0, ast_1.isStringLiteral)(innerHTML.value)
363
- ? t.literal(innerHTML.value.value)
364
- : codeGen.bindExpression(innerHTML.value);
371
+ if (element.lwc && element.lwc.innerHTML) {
372
+ const expr = typeof element.lwc.innerHTML === 'string'
373
+ ? t.literal(element.lwc.innerHTML)
374
+ : (0, scope_1.bindExpression)(element.lwc.innerHTML, element, parentStack);
365
375
  propsObj.properties.push(t.property(t.identifier('innerHTML'), codeGen.genSanitizedHtmlExpr(expr)));
366
376
  }
367
377
  if (propsObj.properties.length) {
368
378
  data.push(t.property(t.identifier('props'), propsObj));
369
379
  }
370
380
  // Context
371
- if (dom || innerHTML) {
381
+ if ((lwc === null || lwc === void 0 ? void 0 : lwc.dom) || (lwc === null || lwc === void 0 ? void 0 : lwc.innerHTML)) {
372
382
  const contextObj = t.objectExpression([
373
383
  t.property(t.identifier('lwc'), t.objectExpression([t.property(t.identifier('dom'), t.literal('manual'))])),
374
384
  ]);
@@ -377,7 +387,7 @@ function transform(codeGen) {
377
387
  // Key property on VNode
378
388
  if (forKey) {
379
389
  // If element has user-supplied `key` or is in iterator, call `api.k`
380
- const forKeyExpression = codeGen.bindExpression(forKey.value);
390
+ const forKeyExpression = (0, scope_1.bindExpression)(forKey, element, parentStack);
381
391
  const generatedKey = codeGen.genKey(t.literal(codeGen.generateKey()), forKeyExpression);
382
392
  data.push(t.property(t.identifier('key'), generatedKey));
383
393
  }
@@ -387,14 +397,13 @@ function transform(codeGen) {
387
397
  data.push(t.property(t.identifier('key'), t.literal(codeGen.generateKey())));
388
398
  }
389
399
  // Event handler
390
- if (listeners.length) {
391
- const listenerObj = Object.fromEntries(listeners.map((listener) => [listener.name, listener]));
392
- const listenerObjAST = (0, helpers_1.objectToAST)(listenerObj, (key) => {
393
- const componentHandler = codeGen.bindExpression(listenerObj[key].handler);
400
+ if (on) {
401
+ const onObj = (0, helpers_1.objectToAST)(on, (key) => {
402
+ const componentHandler = (0, scope_1.bindExpression)(on[key], element, parentStack);
394
403
  const handler = codeGen.genBind(componentHandler);
395
- return (0, helpers_1.memorizeHandler)(codeGen, componentHandler, handler);
404
+ return (0, helpers_1.memorizeHandler)(codeGen, element, parentStack, componentHandler, handler);
396
405
  });
397
- data.push(t.property(t.identifier('on'), listenerObjAST));
406
+ data.push(t.property(t.identifier('on'), onObj));
398
407
  }
399
408
  // SVG handling
400
409
  if (element.namespace === constants_2.SVG_NAMESPACE_URI) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"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"}