awa
This commit is contained in:
84
_internal/editor/esm/vs/base/common/themables.js
Normal file
84
_internal/editor/esm/vs/base/common/themables.js
Normal file
@@ -0,0 +1,84 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import { Codicon } from './codicons.js';
|
||||
export var ThemeColor;
|
||||
(function (ThemeColor) {
|
||||
function isThemeColor(obj) {
|
||||
return !!obj && typeof obj === 'object' && typeof obj.id === 'string';
|
||||
}
|
||||
ThemeColor.isThemeColor = isThemeColor;
|
||||
})(ThemeColor || (ThemeColor = {}));
|
||||
export var ThemeIcon;
|
||||
(function (ThemeIcon) {
|
||||
ThemeIcon.iconNameSegment = '[A-Za-z0-9]+';
|
||||
ThemeIcon.iconNameExpression = '[A-Za-z0-9-]+';
|
||||
ThemeIcon.iconModifierExpression = '~[A-Za-z]+';
|
||||
ThemeIcon.iconNameCharacter = '[A-Za-z0-9~-]';
|
||||
const ThemeIconIdRegex = new RegExp(`^(${ThemeIcon.iconNameExpression})(${ThemeIcon.iconModifierExpression})?$`);
|
||||
function asClassNameArray(icon) {
|
||||
const match = ThemeIconIdRegex.exec(icon.id);
|
||||
if (!match) {
|
||||
return asClassNameArray(Codicon.error);
|
||||
}
|
||||
const [, id, modifier] = match;
|
||||
const classNames = ['codicon', 'codicon-' + id];
|
||||
if (modifier) {
|
||||
classNames.push('codicon-modifier-' + modifier.substring(1));
|
||||
}
|
||||
return classNames;
|
||||
}
|
||||
ThemeIcon.asClassNameArray = asClassNameArray;
|
||||
function asClassName(icon) {
|
||||
return asClassNameArray(icon).join(' ');
|
||||
}
|
||||
ThemeIcon.asClassName = asClassName;
|
||||
function asCSSSelector(icon) {
|
||||
return '.' + asClassNameArray(icon).join('.');
|
||||
}
|
||||
ThemeIcon.asCSSSelector = asCSSSelector;
|
||||
function isThemeIcon(obj) {
|
||||
return !!obj && typeof obj === 'object' && typeof obj.id === 'string' && (typeof obj.color === 'undefined' || ThemeColor.isThemeColor(obj.color));
|
||||
}
|
||||
ThemeIcon.isThemeIcon = isThemeIcon;
|
||||
const _regexFromString = new RegExp(`^\\$\\((${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?)\\)$`);
|
||||
function fromString(str) {
|
||||
const match = _regexFromString.exec(str);
|
||||
if (!match) {
|
||||
return undefined;
|
||||
}
|
||||
const [, name] = match;
|
||||
return { id: name };
|
||||
}
|
||||
ThemeIcon.fromString = fromString;
|
||||
function fromId(id) {
|
||||
return { id };
|
||||
}
|
||||
ThemeIcon.fromId = fromId;
|
||||
function modify(icon, modifier) {
|
||||
let id = icon.id;
|
||||
const tildeIndex = id.lastIndexOf('~');
|
||||
if (tildeIndex !== -1) {
|
||||
id = id.substring(0, tildeIndex);
|
||||
}
|
||||
if (modifier) {
|
||||
id = `${id}~${modifier}`;
|
||||
}
|
||||
return { id };
|
||||
}
|
||||
ThemeIcon.modify = modify;
|
||||
function getModifier(icon) {
|
||||
const tildeIndex = icon.id.lastIndexOf('~');
|
||||
if (tildeIndex !== -1) {
|
||||
return icon.id.substring(tildeIndex + 1);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
ThemeIcon.getModifier = getModifier;
|
||||
function isEqual(ti1, ti2) {
|
||||
return ti1.id === ti2.id && ti1.color?.id === ti2.color?.id;
|
||||
}
|
||||
ThemeIcon.isEqual = isEqual;
|
||||
})(ThemeIcon || (ThemeIcon = {}));
|
||||
//# sourceMappingURL=themables.js.map
|
||||
Reference in New Issue
Block a user