| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*---------------------------------------------------------------------------------------------
- * 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) {
- var _a, _b;
- return ti1.id === ti2.id && ((_a = ti1.color) === null || _a === void 0 ? void 0 : _a.id) === ((_b = ti2.color) === null || _b === void 0 ? void 0 : _b.id);
- }
- ThemeIcon.isEqual = isEqual;
- })(ThemeIcon || (ThemeIcon = {}));
|