Skip to content

Commit

Permalink
resolve #6468 Reduce modules of creator themes
Browse files Browse the repository at this point in the history
  • Loading branch information
OlgaLarina committed Feb 4, 2025
1 parent c7ee2fb commit 16c6aee
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
26 changes: 15 additions & 11 deletions packages/survey-creator-core/creator-themes-import.js
Original file line number Diff line number Diff line change
Expand Up @@ -221,16 +221,20 @@ function writeTheme(themeName, cssVariables, variableName) {
return `import ${variableName}Theme from "./${themeName}";\nexport const ${variableName} = ${variableName}Theme;\n`;
}

function writeThemePalette(themeName, paletteName, cssVariables) {
function writeThemePalette(themeName, paletteName, cssVariables, extendTheme) {
const fileName = [themeName, paletteName].join("-");
const baseThemeVariable = capitalizedFirstLetter(themeName);
const variableName = [baseThemeVariable, capitalizedFirstLetter(paletteName)].join("");
const isLight = isLightTheme(fileName);

const theme = { themeName: fileName, iconSet: "v2", isLight: isLight, cssVariables: cssVariables };
const themeJson = JSON.stringify(theme, null, 2);
const importsString = `import { assign } from "./utils";\nimport { ${baseThemeVariable} } from "./${themeName}";\n\n`;
const useImportString = `const themeCssVariables = {};\nassign(themeCssVariables, ${baseThemeVariable}.cssVariables, Theme.cssVariables);\nassign(Theme, { cssVariables: themeCssVariables });\n\n`;
let importsString = "";
let useImportString = "";
if(extendTheme) {
importsString = `import { assign } from "./utils";\nimport { ${baseThemeVariable} } from "./${themeName}";\n\n`;
useImportString = `const themeCssVariables = {};\nassign(themeCssVariables, ${baseThemeVariable}.cssVariables, Theme.cssVariables);\nassign(Theme, { cssVariables: themeCssVariables });\n\n`;
}
const result = `${importsString}const Theme = ${themeJson};\n${useImportString}export default Theme;\nexport const ${variableName} = Theme;`;
fs.writeFileSync(_dirPath + fileName + ".ts", result);

Expand Down Expand Up @@ -263,9 +267,8 @@ Object.keys(themeNameMap).forEach(themeName => {
let strImportTheme = "";
if(legacyDefaultThemeName === themeName) {
strImportTheme = writeTheme2020(currentTheme, themeDistinctions[currentTheme], "SC2020");
} else {
} else if(baseThemeName !== themeName){
strImportTheme = writeTheme(currentTheme, themeDistinctions[currentTheme], capitalizedFirstLetter(currentTheme));
if(themeName === baseThemeName) strImportTheme = "";
}
indexFileContent += strImportTheme;

Expand All @@ -276,13 +279,14 @@ Object.keys(themeNameMap).forEach(themeName => {
const resultColorVariables = generateColorVariables(curPaletteCssVariables);
const cssVariables = { ...curPaletteCssVariables, ...resultColorVariables };

if(paletteName === "light") {
const cssVariablesJson = JSON.stringify(resultColorVariables, null, 2);
const result = `export const DefaultLightColorCssVariables = ${cssVariablesJson};`;
fs.writeFileSync(_dirPath + "default-light-color-css-variables.ts", result);
if(baseThemeName === themeName && paletteName === "light") {
const cssVariablesJson = JSON.stringify(resultColorVariables, null, 2);
const result = `export const DefaultLightColorCssVariables = ${cssVariablesJson};`;
fs.writeFileSync(_dirPath + "default-light-color-css-variables.ts", result);
} else {
strImportTheme = writeThemePalette(currentTheme, paletteName, cssVariables);
indexFileContent += strImportTheme;
}
strImportTheme = writeThemePalette(currentTheme, paletteName, cssVariables);
indexFileContent += strImportTheme;
});
});
fs.writeFileSync(_dirPath + "index.ts", indexFileContent);
1 change: 0 additions & 1 deletion packages/survey-creator-core/webpack.themes.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ const config = {
},
entry: {
"sc2020": path.resolve(__dirname, "./src/themes/sc2020.ts"),
"default-light": path.resolve(__dirname, "./src/themes/default-light.ts"),
"default-dark": path.resolve(__dirname, "./src/themes/default-dark.ts"),
"default-contrast": path.resolve(__dirname, "./src/themes/default-contrast.ts"),
"index": path.resolve(__dirname, "./src/themes/index.ts"),
Expand Down

0 comments on commit 16c6aee

Please sign in to comment.