@wavemaker/react-codegen 11.14.3-rc.6401 → 11.14.4-rc.647538
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/build-react-web.js +3 -8
- package/build-react-web.js.map +1 -1
- package/command.js +1 -1
- package/command.js.map +1 -1
- package/index.js +0 -2
- package/index.js.map +1 -1
- package/package-lock.json +256 -156
- package/package.json +1 -1
- package/src/app.generator.js +7 -16
- package/src/app.generator.js.map +1 -1
- package/src/gen-app-override-css.js +245 -316
- package/src/gen-app-override-css.js.map +1 -1
- package/src/handlebar-helpers.js +0 -186
- package/src/handlebar-helpers.js.map +1 -1
- package/src/transpile/bind.ex.transformer.js +0 -30
- package/src/transpile/bind.ex.transformer.js.map +1 -1
- package/src/transpile/components/container/panel.transformer.js +1 -0
- package/src/transpile/components/container/panel.transformer.js.map +1 -1
- package/src/transpile/components/container/wizardaction.transformer.js +19 -34
- package/src/transpile/components/container/wizardaction.transformer.js.map +1 -1
- package/src/transpile/components/container/wizardstep.transformer.js +5 -62
- package/src/transpile/components/container/wizardstep.transformer.js.map +1 -1
- package/src/transpile/components/data/form/form-field.transformer.js +1 -27
- package/src/transpile/components/data/form/form-field.transformer.js.map +1 -1
- package/src/transpile/components/data/list/list-transformer.js +2 -29
- package/src/transpile/components/data/list/list-transformer.js.map +1 -1
- package/src/transpile/components/data/live-filter-field.transformer.js +1 -13
- package/src/transpile/components/data/live-filter-field.transformer.js.map +1 -1
- package/src/transpile/components/data/liveform.transformer.js +4 -15
- package/src/transpile/components/data/liveform.transformer.js.map +1 -1
- package/src/transpile/components/data/table/table-column.transformer.js +3 -40
- package/src/transpile/components/data/table/table-column.transformer.js.map +1 -1
- package/src/transpile/components/data/table/table-row-action.transformer.js +1 -1
- package/src/transpile/components/dialogs/dialog-actions.transformer.js +0 -19
- package/src/transpile/components/dialogs/dialog-actions.transformer.js.map +1 -1
- package/src/transpile/components/dialogs/dialog.transformer.js +11 -0
- package/src/transpile/components/dialogs/dialog.transformer.js.map +1 -1
- package/src/transpile/components/input/checkbox-set.transformer.js +1 -1
- package/src/transpile/components/input/checkbox-set.transformer.js.map +1 -1
- package/src/transpile/components/input/checkbox.transformer.js +1 -29
- package/src/transpile/components/input/checkbox.transformer.js.map +1 -1
- package/src/transpile/components/input/currency.transformer.js +1 -1
- package/src/transpile/components/input/currency.transformer.js.map +1 -1
- package/src/transpile/components/input/radio-set.transformer.js +1 -1
- package/src/transpile/components/input/radio-set.transformer.js.map +1 -1
- package/src/transpile/components/input/switch.transformer.js.map +1 -1
- package/src/transpile/components/nav/nav.transformer.js +1 -33
- package/src/transpile/components/nav/nav.transformer.js.map +1 -1
- package/src/transpile/components/navigation/menu.transformer.js.map +1 -1
- package/src/transpile/components/navigation/popover.transformer.js +1 -1
- package/src/transpile/components/navigation/popover.transformer.js.map +1 -1
- package/src/transpile/components/utils.js +6 -19
- package/src/transpile/components/utils.js.map +1 -1
- package/src/transpile/style/dimension-style.parser.js +2 -13
- package/src/transpile/style/dimension-style.parser.js.map +1 -1
- package/src/transpile/style/style.parser.js +1 -1
- package/src/transpile/style/style.parser.js.map +1 -1
- package/src/transpile/style.transformer.js +1 -1
- package/src/transpile/style.transformer.js.map +1 -1
- package/src/transpile/transpile.js +20 -42
- package/src/transpile/transpile.js.map +1 -1
- package/src/utils.js +2 -6
- package/src/utils.js.map +1 -1
- package/src/variables/variable.transformer.js +7 -165
- package/src/variables/variable.transformer.js.map +1 -1
- package/templates/component/component.hbs +10 -0
- package/templates/component/partial.hbs +3 -0
- package/templates/project/app/components.css +0 -5
- package/templates/project/package.json +3 -3
- package/src/download-packages.js +0 -193
- package/src/download-packages.js.map +0 -1
- package/src/genappoverridecssold-file.js +0 -311
- package/src/genappoverridecssold-file.js.map +0 -1
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.OVERRIDE_TOKENS_PATH = exports.APP_OVERRIDE_CSS_PATH = exports.DESIGN_TOKENS_DIR_NAME = void 0;
|
|
37
|
-
exports.generateOverrideCSS = generateOverrideCSS;
|
|
38
|
-
const fs = __importStar(require("fs"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const project_service_1 = require("./project.service");
|
|
41
|
-
const utils_1 = require("./utils");
|
|
42
|
-
// Constants
|
|
43
|
-
exports.DESIGN_TOKENS_DIR_NAME = "design-tokens";
|
|
44
|
-
exports.APP_OVERRIDE_CSS_PATH = `${exports.DESIGN_TOKENS_DIR_NAME}/app.override.css`;
|
|
45
|
-
exports.OVERRIDE_TOKENS_PATH = `${exports.DESIGN_TOKENS_DIR_NAME}/overrides`;
|
|
46
|
-
/**
|
|
47
|
-
* Install a package if it's not already installed
|
|
48
|
-
* @param projectRoot project root directory
|
|
49
|
-
* @param packageName name of the package to install
|
|
50
|
-
* @param version version of the package
|
|
51
|
-
*/
|
|
52
|
-
async function installPackageIfNeeded(projectRoot, packageName, version) {
|
|
53
|
-
const packagePath = path.join(projectRoot, "node_modules", packageName);
|
|
54
|
-
if (!fs.existsSync(packagePath)) {
|
|
55
|
-
console.log(`Installing ${packageName}@${version}...`);
|
|
56
|
-
const installCmd = `npm install -g ${packageName}@${version} --save-dev --legacy-peer-deps`;
|
|
57
|
-
(0, utils_1.executeSyncCmd)(`cd ${projectRoot} && ${installCmd}`, (errMsg) => {
|
|
58
|
-
console.log(`Error installing ${packageName}:`, errMsg);
|
|
59
|
-
throw Error(errMsg);
|
|
60
|
-
}, `Installing ${packageName}: `);
|
|
61
|
-
console.log(`Successfully installed ${packageName}@${version}`);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
console.log(`${packageName} already installed`);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Process a single override JSON file to generate CSS variables
|
|
69
|
-
* @param jsonFilePath path to the override JSON file
|
|
70
|
-
* @param foundationTokensDir path to foundation tokens
|
|
71
|
-
* @param baseDir base directory
|
|
72
|
-
* @returns map of token name to value
|
|
73
|
-
*/
|
|
74
|
-
async function processOverrideFile(jsonFilePath, foundationTokensDir, baseDir) {
|
|
75
|
-
const tokens = new Map();
|
|
76
|
-
try {
|
|
77
|
-
// Read override file
|
|
78
|
-
const content = JSON.parse(fs.readFileSync(jsonFilePath, "utf-8"));
|
|
79
|
-
// Read foundation tokens for reference resolution
|
|
80
|
-
const foundationTokens = new Map();
|
|
81
|
-
function loadFoundationTokens(dir, prefix = "") {
|
|
82
|
-
if (!fs.existsSync(dir))
|
|
83
|
-
return;
|
|
84
|
-
const items = fs.readdirSync(dir);
|
|
85
|
-
items.forEach(item => {
|
|
86
|
-
const itemPath = path.join(dir, item);
|
|
87
|
-
const stat = fs.statSync(itemPath);
|
|
88
|
-
if (stat.isDirectory()) {
|
|
89
|
-
loadFoundationTokens(itemPath, prefix ? `${prefix}-${item}` : item);
|
|
90
|
-
}
|
|
91
|
-
else if (item.endsWith(".json") && !item.includes(".dark") && !item.includes(".light")) {
|
|
92
|
-
try {
|
|
93
|
-
const tokenContent = JSON.parse(fs.readFileSync(itemPath, "utf-8"));
|
|
94
|
-
flattenTokens(tokenContent, foundationTokens, prefix ? `${prefix}-${path.basename(item, ".json")}` : path.basename(item, ".json"));
|
|
95
|
-
}
|
|
96
|
-
catch (error) {
|
|
97
|
-
// Skip invalid JSON files
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
function flattenTokens(obj, tokenMap, prefix = "") {
|
|
103
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
104
|
-
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
105
|
-
if (value.value !== undefined) {
|
|
106
|
-
// This is a token definition
|
|
107
|
-
const tokenName = prefix ? `${prefix}.${key}` : key;
|
|
108
|
-
tokenMap.set(tokenName, value.value);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
// Continue traversing
|
|
112
|
-
const newPrefix = prefix ? `${prefix}.${key}` : key;
|
|
113
|
-
flattenTokens(value, tokenMap, newPrefix);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Load foundation tokens
|
|
119
|
-
loadFoundationTokens(foundationTokensDir);
|
|
120
|
-
// Process override tokens
|
|
121
|
-
function processTokens(obj, prefix = "") {
|
|
122
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
123
|
-
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
124
|
-
if (value.value !== undefined) {
|
|
125
|
-
// This is a token definition - skip @ keys for token names
|
|
126
|
-
const cleanKey = key === "@" ? "" : key;
|
|
127
|
-
const tokenName = cleanKey
|
|
128
|
-
? `--wm-${prefix ? `${prefix}-${cleanKey}` : cleanKey}`
|
|
129
|
-
: `--wm-${prefix}`;
|
|
130
|
-
let tokenValue = value.value;
|
|
131
|
-
// Resolve references like {color.white.@.value} to CSS variables
|
|
132
|
-
if (typeof tokenValue === "string" &&
|
|
133
|
-
tokenValue.includes("{") &&
|
|
134
|
-
tokenValue.includes("}")) {
|
|
135
|
-
const referenceMatch = tokenValue.match(/\{([^}]+)\}/g);
|
|
136
|
-
if (referenceMatch) {
|
|
137
|
-
referenceMatch.forEach(ref => {
|
|
138
|
-
const refKey = ref.slice(1, -1); // Remove { }
|
|
139
|
-
// Convert foundation token path to CSS variable name
|
|
140
|
-
let cssVarName = refKey
|
|
141
|
-
.replace(".@.value", "")
|
|
142
|
-
.replace(".value", "")
|
|
143
|
-
.replace(/\./g, "-");
|
|
144
|
-
// Convert to CSS variable format
|
|
145
|
-
const cssVariable = `var(--wm-${cssVarName})`;
|
|
146
|
-
tokenValue = tokenValue.replace(ref, cssVariable);
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
tokens.set(tokenName, tokenValue);
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
// Continue traversing - skip @ keys in paths
|
|
154
|
-
const cleanKey = key === "@" ? "" : key;
|
|
155
|
-
const newPrefix = prefix && cleanKey ? `${prefix}-${cleanKey}` : cleanKey || prefix;
|
|
156
|
-
processTokens(value, newPrefix);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
processTokens(content);
|
|
162
|
-
}
|
|
163
|
-
catch (error) {
|
|
164
|
-
console.error(`Error processing ${jsonFilePath}:`, error);
|
|
165
|
-
}
|
|
166
|
-
return tokens;
|
|
167
|
-
}
|
|
168
|
-
async function generateOverrideCSS(runtimeUIVersion, sourceDir, appTarget) {
|
|
169
|
-
// Use existing LocalProjectService to check if this is a Prism project
|
|
170
|
-
const projectService = new project_service_1.LocalProjectService(sourceDir + "/src/main/webapp");
|
|
171
|
-
const isPrismProject = await projectService.getWmProjectType();
|
|
172
|
-
if (isPrismProject) {
|
|
173
|
-
const overridesDir = path.join(sourceDir + `/src/main/webapp/`, exports.OVERRIDE_TOKENS_PATH);
|
|
174
|
-
const overrideCssFile = sourceDir + `/src/main/webapp/${exports.APP_OVERRIDE_CSS_PATH}`;
|
|
175
|
-
if (fs.existsSync(overridesDir)) {
|
|
176
|
-
console.log("CODEGEN REACT APP: generating override css...");
|
|
177
|
-
// Use the react-codegen package directory as baseDir
|
|
178
|
-
// __dirname will be the 'build/src' directory after compilation,
|
|
179
|
-
// so we go up one level to get the react-codegen root
|
|
180
|
-
const baseDir = path.resolve(__dirname, "..");
|
|
181
|
-
console.log("baseDir for npm packages (react-codegen path):", baseDir);
|
|
182
|
-
// Install required packages
|
|
183
|
-
// await installPackageIfNeeded(baseDir, "style-dictionary", "4.1.0");
|
|
184
|
-
await installPackageIfNeeded(baseDir, "@wavemaker/foundation-css", runtimeUIVersion || "latest");
|
|
185
|
-
const foundationTokensDir = path.join(baseDir, "node_modules", "@wavemaker", "foundation-css", "tokens");
|
|
186
|
-
// Find all override JSON files
|
|
187
|
-
const overrideFiles = [];
|
|
188
|
-
function findOverrideFiles(dir) {
|
|
189
|
-
if (!fs.existsSync(dir))
|
|
190
|
-
return;
|
|
191
|
-
const items = fs.readdirSync(dir);
|
|
192
|
-
items.forEach(item => {
|
|
193
|
-
const itemPath = path.join(dir, item);
|
|
194
|
-
const stat = fs.statSync(itemPath);
|
|
195
|
-
if (stat.isDirectory()) {
|
|
196
|
-
findOverrideFiles(itemPath);
|
|
197
|
-
}
|
|
198
|
-
else if (item.endsWith(".json")) {
|
|
199
|
-
overrideFiles.push(itemPath);
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
findOverrideFiles(overridesDir);
|
|
204
|
-
console.log(`Processing ${overrideFiles.length} override files...`);
|
|
205
|
-
// Collect all tokens with source tracking
|
|
206
|
-
const defaultTokens = new Map();
|
|
207
|
-
const lightTokens = new Map();
|
|
208
|
-
const darkTokens = new Map();
|
|
209
|
-
for (const overrideFile of overrideFiles) {
|
|
210
|
-
const fileName = path.basename(overrideFile);
|
|
211
|
-
if (fileName === "space.json") {
|
|
212
|
-
console.log("called space.json");
|
|
213
|
-
}
|
|
214
|
-
const fileTokens = await processOverrideFile(overrideFile, foundationTokensDir, baseDir);
|
|
215
|
-
// Sort tokens by mode
|
|
216
|
-
if (fileName.includes(".light.")) {
|
|
217
|
-
fileTokens.forEach((value, name) => {
|
|
218
|
-
lightTokens.set(name, value);
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
else if (fileName.includes(".dark.")) {
|
|
222
|
-
fileTokens.forEach((value, name) => {
|
|
223
|
-
darkTokens.set(name, value);
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
fileTokens.forEach((value, name) => {
|
|
228
|
-
defaultTokens.set(name, value);
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
// Generate final CSS with mode-specific attribute selectors like Angular
|
|
233
|
-
const cssLines = [];
|
|
234
|
-
// Add default tokens
|
|
235
|
-
if (defaultTokens.size > 0) {
|
|
236
|
-
cssLines.push(":root {");
|
|
237
|
-
defaultTokens.forEach((value, name) => {
|
|
238
|
-
cssLines.push(`${name}: ${value};`);
|
|
239
|
-
});
|
|
240
|
-
cssLines.push("}");
|
|
241
|
-
}
|
|
242
|
-
// Add light mode tokens with attribute selectors (like Angular does)
|
|
243
|
-
if (lightTokens.size > 0) {
|
|
244
|
-
if (cssLines.length > 0)
|
|
245
|
-
cssLines.push("");
|
|
246
|
-
cssLines.push(":root[color='light'] {");
|
|
247
|
-
lightTokens.forEach((value, name) => {
|
|
248
|
-
cssLines.push(`${name}: ${value};`);
|
|
249
|
-
});
|
|
250
|
-
cssLines.push("}");
|
|
251
|
-
}
|
|
252
|
-
// Add dark mode tokens with attribute selectors (like Angular does)
|
|
253
|
-
if (darkTokens.size > 0) {
|
|
254
|
-
if (cssLines.length > 0)
|
|
255
|
-
cssLines.push("");
|
|
256
|
-
cssLines.push(":root[color='dark'] {");
|
|
257
|
-
darkTokens.forEach((value, name) => {
|
|
258
|
-
cssLines.push(`${name}: ${value};`);
|
|
259
|
-
});
|
|
260
|
-
cssLines.push("}");
|
|
261
|
-
}
|
|
262
|
-
const totalTokens = defaultTokens.size + lightTokens.size + darkTokens.size;
|
|
263
|
-
// Only generate CSS files if there are actual tokens
|
|
264
|
-
if (totalTokens > 0) {
|
|
265
|
-
const finalCSS = cssLines.join("\n");
|
|
266
|
-
fs.writeFileSync(overrideCssFile, finalCSS);
|
|
267
|
-
// Also copy to public directory for React app if appTarget is provided
|
|
268
|
-
if (appTarget) {
|
|
269
|
-
const publicCssPath = path.join(appTarget, "public", exports.APP_OVERRIDE_CSS_PATH);
|
|
270
|
-
const publicDir = path.dirname(publicCssPath);
|
|
271
|
-
const globalCSSPath = path.join(appTarget, "app", "globals.css");
|
|
272
|
-
if (!fs.existsSync(publicDir)) {
|
|
273
|
-
fs.mkdirSync(publicDir, { recursive: true });
|
|
274
|
-
}
|
|
275
|
-
fs.writeFileSync(publicCssPath, finalCSS);
|
|
276
|
-
console.log(`✅ CSS copied to React app public directory`);
|
|
277
|
-
// Now that we've generated the override CSS, add its import to globals.css
|
|
278
|
-
if (fs.existsSync(globalCSSPath)) {
|
|
279
|
-
const content = fs.readFileSync(globalCSSPath, "utf-8");
|
|
280
|
-
// Check if the import is already present
|
|
281
|
-
if (!content.includes("public/design-tokens/app.override.css")) {
|
|
282
|
-
// Add the import after the existing imports
|
|
283
|
-
const lines = content.split("\n");
|
|
284
|
-
let insertIndex = 0;
|
|
285
|
-
// Find the last import line
|
|
286
|
-
for (let i = 0; i < lines.length; i++) {
|
|
287
|
-
if (lines[i].startsWith("@import")) {
|
|
288
|
-
insertIndex = i + 1;
|
|
289
|
-
}
|
|
290
|
-
else if (lines[i].trim() === "" && insertIndex > 0) {
|
|
291
|
-
insertIndex = i;
|
|
292
|
-
break;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
// Insert the override CSS import
|
|
296
|
-
lines.splice(insertIndex, 0, '@import "../public/design-tokens/app.override.css";');
|
|
297
|
-
fs.writeFileSync(globalCSSPath, lines.join("\n"), "utf-8");
|
|
298
|
-
console.log("✅ Added CSS override import to globals.css");
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
console.log(`✅ Generated CSS with ${totalTokens} override tokens`);
|
|
303
|
-
console.log("CODEGEN REACT APP: generating overrides success!");
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
console.log("ℹ️ No design tokens found, skipping CSS generation");
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
//# sourceMappingURL=genappoverridecssold-file.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"genappoverridecssold-file.js","sourceRoot":"","sources":["../../src/genappoverridecssold-file.ts"],"names":[],"mappings":"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"}
|