lwc-convert 1.0.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.
- package/LICENSE +21 -0
- package/README.md +719 -0
- package/dist/cli/commands/aura.d.ts +6 -0
- package/dist/cli/commands/aura.d.ts.map +1 -0
- package/dist/cli/commands/aura.js +225 -0
- package/dist/cli/commands/aura.js.map +1 -0
- package/dist/cli/commands/vf.d.ts +6 -0
- package/dist/cli/commands/vf.d.ts.map +1 -0
- package/dist/cli/commands/vf.js +218 -0
- package/dist/cli/commands/vf.js.map +1 -0
- package/dist/cli/interactive.d.ts +20 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +577 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/options.d.ts +21 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +24 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/generators/full-conversion.d.ts +41 -0
- package/dist/generators/full-conversion.d.ts.map +1 -0
- package/dist/generators/full-conversion.js +538 -0
- package/dist/generators/full-conversion.js.map +1 -0
- package/dist/generators/scaffolding.d.ts +40 -0
- package/dist/generators/scaffolding.d.ts.map +1 -0
- package/dist/generators/scaffolding.js +716 -0
- package/dist/generators/scaffolding.js.map +1 -0
- package/dist/generators/test-comparison.d.ts +47 -0
- package/dist/generators/test-comparison.d.ts.map +1 -0
- package/dist/generators/test-comparison.js +855 -0
- package/dist/generators/test-comparison.js.map +1 -0
- package/dist/generators/test-generator.d.ts +27 -0
- package/dist/generators/test-generator.d.ts.map +1 -0
- package/dist/generators/test-generator.js +385 -0
- package/dist/generators/test-generator.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +226 -0
- package/dist/index.js.map +1 -0
- package/dist/mappings/aura-to-lwc.json +321 -0
- package/dist/mappings/vf-to-lwc.json +354 -0
- package/dist/parsers/aura/controller-parser.d.ts +36 -0
- package/dist/parsers/aura/controller-parser.d.ts.map +1 -0
- package/dist/parsers/aura/controller-parser.js +269 -0
- package/dist/parsers/aura/controller-parser.js.map +1 -0
- package/dist/parsers/aura/helper-parser.d.ts +21 -0
- package/dist/parsers/aura/helper-parser.d.ts.map +1 -0
- package/dist/parsers/aura/helper-parser.js +173 -0
- package/dist/parsers/aura/helper-parser.js.map +1 -0
- package/dist/parsers/aura/markup-parser.d.ts +59 -0
- package/dist/parsers/aura/markup-parser.d.ts.map +1 -0
- package/dist/parsers/aura/markup-parser.js +279 -0
- package/dist/parsers/aura/markup-parser.js.map +1 -0
- package/dist/parsers/aura/style-parser.d.ts +37 -0
- package/dist/parsers/aura/style-parser.d.ts.map +1 -0
- package/dist/parsers/aura/style-parser.js +151 -0
- package/dist/parsers/aura/style-parser.js.map +1 -0
- package/dist/parsers/vf/apex-parser.d.ts +51 -0
- package/dist/parsers/vf/apex-parser.d.ts.map +1 -0
- package/dist/parsers/vf/apex-parser.js +251 -0
- package/dist/parsers/vf/apex-parser.js.map +1 -0
- package/dist/parsers/vf/page-parser.d.ts +61 -0
- package/dist/parsers/vf/page-parser.d.ts.map +1 -0
- package/dist/parsers/vf/page-parser.js +403 -0
- package/dist/parsers/vf/page-parser.js.map +1 -0
- package/dist/transformers/aura-to-lwc/controller.d.ts +36 -0
- package/dist/transformers/aura-to-lwc/controller.d.ts.map +1 -0
- package/dist/transformers/aura-to-lwc/controller.js +372 -0
- package/dist/transformers/aura-to-lwc/controller.js.map +1 -0
- package/dist/transformers/aura-to-lwc/events.d.ts +47 -0
- package/dist/transformers/aura-to-lwc/events.d.ts.map +1 -0
- package/dist/transformers/aura-to-lwc/events.js +262 -0
- package/dist/transformers/aura-to-lwc/events.js.map +1 -0
- package/dist/transformers/aura-to-lwc/markup.d.ts +51 -0
- package/dist/transformers/aura-to-lwc/markup.d.ts.map +1 -0
- package/dist/transformers/aura-to-lwc/markup.js +465 -0
- package/dist/transformers/aura-to-lwc/markup.js.map +1 -0
- package/dist/transformers/vf-to-lwc/components.d.ts +40 -0
- package/dist/transformers/vf-to-lwc/components.d.ts.map +1 -0
- package/dist/transformers/vf-to-lwc/components.js +374 -0
- package/dist/transformers/vf-to-lwc/components.js.map +1 -0
- package/dist/transformers/vf-to-lwc/data-binding.d.ts +53 -0
- package/dist/transformers/vf-to-lwc/data-binding.d.ts.map +1 -0
- package/dist/transformers/vf-to-lwc/data-binding.js +660 -0
- package/dist/transformers/vf-to-lwc/data-binding.js.map +1 -0
- package/dist/transformers/vf-to-lwc/markup.d.ts +44 -0
- package/dist/transformers/vf-to-lwc/markup.d.ts.map +1 -0
- package/dist/transformers/vf-to-lwc/markup.js +816 -0
- package/dist/transformers/vf-to-lwc/markup.js.map +1 -0
- package/dist/utils/confidence-scorer.d.ts +100 -0
- package/dist/utils/confidence-scorer.d.ts.map +1 -0
- package/dist/utils/confidence-scorer.js +358 -0
- package/dist/utils/confidence-scorer.js.map +1 -0
- package/dist/utils/file-io.d.ts +62 -0
- package/dist/utils/file-io.d.ts.map +1 -0
- package/dist/utils/file-io.js +248 -0
- package/dist/utils/file-io.js.map +1 -0
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +130 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/open-folder.d.ts +9 -0
- package/dist/utils/open-folder.d.ts.map +1 -0
- package/dist/utils/open-folder.js +76 -0
- package/dist/utils/open-folder.js.map +1 -0
- package/dist/utils/path-resolver.d.ts +29 -0
- package/dist/utils/path-resolver.d.ts.map +1 -0
- package/dist/utils/path-resolver.js +240 -0
- package/dist/utils/path-resolver.js.map +1 -0
- package/dist/utils/session-store.d.ts +158 -0
- package/dist/utils/session-store.d.ts.map +1 -0
- package/dist/utils/session-store.js +518 -0
- package/dist/utils/session-store.js.map +1 -0
- package/dist/utils/vf-controller-resolver.d.ts +36 -0
- package/dist/utils/vf-controller-resolver.d.ts.map +1 -0
- package/dist/utils/vf-controller-resolver.js +162 -0
- package/dist/utils/vf-controller-resolver.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Transform Aura markup to LWC HTML template
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.transformAuraMarkup = transformAuraMarkup;
|
|
40
|
+
const logger_1 = require("../../utils/logger");
|
|
41
|
+
const auraMapping = __importStar(require("../../mappings/aura-to-lwc.json"));
|
|
42
|
+
const componentMappings = auraMapping.components;
|
|
43
|
+
/**
|
|
44
|
+
* Convert Aura expression to LWC expression
|
|
45
|
+
* {!v.name} -> {name}
|
|
46
|
+
* {!c.handleClick} -> {handleClick}
|
|
47
|
+
* {!v.contact.Picture__c} -> {picture} (converted to use getter)
|
|
48
|
+
* {!v.isActive ? 'Active' : 'Inactive'} -> {displayStatus} (converted to getter)
|
|
49
|
+
*/
|
|
50
|
+
function convertExpression(expr, context) {
|
|
51
|
+
// Remove {! and }
|
|
52
|
+
let result = expr;
|
|
53
|
+
// Extract inner expression for complexity check (remove {! and })
|
|
54
|
+
const innerExpr = expr.startsWith('{!') && expr.endsWith('}')
|
|
55
|
+
? expr.substring(2, expr.length - 1).trim()
|
|
56
|
+
: expr;
|
|
57
|
+
// Check for complex expressions (ternary, logical operators, math)
|
|
58
|
+
// Simple expressions like v.prop, c.method, v.obj.prop should NOT be treated as complex
|
|
59
|
+
// Check for operators that indicate complex logic (but not the leading ! in {!...})
|
|
60
|
+
const isSimplePropertyAccess = /^[vc]\.\w+(\.\w+)*$/.test(innerExpr) ||
|
|
61
|
+
/^\$Label\.\w+\.\w+$/.test(innerExpr) ||
|
|
62
|
+
innerExpr === 'globalId';
|
|
63
|
+
const hasComplexOperators = innerExpr.includes('?') ||
|
|
64
|
+
innerExpr.includes('&&') ||
|
|
65
|
+
innerExpr.includes('||') ||
|
|
66
|
+
// Check for negation operator (!) but not at start of simple property (e.g., !v.isTrue)
|
|
67
|
+
/[^{]!/.test(innerExpr) ||
|
|
68
|
+
// Check for math but exclude property paths like v.obj-name
|
|
69
|
+
/\s[\+\-\*\/]\s/.test(innerExpr) ||
|
|
70
|
+
innerExpr.includes('==') ||
|
|
71
|
+
innerExpr.includes('!=') ||
|
|
72
|
+
innerExpr.includes('>=') ||
|
|
73
|
+
innerExpr.includes('<=') ||
|
|
74
|
+
/[^=!<>]>[^=]/.test(innerExpr) ||
|
|
75
|
+
/[^=]<[^=]/.test(innerExpr);
|
|
76
|
+
const isComplex = !isSimplePropertyAccess && hasComplexOperators;
|
|
77
|
+
// If complex and we have context to store it, convert to getter
|
|
78
|
+
if (isComplex && context && expr.startsWith('{!') && expr.endsWith('}')) {
|
|
79
|
+
// Generate a getter name based on the expression content
|
|
80
|
+
// e.g. v.isActive ? 'Active' : 'Inactive' -> getComputedValue1
|
|
81
|
+
const getterName = `computedValue${context.detectedGetters.length + 1}`;
|
|
82
|
+
context.detectedGetters.push({
|
|
83
|
+
name: getterName,
|
|
84
|
+
expression: innerExpr
|
|
85
|
+
});
|
|
86
|
+
return `{${getterName}}`;
|
|
87
|
+
}
|
|
88
|
+
// {!v.propertyName} -> {propertyName}
|
|
89
|
+
result = result.replace(/\{!v\.(\w+)\}/g, '{$1}');
|
|
90
|
+
// {!v.contact.FieldName} -> {fieldName} getter (for wire data from force:recordData)
|
|
91
|
+
// This handles patterns like {!v.contact.Picture__c}
|
|
92
|
+
result = result.replace(/\{!v\.(\w+)\.(\w+)__c\}/g, (_match, _targetObj, fieldName) => {
|
|
93
|
+
// Convert Picture__c to picture (getter name)
|
|
94
|
+
const getterName = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);
|
|
95
|
+
return `{${getterName}}`;
|
|
96
|
+
});
|
|
97
|
+
// Also handle standard fields like {!v.contact.Name}
|
|
98
|
+
result = result.replace(/\{!v\.(\w+)\.(\w+)\}/g, (_match, _targetObj, fieldName) => {
|
|
99
|
+
// Convert Name to name (getter name) - standard fields
|
|
100
|
+
const getterName = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);
|
|
101
|
+
return `{${getterName}}`;
|
|
102
|
+
});
|
|
103
|
+
// {!c.methodName} -> {methodName}
|
|
104
|
+
result = result.replace(/\{!c\.(\w+)\}/g, '{$1}');
|
|
105
|
+
// {!globalId} -> special handling needed
|
|
106
|
+
result = result.replace(/\{!globalId\}/g, '{/* TODO: Replace globalId with data-id or ref */}');
|
|
107
|
+
// {!$Label.namespace.labelName} -> {label.labelName}
|
|
108
|
+
result = result.replace(/\{!\$Label\.(\w+)\.(\w+)\}/g, '{label$1$2}');
|
|
109
|
+
// Other expressions - try to preserve
|
|
110
|
+
result = result.replace(/\{!([^}]+)\}/g, '{$1}');
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Convert Aura attribute name to LWC attribute name
|
|
115
|
+
* e.g., iconName -> icon-name
|
|
116
|
+
*/
|
|
117
|
+
function convertAttributeName(auraAttr, componentMapping) {
|
|
118
|
+
// Check if there's a specific mapping for this component's attribute
|
|
119
|
+
if (componentMapping?.attributes && componentMapping.attributes[auraAttr]) {
|
|
120
|
+
return componentMapping.attributes[auraAttr];
|
|
121
|
+
}
|
|
122
|
+
// Convert camelCase to kebab-case for standard attributes
|
|
123
|
+
return auraAttr.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Convert Aura component tag to LWC tag
|
|
127
|
+
*/
|
|
128
|
+
function convertTagName(auraTag) {
|
|
129
|
+
const mapping = componentMappings[auraTag];
|
|
130
|
+
if (mapping && mapping.lwc) {
|
|
131
|
+
return { lwcTag: mapping.lwc, mapping };
|
|
132
|
+
}
|
|
133
|
+
// Handle lightning: namespace - direct conversion
|
|
134
|
+
if (auraTag.startsWith('lightning:')) {
|
|
135
|
+
const baseName = auraTag.substring(10);
|
|
136
|
+
const kebabName = baseName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
|
137
|
+
return { lwcTag: `lightning-${kebabName}` };
|
|
138
|
+
}
|
|
139
|
+
// Handle ui: namespace - most map to lightning-input or similar
|
|
140
|
+
if (auraTag.startsWith('ui:')) {
|
|
141
|
+
const baseName = auraTag.substring(3);
|
|
142
|
+
if (baseName.startsWith('input')) {
|
|
143
|
+
return { lwcTag: 'lightning-input' };
|
|
144
|
+
}
|
|
145
|
+
if (baseName.startsWith('output')) {
|
|
146
|
+
return { lwcTag: 'lightning-formatted-text' };
|
|
147
|
+
}
|
|
148
|
+
if (baseName === 'button') {
|
|
149
|
+
return { lwcTag: 'lightning-button' };
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Handle c: namespace - custom components
|
|
153
|
+
if (auraTag.startsWith('c:')) {
|
|
154
|
+
const baseName = auraTag.substring(2);
|
|
155
|
+
const kebabName = baseName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
|
156
|
+
return { lwcTag: `c-${kebabName}` };
|
|
157
|
+
}
|
|
158
|
+
// Default: return as-is with a comment
|
|
159
|
+
return { lwcTag: auraTag };
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Transform a single DOM node to LWC HTML
|
|
163
|
+
*/
|
|
164
|
+
function transformNode(node, indent, context) {
|
|
165
|
+
if (node.type === 'text') {
|
|
166
|
+
const text = node.data;
|
|
167
|
+
const converted = convertExpression(text, context);
|
|
168
|
+
if (converted.trim()) {
|
|
169
|
+
return converted;
|
|
170
|
+
}
|
|
171
|
+
return '';
|
|
172
|
+
}
|
|
173
|
+
if (node.type !== 'tag') {
|
|
174
|
+
return '';
|
|
175
|
+
}
|
|
176
|
+
const element = node;
|
|
177
|
+
const tagName = element.name;
|
|
178
|
+
// Handle lightning:messageChannel - extract config, don't output markup
|
|
179
|
+
if (tagName === 'lightning:messagechannel' || tagName === 'lightning:messageChannel') {
|
|
180
|
+
const channelType = element.attribs.type || '';
|
|
181
|
+
const auraId = element.attribs['aura:id'] || '';
|
|
182
|
+
const onMessage = element.attribs.onmessage || element.attribs.onMessage || '';
|
|
183
|
+
const scope = element.attribs.scope || '';
|
|
184
|
+
// Extract handler name from {!c.handleMessage}
|
|
185
|
+
let handlerName = '';
|
|
186
|
+
const handlerMatch = onMessage.match(/\{!c\.(\w+)\}/);
|
|
187
|
+
if (handlerMatch) {
|
|
188
|
+
handlerName = handlerMatch[1];
|
|
189
|
+
}
|
|
190
|
+
context.lmsChannels.push({
|
|
191
|
+
channelName: channelType,
|
|
192
|
+
auraId: auraId,
|
|
193
|
+
onMessageHandler: handlerName,
|
|
194
|
+
scope: scope,
|
|
195
|
+
isPublisherOnly: !handlerName, // No onMessage handler means publisher-only
|
|
196
|
+
});
|
|
197
|
+
const lmsPattern = handlerName ? 'subscriber' : 'publisher-only';
|
|
198
|
+
context.warnings.push(`lightning:messageChannel detected (${lmsPattern}) - LMS code will be generated in JavaScript`);
|
|
199
|
+
// Don't output any markup - LMS is handled in JS
|
|
200
|
+
return '';
|
|
201
|
+
}
|
|
202
|
+
// Handle force:recordData - extract config, don't output markup
|
|
203
|
+
if (tagName === 'force:recorddata' || tagName === 'force:recordData') {
|
|
204
|
+
const auraId = element.attribs['aura:id'] || '';
|
|
205
|
+
const recordId = element.attribs.recordid || element.attribs.recordId || '';
|
|
206
|
+
const fieldsAttr = element.attribs.fields || '';
|
|
207
|
+
const targetFields = element.attribs.targetfields || element.attribs.targetFields || '';
|
|
208
|
+
const targetRecord = element.attribs.targetrecord || element.attribs.targetRecord || '';
|
|
209
|
+
const targetError = element.attribs.targeterror || element.attribs.targetError || '';
|
|
210
|
+
const mode = element.attribs.mode || 'VIEW';
|
|
211
|
+
// Parse fields from string like "['Name', 'Title', 'Phone']"
|
|
212
|
+
let fields = [];
|
|
213
|
+
const fieldsMatch = fieldsAttr.match(/\[([^\]]+)\]/);
|
|
214
|
+
if (fieldsMatch) {
|
|
215
|
+
fields = fieldsMatch[1]
|
|
216
|
+
.split(',')
|
|
217
|
+
.map(f => f.trim().replace(/['"]/g, ''))
|
|
218
|
+
.filter(f => f);
|
|
219
|
+
}
|
|
220
|
+
// Convert recordId binding from {!v.contactId} to contactId
|
|
221
|
+
let recordIdBinding = recordId;
|
|
222
|
+
const bindingMatch = recordId.match(/\{!v\.(\w+)\}/);
|
|
223
|
+
if (bindingMatch) {
|
|
224
|
+
recordIdBinding = bindingMatch[1];
|
|
225
|
+
}
|
|
226
|
+
// Convert targetFields from {!v.contact} to contact
|
|
227
|
+
let targetFieldsBinding = targetFields;
|
|
228
|
+
const targetMatch = targetFields.match(/\{!v\.(\w+)\}/);
|
|
229
|
+
if (targetMatch) {
|
|
230
|
+
targetFieldsBinding = targetMatch[1];
|
|
231
|
+
}
|
|
232
|
+
context.recordDataServices.push({
|
|
233
|
+
auraId: auraId,
|
|
234
|
+
recordIdBinding: recordIdBinding,
|
|
235
|
+
fields: fields,
|
|
236
|
+
targetFields: targetFieldsBinding,
|
|
237
|
+
targetRecord: targetRecord ? convertExpression(targetRecord, context).replace(/[{}]/g, '') : undefined,
|
|
238
|
+
targetError: targetError ? convertExpression(targetError, context).replace(/[{}]/g, '') : undefined,
|
|
239
|
+
mode: mode,
|
|
240
|
+
});
|
|
241
|
+
context.warnings.push(`force:recordData detected - @wire(getRecord) will be generated in JavaScript`);
|
|
242
|
+
// Don't output any markup - wire adapter is in JS
|
|
243
|
+
return '';
|
|
244
|
+
}
|
|
245
|
+
// Handle special Aura tags
|
|
246
|
+
if (tagName === 'aura:if') {
|
|
247
|
+
const isTrue = element.attribs.istrue || element.attribs.isTrue;
|
|
248
|
+
const isFalse = element.attribs.isfalse || element.attribs.isFalse;
|
|
249
|
+
let directive = '';
|
|
250
|
+
if (isTrue) {
|
|
251
|
+
directive = `lwc:if={${convertExpression(isTrue, context).replace(/^{|}$/g, '')}}`;
|
|
252
|
+
context.usedDirectives.push('lwc:if');
|
|
253
|
+
}
|
|
254
|
+
else if (isFalse) {
|
|
255
|
+
// isFalse is tricky because lwc:else doesn't take an expression
|
|
256
|
+
// We'll treat it as lwc:if with negated expression
|
|
257
|
+
const expr = convertExpression(isFalse, context).replace(/^{|}$/g, '');
|
|
258
|
+
directive = `lwc:if={!${expr}}`;
|
|
259
|
+
context.usedDirectives.push('lwc:if');
|
|
260
|
+
}
|
|
261
|
+
// Separate children into main if-block content and else block content
|
|
262
|
+
const children = element.children || [];
|
|
263
|
+
const mainBlockChildren = [];
|
|
264
|
+
let elseBlockContent = '';
|
|
265
|
+
for (const child of children) {
|
|
266
|
+
if (child.type === 'tag') {
|
|
267
|
+
const childElement = child;
|
|
268
|
+
if (childElement.name === 'aura:set') {
|
|
269
|
+
const attrName = childElement.attribs.attribute || '';
|
|
270
|
+
if (attrName === 'else') {
|
|
271
|
+
// This is the else block content - transform it separately
|
|
272
|
+
const elseChildren = childElement.children || [];
|
|
273
|
+
elseBlockContent = transformChildren(elseChildren, indent + ' ', context);
|
|
274
|
+
context.usedDirectives.push('lwc:else');
|
|
275
|
+
continue;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
mainBlockChildren.push(child);
|
|
280
|
+
}
|
|
281
|
+
const mainContent = transformChildren(mainBlockChildren, indent + ' ', context);
|
|
282
|
+
let result = `${indent}<template ${directive}>\n${mainContent}${indent}</template>`;
|
|
283
|
+
// Add else block if present
|
|
284
|
+
if (elseBlockContent) {
|
|
285
|
+
result += `\n${indent}<template lwc:else>\n${elseBlockContent}${indent}</template>`;
|
|
286
|
+
}
|
|
287
|
+
return result;
|
|
288
|
+
}
|
|
289
|
+
if (tagName === 'aura:iteration') {
|
|
290
|
+
const items = element.attribs.items;
|
|
291
|
+
const varName = element.attribs.var;
|
|
292
|
+
const indexVar = element.attribs.indexvar || element.attribs.indexVar;
|
|
293
|
+
context.usedDirectives.push('for:each');
|
|
294
|
+
let directives = `for:each=${convertExpression(items, context)} for:item="${varName}"`;
|
|
295
|
+
if (indexVar) {
|
|
296
|
+
directives += ` for:index="${indexVar}"`;
|
|
297
|
+
}
|
|
298
|
+
// Transform children with iteration context to inject key on first element
|
|
299
|
+
const iterContext = { ...context, iterationVar: varName, needsKey: true };
|
|
300
|
+
const childContent = transformChildrenWithIteration(element.children || [], indent + ' ', iterContext);
|
|
301
|
+
return `${indent}<template ${directives}>\n${childContent}${indent}</template>`;
|
|
302
|
+
}
|
|
303
|
+
// Handle aura:set - convert to slot content
|
|
304
|
+
if (tagName === 'aura:set') {
|
|
305
|
+
const attrName = element.attribs.attribute || '';
|
|
306
|
+
const childContent = transformChildren(element.children || [], indent + ' ', context);
|
|
307
|
+
// Store facet content for later use
|
|
308
|
+
context.facetContent.push({
|
|
309
|
+
attributeName: attrName,
|
|
310
|
+
content: childContent.trim(),
|
|
311
|
+
});
|
|
312
|
+
// lightning-card has named slots for 'actions' and 'footer'
|
|
313
|
+
if (attrName === 'actions' && context.parentTag?.includes('card')) {
|
|
314
|
+
return `${indent}<div slot="actions">\n${childContent}${indent}</div>`;
|
|
315
|
+
}
|
|
316
|
+
if (attrName === 'footer' && context.parentTag?.includes('card')) {
|
|
317
|
+
return `${indent}<div slot="footer">\n${childContent}${indent}</div>`;
|
|
318
|
+
}
|
|
319
|
+
// For other facets, wrap in a named slot
|
|
320
|
+
if (attrName) {
|
|
321
|
+
context.warnings.push(`aura:set attribute="${attrName}" - verify slot name exists on parent component`);
|
|
322
|
+
return `${indent}<div slot="${attrName}">\n${childContent}${indent}</div>`;
|
|
323
|
+
}
|
|
324
|
+
context.warnings.push('aura:set found without attribute name - needs manual migration');
|
|
325
|
+
return `${indent}<!-- TODO: Convert aura:set to slot content -->\n${childContent}`;
|
|
326
|
+
}
|
|
327
|
+
if (tagName === 'aura:html') {
|
|
328
|
+
const tag = element.attribs.tag || 'div';
|
|
329
|
+
const body = element.attribs.body || '';
|
|
330
|
+
context.warnings.push('aura:html found - verify dynamic HTML handling');
|
|
331
|
+
return `${indent}<${tag}>${convertExpression(body, context)}</${tag}>`;
|
|
332
|
+
}
|
|
333
|
+
// Skip aura meta tags that don't produce output
|
|
334
|
+
if (tagName === 'aura:attribute' ||
|
|
335
|
+
tagName === 'aura:handler' ||
|
|
336
|
+
tagName === 'aura:registerEvent' ||
|
|
337
|
+
tagName === 'aura:method') {
|
|
338
|
+
return '';
|
|
339
|
+
}
|
|
340
|
+
// Convert regular components
|
|
341
|
+
const { lwcTag, mapping } = convertTagName(tagName);
|
|
342
|
+
if (lwcTag !== tagName) {
|
|
343
|
+
context.usedComponents.push(lwcTag);
|
|
344
|
+
}
|
|
345
|
+
// Build attributes
|
|
346
|
+
const attrs = [];
|
|
347
|
+
for (const [key, value] of Object.entries(element.attribs)) {
|
|
348
|
+
// Skip aura:id - convert to data-id
|
|
349
|
+
if (key === 'aura:id') {
|
|
350
|
+
attrs.push(`data-id="${value}"`);
|
|
351
|
+
continue;
|
|
352
|
+
}
|
|
353
|
+
const lwcAttrName = convertAttributeName(key, mapping);
|
|
354
|
+
const lwcValue = convertExpression(value, context);
|
|
355
|
+
// Handle event handlers
|
|
356
|
+
if (key.startsWith('on') || lwcAttrName.startsWith('on')) {
|
|
357
|
+
attrs.push(`${lwcAttrName}=${lwcValue}`);
|
|
358
|
+
}
|
|
359
|
+
else if (lwcValue.startsWith('{') && lwcValue.endsWith('}')) {
|
|
360
|
+
// Dynamic value
|
|
361
|
+
attrs.push(`${lwcAttrName}=${lwcValue}`);
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
// Static value
|
|
365
|
+
attrs.push(`${lwcAttrName}="${lwcValue}"`);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
const attrString = attrs.length > 0 ? ' ' + attrs.join(' ') : '';
|
|
369
|
+
// Check if self-closing
|
|
370
|
+
const children = element.children || [];
|
|
371
|
+
const hasChildren = children.some((child) => {
|
|
372
|
+
if (child.type === 'text') {
|
|
373
|
+
return child.data.trim().length > 0;
|
|
374
|
+
}
|
|
375
|
+
return child.type === 'tag';
|
|
376
|
+
});
|
|
377
|
+
if (!hasChildren) {
|
|
378
|
+
return `${indent}<${lwcTag}${attrString}></${lwcTag}>`;
|
|
379
|
+
}
|
|
380
|
+
// Pass parent tag to context for slot handling
|
|
381
|
+
const childContext = { ...context, parentTag: lwcTag };
|
|
382
|
+
const childContent = transformChildren(children, indent + ' ', childContext);
|
|
383
|
+
return `${indent}<${lwcTag}${attrString}>\n${childContent}${indent}</${lwcTag}>`;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Transform array of child nodes
|
|
387
|
+
*/
|
|
388
|
+
/**
|
|
389
|
+
* Transform children within an iteration context to inject key attribute on first element
|
|
390
|
+
*/
|
|
391
|
+
function transformChildrenWithIteration(children, indent, context) {
|
|
392
|
+
const parts = [];
|
|
393
|
+
let keyInjected = false;
|
|
394
|
+
for (const child of children) {
|
|
395
|
+
if (!keyInjected && context.needsKey && child.type === 'tag') {
|
|
396
|
+
const element = child;
|
|
397
|
+
// Skip text and non-element nodes, find first actual element to inject key
|
|
398
|
+
// Inject key attribute on first element child
|
|
399
|
+
const varName = context.iterationVar || 'item';
|
|
400
|
+
// Check if element already has a key attribute
|
|
401
|
+
const hasKey = element.attribs && ('key' in element.attribs);
|
|
402
|
+
if (!hasKey) {
|
|
403
|
+
// Add key to the element's attributes
|
|
404
|
+
if (!element.attribs) {
|
|
405
|
+
element.attribs = {};
|
|
406
|
+
}
|
|
407
|
+
element.attribs['key'] = `{${varName}.Id}`;
|
|
408
|
+
context.warnings.push(`Added key={${varName}.Id} to iteration - verify .Id is the correct unique identifier`);
|
|
409
|
+
}
|
|
410
|
+
keyInjected = true;
|
|
411
|
+
}
|
|
412
|
+
const result = transformNode(child, indent, context);
|
|
413
|
+
if (result) {
|
|
414
|
+
parts.push(result);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
return parts.join('\n') + (parts.length > 0 ? '\n' : '');
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Transform array of child nodes
|
|
421
|
+
*/
|
|
422
|
+
function transformChildren(children, indent, context) {
|
|
423
|
+
const parts = [];
|
|
424
|
+
for (const child of children) {
|
|
425
|
+
const result = transformNode(child, indent, context);
|
|
426
|
+
if (result) {
|
|
427
|
+
parts.push(result);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
return parts.join('\n') + (parts.length > 0 ? '\n' : '');
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Transform parsed Aura markup to LWC HTML
|
|
434
|
+
*/
|
|
435
|
+
function transformAuraMarkup(parsed) {
|
|
436
|
+
const context = {
|
|
437
|
+
warnings: [],
|
|
438
|
+
usedDirectives: [],
|
|
439
|
+
usedComponents: [],
|
|
440
|
+
lmsChannels: [],
|
|
441
|
+
recordDataServices: [],
|
|
442
|
+
facetContent: [],
|
|
443
|
+
detectedGetters: [],
|
|
444
|
+
};
|
|
445
|
+
const bodyContent = transformChildren(parsed.body, ' ', context);
|
|
446
|
+
const html = `<template>\n${bodyContent}</template>`;
|
|
447
|
+
// Deduplicate
|
|
448
|
+
context.usedDirectives = [...new Set(context.usedDirectives)];
|
|
449
|
+
context.usedComponents = [...new Set(context.usedComponents)];
|
|
450
|
+
logger_1.logger.debug(`Transformed markup with ${context.warnings.length} warnings`);
|
|
451
|
+
logger_1.logger.debug(`Used directives: ${context.usedDirectives.join(', ')}`);
|
|
452
|
+
logger_1.logger.debug(`Used components: ${context.usedComponents.join(', ')}`);
|
|
453
|
+
logger_1.logger.debug(`Detected ${context.detectedGetters.length} complex expressions for getters`);
|
|
454
|
+
return {
|
|
455
|
+
html,
|
|
456
|
+
warnings: context.warnings,
|
|
457
|
+
usedDirectives: context.usedDirectives,
|
|
458
|
+
usedComponents: context.usedComponents,
|
|
459
|
+
lmsChannels: context.lmsChannels,
|
|
460
|
+
recordDataServices: context.recordDataServices,
|
|
461
|
+
facetContent: context.facetContent,
|
|
462
|
+
detectedGetters: context.detectedGetters,
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
//# sourceMappingURL=markup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markup.js","sourceRoot":"","sources":["../../../src/transformers/aura-to-lwc/markup.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkkBH,kDAkCC;AAhmBD,+CAA4C;AAC5C,6EAA+D;AAwD/D,MAAM,iBAAiB,GAAI,WAAmB,CAAC,UAA8C,CAAC;AAE9F;;;;;;GAMG;AACH,SAAS,iBAAiB,CACxB,IAAY,EACZ,OAA+C;IAE/C,kBAAkB;IAClB,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC3D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;QAC3C,CAAC,CAAC,IAAI,CAAC;IAET,mEAAmE;IACnE,wFAAwF;IACxF,oFAAoF;IACpF,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC;QAClE,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,SAAS,KAAK,UAAU,CAAC;IAE3B,MAAM,mBAAmB,GACvB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,wFAAwF;QACxF,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QACvB,4DAA4D;QAC5D,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9B,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,CAAC,sBAAsB,IAAI,mBAAmB,CAAC;IAEjE,gEAAgE;IAChE,IAAI,SAAS,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxE,yDAAyD;QACzD,+DAA+D;QAC/D,MAAM,UAAU,GAAG,gBAAgB,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAExE,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;YAC3B,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,OAAO,IAAI,UAAU,GAAG,CAAC;IAC3B,CAAC;IAED,sCAAsC;IACtC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAElD,qFAAqF;IACrF,qDAAqD;IACrD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;QACpF,8CAA8C;QAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,IAAI,UAAU,GAAG,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;QACjF,uDAAuD;QACvD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,IAAI,UAAU,GAAG,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAClC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAElD,yCAAyC;IACzC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,oDAAoD,CAAC,CAAC;IAEhG,qDAAqD;IACrD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,6BAA6B,EAAE,aAAa,CAAC,CAAC;IAEtE,sCAAsC;IACtC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAEjD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,QAAgB,EAAE,gBAAmC;IACjF,qEAAqE;IACrE,IAAI,gBAAgB,EAAE,UAAU,IAAI,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1E,OAAO,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,0DAA0D;IAC1D,OAAO,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED,kDAAkD;IAClD,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7E,OAAO,EAAE,MAAM,EAAE,aAAa,SAAS,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,gEAAgE;IAChE,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;QAChD,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7E,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,EAAE,CAAC;IACtC,CAAC;IAED,uCAAuC;IACvC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,IAAU,EACV,MAAc,EACd,OASC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAI,IAAa,CAAC,IAAI,CAAC;QACjC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,IAAe,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7B,wEAAwE;IACxE,IAAI,OAAO,KAAK,0BAA0B,IAAI,OAAO,KAAK,0BAA0B,EAAE,CAAC;QACrF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAE1C,+CAA+C;QAC/C,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,YAAY,EAAE,CAAC;YACjB,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;YACvB,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,MAAM;YACd,gBAAgB,EAAE,WAAW;YAC7B,KAAK,EAAE,KAAK;YACZ,eAAe,EAAE,CAAC,WAAW,EAAE,4CAA4C;SAC5E,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACjE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,sCAAsC,UAAU,8CAA8C,CAAC,CAAC;QAEtH,iDAAiD;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,gEAAgE;IAChE,IAAI,OAAO,KAAK,kBAAkB,IAAI,OAAO,KAAK,kBAAkB,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC5E,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QACxF,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QACxF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QACrF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QAE5C,6DAA6D;QAC7D,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;iBACpB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;iBACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,4DAA4D;QAC5D,IAAI,eAAe,GAAG,QAAQ,CAAC;QAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,YAAY,EAAE,CAAC;YACjB,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QAED,oDAAoD;QACpD,IAAI,mBAAmB,GAAG,YAAY,CAAC;QACvC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACxD,IAAI,WAAW,EAAE,CAAC;YAChB,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,eAAe;YAChC,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,mBAAmB;YACjC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACtG,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACnG,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAEtG,kDAAkD;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAChE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAEnE,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,GAAG,WAAW,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC;YACnF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,gEAAgE;YAChE,mDAAmD;YACnD,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvE,SAAS,GAAG,YAAY,IAAI,GAAG,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,sEAAsE;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACxC,MAAM,iBAAiB,GAAW,EAAE,CAAC;QACrC,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAE1B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,KAAgB,CAAC;gBACtC,IAAI,YAAY,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;oBACtD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;wBACxB,2DAA2D;wBAC3D,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;wBACjD,gBAAgB,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;wBAC7E,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACxC,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;YACD,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnF,IAAI,MAAM,GAAG,GAAG,MAAM,aAAa,SAAS,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC;QAEpF,4BAA4B;QAC5B,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,MAAM,wBAAwB,gBAAgB,GAAG,MAAM,aAAa,CAAC;QACtF,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,UAAU,GAAG,YAAY,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,OAAO,GAAG,CAAC;QACvF,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,IAAI,eAAe,QAAQ,GAAG,CAAC;QAC3C,CAAC;QAED,2EAA2E;QAC3E,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC1E,MAAM,YAAY,GAAG,8BAA8B,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,CAAC,CAAC;QAE1G,OAAO,GAAG,MAAM,aAAa,UAAU,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC;IAClF,CAAC;IAED,4CAA4C;IAC5C,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;QAEzF,oCAAoC;QACpC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;YACxB,aAAa,EAAE,QAAQ;YACvB,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE;SAC7B,CAAC,CAAC;QAEH,4DAA4D;QAC5D,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,OAAO,GAAG,MAAM,yBAAyB,YAAY,GAAG,MAAM,QAAQ,CAAC;QACzE,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,OAAO,GAAG,MAAM,wBAAwB,YAAY,GAAG,MAAM,QAAQ,CAAC;QACxE,CAAC;QAED,yCAAyC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,QAAQ,iDAAiD,CAAC,CAAC;YACxG,OAAO,GAAG,MAAM,cAAc,QAAQ,OAAO,YAAY,GAAG,MAAM,QAAQ,CAAC;QAC7E,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACxF,OAAO,GAAG,MAAM,oDAAoD,YAAY,EAAE,CAAC;IACrF,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QACxE,OAAO,GAAG,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;IACzE,CAAC;IAED,gDAAgD;IAChD,IACE,OAAO,KAAK,gBAAgB;QAC5B,OAAO,KAAK,cAAc;QAC1B,OAAO,KAAK,oBAAoB;QAChC,OAAO,KAAK,aAAa,EACzB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,6BAA6B;IAC7B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,mBAAmB;IACnB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,oCAAoC;QACpC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEnD,wBAAwB;QACxB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,gBAAgB;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,eAAe;YACf,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,KAAK,QAAQ,GAAG,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,wBAAwB;IACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAQ,KAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,GAAG,MAAM,IAAI,MAAM,GAAG,UAAU,MAAM,MAAM,GAAG,CAAC;IACzD,CAAC;IAED,+CAA+C;IAC/C,MAAM,YAAY,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACvD,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC;IAChF,OAAO,GAAG,MAAM,IAAI,MAAM,GAAG,UAAU,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,GAAG,CAAC;AACnF,CAAC;AAED;;GAEG;AACH;;GAEG;AACH,SAAS,8BAA8B,CACrC,QAAgB,EAChB,MAAc,EACd,OAWC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,KAAgB,CAAC;YACjC,2EAA2E;YAC3E,8CAA8C;YAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC;YAE/C,+CAA+C;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;YAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,sCAAsC;gBACtC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACrB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;gBACvB,CAAC;gBACD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,MAAM,CAAC;gBAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CACnB,cAAc,OAAO,iEAAiE,CACvF,CAAC;YACJ,CAAC;YACD,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,QAAgB,EAChB,MAAc,EACd,OASC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,MAAwB;IAC1D,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,EAAc;QACxB,cAAc,EAAE,EAAc;QAC9B,cAAc,EAAE,EAAc;QAC9B,WAAW,EAAE,EAAwB;QACrC,kBAAkB,EAAE,EAAwB;QAC5C,YAAY,EAAE,EAAoB;QAClC,eAAe,EAAE,EAAsB;KACxC,CAAC;IAEF,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEpE,MAAM,IAAI,GAAG,eAAe,WAAW,aAAa,CAAC;IAErD,cAAc;IACd,OAAO,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAE9D,eAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;IAC5E,eAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,eAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,eAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,eAAe,CAAC,MAAM,kCAAkC,CAAC,CAAC;IAE3F,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VF Component to LWC Component transformation utilities
|
|
3
|
+
*/
|
|
4
|
+
import { VfComponent } from '../../parsers/vf/page-parser';
|
|
5
|
+
export interface LwcComponentSuggestion {
|
|
6
|
+
vfComponent: string;
|
|
7
|
+
lwcComponent: string;
|
|
8
|
+
confidence: 'high' | 'medium' | 'low';
|
|
9
|
+
confidenceScore: number;
|
|
10
|
+
confidenceFactors: string[];
|
|
11
|
+
notes: string;
|
|
12
|
+
codeExample?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface FormFieldConversion {
|
|
15
|
+
vfField: VfComponent;
|
|
16
|
+
lwcCode: string;
|
|
17
|
+
jsProperty: string;
|
|
18
|
+
handlerCode?: string;
|
|
19
|
+
warnings: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Convert a VF form field component to LWC
|
|
23
|
+
*/
|
|
24
|
+
export declare function convertFormField(component: VfComponent): FormFieldConversion;
|
|
25
|
+
/**
|
|
26
|
+
* Suggest LWC components for VF components
|
|
27
|
+
*/
|
|
28
|
+
export declare function suggestLwcComponents(vfComponents: VfComponent[]): LwcComponentSuggestion[];
|
|
29
|
+
/**
|
|
30
|
+
* Generate lightning-datatable column definitions from VF pageBlockTable
|
|
31
|
+
*/
|
|
32
|
+
export declare function generateDataTableColumns(tableComponent: VfComponent): {
|
|
33
|
+
columns: string;
|
|
34
|
+
warnings: string[];
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Generate form submit handler for VF form conversion
|
|
38
|
+
*/
|
|
39
|
+
export declare function generateFormHandler(formComponent: VfComponent, _apexAction?: string): string;
|
|
40
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/transformers/vf-to-lwc/components.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAO3D,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA+LD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,WAAW,GAAG,mBAAmB,CAc5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,sBAAsB,EAAE,CAkF1F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,WAAW,GAC1B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA+CzC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,WAAW,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CA0CR"}
|