@sussudio/base
Version:
Internal APIs for VS Code's utilities and user interface building blocks.
32 lines (31 loc) • 1.21 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as dom from '../../../browser/dom.mjs';
import { IdGenerator } from '../../../common/idGenerator.mjs';
import '../../../../css!./media/quickInput.mjs';
const iconPathToClass = {};
const iconClassGenerator = new IdGenerator('quick-input-button-icon-');
export function getIconClass(iconPath) {
if (!iconPath) {
return undefined;
}
let iconClass;
const key = iconPath.dark.toString();
if (iconPathToClass[key]) {
iconClass = iconPathToClass[key];
} else {
iconClass = iconClassGenerator.nextId();
dom.createCSSRule(
`.${iconClass}, .hc-light .${iconClass}`,
`background-image: ${dom.asCSSUrl(iconPath.light || iconPath.dark)}`,
);
dom.createCSSRule(
`.vs-dark .${iconClass}, .hc-black .${iconClass}`,
`background-image: ${dom.asCSSUrl(iconPath.dark)}`,
);
iconPathToClass[key] = iconClass;
}
return iconClass;
}