diff --git a/src/icons/generator/iconOpacity.ts b/src/icons/generator/iconOpacity.ts index 4886be7e1c..f19fab4d10 100644 --- a/src/icons/generator/iconOpacity.ts +++ b/src/icons/generator/iconOpacity.ts @@ -30,7 +30,13 @@ export const setIconOpacity = (opacity: string) => { const svgRootElement = getSVGRootElement(svg); if (!svgRootElement) return; - const updatedRootElement = addOpacityAttribute(svgRootElement, opacity); + let updatedRootElement: string; + if (+opacity !== 1) { + updatedRootElement = addOpacityAttribute(svgRootElement, opacity); + } else { + // if the opacity equals 1 then remove the attribute + updatedRootElement = removeOpacityAttribute(svgRootElement); + } const updatedSVG = svg.replace(/]*>/, updatedRootElement); fs.writeFileSync(svgFilePath, updatedSVG); @@ -50,8 +56,7 @@ export const setIconOpacity = (opacity: string) => { * @param opacity Opacity value */ export const validateOpacityValue = (opacity: string) => { - const pattern = new RegExp(/^([0]?\.\d+)|(1(.0)?)$/); - return pattern.test(opacity); + return +opacity >= 0 && +opacity <= 1; }; /** @@ -81,3 +86,16 @@ const addOpacityAttribute = (svgRoot: string, opacity: string) => { return svgRoot.replace(/^ { + const pattern = new RegExp(/\sopacity="[\d.]+"/); + // check if the opacity attribute exists + if (pattern.test(svgRoot)) { + return svgRoot.replace(pattern, ''); + } + return svgRoot; +}; diff --git a/src/icons/generator/index.ts b/src/icons/generator/index.ts index 42d6901211..0bda060bbd 100644 --- a/src/icons/generator/index.ts +++ b/src/icons/generator/index.ts @@ -3,3 +3,4 @@ export * from './folderGenerator'; export * from './languageGenerator'; export * from './constants'; export * from './jsonGenerator'; +export * from './iconOpacity'; diff --git a/src/icons/generator/jsonGenerator.ts b/src/icons/generator/jsonGenerator.ts index f70459a1d2..1c28858a6c 100644 --- a/src/icons/generator/jsonGenerator.ts +++ b/src/icons/generator/jsonGenerator.ts @@ -6,8 +6,7 @@ import { fileIcons } from '../fileIcons'; import { folderIcons } from '../folderIcons'; import { languageIcons } from '../languageIcons'; import { iconJsonName } from './constants'; -import { setIconOpacity } from './iconOpacity'; -import { generateFolderIcons, getFileIconDefinitions, getFolderIconDefinitions, getLanguageIconDefinitions } from './index'; +import { generateFolderIcons, getFileIconDefinitions, getFolderIconDefinitions, getLanguageIconDefinitions, setIconOpacity } from './index'; /** * Generate the complete icon configuration object that can be written as JSON file.