mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
implement the style for dropdown, inputbox and table filter (#23502)
* dropdown, inputbox, headerfilter styles * fix missing reference * remove unused import
This commit is contained in:
@@ -4,15 +4,14 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import 'vs/css!./media/dropdownList';
|
import 'vs/css!./media/dropdownList';
|
||||||
import { IInputBoxStyles, InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
import { DropdownDataSource, DropdownListRenderer, IDropdownListItem, SELECT_OPTION_ENTRY_TEMPLATE_ID } from 'sql/base/browser/ui/editableDropdown/browser/dropdownList';
|
import { DropdownDataSource, DropdownListRenderer, IDropdownListItem, SELECT_OPTION_ENTRY_TEMPLATE_ID } from 'sql/base/browser/ui/editableDropdown/browser/dropdownList';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||||
import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview';
|
import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview';
|
||||||
import { IMessage, MessageType } from 'vs/base/browser/ui/inputbox/inputBox';
|
import { IInputBoxStyles, IMessage, MessageType } from 'vs/base/browser/ui/inputbox/inputBox';
|
||||||
import { IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
|
import { IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
|
||||||
import { IListStyles, List } from 'vs/base/browser/ui/list/listWidget';
|
import { IListStyles, List } from 'vs/base/browser/ui/list/listWidget';
|
||||||
import { Color } from 'vs/base/common/color';
|
|
||||||
import { Emitter, Event } from 'vs/base/common/event';
|
import { Emitter, Event } from 'vs/base/common/event';
|
||||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||||
import { Disposable } from 'vs/base/common/lifecycle';
|
import { Disposable } from 'vs/base/common/lifecycle';
|
||||||
@@ -20,10 +19,8 @@ import { clamp } from 'vs/base/common/numbers';
|
|||||||
import { mixin } from 'vs/base/common/objects';
|
import { mixin } from 'vs/base/common/objects';
|
||||||
import { ScrollbarVisibility } from 'vs/base/common/scrollable';
|
import { ScrollbarVisibility } from 'vs/base/common/scrollable';
|
||||||
import * as nls from 'vs/nls';
|
import * as nls from 'vs/nls';
|
||||||
import { defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
|
||||||
|
|
||||||
|
export interface IDropdownOptions extends Partial<IEditableDropdownStyles> {
|
||||||
export interface IDropdownOptions extends IDropdownStyles {
|
|
||||||
/**
|
/**
|
||||||
* Whether or not a options in the list must be selected or a "new" option can be set
|
* Whether or not a options in the list must be selected or a "new" option can be set
|
||||||
*/
|
*/
|
||||||
@@ -58,9 +55,9 @@ export interface IDropdownOptions extends IDropdownStyles {
|
|||||||
ariaDescription?: string;
|
ariaDescription?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IDropdownStyles {
|
export interface IEditableDropdownStyles extends IInputBoxStyles, IListStyles {
|
||||||
contextBackground?: Color;
|
contextBackground?: string;
|
||||||
contextBorder?: Color;
|
contextBorder?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const errorMessage = nls.localize('editableDropdown.errorValidate', "Must be an option from the list");
|
const errorMessage = nls.localize('editableDropdown.errorValidate', "Must be an option from the list");
|
||||||
@@ -96,7 +93,7 @@ export class Dropdown extends Disposable implements IListVirtualDelegate<string>
|
|||||||
constructor(
|
constructor(
|
||||||
container: HTMLElement,
|
container: HTMLElement,
|
||||||
private readonly contextViewService: IContextViewProvider,
|
private readonly contextViewService: IContextViewProvider,
|
||||||
opt?: IDropdownOptions
|
opt: IDropdownOptions
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
this._options = opt || Object.create(null);
|
this._options = opt || Object.create(null);
|
||||||
@@ -116,7 +113,8 @@ export class Dropdown extends Disposable implements IListVirtualDelegate<string>
|
|||||||
this._inputContainer.style.width = '100%';
|
this._inputContainer.style.width = '100%';
|
||||||
this._inputContainer.style.height = '100%';
|
this._inputContainer.style.height = '100%';
|
||||||
this._selectListContainer = DOM.$('div');
|
this._selectListContainer = DOM.$('div');
|
||||||
|
this._selectListContainer.style.backgroundColor = opt.contextBackground;
|
||||||
|
this._selectListContainer.style.outline = `1px solid ${opt.contextBorder}`;
|
||||||
this._input = new InputBox(this._inputContainer, contextViewService, {
|
this._input = new InputBox(this._inputContainer, contextViewService, {
|
||||||
validationOptions: {
|
validationOptions: {
|
||||||
// @SQLTODO
|
// @SQLTODO
|
||||||
@@ -126,7 +124,7 @@ export class Dropdown extends Disposable implements IListVirtualDelegate<string>
|
|||||||
placeholder: this._options.placeholder,
|
placeholder: this._options.placeholder,
|
||||||
ariaLabel: this._options.ariaLabel,
|
ariaLabel: this._options.ariaLabel,
|
||||||
ariaDescription: this._options.ariaDescription,
|
ariaDescription: this._options.ariaDescription,
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: <IInputBoxStyles>this._options
|
||||||
});
|
});
|
||||||
|
|
||||||
// Clear title from input box element (defaults to placeholder value) since we don't want a tooltip for the selected value
|
// Clear title from input box element (defaults to placeholder value) since we don't want a tooltip for the selected value
|
||||||
@@ -206,6 +204,7 @@ export class Dropdown extends Disposable implements IListVirtualDelegate<string>
|
|||||||
getWidgetRole: () => 'listbox'
|
getWidgetRole: () => 'listbox'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
this._selectList.style(<IListStyles>this._options);
|
||||||
|
|
||||||
this.values = this._options.values;
|
this.values = this._options.values;
|
||||||
this._register(this._selectList.onDidBlur(() => {
|
this._register(this._selectList.onDidBlur(() => {
|
||||||
@@ -378,13 +377,6 @@ export class Dropdown extends Disposable implements IListVirtualDelegate<string>
|
|||||||
this._hideList();
|
this._hideList();
|
||||||
}
|
}
|
||||||
|
|
||||||
style(style: IListStyles & IInputBoxStyles & IDropdownStyles) {
|
|
||||||
this._selectList.style(style);
|
|
||||||
this._input.style(style);
|
|
||||||
this._selectListContainer.style.backgroundColor = style.contextBackground ? style.contextBackground.toString() : '';
|
|
||||||
this._selectListContainer.style.outline = `1px solid ${style.contextBorder}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _inputValidator(value: string): IMessage | null {
|
private _inputValidator(value: string): IMessage | null {
|
||||||
if (!this._input.hasFocus() && this._input.isEnabled() && !this._selectList.isDOMFocused() && !this._dataSource.values.some(i => i === value)) {
|
if (!this._input.hasFocus() && this._input.isEnabled() && !this._selectList.isDOMFocused() && !this._dataSource.values.some(i => i === value)) {
|
||||||
if (this._options.strictSelection && this._options.errorMessage) {
|
if (this._options.strictSelection && this._options.errorMessage) {
|
||||||
|
|||||||
@@ -3,9 +3,8 @@
|
|||||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { InputBox as vsInputBox, IInputOptions as vsIInputBoxOptions, IInputBoxStyles as vsIInputBoxStyles, IMessage, MessageType } from 'vs/base/browser/ui/inputbox/inputBox';
|
import { InputBox as vsInputBox, IInputOptions as vsIInputBoxOptions, IMessage, MessageType } from 'vs/base/browser/ui/inputbox/inputBox';
|
||||||
import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview';
|
import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview';
|
||||||
import { Color } from 'vs/base/common/color';
|
|
||||||
import { Event, Emitter } from 'vs/base/common/event';
|
import { Event, Emitter } from 'vs/base/common/event';
|
||||||
import { AdsWidget } from 'sql/base/browser/ui/adsWidget';
|
import { AdsWidget } from 'sql/base/browser/ui/adsWidget';
|
||||||
|
|
||||||
@@ -14,11 +13,6 @@ export interface OnLoseFocusParams {
|
|||||||
hasChanged: boolean;
|
hasChanged: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IInputBoxStyles extends vsIInputBoxStyles {
|
|
||||||
disabledInputBackground?: Color;
|
|
||||||
disabledInputForeground?: Color;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IInputOptions extends vsIInputBoxOptions {
|
export interface IInputOptions extends vsIInputBoxOptions {
|
||||||
/**
|
/**
|
||||||
* Whether calls to validate require the force parameter to be set to true
|
* Whether calls to validate require the force parameter to be set to true
|
||||||
@@ -31,13 +25,6 @@ export interface IInputOptions extends vsIInputBoxOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class InputBox extends vsInputBox implements AdsWidget {
|
export class InputBox extends vsInputBox implements AdsWidget {
|
||||||
// private enabledInputBackground?: Color;
|
|
||||||
// private enabledInputForeground?: Color;
|
|
||||||
// private enabledInputBorder?: Color;
|
|
||||||
// private disabledInputBackground?: Color;
|
|
||||||
// private disabledInputForeground?: Color;
|
|
||||||
// private disabledInputBorder?: Color;
|
|
||||||
|
|
||||||
private _lastLoseFocusValue: string;
|
private _lastLoseFocusValue: string;
|
||||||
|
|
||||||
private _onLoseFocus = this._register(new Emitter<OnLoseFocusParams>());
|
private _onLoseFocus = this._register(new Emitter<OnLoseFocusParams>());
|
||||||
@@ -51,11 +38,6 @@ export class InputBox extends vsInputBox implements AdsWidget {
|
|||||||
|
|
||||||
constructor(container: HTMLElement, contextViewProvider: IContextViewProvider, private _sqlOptions?: IInputOptions, id?: string) {
|
constructor(container: HTMLElement, contextViewProvider: IContextViewProvider, private _sqlOptions?: IInputOptions, id?: string) {
|
||||||
super(container, contextViewProvider, _sqlOptions);
|
super(container, contextViewProvider, _sqlOptions);
|
||||||
// {{SQL CARBON TODO}} - fix styles
|
|
||||||
// this.enabledInputBackground = this.inputBackground;
|
|
||||||
// this.enabledInputForeground = this.inputForeground;
|
|
||||||
// this.enabledInputBorder = this.inputBorder;
|
|
||||||
//this.disabledInputBackground = Color.transparent;
|
|
||||||
|
|
||||||
this._lastLoseFocusValue = this.value;
|
this._lastLoseFocusValue = this.value;
|
||||||
let self = this;
|
let self = this;
|
||||||
@@ -80,23 +62,12 @@ export class InputBox extends vsInputBox implements AdsWidget {
|
|||||||
if (id !== undefined) {
|
if (id !== undefined) {
|
||||||
this.inputElement.id = id;
|
this.inputElement.id = id;
|
||||||
}
|
}
|
||||||
}
|
this.updateInputEnabledDisabledColors();
|
||||||
|
|
||||||
public override style(styles: IInputBoxStyles): void {
|
|
||||||
// super.style(styles);
|
|
||||||
// this.enabledInputBackground = this.inputBackground;
|
|
||||||
// this.enabledInputForeground = this.inputForeground;
|
|
||||||
// this.enabledInputBorder = this.inputBorder;
|
|
||||||
// this.disabledInputBackground = styles.disabledInputBackground;
|
|
||||||
// this.disabledInputForeground = styles.disabledInputForeground;
|
|
||||||
// this.updateInputEnabledDisabledColors();
|
|
||||||
// this.applyStyles();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override enable(): void {
|
public override enable(): void {
|
||||||
super.enable();
|
super.enable();
|
||||||
this.updateInputEnabledDisabledColors();
|
this.updateInputEnabledDisabledColors();
|
||||||
this.applyStyles();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public set rows(value: number) {
|
public set rows(value: number) {
|
||||||
@@ -116,7 +87,6 @@ export class InputBox extends vsInputBox implements AdsWidget {
|
|||||||
public override disable(): void {
|
public override disable(): void {
|
||||||
super.disable();
|
super.disable();
|
||||||
this.updateInputEnabledDisabledColors();
|
this.updateInputEnabledDisabledColors();
|
||||||
this.applyStyles();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public setHeight(value: string) {
|
public setHeight(value: string) {
|
||||||
@@ -169,10 +139,14 @@ export class InputBox extends vsInputBox implements AdsWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private updateInputEnabledDisabledColors(): void {
|
private updateInputEnabledDisabledColors(): void {
|
||||||
// let enabled = this.isEnabled();
|
const enabled = this.isEnabled();
|
||||||
// this.inputBackground = enabled ? this.enabledInputBackground : this.disabledInputBackground;
|
const background = enabled ? this._sqlOptions.inputBoxStyles.inputBackground : this._sqlOptions.inputBoxStyles.disabledInputBackground
|
||||||
// this.inputForeground = enabled ? this.enabledInputForeground : this.disabledInputForeground;
|
const foreground = enabled ? this._sqlOptions.inputBoxStyles.inputForeground : this._sqlOptions.inputBoxStyles.disabledInputForeground;
|
||||||
// this.inputBorder = enabled ? this.enabledInputBorder : this.disabledInputBorder;
|
const border = enabled ? this._sqlOptions.inputBoxStyles.inputBorder : this._sqlOptions.inputBoxStyles.disabledInputBorder;
|
||||||
|
this.element.style.backgroundColor = background;
|
||||||
|
this.element.style.color = foreground;
|
||||||
|
this.input.style.color = foreground;
|
||||||
|
this.element.style.border = `1px solid ${border}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override validate(force?: boolean): MessageType | undefined {
|
public override validate(force?: boolean): MessageType | undefined {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { DisposableStore, dispose, IDisposable } from 'vs/base/common/lifecycle'
|
|||||||
import { withNullAsUndefined } from 'vs/base/common/types';
|
import { withNullAsUndefined } from 'vs/base/common/types';
|
||||||
import { IDisposableDataProvider, instanceOfIDisposableDataProvider } from 'sql/base/common/dataProvider';
|
import { IDisposableDataProvider, instanceOfIDisposableDataProvider } from 'sql/base/common/dataProvider';
|
||||||
import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview';
|
import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview';
|
||||||
import { IInputBoxStyles, InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
import { trapKeyboardNavigation } from 'sql/base/browser/dom';
|
import { trapKeyboardNavigation } from 'sql/base/browser/dom';
|
||||||
import { IListAccessibilityProvider, IListStyles, List } from 'vs/base/browser/ui/list/listWidget';
|
import { IListAccessibilityProvider, IListStyles, List } from 'vs/base/browser/ui/list/listWidget';
|
||||||
import { IListRenderer, IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
|
import { IListRenderer, IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
|
||||||
@@ -19,8 +19,8 @@ import { Checkbox } from 'sql/base/browser/ui/checkbox/checkbox';
|
|||||||
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||||
import { Emitter } from 'vs/base/common/event';
|
import { Emitter } from 'vs/base/common/event';
|
||||||
import { CountBadge } from 'vs/base/browser/ui/countBadge/countBadge';
|
import { CountBadge, ICountBadgeStyles } from 'vs/base/browser/ui/countBadge/countBadge';
|
||||||
import { defaultCountBadgeStyles, defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { IInputBoxStyles } from 'vs/base/browser/ui/inputbox/inputBox';
|
||||||
|
|
||||||
export type HeaderFilterCommands = 'sort-asc' | 'sort-desc';
|
export type HeaderFilterCommands = 'sort-asc' | 'sort-desc';
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ export interface CommandEventArgs<T extends Slick.SlickData> {
|
|||||||
command: HeaderFilterCommands
|
command: HeaderFilterCommands
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ITableFilterOptions {
|
export interface ITableFilterOptions extends ITableFilterStyles {
|
||||||
/**
|
/**
|
||||||
* The message to be displayed when the filter is disabled and the user tries to open the filter menu.
|
* The message to be displayed when the filter is disabled and the user tries to open the filter menu.
|
||||||
*/
|
*/
|
||||||
@@ -40,13 +40,9 @@ export interface ITableFilterOptions {
|
|||||||
* Set to false to prevent the grid from being re-drawn multiple times by different plugins.
|
* Set to false to prevent the grid from being re-drawn multiple times by different plugins.
|
||||||
*/
|
*/
|
||||||
refreshColumns?: boolean;
|
refreshColumns?: boolean;
|
||||||
/**
|
|
||||||
* The button styles.
|
|
||||||
*/
|
|
||||||
buttonStyles: IButtonStyles;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ITableFilterStyles extends IInputBoxStyles, IListStyles {
|
export interface ITableFilterStyles extends IInputBoxStyles, IListStyles, IButtonStyles, ICountBadgeStyles {
|
||||||
}
|
}
|
||||||
|
|
||||||
interface NotificationProvider {
|
interface NotificationProvider {
|
||||||
@@ -70,9 +66,6 @@ export class HeaderFilter<T extends Slick.SlickData> {
|
|||||||
private okButton?: Button;
|
private okButton?: Button;
|
||||||
private clearButton?: Button;
|
private clearButton?: Button;
|
||||||
private cancelButton?: Button;
|
private cancelButton?: Button;
|
||||||
// {{SQL CARBON TODO}} - disable
|
|
||||||
// private sortAscButton?: Button;
|
|
||||||
// private sortDescButton?: Button;
|
|
||||||
private selectAllCheckBox?: Checkbox;
|
private selectAllCheckBox?: Checkbox;
|
||||||
private searchInputBox?: InputBox;
|
private searchInputBox?: InputBox;
|
||||||
private countBadge?: CountBadge;
|
private countBadge?: CountBadge;
|
||||||
@@ -82,7 +75,6 @@ export class HeaderFilter<T extends Slick.SlickData> {
|
|||||||
private filteredListData?: TableFilterListElement[];
|
private filteredListData?: TableFilterListElement[];
|
||||||
private elementDisposables?: IDisposable[];
|
private elementDisposables?: IDisposable[];
|
||||||
private columnDef!: FilterableColumn<T>;
|
private columnDef!: FilterableColumn<T>;
|
||||||
private filterStyles?: ITableFilterStyles;
|
|
||||||
private disposableStore = new DisposableStore();
|
private disposableStore = new DisposableStore();
|
||||||
private columnButtonMapping: Map<string, HTMLElement> = new Map<string, HTMLElement>();
|
private columnButtonMapping: Map<string, HTMLElement> = new Map<string, HTMLElement>();
|
||||||
private previouslyFocusedElement: HTMLElement;
|
private previouslyFocusedElement: HTMLElement;
|
||||||
@@ -184,7 +176,7 @@ export class HeaderFilter<T extends Slick.SlickData> {
|
|||||||
|
|
||||||
private createButtonMenuItem(title: string, command: HeaderFilterCommands, iconClass: string): Button {
|
private createButtonMenuItem(title: string, command: HeaderFilterCommands, iconClass: string): Button {
|
||||||
const buttonContainer = append(this.menu, $('.slick-header-menu-image-button-container'));
|
const buttonContainer = append(this.menu, $('.slick-header-menu-image-button-container'));
|
||||||
const button = new Button(buttonContainer, this.options.buttonStyles);
|
const button = new Button(buttonContainer, this.options);
|
||||||
button.icon = `slick-header-menuicon ${iconClass}`;
|
button.icon = `slick-header-menuicon ${iconClass}`;
|
||||||
button.label = title;
|
button.label = title;
|
||||||
button.onDidClick(async () => {
|
button.onDidClick(async () => {
|
||||||
@@ -208,20 +200,20 @@ export class HeaderFilter<T extends Slick.SlickData> {
|
|||||||
|
|
||||||
this.searchInputBox = new InputBox(append(searchRow, $('.search-input')), this.contextViewProvider, {
|
this.searchInputBox = new InputBox(append(searchRow, $('.search-input')), this.contextViewProvider, {
|
||||||
placeholder: localize('table.searchPlaceHolder', "Search"),
|
placeholder: localize('table.searchPlaceHolder', "Search"),
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: this.options
|
||||||
});
|
});
|
||||||
const visibleCountContainer = append(searchRow, $('.visible-count'));
|
const visibleCountContainer = append(searchRow, $('.visible-count'));
|
||||||
visibleCountContainer.setAttribute('aria-live', 'polite');
|
visibleCountContainer.setAttribute('aria-live', 'polite');
|
||||||
visibleCountContainer.setAttribute('aria-atomic', 'true');
|
visibleCountContainer.setAttribute('aria-atomic', 'true');
|
||||||
this.visibleCountBadge = new CountBadge(visibleCountContainer, {
|
this.visibleCountBadge = new CountBadge(visibleCountContainer, {
|
||||||
countFormat: localize({ key: 'tableFilter.visibleCount', comment: ['This tells the user how many items are shown in the list. Currently not visible, but read by screen readers.'] }, "{0} Results")
|
countFormat: localize({ key: 'tableFilter.visibleCount', comment: ['This tells the user how many items are shown in the list. Currently not visible, but read by screen readers.'] }, "{0} Results")
|
||||||
}, defaultCountBadgeStyles);
|
}, this.options);
|
||||||
|
|
||||||
const selectedCountBadgeContainer = append(searchRow, $('.selected-count'));
|
const selectedCountBadgeContainer = append(searchRow, $('.selected-count'));
|
||||||
selectedCountBadgeContainer.setAttribute('aria-live', 'polite');
|
selectedCountBadgeContainer.setAttribute('aria-live', 'polite');
|
||||||
this.countBadge = new CountBadge(selectedCountBadgeContainer, {
|
this.countBadge = new CountBadge(selectedCountBadgeContainer, {
|
||||||
countFormat: localize({ key: 'tableFilter.selectedCount', comment: ['This tells the user how many items are selected in the list'] }, "{0} Selected")
|
countFormat: localize({ key: 'tableFilter.selectedCount', comment: ['This tells the user how many items are selected in the list'] }, "{0} Selected")
|
||||||
}, defaultCountBadgeStyles);
|
}, this.options);
|
||||||
|
|
||||||
this.searchInputBox.onDidChange(async (newString) => {
|
this.searchInputBox.onDidChange(async (newString) => {
|
||||||
this.filteredListData = this.listData.filter(element => element.value?.toUpperCase().indexOf(newString.toUpperCase()) !== -1);
|
this.filteredListData = this.listData.filter(element => element.value?.toUpperCase().indexOf(newString.toUpperCase()) !== -1);
|
||||||
@@ -408,9 +400,6 @@ export class HeaderFilter<T extends Slick.SlickData> {
|
|||||||
// Make sure the menu can fit in the screen.
|
// Make sure the menu can fit in the screen.
|
||||||
this.menu.style.height = `${Math.min(DefaultMenuHeight, window.innerHeight - MenuBarHeight) - MenuVerticalPadding}px`;
|
this.menu.style.height = `${Math.min(DefaultMenuHeight, window.innerHeight - MenuBarHeight) - MenuVerticalPadding}px`;
|
||||||
|
|
||||||
// {{SQL CARBON TODO}} - style buttons
|
|
||||||
// this.sortAscButton = this.createButtonMenuItem(localize('table.sortAscending', "Sort Ascending"), 'sort-asc', 'ascending');
|
|
||||||
// this.sortDescButton = this.createButtonMenuItem(localize('table.sortDescending', "Sort Descending"), 'sort-desc', 'descending');
|
|
||||||
this.createButtonMenuItem(localize('table.sortAscending', "Sort Ascending"), 'sort-asc', 'ascending');
|
this.createButtonMenuItem(localize('table.sortAscending', "Sort Ascending"), 'sort-asc', 'ascending');
|
||||||
this.createButtonMenuItem(localize('table.sortDescending', "Sort Descending"), 'sort-desc', 'descending');
|
this.createButtonMenuItem(localize('table.sortDescending', "Sort Descending"), 'sort-desc', 'descending');
|
||||||
|
|
||||||
@@ -418,49 +407,28 @@ export class HeaderFilter<T extends Slick.SlickData> {
|
|||||||
await this.createFilterList();
|
await this.createFilterList();
|
||||||
|
|
||||||
const buttonGroupContainer = append(this.menu, $('.filter-menu-button-container'));
|
const buttonGroupContainer = append(this.menu, $('.filter-menu-button-container'));
|
||||||
this.okButton = this.createButton(buttonGroupContainer, 'filter-ok-button', localize('headerFilter.ok', "OK"), this.options.buttonStyles);
|
this.okButton = this.createButton(buttonGroupContainer, 'filter-ok-button', localize('headerFilter.ok', "OK"), this.options);
|
||||||
this.okButton.onDidClick(async () => {
|
this.okButton.onDidClick(async () => {
|
||||||
this.columnDef.filterValues = this.listData.filter(element => element.checked).map(element => element.value);
|
this.columnDef.filterValues = this.listData.filter(element => element.checked).map(element => element.value);
|
||||||
this.setButtonImage($menuButton, this.columnDef.filterValues.length > 0);
|
this.setButtonImage($menuButton, this.columnDef.filterValues.length > 0);
|
||||||
await this.handleApply(this.columnDef);
|
await this.handleApply(this.columnDef);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.clearButton = this.createButton(buttonGroupContainer, 'filter-clear-button', localize('headerFilter.clear', "Clear"), { secondary: true, ...this.options.buttonStyles });
|
this.clearButton = this.createButton(buttonGroupContainer, 'filter-clear-button', localize('headerFilter.clear', "Clear"), { secondary: true, ...this.options });
|
||||||
this.clearButton.onDidClick(async () => {
|
this.clearButton.onDidClick(async () => {
|
||||||
this.columnDef.filterValues!.length = 0;
|
this.columnDef.filterValues!.length = 0;
|
||||||
this.setButtonImage($menuButton, false);
|
this.setButtonImage($menuButton, false);
|
||||||
await this.handleApply(this.columnDef);
|
await this.handleApply(this.columnDef);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.cancelButton = this.createButton(buttonGroupContainer, 'filter-cancel-button', localize('headerFilter.cancel', "Cancel"), { secondary: true, ...this.options.buttonStyles });
|
this.cancelButton = this.createButton(buttonGroupContainer, 'filter-cancel-button', localize('headerFilter.cancel', "Cancel"), { secondary: true, ...this.options });
|
||||||
this.cancelButton.onDidClick(() => {
|
this.cancelButton.onDidClick(() => {
|
||||||
this.hideMenu();
|
this.hideMenu();
|
||||||
});
|
});
|
||||||
this.applyStyles();
|
|
||||||
// No need to add this to disposable store, it will be disposed when the menu is closed.
|
// No need to add this to disposable store, it will be disposed when the menu is closed.
|
||||||
trapKeyboardNavigation(this.menu);
|
trapKeyboardNavigation(this.menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
public style(styles: ITableFilterStyles): void {
|
|
||||||
this.filterStyles = styles;
|
|
||||||
this.applyStyles();
|
|
||||||
}
|
|
||||||
|
|
||||||
private applyStyles() {
|
|
||||||
if (this.filterStyles) {
|
|
||||||
// {{SQL CARBON TODO}} - apply styles
|
|
||||||
// this.okButton?.style(this.filterStyles);
|
|
||||||
// this.cancelButton?.style(this.filterStyles);
|
|
||||||
// this.clearButton?.style(this.filterStyles);
|
|
||||||
// this.sortAscButton?.style(this.filterStyles);
|
|
||||||
// this.sortDescButton?.style(this.filterStyles);
|
|
||||||
// this.searchInputBox?.style(this.filterStyles);
|
|
||||||
// this.countBadge?.style(this.filterStyles);
|
|
||||||
// this.visibleCountBadge?.style(this.filterStyles);
|
|
||||||
// this.list?.style(this.filterStyles);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private columnsResized() {
|
private columnsResized() {
|
||||||
this.hideMenu();
|
this.hideMenu();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,11 @@ import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
|||||||
import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview';
|
import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview';
|
||||||
import { KeyCode, EVENT_KEY_CODE_MAP } from 'vs/base/common/keyCodes';
|
import { KeyCode, EVENT_KEY_CODE_MAP } from 'vs/base/common/keyCodes';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import { Dropdown } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
import { Dropdown, IEditableDropdownStyles } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
||||||
import { Event } from 'vs/base/common/event';
|
|
||||||
import { Disposable } from 'vs/base/common/lifecycle';
|
import { Disposable } from 'vs/base/common/lifecycle';
|
||||||
import { defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
|
import { IInputBoxStyles } from 'vs/base/browser/ui/inputbox/inputBox';
|
||||||
|
import { ISelectBoxStyles } from 'vs/base/browser/ui/selectBox/selectBox';
|
||||||
|
|
||||||
const InverseKeyCodeMap: { [k: string]: number } = Object.fromEntries(Object.entries(EVENT_KEY_CODE_MAP).map(([key, value]) => [value, Number(key)]));
|
const InverseKeyCodeMap: { [k: string]: number } = Object.fromEntries(Object.entries(EVENT_KEY_CODE_MAP).map(([key, value]) => [value, Number(key)]));
|
||||||
|
|
||||||
@@ -19,8 +20,9 @@ export interface ITableCellEditorOptions {
|
|||||||
valueGetter?: (item: Slick.SlickData, column: Slick.Column<Slick.SlickData>) => string,
|
valueGetter?: (item: Slick.SlickData, column: Slick.Column<Slick.SlickData>) => string,
|
||||||
valueSetter?: (context: any, row: number, item: Slick.SlickData, column: Slick.Column<Slick.SlickData>, value: string) => void,
|
valueSetter?: (context: any, row: number, item: Slick.SlickData, column: Slick.Column<Slick.SlickData>, value: string) => void,
|
||||||
optionsGetter?: (item: Slick.SlickData, column: Slick.Column<Slick.SlickData>) => string[],
|
optionsGetter?: (item: Slick.SlickData, column: Slick.Column<Slick.SlickData>) => string[],
|
||||||
editorStyler: (component: InputBox | SelectBox | Dropdown) => void,
|
inputBoxStyles: IInputBoxStyles,
|
||||||
onStyleChange: Event<void>;
|
editableDropdownStyles: IEditableDropdownStyles,
|
||||||
|
selectBoxStyles: ISelectBoxStyles
|
||||||
}
|
}
|
||||||
|
|
||||||
export class TableCellEditorFactory {
|
export class TableCellEditorFactory {
|
||||||
@@ -37,8 +39,9 @@ export class TableCellEditorFactory {
|
|||||||
optionsGetter: options.optionsGetter ?? function (item, column) {
|
optionsGetter: options.optionsGetter ?? function (item, column) {
|
||||||
return [];
|
return [];
|
||||||
},
|
},
|
||||||
editorStyler: options.editorStyler,
|
inputBoxStyles: options.inputBoxStyles,
|
||||||
onStyleChange: options.onStyleChange
|
editableDropdownStyles: options.editableDropdownStyles,
|
||||||
|
selectBoxStyles: options.selectBoxStyles
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,17 +71,12 @@ export class TableCellEditorFactory {
|
|||||||
type: inputType,
|
type: inputType,
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: defaultInputBoxStyles
|
||||||
});
|
});
|
||||||
self._options.editorStyler(this._input);
|
|
||||||
this._input.element.style.height = '100%';
|
this._input.element.style.height = '100%';
|
||||||
this._input.focus();
|
this._input.focus();
|
||||||
this._input.onLoseFocus(async () => {
|
this._input.onLoseFocus(async () => {
|
||||||
await this.commitEdit();
|
await this.commitEdit();
|
||||||
});
|
});
|
||||||
this._register(this._input);
|
this._register(this._input);
|
||||||
this._register(self._options.onStyleChange(() => {
|
|
||||||
self._options.editorStyler(this._input);
|
|
||||||
}));
|
|
||||||
|
|
||||||
this._input.value = presetValue ?? '';
|
this._input.value = presetValue ?? '';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,7 +161,7 @@ export class TableCellEditorFactory {
|
|||||||
container.style.height = '100%';
|
container.style.height = '100%';
|
||||||
container.style.width = '100%';
|
container.style.width = '100%';
|
||||||
if (isEditable) {
|
if (isEditable) {
|
||||||
this._component = new Dropdown(container, self._contextViewProvider);
|
this._component = new Dropdown(container, self._contextViewProvider, self._options.editableDropdownStyles);
|
||||||
this._component.onValueChange(async () => {
|
this._component.onValueChange(async () => {
|
||||||
await this.commitEdit();
|
await this.commitEdit();
|
||||||
});
|
});
|
||||||
@@ -178,12 +176,8 @@ export class TableCellEditorFactory {
|
|||||||
await this.commitEdit();
|
await this.commitEdit();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
self._options.editorStyler(this._component);
|
|
||||||
this._component.focus();
|
this._component.focus();
|
||||||
this._register(this._component);
|
this._register(this._component);
|
||||||
this._register(self._options.onStyleChange(() => {
|
|
||||||
self._options.editorStyler(this._component);
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async commitEdit(): Promise<void> {
|
private async commitEdit(): Promise<void> {
|
||||||
|
|||||||
@@ -10,10 +10,8 @@ import {
|
|||||||
|
|
||||||
import { AngularDisposable } from 'sql/base/browser/lifecycle';
|
import { AngularDisposable } from 'sql/base/browser/lifecycle';
|
||||||
import { Dropdown, IDropdownOptions } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
import { Dropdown, IDropdownOptions } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
||||||
import { attachEditableDropdownStyler } from 'sql/platform/theme/common/styler';
|
import { defaultEditableDropdownStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'editable-select-box',
|
selector: 'editable-select-box',
|
||||||
@@ -32,7 +30,6 @@ export class EditableDropDown extends AngularDisposable implements OnInit, OnCha
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@Inject(forwardRef(() => ElementRef)) private readonly _el: ElementRef,
|
@Inject(forwardRef(() => ElementRef)) private readonly _el: ElementRef,
|
||||||
@Inject(IThemeService) private readonly themeService: IThemeService,
|
|
||||||
@Inject(IContextViewService) private readonly contextViewService: IContextViewService
|
@Inject(IContextViewService) private readonly contextViewService: IContextViewService
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
@@ -44,7 +41,8 @@ export class EditableDropDown extends AngularDisposable implements OnInit, OnCha
|
|||||||
strictSelection: false,
|
strictSelection: false,
|
||||||
placeholder: '',
|
placeholder: '',
|
||||||
maxHeight: 125,
|
maxHeight: 125,
|
||||||
ariaLabel: ''
|
ariaLabel: '',
|
||||||
|
...defaultEditableDropdownStyles
|
||||||
};
|
};
|
||||||
this._selectbox = new Dropdown(this._el.nativeElement, this.contextViewService, dropdownOptions);
|
this._selectbox = new Dropdown(this._el.nativeElement, this.contextViewService, dropdownOptions);
|
||||||
this._selectbox.values = this.options;
|
this._selectbox.values = this.options;
|
||||||
@@ -61,7 +59,6 @@ export class EditableDropDown extends AngularDisposable implements OnInit, OnCha
|
|||||||
this.onDidSelect.emit(e);
|
this.onDidSelect.emit(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this._register(attachEditableDropdownStyler(this._selectbox, this.themeService));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges): void {
|
ngOnChanges(changes: SimpleChanges): void {
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ import {
|
|||||||
|
|
||||||
import { InputBox as vsInputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { InputBox as vsInputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
import { AngularDisposable } from 'sql/base/browser/lifecycle';
|
import { AngularDisposable } from 'sql/base/browser/lifecycle';
|
||||||
|
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
@@ -34,7 +31,6 @@ export class InputBox extends AngularDisposable implements OnInit, OnChanges {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@Inject(forwardRef(() => ElementRef)) private _el: ElementRef,
|
@Inject(forwardRef(() => ElementRef)) private _el: ElementRef,
|
||||||
@Inject(IThemeService) private themeService: IThemeService,
|
|
||||||
@Inject(IContextViewService) private contextViewService: IContextViewService
|
@Inject(IContextViewService) private contextViewService: IContextViewService
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
@@ -63,7 +59,6 @@ export class InputBox extends AngularDisposable implements OnInit, OnChanges {
|
|||||||
this.onDidChange.emit(e);
|
this.onDidChange.emit(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this._register(attachInputBoxStyler(this._inputbox, this.themeService));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges): void {
|
ngOnChanges(changes: SimpleChanges): void {
|
||||||
|
|||||||
@@ -4,10 +4,12 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
import { ICheckboxStyles } from 'sql/base/browser/ui/checkbox/checkbox';
|
import { ICheckboxStyles } from 'sql/base/browser/ui/checkbox/checkbox';
|
||||||
import { IDropdownStyles } from 'sql/base/browser/ui/dropdownList/dropdownList';
|
import { IDropdownStyles } from 'sql/base/browser/ui/dropdownList/dropdownList';
|
||||||
|
import { IEditableDropdownStyles } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
||||||
|
import { ITableFilterStyles } from 'sql/base/browser/ui/table/plugins/headerFilter.plugin';
|
||||||
import * as sqlcr from 'sql/platform/theme/common/colorRegistry';
|
import * as sqlcr from 'sql/platform/theme/common/colorRegistry';
|
||||||
import { disabledCheckboxForeground } from 'sql/platform/theme/common/colors';
|
import { disabledCheckboxForeground } from 'sql/platform/theme/common/colors';
|
||||||
import { IButtonStyles } from 'vs/base/browser/ui/button/button';
|
import { IButtonStyles } from 'vs/base/browser/ui/button/button';
|
||||||
import { IStyleOverride, overrideStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { IStyleOverride, defaultButtonStyles, defaultCountBadgeStyles, defaultInputBoxStyles, defaultListStyles, overrideStyles } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
import { asCssVariable, editorBackground, inputBorder, inputForeground } from 'vs/platform/theme/common/colorRegistry';
|
import { asCssVariable, editorBackground, inputBorder, inputForeground } from 'vs/platform/theme/common/colorRegistry';
|
||||||
|
|
||||||
|
|
||||||
@@ -34,6 +36,20 @@ export const defaultInfoButtonStyles: IButtonStyles = {
|
|||||||
buttonDisabledBorder: undefined
|
buttonDisabledBorder: undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const defaultEditableDropdownStyles: IEditableDropdownStyles = {
|
||||||
|
contextBackground: asCssVariable(editorBackground),
|
||||||
|
contextBorder: asCssVariable(inputBorder),
|
||||||
|
...defaultInputBoxStyles,
|
||||||
|
...defaultListStyles
|
||||||
|
}
|
||||||
|
|
||||||
|
export const defaultTableFilterStyles: ITableFilterStyles = {
|
||||||
|
...defaultInputBoxStyles,
|
||||||
|
...defaultButtonStyles,
|
||||||
|
...defaultCountBadgeStyles,
|
||||||
|
...defaultListStyles
|
||||||
|
}
|
||||||
|
|
||||||
export const defaultDropdownStyles: IDropdownStyles = {
|
export const defaultDropdownStyles: IDropdownStyles = {
|
||||||
foregroundColor: asCssVariable(inputForeground),
|
foregroundColor: asCssVariable(inputForeground),
|
||||||
borderColor: asCssVariable(inputBorder),
|
borderColor: asCssVariable(inputBorder),
|
||||||
|
|||||||
@@ -8,41 +8,9 @@ import * as colors from './colors';
|
|||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import * as cr from 'vs/platform/theme/common/colorRegistry';
|
import * as cr from 'vs/platform/theme/common/colorRegistry';
|
||||||
import * as sqlcr from 'sql/platform/theme/common/colorRegistry';
|
import * as sqlcr from 'sql/platform/theme/common/colorRegistry';
|
||||||
import { IThemable, attachStyler, computeStyles, defaultListStyles, IColorMapping, IStyleOverrides } from 'sql/platform/theme/common/vsstyler';
|
import { IThemable, attachStyler, computeStyles, IStyleOverrides } from 'sql/platform/theme/common/vsstyler';
|
||||||
import { IDisposable } from 'vs/base/common/lifecycle';
|
import { IDisposable } from 'vs/base/common/lifecycle';
|
||||||
|
|
||||||
export interface IInputBoxStyleOverrides extends IStyleOverrides {
|
|
||||||
inputBackground?: cr.ColorIdentifier,
|
|
||||||
inputForeground?: cr.ColorIdentifier,
|
|
||||||
disabledInputBackground?: cr.ColorIdentifier,
|
|
||||||
disabledInputForeground?: cr.ColorIdentifier,
|
|
||||||
inputBorder?: cr.ColorIdentifier,
|
|
||||||
inputValidationInfoBorder?: cr.ColorIdentifier,
|
|
||||||
inputValidationInfoBackground?: cr.ColorIdentifier,
|
|
||||||
inputValidationWarningBorder?: cr.ColorIdentifier,
|
|
||||||
inputValidationWarningBackground?: cr.ColorIdentifier,
|
|
||||||
inputValidationErrorBorder?: cr.ColorIdentifier,
|
|
||||||
inputValidationErrorBackground?: cr.ColorIdentifier
|
|
||||||
}
|
|
||||||
|
|
||||||
export const defaultInputBoxStyles: IInputBoxStyleOverrides = {
|
|
||||||
inputBackground: cr.inputBackground,
|
|
||||||
inputForeground: cr.inputForeground,
|
|
||||||
disabledInputBackground: colors.disabledInputBackground,
|
|
||||||
disabledInputForeground: colors.disabledInputForeground,
|
|
||||||
inputBorder: cr.inputBorder,
|
|
||||||
inputValidationInfoBorder: cr.inputValidationInfoBorder,
|
|
||||||
inputValidationInfoBackground: cr.inputValidationInfoBackground,
|
|
||||||
inputValidationWarningBorder: cr.inputValidationWarningBorder,
|
|
||||||
inputValidationWarningBackground: cr.inputValidationWarningBackground,
|
|
||||||
inputValidationErrorBorder: cr.inputValidationErrorBorder,
|
|
||||||
inputValidationErrorBackground: cr.inputValidationErrorBackground
|
|
||||||
};
|
|
||||||
|
|
||||||
export function attachInputBoxStyler(widget: IThemable, themeService: IThemeService, style?: IInputBoxStyleOverrides): IDisposable {
|
|
||||||
return attachStyler(themeService, { ...defaultInputBoxStyles, ...(style || {}) }, widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ISelectBoxStyleOverrides extends IStyleOverrides {
|
export interface ISelectBoxStyleOverrides extends IStyleOverrides {
|
||||||
selectBackground?: cr.ColorIdentifier,
|
selectBackground?: cr.ColorIdentifier,
|
||||||
selectListBackground?: cr.ColorIdentifier,
|
selectListBackground?: cr.ColorIdentifier,
|
||||||
@@ -161,120 +129,6 @@ export function attachTableStyler(widget: IThemable, themeService: IThemeService
|
|||||||
return attachStyler(themeService, { ...defaultTableStyles, ...(style || {}) }, widget);
|
return attachStyler(themeService, { ...defaultTableStyles, ...(style || {}) }, widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IHighPerfTableStyleOverrides extends IStyleOverrides {
|
|
||||||
listFocusBackground?: cr.ColorIdentifier,
|
|
||||||
listFocusForeground?: cr.ColorIdentifier,
|
|
||||||
listActiveSelectionBackground?: cr.ColorIdentifier,
|
|
||||||
listActiveSelectionForeground?: cr.ColorIdentifier,
|
|
||||||
listFocusAndSelectionBackground?: cr.ColorIdentifier,
|
|
||||||
listFocusAndSelectionForeground?: cr.ColorIdentifier,
|
|
||||||
listInactiveFocusBackground?: cr.ColorIdentifier,
|
|
||||||
listInactiveSelectionBackground?: cr.ColorIdentifier,
|
|
||||||
listInactiveSelectionForeground?: cr.ColorIdentifier,
|
|
||||||
listHoverBackground?: cr.ColorIdentifier,
|
|
||||||
listHoverForeground?: cr.ColorIdentifier,
|
|
||||||
listDropBackground?: cr.ColorIdentifier,
|
|
||||||
listFocusOutline?: cr.ColorIdentifier,
|
|
||||||
listInactiveFocusOutline?: cr.ColorIdentifier,
|
|
||||||
listSelectionOutline?: cr.ColorIdentifier,
|
|
||||||
listHoverOutline?: cr.ColorIdentifier,
|
|
||||||
tableHeaderBackground?: cr.ColorIdentifier,
|
|
||||||
tableHeaderForeground?: cr.ColorIdentifier,
|
|
||||||
cellOutlineColor?: cr.ColorIdentifier,
|
|
||||||
tableHeaderAndRowCountColor?: cr.ColorIdentifier
|
|
||||||
}
|
|
||||||
|
|
||||||
export const defaultHighPerfTableStyles: IColorMapping = {
|
|
||||||
listFocusBackground: cr.listFocusBackground,
|
|
||||||
listFocusForeground: cr.listFocusForeground,
|
|
||||||
listActiveSelectionBackground: cr.listActiveSelectionBackground,
|
|
||||||
listActiveSelectionForeground: cr.listActiveSelectionForeground,
|
|
||||||
listFocusAndSelectionBackground: colors.listFocusAndSelectionBackground,
|
|
||||||
listFocusAndSelectionForeground: cr.listActiveSelectionForeground,
|
|
||||||
listInactiveFocusBackground: cr.listInactiveFocusBackground,
|
|
||||||
listInactiveSelectionBackground: cr.listInactiveSelectionBackground,
|
|
||||||
listInactiveSelectionForeground: cr.listInactiveSelectionForeground,
|
|
||||||
listHoverBackground: cr.listHoverBackground,
|
|
||||||
listHoverForeground: cr.listHoverForeground,
|
|
||||||
listDropBackground: cr.listDropBackground,
|
|
||||||
listFocusOutline: cr.activeContrastBorder,
|
|
||||||
listSelectionOutline: cr.activeContrastBorder,
|
|
||||||
listHoverOutline: cr.activeContrastBorder,
|
|
||||||
tableHeaderBackground: colors.tableHeaderBackground,
|
|
||||||
tableHeaderForeground: colors.tableHeaderForeground,
|
|
||||||
cellOutlineColor: colors.tableCellOutline,
|
|
||||||
tableHeaderAndRowCountColor: colors.tableCellOutline
|
|
||||||
};
|
|
||||||
|
|
||||||
export function attachHighPerfTableStyler(widget: IThemable, themeService: IThemeService, overrides?: IHighPerfTableStyleOverrides): IDisposable {
|
|
||||||
return attachStyler(themeService, { ...defaultHighPerfTableStyles, ...(overrides || {}) }, widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IEditableDropdownStyleOverrides extends IStyleOverrides {
|
|
||||||
listFocusBackground?: cr.ColorIdentifier,
|
|
||||||
listFocusForeground?: cr.ColorIdentifier,
|
|
||||||
listActiveSelectionBackground?: cr.ColorIdentifier,
|
|
||||||
listActiveSelectionForeground?: cr.ColorIdentifier,
|
|
||||||
listFocusAndSelectionBackground?: cr.ColorIdentifier,
|
|
||||||
listFocusAndSelectionForeground?: cr.ColorIdentifier,
|
|
||||||
listInactiveFocusBackground?: cr.ColorIdentifier,
|
|
||||||
listInactiveSelectionBackground?: cr.ColorIdentifier,
|
|
||||||
listInactiveSelectionForeground?: cr.ColorIdentifier,
|
|
||||||
listHoverBackground?: cr.ColorIdentifier,
|
|
||||||
listHoverForeground?: cr.ColorIdentifier,
|
|
||||||
listDropBackground?: cr.ColorIdentifier,
|
|
||||||
listFocusOutline?: cr.ColorIdentifier,
|
|
||||||
listInactiveFocusOutline?: cr.ColorIdentifier,
|
|
||||||
listSelectionOutline?: cr.ColorIdentifier,
|
|
||||||
listHoverOutline?: cr.ColorIdentifier,
|
|
||||||
inputBackground?: cr.ColorIdentifier,
|
|
||||||
inputForeground?: cr.ColorIdentifier,
|
|
||||||
inputBorder?: cr.ColorIdentifier,
|
|
||||||
inputValidationInfoBorder?: cr.ColorIdentifier,
|
|
||||||
inputValidationInfoBackground?: cr.ColorIdentifier,
|
|
||||||
inputValidationWarningBorder?: cr.ColorIdentifier,
|
|
||||||
inputValidationWarningBackground?: cr.ColorIdentifier,
|
|
||||||
inputValidationErrorBorder?: cr.ColorIdentifier,
|
|
||||||
inputValidationErrorBackground?: cr.ColorIdentifier,
|
|
||||||
contextBackground?: cr.ColorIdentifier,
|
|
||||||
contextBorder?: cr.ColorIdentifier
|
|
||||||
}
|
|
||||||
|
|
||||||
export const defaultEditableDropdownStyle: IEditableDropdownStyleOverrides = {
|
|
||||||
listFocusBackground: cr.listFocusBackground,
|
|
||||||
listFocusForeground: cr.listFocusForeground,
|
|
||||||
listActiveSelectionBackground: cr.listActiveSelectionBackground,
|
|
||||||
listActiveSelectionForeground: cr.listActiveSelectionForeground,
|
|
||||||
listFocusAndSelectionBackground: cr.listActiveSelectionBackground,
|
|
||||||
listFocusAndSelectionForeground: cr.listActiveSelectionForeground,
|
|
||||||
listInactiveFocusBackground: cr.listInactiveFocusBackground,
|
|
||||||
listInactiveSelectionBackground: cr.listInactiveSelectionBackground,
|
|
||||||
listInactiveSelectionForeground: cr.listInactiveSelectionForeground,
|
|
||||||
listHoverBackground: cr.listHoverBackground,
|
|
||||||
listHoverForeground: cr.listHoverForeground,
|
|
||||||
listDropBackground: cr.listDropBackground,
|
|
||||||
listFocusOutline: cr.activeContrastBorder,
|
|
||||||
listSelectionOutline: cr.activeContrastBorder,
|
|
||||||
listHoverOutline: cr.activeContrastBorder,
|
|
||||||
listInactiveFocusOutline: cr.listInactiveFocusOutline,
|
|
||||||
inputBackground: cr.inputBackground,
|
|
||||||
inputForeground: cr.inputForeground,
|
|
||||||
inputBorder: cr.inputBorder,
|
|
||||||
inputValidationInfoBorder: cr.inputValidationInfoBorder,
|
|
||||||
inputValidationInfoBackground: cr.inputValidationInfoBackground,
|
|
||||||
inputValidationWarningBorder: cr.inputValidationWarningBorder,
|
|
||||||
inputValidationWarningBackground: cr.inputValidationWarningBackground,
|
|
||||||
inputValidationErrorBorder: cr.inputValidationErrorBorder,
|
|
||||||
inputValidationErrorBackground: cr.inputValidationErrorBackground,
|
|
||||||
contextBackground: cr.editorBackground,
|
|
||||||
contextBorder: cr.inputBorder
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
export function attachEditableDropdownStyler(widget: IThemable, themeService: IThemeService, style?: IEditableDropdownStyleOverrides): IDisposable {
|
|
||||||
return attachStyler(themeService, { ...defaultEditableDropdownStyle, ...(style || {}) }, widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IInfoBoxStyleOverrides {
|
export interface IInfoBoxStyleOverrides {
|
||||||
informationBackground: cr.ColorIdentifier,
|
informationBackground: cr.ColorIdentifier,
|
||||||
warningBackground: cr.ColorIdentifier,
|
warningBackground: cr.ColorIdentifier,
|
||||||
@@ -300,39 +154,14 @@ export interface IInfoButtonStyleOverrides {
|
|||||||
buttonHoverBackground: cr.ColorIdentifier
|
buttonHoverBackground: cr.ColorIdentifier
|
||||||
}
|
}
|
||||||
|
|
||||||
export function attachTableFilterStyler(widget: IThemable, themeService: IThemeService): IDisposable {
|
|
||||||
return attachStyler(themeService, {
|
|
||||||
...defaultInputBoxStyles,
|
|
||||||
buttonForeground: cr.buttonForeground,
|
|
||||||
buttonBackground: cr.buttonBackground,
|
|
||||||
buttonHoverBackground: cr.buttonHoverBackground,
|
|
||||||
buttonSecondaryForeground: cr.buttonSecondaryForeground,
|
|
||||||
buttonSecondaryBackground: cr.buttonSecondaryBackground,
|
|
||||||
buttonSecondaryHoverBackground: cr.buttonSecondaryHoverBackground,
|
|
||||||
buttonBorder: cr.buttonBorder,
|
|
||||||
buttonSecondaryBorder: cr.buttonSecondaryBorder,
|
|
||||||
buttonDisabledBorder: cr.buttonDisabledBorder,
|
|
||||||
buttonDisabledBackground: cr.buttonDisabledBackground,
|
|
||||||
buttonDisabledForeground: cr.buttonDisabledForeground,
|
|
||||||
badgeBackground: cr.badgeBackground,
|
|
||||||
badgeForeground: cr.badgeForeground,
|
|
||||||
badgeBorder: cr.contrastBorder,
|
|
||||||
...defaultListStyles,
|
|
||||||
}, widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function attachDesignerStyler(widget: any, themeService: IThemeService): IDisposable {
|
export function attachDesignerStyler(widget: any, themeService: IThemeService): IDisposable {
|
||||||
function applyStyles(): void {
|
function applyStyles(): void {
|
||||||
const colorTheme = themeService.getColorTheme();
|
const colorTheme = themeService.getColorTheme();
|
||||||
const inputStyles = computeStyles(colorTheme, defaultInputBoxStyles);
|
|
||||||
const selectBoxStyles = computeStyles(colorTheme, defaultSelectBoxStyles);
|
const selectBoxStyles = computeStyles(colorTheme, defaultSelectBoxStyles);
|
||||||
const tableStyles = computeStyles(colorTheme, defaultTableStyles);
|
const tableStyles = computeStyles(colorTheme, defaultTableStyles);
|
||||||
const editableDropdownStyles = computeStyles(colorTheme, defaultEditableDropdownStyle);
|
|
||||||
widget.style({
|
widget.style({
|
||||||
inputBoxStyles: inputStyles,
|
|
||||||
selectBoxStyles: selectBoxStyles,
|
selectBoxStyles: selectBoxStyles,
|
||||||
tableStyles: tableStyles,
|
tableStyles: tableStyles,
|
||||||
dropdownStyles: editableDropdownStyles,
|
|
||||||
paneSeparator: cr.resolveColorValue(sqlcr.DesignerPaneSeparator, colorTheme),
|
paneSeparator: cr.resolveColorValue(sqlcr.DesignerPaneSeparator, colorTheme),
|
||||||
groupHeaderBackground: cr.resolveColorValue(sqlcr.GroupHeaderBackground, colorTheme)
|
groupHeaderBackground: cr.resolveColorValue(sqlcr.GroupHeaderBackground, colorTheme)
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import { Color } from 'vs/base/common/color';
|
import { Color } from 'vs/base/common/color';
|
||||||
import { IDisposable } from 'vs/base/common/lifecycle';
|
import { IDisposable } from 'vs/base/common/lifecycle';
|
||||||
import { activeContrastBorder, badgeBackground, badgeForeground, breadcrumbsActiveSelectionForeground, breadcrumbsBackground, breadcrumbsFocusForeground, breadcrumbsForeground, buttonBackground, buttonBorder, buttonForeground, buttonHoverBackground, buttonSecondaryBackground, buttonSecondaryForeground, buttonSecondaryHoverBackground, ColorIdentifier, ColorTransform, ColorValue, contrastBorder, editorWidgetBackground, editorWidgetBorder, editorWidgetForeground, focusBorder, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, keybindingLabelBackground, keybindingLabelBorder, keybindingLabelBottomBorder, keybindingLabelForeground, listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground, listDropBackground, listFilterWidgetBackground, listFilterWidgetNoMatchesOutline, listFilterWidgetOutline, listFocusBackground, listFocusForeground, listFocusOutline, listHoverBackground, listHoverForeground, listInactiveFocusBackground, listInactiveFocusOutline, listInactiveSelectionBackground, listInactiveSelectionForeground, listInactiveSelectionIconForeground, menuBackground, menuBorder, menuForeground, menuSelectionBackground, menuSelectionBorder, menuSelectionForeground, menuSeparatorBackground, pickerGroupForeground, problemsErrorIconForeground, problemsInfoIconForeground, problemsWarningIconForeground, progressBarBackground, quickInputListFocusBackground, quickInputListFocusForeground, quickInputListFocusIconForeground, resolveColorValue, scrollbarShadow, scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground, selectBackground, selectBorder, selectForeground, selectListBackground, checkboxBackground, checkboxBorder, checkboxForeground, tableColumnsBorder, tableOddRowsBackgroundColor, textLinkForeground, treeIndentGuidesStroke, widgetShadow, listFocusAndSelectionOutline, listFilterWidgetShadow, buttonSeparator } from 'vs/platform/theme/common/colorRegistry'; // {{SQL CARBON EDIT}} Added buttonSecondaryBorder, buttonDisabledBorder, buttonDisabledBackground, buttonDisabledForeground to import list
|
import { activeContrastBorder, breadcrumbsActiveSelectionForeground, breadcrumbsBackground, breadcrumbsFocusForeground, breadcrumbsForeground, buttonBackground, buttonBorder, buttonForeground, buttonHoverBackground, buttonSecondaryBackground, buttonSecondaryForeground, buttonSecondaryHoverBackground, ColorIdentifier, ColorTransform, ColorValue, contrastBorder, editorWidgetBackground, editorWidgetBorder, editorWidgetForeground, focusBorder, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, keybindingLabelBackground, keybindingLabelBorder, keybindingLabelBottomBorder, keybindingLabelForeground, listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground, listDropBackground, listFilterWidgetBackground, listFilterWidgetNoMatchesOutline, listFilterWidgetOutline, listFocusBackground, listFocusForeground, listFocusOutline, listHoverBackground, listHoverForeground, listInactiveFocusBackground, listInactiveFocusOutline, listInactiveSelectionBackground, listInactiveSelectionForeground, listInactiveSelectionIconForeground, menuBackground, menuBorder, menuForeground, menuSelectionBackground, menuSelectionBorder, menuSelectionForeground, menuSeparatorBackground, pickerGroupForeground, problemsErrorIconForeground, problemsInfoIconForeground, problemsWarningIconForeground, progressBarBackground, quickInputListFocusBackground, quickInputListFocusForeground, quickInputListFocusIconForeground, resolveColorValue, scrollbarShadow, scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground, selectBackground, selectBorder, selectForeground, selectListBackground, checkboxBackground, checkboxBorder, checkboxForeground, tableColumnsBorder, tableOddRowsBackgroundColor, textLinkForeground, treeIndentGuidesStroke, widgetShadow, listFocusAndSelectionOutline, listFilterWidgetShadow, buttonSeparator } from 'vs/platform/theme/common/colorRegistry'; // {{SQL CARBON EDIT}} Added buttonSecondaryBorder, buttonDisabledBorder, buttonDisabledBackground, buttonDisabledForeground to import list
|
||||||
import { isHighContrast } from 'vs/platform/theme/common/theme';
|
import { isHighContrast } from 'vs/platform/theme/common/theme';
|
||||||
import { IColorTheme, IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IColorTheme, IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
|
|
||||||
@@ -60,54 +60,6 @@ export function attachStyler<T extends IColorMapping>(themeService: IThemeServic
|
|||||||
return themeService.onDidColorThemeChange(applyStyles);
|
return themeService.onDidColorThemeChange(applyStyles);
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IBadgeStyleOverrides extends IStyleOverrides {
|
|
||||||
badgeBackground?: ColorIdentifier;
|
|
||||||
badgeForeground?: ColorIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function attachBadgeStyler(widget: IThemable, themeService: IThemeService, style?: IBadgeStyleOverrides): IDisposable {
|
|
||||||
return attachStyler(themeService, {
|
|
||||||
badgeBackground: style?.badgeBackground || badgeBackground,
|
|
||||||
badgeForeground: style?.badgeForeground || badgeForeground,
|
|
||||||
badgeBorder: contrastBorder
|
|
||||||
} as IBadgeStyleOverrides, widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IInputBoxStyleOverrides extends IStyleOverrides {
|
|
||||||
inputBackground?: ColorIdentifier;
|
|
||||||
inputForeground?: ColorIdentifier;
|
|
||||||
inputBorder?: ColorIdentifier;
|
|
||||||
inputActiveOptionBorder?: ColorIdentifier;
|
|
||||||
inputActiveOptionForeground?: ColorIdentifier;
|
|
||||||
inputActiveOptionBackground?: ColorIdentifier;
|
|
||||||
inputValidationInfoBorder?: ColorIdentifier;
|
|
||||||
inputValidationInfoBackground?: ColorIdentifier;
|
|
||||||
inputValidationInfoForeground?: ColorIdentifier;
|
|
||||||
inputValidationWarningBorder?: ColorIdentifier;
|
|
||||||
inputValidationWarningBackground?: ColorIdentifier;
|
|
||||||
inputValidationWarningForeground?: ColorIdentifier;
|
|
||||||
inputValidationErrorBorder?: ColorIdentifier;
|
|
||||||
inputValidationErrorBackground?: ColorIdentifier;
|
|
||||||
inputValidationErrorForeground?: ColorIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function attachInputBoxStyler(widget: IThemable, themeService: IThemeService, style?: IInputBoxStyleOverrides): IDisposable {
|
|
||||||
return attachStyler(themeService, {
|
|
||||||
inputBackground: style?.inputBackground || inputBackground,
|
|
||||||
inputForeground: style?.inputForeground || inputForeground,
|
|
||||||
inputBorder: style?.inputBorder || inputBorder,
|
|
||||||
inputValidationInfoBorder: style?.inputValidationInfoBorder || inputValidationInfoBorder,
|
|
||||||
inputValidationInfoBackground: style?.inputValidationInfoBackground || inputValidationInfoBackground,
|
|
||||||
inputValidationInfoForeground: style?.inputValidationInfoForeground || inputValidationInfoForeground,
|
|
||||||
inputValidationWarningBorder: style?.inputValidationWarningBorder || inputValidationWarningBorder,
|
|
||||||
inputValidationWarningBackground: style?.inputValidationWarningBackground || inputValidationWarningBackground,
|
|
||||||
inputValidationWarningForeground: style?.inputValidationWarningForeground || inputValidationWarningForeground,
|
|
||||||
inputValidationErrorBorder: style?.inputValidationErrorBorder || inputValidationErrorBorder,
|
|
||||||
inputValidationErrorBackground: style?.inputValidationErrorBackground || inputValidationErrorBackground,
|
|
||||||
inputValidationErrorForeground: style?.inputValidationErrorForeground || inputValidationErrorForeground
|
|
||||||
} as IInputBoxStyleOverrides, widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ISelectBoxStyleOverrides extends IStyleOverrides, IListStyleOverrides {
|
export interface ISelectBoxStyleOverrides extends IStyleOverrides, IListStyleOverrides {
|
||||||
selectBackground?: ColorIdentifier;
|
selectBackground?: ColorIdentifier;
|
||||||
selectListBackground?: ColorIdentifier;
|
selectListBackground?: ColorIdentifier;
|
||||||
@@ -136,26 +88,6 @@ export function attachSelectBoxStyler(widget: IThemable, themeService: IThemeSer
|
|||||||
} as ISelectBoxStyleOverrides, widget);
|
} as ISelectBoxStyleOverrides, widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function attachFindReplaceInputBoxStyler(widget: IThemable, themeService: IThemeService, style?: IInputBoxStyleOverrides): IDisposable {
|
|
||||||
return attachStyler(themeService, {
|
|
||||||
inputBackground: style?.inputBackground || inputBackground,
|
|
||||||
inputForeground: style?.inputForeground || inputForeground,
|
|
||||||
inputBorder: style?.inputBorder || inputBorder,
|
|
||||||
inputActiveOptionBorder: style?.inputActiveOptionBorder || inputActiveOptionBorder,
|
|
||||||
inputActiveOptionForeground: style?.inputActiveOptionForeground || inputActiveOptionForeground,
|
|
||||||
inputActiveOptionBackground: style?.inputActiveOptionBackground || inputActiveOptionBackground,
|
|
||||||
inputValidationInfoBorder: style?.inputValidationInfoBorder || inputValidationInfoBorder,
|
|
||||||
inputValidationInfoBackground: style?.inputValidationInfoBackground || inputValidationInfoBackground,
|
|
||||||
inputValidationInfoForeground: style?.inputValidationInfoForeground || inputValidationInfoForeground,
|
|
||||||
inputValidationWarningBorder: style?.inputValidationWarningBorder || inputValidationWarningBorder,
|
|
||||||
inputValidationWarningBackground: style?.inputValidationWarningBackground || inputValidationWarningBackground,
|
|
||||||
inputValidationWarningForeground: style?.inputValidationWarningForeground || inputValidationWarningForeground,
|
|
||||||
inputValidationErrorBorder: style?.inputValidationErrorBorder || inputValidationErrorBorder,
|
|
||||||
inputValidationErrorBackground: style?.inputValidationErrorBackground || inputValidationErrorBackground,
|
|
||||||
inputValidationErrorForeground: style?.inputValidationErrorForeground || inputValidationErrorForeground
|
|
||||||
} as IInputBoxStyleOverrides, widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IListStyleOverrides extends IStyleOverrides {
|
export interface IListStyleOverrides extends IStyleOverrides {
|
||||||
listBackground?: ColorIdentifier;
|
listBackground?: ColorIdentifier;
|
||||||
listFocusBackground?: ColorIdentifier;
|
listFocusBackground?: ColorIdentifier;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import * as DOM from 'vs/base/browser/dom';
|
|||||||
import { Emitter, Event } from 'vs/base/common/event';
|
import { Emitter, Event } from 'vs/base/common/event';
|
||||||
import { Orientation, Sizing, SplitView } from 'vs/base/browser/ui/splitview/splitview';
|
import { Orientation, Sizing, SplitView } from 'vs/base/browser/ui/splitview/splitview';
|
||||||
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
|
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
|
||||||
import { IInputBoxStyles, InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
import 'vs/css!./media/designer';
|
import 'vs/css!./media/designer';
|
||||||
import { ITableStyles } from 'sql/base/browser/ui/table/interfaces';
|
import { ITableStyles } from 'sql/base/browser/ui/table/interfaces';
|
||||||
import { Checkbox } from 'sql/base/browser/ui/checkbox/checkbox';
|
import { Checkbox } from 'sql/base/browser/ui/checkbox/checkbox';
|
||||||
@@ -41,8 +41,7 @@ import { IColorTheme, ICssStyleCollector, IThemeService, registerThemingParticip
|
|||||||
import { listActiveSelectionBackground, listActiveSelectionForeground, listHoverBackground } from 'vs/platform/theme/common/colorRegistry';
|
import { listActiveSelectionBackground, listActiveSelectionForeground, listHoverBackground } from 'vs/platform/theme/common/colorRegistry';
|
||||||
import { alert } from 'vs/base/browser/ui/aria/aria';
|
import { alert } from 'vs/base/browser/ui/aria/aria';
|
||||||
import { layoutDesignerTable, TableHeaderRowHeight, TableRowHeight } from 'sql/workbench/browser/designer/designerTableUtil';
|
import { layoutDesignerTable, TableHeaderRowHeight, TableRowHeight } from 'sql/workbench/browser/designer/designerTableUtil';
|
||||||
import { Dropdown, IDropdownStyles } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
import { Dropdown } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
||||||
import { IListStyles } from 'vs/base/browser/ui/list/listWidget';
|
|
||||||
import { IAction } from 'vs/base/common/actions';
|
import { IAction } from 'vs/base/common/actions';
|
||||||
import { InsertAfterSelectedRowAction, InsertBeforeSelectedRowAction, AddRowAction, DesignerTableActionContext, MoveRowDownAction, MoveRowUpAction, DesignerTableAction } from 'sql/workbench/browser/designer/tableActions';
|
import { InsertAfterSelectedRowAction, InsertBeforeSelectedRowAction, AddRowAction, DesignerTableActionContext, MoveRowDownAction, MoveRowUpAction, DesignerTableAction } from 'sql/workbench/browser/designer/tableActions';
|
||||||
import { RowMoveManager, RowMoveOnDragEventData } from 'sql/base/browser/ui/table/plugins/rowMoveManager.plugin';
|
import { RowMoveManager, RowMoveOnDragEventData } from 'sql/base/browser/ui/table/plugins/rowMoveManager.plugin';
|
||||||
@@ -54,16 +53,14 @@ import { onUnexpectedError } from 'vs/base/common/errors';
|
|||||||
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
||||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||||
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
||||||
import { defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultInputBoxStyles, defaultSelectBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
import { ThemeIcon } from 'vs/base/common/themables';
|
import { ThemeIcon } from 'vs/base/common/themables';
|
||||||
import { defaultCheckboxStyles } from 'sql/platform/theme/browser/defaultStyles';
|
import { defaultCheckboxStyles, defaultEditableDropdownStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
export interface IDesignerStyle {
|
export interface IDesignerStyle {
|
||||||
tabbedPanelStyles?: ITabbedPanelStyles;
|
tabbedPanelStyles?: ITabbedPanelStyles;
|
||||||
inputBoxStyles?: IInputBoxStyles;
|
|
||||||
tableStyles?: ITableStyles;
|
tableStyles?: ITableStyles;
|
||||||
selectBoxStyles?: ISelectBoxStyles;
|
selectBoxStyles?: ISelectBoxStyles;
|
||||||
dropdownStyles?: IListStyles & IInputBoxStyles & IDropdownStyles;
|
|
||||||
paneSeparator?: Color;
|
paneSeparator?: Color;
|
||||||
groupHeaderBackground?: Color;
|
groupHeaderBackground?: Color;
|
||||||
}
|
}
|
||||||
@@ -136,10 +133,9 @@ export class Designer extends Disposable {
|
|||||||
optionsGetter: (item, column): string[] => {
|
optionsGetter: (item, column): string[] => {
|
||||||
return item[column.field].values;
|
return item[column.field].values;
|
||||||
},
|
},
|
||||||
editorStyler: (component) => {
|
inputBoxStyles: defaultInputBoxStyles,
|
||||||
this.styleComponent(component);
|
editableDropdownStyles: defaultEditableDropdownStyles,
|
||||||
},
|
selectBoxStyles: defaultSelectBoxStyles
|
||||||
onStyleChange: this._onStyleChangeEventEmitter.event
|
|
||||||
}, this._contextViewProvider
|
}, this._contextViewProvider
|
||||||
);
|
);
|
||||||
this._loadingSpinner = new LoadingSpinner(this._container, { showText: true, fullSize: true });
|
this._loadingSpinner = new LoadingSpinner(this._container, { showText: true, fullSize: true });
|
||||||
@@ -218,7 +214,6 @@ export class Designer extends Disposable {
|
|||||||
|
|
||||||
private styleComponent(component: TabbedPanel | InputBox | Checkbox | Table<Slick.SlickData> | SelectBox | Dropdown): void {
|
private styleComponent(component: TabbedPanel | InputBox | Checkbox | Table<Slick.SlickData> | SelectBox | Dropdown): void {
|
||||||
if (component instanceof InputBox) {
|
if (component instanceof InputBox) {
|
||||||
component.style(this._styles.inputBoxStyles);
|
|
||||||
} else if (component instanceof Checkbox) {
|
} else if (component instanceof Checkbox) {
|
||||||
} else if (component instanceof TabbedPanel) {
|
} else if (component instanceof TabbedPanel) {
|
||||||
component.style(this._styles.tabbedPanelStyles);
|
component.style(this._styles.tabbedPanelStyles);
|
||||||
@@ -226,7 +221,6 @@ export class Designer extends Disposable {
|
|||||||
this.removeTableSelectionStyles();
|
this.removeTableSelectionStyles();
|
||||||
component.style(this._styles.tableStyles);
|
component.style(this._styles.tableStyles);
|
||||||
} else if (component instanceof Dropdown) {
|
} else if (component instanceof Dropdown) {
|
||||||
component.style(this._styles.dropdownStyles);
|
|
||||||
} else {
|
} else {
|
||||||
component.style(this._styles.selectBoxStyles);
|
component.style(this._styles.selectBoxStyles);
|
||||||
}
|
}
|
||||||
@@ -252,7 +246,7 @@ export class Designer extends Disposable {
|
|||||||
public style(styles: IDesignerStyle): void {
|
public style(styles: IDesignerStyle): void {
|
||||||
this._styles = styles;
|
this._styles = styles;
|
||||||
this._componentMap.forEach((value, key, map) => {
|
this._componentMap.forEach((value, key, map) => {
|
||||||
if (!(value.component instanceof Checkbox)) {
|
if (value.component instanceof Table) {
|
||||||
if (value.component.style) {
|
if (value.component.style) {
|
||||||
this.styleComponent(value.component);
|
this.styleComponent(value.component);
|
||||||
}
|
}
|
||||||
@@ -792,7 +786,8 @@ export class Designer extends Disposable {
|
|||||||
dropdown = new Dropdown(dropdownContainer, this._contextViewProvider, {
|
dropdown = new Dropdown(dropdownContainer, this._contextViewProvider, {
|
||||||
values: dropdownProperties.values as string[] || [],
|
values: dropdownProperties.values as string[] || [],
|
||||||
ariaLabel: componentDefinition.componentProperties?.title,
|
ariaLabel: componentDefinition.componentProperties?.title,
|
||||||
ariaDescription: componentDefinition.description
|
ariaDescription: componentDefinition.description,
|
||||||
|
...defaultEditableDropdownStyles
|
||||||
});
|
});
|
||||||
dropdown.onValueChange((value) => {
|
dropdown.onValueChange((value) => {
|
||||||
this.handleEdit({ type: DesignerEditType.Update, path: propertyPath, value: value, source: view });
|
this.handleEdit({ type: DesignerEditType.Update, path: propertyPath, value: value, source: view });
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import * as azdata from 'azdata';
|
|||||||
|
|
||||||
import { ComponentBase } from 'sql/workbench/browser/modelComponents/componentBase';
|
import { ComponentBase } from 'sql/workbench/browser/modelComponents/componentBase';
|
||||||
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
||||||
import { attachEditableDropdownStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { attachSelectBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
import { attachSelectBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
||||||
|
|
||||||
import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
||||||
@@ -26,6 +25,7 @@ import { ILogService } from 'vs/platform/log/common/log';
|
|||||||
import { registerThemingParticipant, IColorTheme, ICssStyleCollector } from 'vs/platform/theme/common/themeService';
|
import { registerThemingParticipant, IColorTheme, ICssStyleCollector } from 'vs/platform/theme/common/themeService';
|
||||||
import { errorForeground, inputValidationErrorBorder } from 'vs/platform/theme/common/colorRegistry';
|
import { errorForeground, inputValidationErrorBorder } from 'vs/platform/theme/common/colorRegistry';
|
||||||
import { Dropdown, IDropdownOptions } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
import { Dropdown, IDropdownOptions } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
||||||
|
import { defaultEditableDropdownStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'modelview-dropdown',
|
selector: 'modelview-dropdown',
|
||||||
@@ -88,13 +88,11 @@ export default class DropDownComponent extends ComponentBase<azdata.DropDownProp
|
|||||||
strictSelection: false,
|
strictSelection: false,
|
||||||
placeholder: this.placeholder,
|
placeholder: this.placeholder,
|
||||||
maxHeight: 125,
|
maxHeight: 125,
|
||||||
ariaLabel: ''
|
ariaLabel: '',
|
||||||
|
...defaultEditableDropdownStyles
|
||||||
};
|
};
|
||||||
this._editableDropdown = new Dropdown(this._editableDropDownContainer.nativeElement, this.contextViewService,
|
this._editableDropdown = new Dropdown(this._editableDropDownContainer.nativeElement, this.contextViewService, dropdownOptions);
|
||||||
dropdownOptions);
|
|
||||||
|
|
||||||
this._register(this._editableDropdown);
|
this._register(this._editableDropdown);
|
||||||
this._register(attachEditableDropdownStyler(this._editableDropdown, this.themeService));
|
|
||||||
this._register(this._editableDropdown.onValueChange(async e => {
|
this._register(this._editableDropdown.onValueChange(async e => {
|
||||||
if (this.editable) {
|
if (this.editable) {
|
||||||
this.setSelectedValue(e);
|
this.setSelectedValue(e);
|
||||||
|
|||||||
@@ -12,13 +12,11 @@ import * as azdata from 'azdata';
|
|||||||
|
|
||||||
import { ComponentBase } from 'sql/workbench/browser/modelComponents/componentBase';
|
import { ComponentBase } from 'sql/workbench/browser/modelComponents/componentBase';
|
||||||
import { IInputOptions, InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { IInputOptions, InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
|
|
||||||
import { MessageType } from 'vs/base/browser/ui/inputbox/inputBox';
|
import { MessageType } from 'vs/base/browser/ui/inputbox/inputBox';
|
||||||
import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import * as nls from 'vs/nls';
|
import * as nls from 'vs/nls';
|
||||||
import { inputBackground, inputBorder } from 'vs/platform/theme/common/colorRegistry';
|
import { asCssVariable, inputBackground, inputBorder } from 'vs/platform/theme/common/colorRegistry';
|
||||||
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
@@ -27,7 +25,7 @@ import { isNumber } from 'vs/base/common/types';
|
|||||||
import { convertSize, convertSizeToNumber } from 'sql/base/browser/dom';
|
import { convertSize, convertSizeToNumber } from 'sql/base/browser/dom';
|
||||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { getInputBoxStyle } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'modelview-inputBox',
|
selector: 'modelview-inputBox',
|
||||||
@@ -46,7 +44,6 @@ export default class InputBoxComponent extends ComponentBase<azdata.InputBoxProp
|
|||||||
@ViewChild('textarea', { read: ElementRef }) private _textareaContainer: ElementRef;
|
@ViewChild('textarea', { read: ElementRef }) private _textareaContainer: ElementRef;
|
||||||
constructor(
|
constructor(
|
||||||
@Inject(forwardRef(() => ChangeDetectorRef)) changeRef: ChangeDetectorRef,
|
@Inject(forwardRef(() => ChangeDetectorRef)) changeRef: ChangeDetectorRef,
|
||||||
@Inject(IWorkbenchThemeService) private themeService: IWorkbenchThemeService,
|
|
||||||
@Inject(IContextViewService) private contextViewService: IContextViewService,
|
@Inject(IContextViewService) private contextViewService: IContextViewService,
|
||||||
@Inject(forwardRef(() => ElementRef)) el: ElementRef,
|
@Inject(forwardRef(() => ElementRef)) el: ElementRef,
|
||||||
@Inject(ILogService) logService: ILogService
|
@Inject(ILogService) logService: ILogService
|
||||||
@@ -71,7 +68,10 @@ export default class InputBoxComponent extends ComponentBase<azdata.InputBoxProp
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
useDefaultValidation: true,
|
useDefaultValidation: true,
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: getInputBoxStyle({
|
||||||
|
inputValidationInfoBackground: asCssVariable(inputBackground),
|
||||||
|
inputValidationInfoBorder: asCssVariable(inputBorder),
|
||||||
|
})
|
||||||
};
|
};
|
||||||
if (this._inputContainer) {
|
if (this._inputContainer) {
|
||||||
inputOptions.requireForceValidations = true; // Non-text area input boxes handle our own validations when the text changes so don't run the base ones
|
inputOptions.requireForceValidations = true; // Non-text area input boxes handle our own validations when the text changes so don't run the base ones
|
||||||
@@ -132,10 +132,6 @@ export default class InputBoxComponent extends ComponentBase<azdata.InputBoxProp
|
|||||||
this._validations.push(() => !input.inputElement.validationMessage);
|
this._validations.push(() => !input.inputElement.validationMessage);
|
||||||
|
|
||||||
this._register(input);
|
this._register(input);
|
||||||
this._register(attachInputBoxStyler(input, this.themeService, {
|
|
||||||
inputValidationInfoBackground: inputBackground,
|
|
||||||
inputValidationInfoBorder: inputBorder,
|
|
||||||
}));
|
|
||||||
this._register(input.onDidChange(async e => {
|
this._register(input.onDidChange(async e => {
|
||||||
if (checkOption()) {
|
if (checkOption()) {
|
||||||
this.value = input.value;
|
this.value = input.value;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import { ComponentBase } from 'sql/workbench/browser/modelComponents/componentBa
|
|||||||
|
|
||||||
import { Table } from 'sql/base/browser/ui/table/table';
|
import { Table } from 'sql/base/browser/ui/table/table';
|
||||||
import { TableDataView } from 'sql/base/browser/ui/table/tableDataView';
|
import { TableDataView } from 'sql/base/browser/ui/table/tableDataView';
|
||||||
import { attachTableFilterStyler, attachTableStyler } from 'sql/platform/theme/common/styler';
|
import { attachTableStyler } from 'sql/platform/theme/common/styler';
|
||||||
import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
||||||
import { getContentHeight, getContentWidth, Dimension, isAncestor } from 'vs/base/browser/dom';
|
import { getContentHeight, getContentWidth, Dimension, isAncestor } from 'vs/base/browser/dom';
|
||||||
import { RowSelectionModel } from 'sql/base/browser/ui/table/plugins/rowSelectionModel.plugin';
|
import { RowSelectionModel } from 'sql/base/browser/ui/table/plugins/rowSelectionModel.plugin';
|
||||||
@@ -41,7 +41,7 @@ import { IAccessibilityService } from 'vs/platform/accessibility/common/accessib
|
|||||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||||
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
||||||
import { deepClone, equals } from 'vs/base/common/objects';
|
import { deepClone, equals } from 'vs/base/common/objects';
|
||||||
import { defaultButtonStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultTableFilterStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
export enum ColumnSizingMode {
|
export enum ColumnSizingMode {
|
||||||
ForceFit = 0, // all columns will be sized to fit in viewable space, no horiz scroll bar
|
ForceFit = 0, // all columns will be sized to fit in viewable space, no horiz scroll bar
|
||||||
@@ -607,8 +607,7 @@ export default class TableComponent extends ComponentBase<azdata.TableComponentP
|
|||||||
|
|
||||||
|
|
||||||
private registerFilterPlugin() {
|
private registerFilterPlugin() {
|
||||||
const filterPlugin = new HeaderFilter<Slick.SlickData>({ buttonStyles: defaultButtonStyles }, this.contextViewService);
|
const filterPlugin = new HeaderFilter<Slick.SlickData>(defaultTableFilterStyles, this.contextViewService);
|
||||||
this._register(attachTableFilterStyler(filterPlugin, this.themeService));
|
|
||||||
this._filterPlugin = filterPlugin;
|
this._filterPlugin = filterPlugin;
|
||||||
this._filterPlugin.onFilterApplied.subscribe((e, args) => {
|
this._filterPlugin.onFilterApplied.subscribe((e, args) => {
|
||||||
let filterValues = (<any>args).column.filterValues;
|
let filterValues = (<any>args).column.filterValues;
|
||||||
|
|||||||
@@ -46,12 +46,12 @@ import { TelemetryView } from 'sql/platform/telemetry/common/telemetryKeys';
|
|||||||
import { LocalizedStrings } from 'sql/workbench/contrib/assessment/common/strings';
|
import { LocalizedStrings } from 'sql/workbench/contrib/assessment/common/strings';
|
||||||
import { ConnectionManagementInfo } from 'sql/platform/connection/common/connectionManagementInfo';
|
import { ConnectionManagementInfo } from 'sql/platform/connection/common/connectionManagementInfo';
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { attachTableFilterStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { DASHBOARD_BORDER } from 'sql/workbench/common/theme';
|
import { DASHBOARD_BORDER } from 'sql/workbench/common/theme';
|
||||||
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
||||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||||
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
||||||
import { defaultButtonStyles, defaultListStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultListStyles } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
|
import { defaultTableFilterStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
export const ASMTRESULTSVIEW_SELECTOR: string = 'asmt-results-view-component';
|
export const ASMTRESULTSVIEW_SELECTOR: string = 'asmt-results-view-component';
|
||||||
export const ROW_HEIGHT: number = 25;
|
export const ROW_HEIGHT: number = 25;
|
||||||
@@ -326,8 +326,7 @@ export class AsmtResultsViewComponent extends TabChild implements IAssessmentCom
|
|||||||
columnDef.formatter = (row, cell, value, columnDef, dataContext) => this.detailSelectionFormatter(row, cell, value, columnDef, dataContext as ExtendedItem<Slick.SlickData>);
|
columnDef.formatter = (row, cell, value, columnDef, dataContext) => this.detailSelectionFormatter(row, cell, value, columnDef, dataContext as ExtendedItem<Slick.SlickData>);
|
||||||
columns.unshift(columnDef);
|
columns.unshift(columnDef);
|
||||||
|
|
||||||
let filterPlugin = new HeaderFilter<Slick.SlickData>({ buttonStyles: defaultButtonStyles }, this._contextViewService);
|
let filterPlugin = new HeaderFilter<Slick.SlickData>(defaultTableFilterStyles, this._contextViewService);
|
||||||
this._register(attachTableFilterStyler(filterPlugin, this._themeService));
|
|
||||||
this.filterPlugin = filterPlugin;
|
this.filterPlugin = filterPlugin;
|
||||||
this.filterPlugin.onFilterApplied.subscribe((e, args) => {
|
this.filterPlugin.onFilterApplied.subscribe((e, args) => {
|
||||||
let filterValues = args.column.filterValues;
|
let filterValues = args.column.filterValues;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { Checkbox } from 'sql/base/browser/ui/checkbox/checkbox';
|
|||||||
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
import { ListBox } from 'sql/base/browser/ui/listBox/listBox';
|
import { ListBox } from 'sql/base/browser/ui/listBox/listBox';
|
||||||
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
||||||
import { attachListBoxStyler, attachInputBoxStyler, attachSelectBoxStyler } from 'sql/platform/theme/common/styler';
|
import { attachListBoxStyler, attachSelectBoxStyler } from 'sql/platform/theme/common/styler';
|
||||||
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
||||||
import * as BackupConstants from 'sql/workbench/contrib/backup/common/constants';
|
import * as BackupConstants from 'sql/workbench/contrib/backup/common/constants';
|
||||||
import { IBackupService, TaskExecutionMode } from 'sql/platform/backup/common/backupService';
|
import { IBackupService, TaskExecutionMode } from 'sql/platform/backup/common/backupService';
|
||||||
@@ -606,17 +606,11 @@ export class BackupComponent extends AngularDisposable {
|
|||||||
|
|
||||||
private registerListeners(): void {
|
private registerListeners(): void {
|
||||||
// Theme styler
|
// Theme styler
|
||||||
this._register(attachInputBoxStyler(this.backupNameBox!, this.themeService));
|
|
||||||
this._register(attachInputBoxStyler(this.recoveryBox!, this.themeService));
|
|
||||||
this._register(attachSelectBoxStyler(this.backupTypeSelectBox!, this.themeService));
|
this._register(attachSelectBoxStyler(this.backupTypeSelectBox!, this.themeService));
|
||||||
this._register(attachListBoxStyler(this.pathListBox!, this.themeService));
|
this._register(attachListBoxStyler(this.pathListBox!, this.themeService));
|
||||||
this._register(attachSelectBoxStyler(this.compressionSelectBox!, this.themeService));
|
this._register(attachSelectBoxStyler(this.compressionSelectBox!, this.themeService));
|
||||||
this._register(attachSelectBoxStyler(this.algorithmSelectBox!, this.themeService));
|
this._register(attachSelectBoxStyler(this.algorithmSelectBox!, this.themeService));
|
||||||
this._register(attachSelectBoxStyler(this.encryptorSelectBox!, this.themeService));
|
this._register(attachSelectBoxStyler(this.encryptorSelectBox!, this.themeService));
|
||||||
this._register(attachInputBoxStyler(this.mediaNameBox!, this.themeService));
|
|
||||||
this._register(attachInputBoxStyler(this.urlInputBox!, this.themeService));
|
|
||||||
this._register(attachInputBoxStyler(this.mediaDescriptionBox!, this.themeService));
|
|
||||||
this._register(attachInputBoxStyler(this.backupRetainDaysBox!, this.themeService));
|
|
||||||
|
|
||||||
this._register(this.backupTypeSelectBox!.onDidSelect(selected => this.onBackupTypeChanged()));
|
this._register(this.backupTypeSelectBox!.onDidSelect(selected => this.onBackupTypeChanged()));
|
||||||
this._register(this.addUrlPathButton!.onDidClick(() => this.onAddUrlClick()));
|
this._register(this.addUrlPathButton!.onDidClick(() => this.onAddUrlClick()));
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import { IContextViewService } from 'vs/platform/contextview/browser/contextView
|
|||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||||
import { Registry } from 'vs/platform/registry/common/platform';
|
import { Registry } from 'vs/platform/registry/common/platform';
|
||||||
import { attachInputBoxStyler, attachSelectBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
import { attachSelectBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import { ChartOptions, ControlType, IChartOption } from './chartOptions';
|
import { ChartOptions, ControlType, IChartOption } from './chartOptions';
|
||||||
import { Insight } from './insight';
|
import { Insight } from './insight';
|
||||||
@@ -385,7 +385,6 @@ export class ChartView extends Disposable implements IPanelView {
|
|||||||
input.value = val;
|
input.value = val;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.optionDisposables.push(attachInputBoxStyler(input, this._themeService));
|
|
||||||
break;
|
break;
|
||||||
case ControlType.numberInput:
|
case ControlType.numberInput:
|
||||||
let numberInput = new InputBox(optionInput, this._contextViewService, {
|
let numberInput = new InputBox(optionInput, this._contextViewService, {
|
||||||
@@ -408,7 +407,6 @@ export class ChartView extends Disposable implements IPanelView {
|
|||||||
numberInput.value = val;
|
numberInput.value = val;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.optionDisposables.push(attachInputBoxStyler(numberInput, this._themeService));
|
|
||||||
break;
|
break;
|
||||||
case ControlType.dateInput:
|
case ControlType.dateInput:
|
||||||
let dateInput = new InputBox(optionInput, this._contextViewService, {
|
let dateInput = new InputBox(optionInput, this._contextViewService, {
|
||||||
@@ -431,7 +429,6 @@ export class ChartView extends Disposable implements IPanelView {
|
|||||||
dateInput.value = val;
|
dateInput.value = val;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.optionDisposables.push(attachInputBoxStyler(dateInput, this._themeService));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this.optionMap[entry] = { element: optionContainer, set: setFunc };
|
this.optionMap[entry] = { element: optionContainer, set: setFunc };
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { ActionsOrientation } from 'vs/base/browser/ui/actionbar/actionbar';
|
|||||||
import { Action } from 'vs/base/common/actions';
|
import { Action } from 'vs/base/common/actions';
|
||||||
import { Codicon } from 'vs/base/common/codicons';
|
import { Codicon } from 'vs/base/common/codicons';
|
||||||
import { filterIconClassNames, propertiesSearchDescription, searchPlaceholder, sortAlphabeticallyIconClassNames, sortByDisplayOrderIconClassNames, sortReverseAlphabeticallyIconClassNames } from 'sql/workbench/contrib/executionPlan/browser/constants';
|
import { filterIconClassNames, propertiesSearchDescription, searchPlaceholder, sortAlphabeticallyIconClassNames, sortByDisplayOrderIconClassNames, sortReverseAlphabeticallyIconClassNames } from 'sql/workbench/contrib/executionPlan/browser/constants';
|
||||||
import { attachInputBoxStyler, attachTableStyler } from 'sql/platform/theme/common/styler';
|
import { attachTableStyler } from 'sql/platform/theme/common/styler';
|
||||||
import { RESULTS_GRID_DEFAULTS } from 'sql/workbench/common/constants';
|
import { RESULTS_GRID_DEFAULTS } from 'sql/workbench/common/constants';
|
||||||
import { contrastBorder, inputBackground, listHoverBackground, listInactiveSelectionBackground } from 'vs/platform/theme/common/colorRegistry';
|
import { contrastBorder, inputBackground, listHoverBackground, listInactiveSelectionBackground } from 'vs/platform/theme/common/colorRegistry';
|
||||||
import { TreeGrid } from 'sql/base/browser/ui/table/treeGrid';
|
import { TreeGrid } from 'sql/base/browser/ui/table/treeGrid';
|
||||||
@@ -149,7 +149,6 @@ export abstract class ExecutionPlanPropertiesViewBase extends Disposable impleme
|
|||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: defaultInputBoxStyles
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this._register(attachInputBoxStyler(this._propertiesSearchInput, this._themeService));
|
|
||||||
this._propertiesSearchInput.element.classList.add('codicon', filterIconClassNames);
|
this._propertiesSearchInput.element.classList.add('codicon', filterIconClassNames);
|
||||||
this._searchAndActionBarContainer.appendChild(this._propertiesSearchInputContainer);
|
this._searchAndActionBarContainer.appendChild(this._propertiesSearchInputContainer);
|
||||||
this._register(this._propertiesSearchInput.onDidChange(e => {
|
this._register(this._propertiesSearchInput.onDidChange(e => {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import { ExecutionPlanState } from 'sql/workbench/common/editor/query/executionP
|
|||||||
import { Table } from 'sql/base/browser/ui/table/table';
|
import { Table } from 'sql/base/browser/ui/table/table';
|
||||||
import { hyperLinkFormatter, textFormatter } from 'sql/base/browser/ui/table/formatters';
|
import { hyperLinkFormatter, textFormatter } from 'sql/base/browser/ui/table/formatters';
|
||||||
import { RESULTS_GRID_DEFAULTS } from 'sql/workbench/common/constants';
|
import { RESULTS_GRID_DEFAULTS } from 'sql/workbench/common/constants';
|
||||||
import { attachInputBoxStyler, attachTableStyler } from 'sql/platform/theme/common/styler';
|
import { attachTableStyler } from 'sql/platform/theme/common/styler';
|
||||||
import { IColorTheme, ICssStyleCollector, IThemeService, registerThemingParticipant } from 'vs/platform/theme/common/themeService';
|
import { IColorTheme, ICssStyleCollector, IThemeService, registerThemingParticipant } from 'vs/platform/theme/common/themeService';
|
||||||
import { ExecutionPlanViewHeader } from 'sql/workbench/contrib/executionPlan/browser/executionPlanViewHeader';
|
import { ExecutionPlanViewHeader } from 'sql/workbench/contrib/executionPlan/browser/executionPlanViewHeader';
|
||||||
import { QueryResultsView } from 'sql/workbench/contrib/query/browser/queryResultsView';
|
import { QueryResultsView } from 'sql/workbench/contrib/query/browser/queryResultsView';
|
||||||
@@ -186,7 +186,6 @@ export class TopOperationsTabView extends Disposable implements IPanelView {
|
|||||||
placeholder: searchPlaceholder,
|
placeholder: searchPlaceholder,
|
||||||
inputBoxStyles: defaultInputBoxStyles,
|
inputBoxStyles: defaultInputBoxStyles,
|
||||||
}));
|
}));
|
||||||
this._register(attachInputBoxStyler(topOperationsSearchInput, this._themeService));
|
|
||||||
topOperationsSearchInput.element.classList.add('codicon', filterIconClassNames);
|
topOperationsSearchInput.element.classList.add('codicon', filterIconClassNames);
|
||||||
|
|
||||||
const header = this._register(this._instantiationService.createInstance(ExecutionPlanViewHeader, headerInfoContainer, {
|
const header = this._register(this._instantiationService.createInstance(ExecutionPlanViewHeader, headerInfoContainer, {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
import { ActionBar } from 'sql/base/browser/ui/taskbar/actionbar';
|
import { ActionBar } from 'sql/base/browser/ui/taskbar/actionbar';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { ExecutionPlanWidgetBase } from 'sql/workbench/contrib/executionPlan/browser/executionPlanWidgetBase';
|
import { ExecutionPlanWidgetBase } from 'sql/workbench/contrib/executionPlan/browser/executionPlanWidgetBase';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import { Action } from 'vs/base/common/actions';
|
import { Action } from 'vs/base/common/actions';
|
||||||
@@ -43,7 +42,6 @@ export class CustomZoomWidget extends ExecutionPlanWidgetBase {
|
|||||||
flexibleWidth: false,
|
flexibleWidth: false,
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: defaultInputBoxStyles
|
||||||
}));
|
}));
|
||||||
this._register(attachInputBoxStyler(this.customZoomInputBox, this.themeService));
|
|
||||||
|
|
||||||
const currentZoom = this.executionPlanDiagram.getZoomLevel();
|
const currentZoom = this.executionPlanDiagram.getZoomLevel();
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import * as DOM from 'vs/base/browser/dom';
|
|||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { Codicon } from 'vs/base/common/codicons';
|
import { Codicon } from 'vs/base/common/codicons';
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { attachInputBoxStyler, attachSelectBoxStyler } from 'sql/platform/theme/common/styler';
|
import { attachSelectBoxStyler } from 'sql/platform/theme/common/styler';
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import { Action } from 'vs/base/common/actions';
|
import { Action } from 'vs/base/common/actions';
|
||||||
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
||||||
@@ -131,7 +131,6 @@ export class NodeSearchWidget extends ExecutionPlanWidgetBase {
|
|||||||
}));
|
}));
|
||||||
this._searchTextInputBox.setAriaLabel(ENTER_SEARCH_VALUE_TITLE);
|
this._searchTextInputBox.setAriaLabel(ENTER_SEARCH_VALUE_TITLE);
|
||||||
this._searchTextInputBox.element.style.marginLeft = '5px';
|
this._searchTextInputBox.element.style.marginLeft = '5px';
|
||||||
this._register(attachInputBoxStyler(this._searchTextInputBox, this.themeService));
|
|
||||||
this._register(this._searchTextInputBox.onDidChange(e => {
|
this._register(this._searchTextInputBox.onDidChange(e => {
|
||||||
this._usePreviousSearchResult = false;
|
this._usePreviousSearchResult = false;
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -33,11 +33,10 @@ import { TelemetryView } from 'sql/platform/telemetry/common/telemetryKeys';
|
|||||||
import { IColorTheme } from 'vs/platform/theme/common/themeService';
|
import { IColorTheme } from 'vs/platform/theme/common/themeService';
|
||||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||||
import { attachTableFilterStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
||||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||||
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
||||||
import { defaultButtonStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultTableFilterStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
export const JOBSVIEW_SELECTOR: string = 'jobsview-component';
|
export const JOBSVIEW_SELECTOR: string = 'jobsview-component';
|
||||||
export const ROW_HEIGHT: number = 45;
|
export const ROW_HEIGHT: number = 45;
|
||||||
@@ -189,8 +188,7 @@ export class JobsViewComponent extends JobManagementView implements OnInit, OnDe
|
|||||||
});
|
});
|
||||||
this.rowDetail = rowDetail;
|
this.rowDetail = rowDetail;
|
||||||
columns.unshift(this.rowDetail.getColumnDefinition());
|
columns.unshift(this.rowDetail.getColumnDefinition());
|
||||||
let filterPlugin = new HeaderFilter<IItem>({ buttonStyles: defaultButtonStyles }, this._contextViewService);
|
let filterPlugin = new HeaderFilter<IItem>(defaultTableFilterStyles, this._contextViewService);
|
||||||
this._register(attachTableFilterStyler(filterPlugin, this._themeService));
|
|
||||||
this.filterPlugin = filterPlugin;
|
this.filterPlugin = filterPlugin;
|
||||||
jQuery(this._gridEl.nativeElement).empty();
|
jQuery(this._gridEl.nativeElement).empty();
|
||||||
jQuery(this.actionBarContainer.nativeElement).empty();
|
jQuery(this.actionBarContainer.nativeElement).empty();
|
||||||
|
|||||||
@@ -34,11 +34,10 @@ import { Taskbar } from 'sql/base/browser/ui/taskbar/taskbar';
|
|||||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||||
import { IColorTheme } from 'vs/platform/theme/common/themeService';
|
import { IColorTheme } from 'vs/platform/theme/common/themeService';
|
||||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||||
import { attachTableFilterStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
||||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||||
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
||||||
import { defaultButtonStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultTableFilterStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
|
|
||||||
export const NOTEBOOKSVIEW_SELECTOR: string = 'notebooksview-component';
|
export const NOTEBOOKSVIEW_SELECTOR: string = 'notebooksview-component';
|
||||||
@@ -188,8 +187,7 @@ export class NotebooksViewComponent extends JobManagementView implements OnInit,
|
|||||||
});
|
});
|
||||||
this.rowDetail = rowDetail;
|
this.rowDetail = rowDetail;
|
||||||
columns.unshift(this.rowDetail.getColumnDefinition());
|
columns.unshift(this.rowDetail.getColumnDefinition());
|
||||||
let filterPlugin = new HeaderFilter<IItem>({ buttonStyles: defaultButtonStyles }, this._contextViewService);
|
let filterPlugin = new HeaderFilter<IItem>(defaultTableFilterStyles, this._contextViewService);
|
||||||
this._register(attachTableFilterStyler(filterPlugin, this._themeService));
|
|
||||||
this.filterPlugin = filterPlugin;
|
this.filterPlugin = filterPlugin;
|
||||||
jQuery(this._gridEl.nativeElement).empty();
|
jQuery(this._gridEl.nativeElement).empty();
|
||||||
jQuery(this.actionBarContainer.nativeElement).empty();
|
jQuery(this.actionBarContainer.nativeElement).empty();
|
||||||
|
|||||||
@@ -13,18 +13,16 @@ import { nb } from 'azdata';
|
|||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
|
|
||||||
import { IInputOptions } from 'vs/base/browser/ui/inputbox/inputBox';
|
import { IInputOptions } from 'vs/base/browser/ui/inputbox/inputBox';
|
||||||
import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { inputBackground, inputBorder } from 'vs/platform/theme/common/colorRegistry';
|
import { asCssVariable, inputBackground, inputBorder } from 'vs/platform/theme/common/colorRegistry';
|
||||||
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||||
|
|
||||||
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { AngularDisposable } from 'sql/base/browser/lifecycle';
|
import { AngularDisposable } from 'sql/base/browser/lifecycle';
|
||||||
import { Deferred } from 'sql/base/common/promise';
|
import { Deferred } from 'sql/base/common/promise';
|
||||||
import { ICellModel, CellExecutionState } from 'sql/workbench/services/notebook/browser/models/modelInterfaces';
|
import { ICellModel, CellExecutionState } from 'sql/workbench/services/notebook/browser/models/modelInterfaces';
|
||||||
import { defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { getInputBoxStyle } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
export const STDIN_SELECTOR: string = 'stdin-component';
|
export const STDIN_SELECTOR: string = 'stdin-component';
|
||||||
@Component({
|
@Component({
|
||||||
@@ -44,7 +42,6 @@ export class StdInComponent extends AngularDisposable implements AfterViewInit {
|
|||||||
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@Inject(IWorkbenchThemeService) private themeService: IWorkbenchThemeService,
|
|
||||||
@Inject(IContextViewService) private contextViewService: IContextViewService
|
@Inject(IContextViewService) private contextViewService: IContextViewService
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
@@ -54,17 +51,16 @@ export class StdInComponent extends AngularDisposable implements AfterViewInit {
|
|||||||
let inputOptions: IInputOptions = {
|
let inputOptions: IInputOptions = {
|
||||||
placeholder: '',
|
placeholder: '',
|
||||||
ariaLabel: this.prompt,
|
ariaLabel: this.prompt,
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: getInputBoxStyle({
|
||||||
|
inputValidationInfoBackground: asCssVariable(inputBackground),
|
||||||
|
inputValidationInfoBorder: asCssVariable(inputBorder)
|
||||||
|
})
|
||||||
};
|
};
|
||||||
this._input = new InputBox(this._inputContainer.nativeElement, this.contextViewService, inputOptions);
|
this._input = new InputBox(this._inputContainer.nativeElement, this.contextViewService, inputOptions);
|
||||||
if (this.password) {
|
if (this.password) {
|
||||||
this._input.inputElement.type = 'password';
|
this._input.inputElement.type = 'password';
|
||||||
}
|
}
|
||||||
this._register(this._input);
|
this._register(this._input);
|
||||||
this._register(attachInputBoxStyler(this._input, this.themeService, {
|
|
||||||
inputValidationInfoBackground: inputBackground,
|
|
||||||
inputValidationInfoBorder: inputBorder,
|
|
||||||
}));
|
|
||||||
if (this.cellModel) {
|
if (this.cellModel) {
|
||||||
this._register(this.cellModel.onExecutionStateChange((status) => this.handleExecutionChange(status)));
|
this._register(this.cellModel.onExecutionStateChange((status) => this.handleExecutionChange(status)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import { ILayoutService } from 'vs/platform/layout/browser/layoutService';
|
|||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { IInputOptions, MessageType } from 'vs/base/browser/ui/inputbox/inputBox';
|
import { IInputOptions, MessageType } from 'vs/base/browser/ui/inputbox/inputBox';
|
||||||
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
@@ -99,8 +98,6 @@ export class ViewOptionsModal extends Modal {
|
|||||||
this._submitButton = this.addFooterButton(localize('save', "Save"), () => this.onSubmitHandler());
|
this._submitButton = this.addFooterButton(localize('save', "Save"), () => this.onSubmitHandler());
|
||||||
this.addFooterButton(localize('cancel', "Cancel"), () => this.onCancelHandler(), 'right', true);
|
this.addFooterButton(localize('cancel', "Cancel"), () => this.onCancelHandler(), 'right', true);
|
||||||
|
|
||||||
this._register(attachInputBoxStyler(this._viewNameInput!, this._themeService));
|
|
||||||
|
|
||||||
this._register(this._viewNameInput.onDidChange(v => this.validate()));
|
this._register(this._viewNameInput.onDidChange(v => this.validate()));
|
||||||
|
|
||||||
attachModalDialogStyler(this, this._themeService);
|
attachModalDialogStyler(this, this._themeService);
|
||||||
|
|||||||
@@ -241,7 +241,6 @@ class DataResourceTable extends GridTableBase<any> {
|
|||||||
@IUntitledTextEditorService untitledEditorService: IUntitledTextEditorService,
|
@IUntitledTextEditorService untitledEditorService: IUntitledTextEditorService,
|
||||||
@IConfigurationService configurationService: IConfigurationService,
|
@IConfigurationService configurationService: IConfigurationService,
|
||||||
@IQueryModelService queryModelService: IQueryModelService,
|
@IQueryModelService queryModelService: IQueryModelService,
|
||||||
@IThemeService themeService: IThemeService,
|
|
||||||
@IContextViewService contextViewService: IContextViewService,
|
@IContextViewService contextViewService: IContextViewService,
|
||||||
@INotificationService notificationService: INotificationService,
|
@INotificationService notificationService: INotificationService,
|
||||||
@IExecutionPlanService executionPlanService: IExecutionPlanService,
|
@IExecutionPlanService executionPlanService: IExecutionPlanService,
|
||||||
@@ -254,7 +253,7 @@ class DataResourceTable extends GridTableBase<any> {
|
|||||||
super(state, createResultSet(source), {
|
super(state, createResultSet(source), {
|
||||||
actionOrientation: ActionsOrientation.HORIZONTAL,
|
actionOrientation: ActionsOrientation.HORIZONTAL,
|
||||||
inMemoryDataProcessing: true
|
inMemoryDataProcessing: true
|
||||||
}, contextMenuService, instantiationService, editorService, untitledEditorService, configurationService, queryModelService, themeService, contextViewService, notificationService, executionPlanService, accessibilityService, quickInputService, componentContextService, contextKeyService, logService);
|
}, contextMenuService, instantiationService, editorService, untitledEditorService, configurationService, queryModelService, contextViewService, notificationService, executionPlanService, accessibilityService, quickInputService, componentContextService, contextKeyService, logService);
|
||||||
this._gridDataProvider = this.instantiationService.createInstance(DataResourceDataProvider, source, this.resultSet, this.cellModel);
|
this._gridDataProvider = this.instantiationService.createInstance(DataResourceDataProvider, source, this.resultSet, this.cellModel);
|
||||||
this._chart = this.instantiationService.createInstance(ChartView, false);
|
this._chart = this.instantiationService.createInstance(ChartView, false);
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import 'vs/css!./media/gridPanel';
|
import 'vs/css!./media/gridPanel';
|
||||||
|
|
||||||
import { ITableStyles, ITableMouseEvent, FilterableColumn } from 'sql/base/browser/ui/table/interfaces';
|
import { ITableStyles, ITableMouseEvent, FilterableColumn } from 'sql/base/browser/ui/table/interfaces';
|
||||||
import { attachTableFilterStyler, attachTableStyler } from 'sql/platform/theme/common/styler';
|
import { attachTableStyler } from 'sql/platform/theme/common/styler';
|
||||||
import QueryRunner, { QueryGridDataProvider } from 'sql/workbench/services/query/common/queryRunner';
|
import QueryRunner, { QueryGridDataProvider } from 'sql/workbench/services/query/common/queryRunner';
|
||||||
import { ResultSetSummary, IColumn, ICellValue } from 'sql/workbench/services/query/common/query';
|
import { ResultSetSummary, IColumn, ICellValue } from 'sql/workbench/services/query/common/query';
|
||||||
import { VirtualizedCollection } from 'sql/base/browser/ui/table/asyncDataView';
|
import { VirtualizedCollection } from 'sql/base/browser/ui/table/asyncDataView';
|
||||||
@@ -60,7 +60,7 @@ import { queryEditorNullBackground } from 'sql/platform/theme/common/colorRegist
|
|||||||
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
||||||
import { GridRange } from 'sql/base/common/gridRange';
|
import { GridRange } from 'sql/base/common/gridRange';
|
||||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||||
import { defaultButtonStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultTableFilterStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
const ROW_HEIGHT = 29;
|
const ROW_HEIGHT = 29;
|
||||||
const HEADER_HEIGHT = 26;
|
const HEADER_HEIGHT = 26;
|
||||||
@@ -422,7 +422,6 @@ export abstract class GridTableBase<T> extends Disposable implements IView, IQue
|
|||||||
@IUntitledTextEditorService private readonly untitledEditorService: IUntitledTextEditorService,
|
@IUntitledTextEditorService private readonly untitledEditorService: IUntitledTextEditorService,
|
||||||
@IConfigurationService protected readonly configurationService: IConfigurationService,
|
@IConfigurationService protected readonly configurationService: IConfigurationService,
|
||||||
@IQueryModelService private readonly queryModelService: IQueryModelService,
|
@IQueryModelService private readonly queryModelService: IQueryModelService,
|
||||||
@IThemeService private readonly themeService: IThemeService,
|
|
||||||
@IContextViewService private readonly contextViewService: IContextViewService,
|
@IContextViewService private readonly contextViewService: IContextViewService,
|
||||||
@INotificationService private readonly notificationService: INotificationService,
|
@INotificationService private readonly notificationService: INotificationService,
|
||||||
@IExecutionPlanService private readonly executionPlanService: IExecutionPlanService,
|
@IExecutionPlanService private readonly executionPlanService: IExecutionPlanService,
|
||||||
@@ -622,9 +621,8 @@ export abstract class GridTableBase<T> extends Disposable implements IView, IQue
|
|||||||
this.filterPlugin = new HeaderFilter({
|
this.filterPlugin = new HeaderFilter({
|
||||||
disabledFilterMessage: localize('resultsGrid.maxRowCountExceeded', "Max row count for filtering/sorting has been exceeded. To update it, navigate to User Settings and change the setting: 'queryEditor.results.inMemoryDataProcessingThreshold'"),
|
disabledFilterMessage: localize('resultsGrid.maxRowCountExceeded', "Max row count for filtering/sorting has been exceeded. To update it, navigate to User Settings and change the setting: 'queryEditor.results.inMemoryDataProcessingThreshold'"),
|
||||||
refreshColumns: !autoSizeOnRender, // The auto size columns plugin refreshes the columns so we don't need to refresh twice if both plugins are on.
|
refreshColumns: !autoSizeOnRender, // The auto size columns plugin refreshes the columns so we don't need to refresh twice if both plugins are on.
|
||||||
buttonStyles: defaultButtonStyles
|
...defaultTableFilterStyles
|
||||||
}, this.contextViewService, this.notificationService,);
|
}, this.contextViewService, this.notificationService,);
|
||||||
this._register(attachTableFilterStyler(this.filterPlugin, this.themeService));
|
|
||||||
this._register(registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) => {
|
this._register(registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) => {
|
||||||
const nullBackground = theme.getColor(queryEditorNullBackground);
|
const nullBackground = theme.getColor(queryEditorNullBackground);
|
||||||
if (nullBackground) {
|
if (nullBackground) {
|
||||||
@@ -1114,7 +1112,6 @@ class GridTable<T> extends GridTableBase<T> {
|
|||||||
@IUntitledTextEditorService untitledEditorService: IUntitledTextEditorService,
|
@IUntitledTextEditorService untitledEditorService: IUntitledTextEditorService,
|
||||||
@IConfigurationService configurationService: IConfigurationService,
|
@IConfigurationService configurationService: IConfigurationService,
|
||||||
@IQueryModelService queryModelService: IQueryModelService,
|
@IQueryModelService queryModelService: IQueryModelService,
|
||||||
@IThemeService themeService: IThemeService,
|
|
||||||
@IContextViewService contextViewService: IContextViewService,
|
@IContextViewService contextViewService: IContextViewService,
|
||||||
@INotificationService notificationService: INotificationService,
|
@INotificationService notificationService: INotificationService,
|
||||||
@IExecutionPlanService executionPlanService: IExecutionPlanService,
|
@IExecutionPlanService executionPlanService: IExecutionPlanService,
|
||||||
@@ -1128,7 +1125,7 @@ class GridTable<T> extends GridTableBase<T> {
|
|||||||
inMemoryDataProcessing: true,
|
inMemoryDataProcessing: true,
|
||||||
showActionBar: configurationService.getValue<IQueryEditorConfiguration>('queryEditor').results.showActionBar,
|
showActionBar: configurationService.getValue<IQueryEditorConfiguration>('queryEditor').results.showActionBar,
|
||||||
inMemoryDataCountThreshold: configurationService.getValue<IQueryEditorConfiguration>('queryEditor').results.inMemoryDataProcessingThreshold,
|
inMemoryDataCountThreshold: configurationService.getValue<IQueryEditorConfiguration>('queryEditor').results.inMemoryDataProcessingThreshold,
|
||||||
}, contextMenuService, instantiationService, editorService, untitledEditorService, configurationService, queryModelService, themeService, contextViewService, notificationService, executionPlanService, accessibilityService, quickInputService, componentContextService, contextKeyService, logService);
|
}, contextMenuService, instantiationService, editorService, untitledEditorService, configurationService, queryModelService, contextViewService, notificationService, executionPlanService, accessibilityService, quickInputService, componentContextService, contextKeyService, logService);
|
||||||
this._gridDataProvider = this.instantiationService.createInstance(QueryGridDataProvider, this._runner, resultSet.batchId, resultSet.id);
|
this._gridDataProvider = this.instantiationService.createInstance(QueryGridDataProvider, this._runner, resultSet.batchId, resultSet.id);
|
||||||
this.providerId = this._runner.getProviderId();
|
this.providerId = this._runner.getProviderId();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,10 +7,9 @@ import 'vs/css!./media/queryActions';
|
|||||||
import * as nls from 'vs/nls';
|
import * as nls from 'vs/nls';
|
||||||
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
||||||
import { Action, IAction, IActionRunner } from 'vs/base/common/actions';
|
import { Action, IAction, IActionRunner } from 'vs/base/common/actions';
|
||||||
import { IDisposable, Disposable } from 'vs/base/common/lifecycle';
|
import { Disposable } from 'vs/base/common/lifecycle';
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
|
||||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||||
import Severity from 'vs/base/common/severity';
|
import Severity from 'vs/base/common/severity';
|
||||||
import { append, $ } from 'vs/base/browser/dom';
|
import { append, $ } from 'vs/base/browser/dom';
|
||||||
@@ -26,7 +25,6 @@ import {
|
|||||||
} from 'sql/platform/connection/common/connectionManagement';
|
} from 'sql/platform/connection/common/connectionManagement';
|
||||||
import { QueryEditor } from 'sql/workbench/contrib/query/browser/queryEditor';
|
import { QueryEditor } from 'sql/workbench/contrib/query/browser/queryEditor';
|
||||||
import { IQueryModelService } from 'sql/workbench/services/query/common/queryModel';
|
import { IQueryModelService } from 'sql/workbench/services/query/common/queryModel';
|
||||||
import { attachEditableDropdownStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { Task } from 'sql/workbench/services/tasks/browser/tasksRegistry';
|
import { Task } from 'sql/workbench/services/tasks/browser/tasksRegistry';
|
||||||
import { IObjectExplorerService } from 'sql/workbench/services/objectExplorer/browser/objectExplorerService';
|
import { IObjectExplorerService } from 'sql/workbench/services/objectExplorer/browser/objectExplorerService';
|
||||||
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||||
@@ -49,6 +47,7 @@ import { Dropdown } from 'sql/base/browser/ui/editableDropdown/browser/dropdown'
|
|||||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||||
import { Codicon } from 'vs/base/common/codicons';
|
import { Codicon } from 'vs/base/common/codicons';
|
||||||
import { ThemeIcon } from 'vs/base/common/themables';
|
import { ThemeIcon } from 'vs/base/common/themables';
|
||||||
|
import { defaultEditableDropdownStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Action class that query-based Actions will extend. This base class automatically handles activating and
|
* Action class that query-based Actions will extend. This base class automatically handles activating and
|
||||||
@@ -650,7 +649,8 @@ export class ListDatabasesActionItem extends Disposable implements IActionViewIt
|
|||||||
this._dropdown = new Dropdown(this._databaseListDropdown, contextViewProvider, {
|
this._dropdown = new Dropdown(this._databaseListDropdown, contextViewProvider, {
|
||||||
strictSelection: true,
|
strictSelection: true,
|
||||||
placeholder: this._selectDatabaseString,
|
placeholder: this._selectDatabaseString,
|
||||||
ariaLabel: this._selectDatabaseString
|
ariaLabel: this._selectDatabaseString,
|
||||||
|
...defaultEditableDropdownStyles
|
||||||
});
|
});
|
||||||
|
|
||||||
// Allows database selector to commit typed or pasted DB names without the need to click
|
// Allows database selector to commit typed or pasted DB names without the need to click
|
||||||
@@ -666,10 +666,6 @@ export class ListDatabasesActionItem extends Disposable implements IActionViewIt
|
|||||||
append(container, this._databaseListDropdown);
|
append(container, this._databaseListDropdown);
|
||||||
}
|
}
|
||||||
|
|
||||||
public style(styles) {
|
|
||||||
this._dropdown.style(styles);
|
|
||||||
}
|
|
||||||
|
|
||||||
public setActionContext(context: any): void {
|
public setActionContext(context: any): void {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -685,10 +681,6 @@ export class ListDatabasesActionItem extends Disposable implements IActionViewIt
|
|||||||
this._dropdown.blur();
|
this._dropdown.blur();
|
||||||
}
|
}
|
||||||
|
|
||||||
public attachStyler(themeService: IThemeService): IDisposable {
|
|
||||||
return attachEditableDropdownStyler(this, themeService);
|
|
||||||
}
|
|
||||||
|
|
||||||
// EVENT HANDLERS FROM EDITOR //////////////////////////////////////////
|
// EVENT HANDLERS FROM EDITOR //////////////////////////////////////////
|
||||||
public onConnected(): void {
|
public onConnected(): void {
|
||||||
let dbName = this.getCurrentDatabaseName();
|
let dbName = this.getCurrentDatabaseName();
|
||||||
|
|||||||
@@ -284,7 +284,6 @@ export class QueryEditor extends EditorPane {
|
|||||||
if (action.id === actions.ListDatabasesAction.ID) {
|
if (action.id === actions.ListDatabasesAction.ID) {
|
||||||
if (!this._listDatabasesActionItem) {
|
if (!this._listDatabasesActionItem) {
|
||||||
this._listDatabasesActionItem = this.instantiationService.createInstance(actions.ListDatabasesActionItem, this, action);
|
this._listDatabasesActionItem = this.instantiationService.createInstance(actions.ListDatabasesActionItem, this, action);
|
||||||
this._register(this._listDatabasesActionItem.attachStyler(this.themeService));
|
|
||||||
}
|
}
|
||||||
return this._listDatabasesActionItem;
|
return this._listDatabasesActionItem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import 'vs/css!./media/resourceViewerTable';
|
import 'vs/css!./media/resourceViewerTable';
|
||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
import { Table } from 'sql/base/browser/ui/table/table';
|
import { Table } from 'sql/base/browser/ui/table/table';
|
||||||
import { attachTableFilterStyler, attachTableStyler } from 'sql/platform/theme/common/styler';
|
import { attachTableStyler } from 'sql/platform/theme/common/styler';
|
||||||
import { RowSelectionModel } from 'sql/base/browser/ui/table/plugins/rowSelectionModel.plugin';
|
import { RowSelectionModel } from 'sql/base/browser/ui/table/plugins/rowSelectionModel.plugin';
|
||||||
|
|
||||||
import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
||||||
@@ -28,7 +28,7 @@ import { IContextViewService } from 'vs/platform/contextview/browser/contextView
|
|||||||
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
||||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||||
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
||||||
import { defaultButtonStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultTableFilterStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
export class ResourceViewerTable extends Disposable {
|
export class ResourceViewerTable extends Disposable {
|
||||||
|
|
||||||
@@ -62,8 +62,7 @@ export class ResourceViewerTable extends Disposable {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
this._resourceViewerTable.setSelectionModel(new RowSelectionModel());
|
this._resourceViewerTable.setSelectionModel(new RowSelectionModel());
|
||||||
let filterPlugin = new HeaderFilter<azdata.DataGridItem>({ buttonStyles: defaultButtonStyles }, this._contextViewService);
|
let filterPlugin = new HeaderFilter<azdata.DataGridItem>(defaultTableFilterStyles, this._contextViewService);
|
||||||
this._register(attachTableFilterStyler(filterPlugin, this._themeService));
|
|
||||||
this._register(attachTableStyler(this._resourceViewerTable, this._themeService));
|
this._register(attachTableStyler(this._resourceViewerTable, this._themeService));
|
||||||
this._register(this._resourceViewerTable.onClick(this.onTableClick, this));
|
this._register(this._resourceViewerTable.onClick(this.onTableClick, this));
|
||||||
this._register(this._resourceViewerTable.onContextMenu((e: ITableMouseEvent) => {
|
this._register(this._resourceViewerTable.onContextMenu((e: ITableMouseEvent) => {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
import 'vs/css!./media/autoOAuthDialog';
|
import 'vs/css!./media/autoOAuthDialog';
|
||||||
|
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
|
||||||
import { Event, Emitter } from 'vs/base/common/event';
|
import { Event, Emitter } from 'vs/base/common/event';
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
@@ -112,8 +111,6 @@ export class AutoOAuthDialog extends Modal {
|
|||||||
// Theme styler
|
// Theme styler
|
||||||
this._register(this._copyAndOpenButton!);
|
this._register(this._copyAndOpenButton!);
|
||||||
this._register(this._closeButton!);
|
this._register(this._closeButton!);
|
||||||
this._register(attachInputBoxStyler(this._userCodeInputBox!, this._themeService));
|
|
||||||
this._register(attachInputBoxStyler(this._websiteInputBox!, this._themeService));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
|||||||
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { attachInputBoxStyler, attachSelectBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
import { attachSelectBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import * as strings from 'vs/base/common/strings';
|
import * as strings from 'vs/base/common/strings';
|
||||||
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
||||||
@@ -445,11 +445,6 @@ export class BackupRestoreUrlBrowserDialog extends Modal {
|
|||||||
this._register(attachSelectBoxStyler(this._subscriptionSelectorBox, this._themeService));
|
this._register(attachSelectBoxStyler(this._subscriptionSelectorBox, this._themeService));
|
||||||
this._register(attachSelectBoxStyler(this._storageAccountSelectorBox, this._themeService));
|
this._register(attachSelectBoxStyler(this._storageAccountSelectorBox, this._themeService));
|
||||||
this._register(attachSelectBoxStyler(this._blobContainerSelectorBox, this._themeService));
|
this._register(attachSelectBoxStyler(this._blobContainerSelectorBox, this._themeService));
|
||||||
this._register(attachInputBoxStyler(this._sasInputBox, this._themeService));
|
|
||||||
|
|
||||||
if (this._backupFileInputBox) {
|
|
||||||
this._register(attachInputBoxStyler(this._backupFileInputBox, this._themeService));
|
|
||||||
}
|
|
||||||
if (this._backupFileSelectorBox) {
|
if (this._backupFileSelectorBox) {
|
||||||
this._register(attachSelectBoxStyler(this._backupFileSelectorBox, this._themeService));
|
this._register(attachSelectBoxStyler(this._backupFileSelectorBox, this._themeService));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
|||||||
import { ConnectionOptionSpecialType } from 'sql/workbench/api/common/sqlExtHostTypes';
|
import { ConnectionOptionSpecialType } from 'sql/workbench/api/common/sqlExtHostTypes';
|
||||||
import * as Constants from 'sql/platform/connection/common/constants';
|
import * as Constants from 'sql/platform/connection/common/constants';
|
||||||
import { IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
|
import { IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
|
||||||
import * as styler from 'sql/platform/theme/common/styler';
|
|
||||||
import { IAccountManagementService } from 'sql/platform/accounts/common/interfaces';
|
import { IAccountManagementService } from 'sql/platform/accounts/common/interfaces';
|
||||||
|
|
||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
@@ -60,13 +59,6 @@ export class CmsConnectionWidget extends ConnectionWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override registerListeners(): void {
|
|
||||||
super.registerListeners();
|
|
||||||
if (this._serverDescriptionInputBox) {
|
|
||||||
this._register(styler.attachInputBoxStyler(this._serverDescriptionInputBox, this._themeService));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override fillInConnectionForm(authTypeChanged: boolean = false): void {
|
protected override fillInConnectionForm(authTypeChanged: boolean = false): void {
|
||||||
// Server Name
|
// Server Name
|
||||||
this.addServerNameOption();
|
this.addServerNameOption();
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilit
|
|||||||
import { IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
|
import { IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
|
||||||
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
|
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
|
||||||
import { ConnectionProfileGroup } from 'sql/platform/connection/common/connectionProfileGroup';
|
import { ConnectionProfileGroup } from 'sql/platform/connection/common/connectionProfileGroup';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { ITreeItem } from 'sql/workbench/common/views';
|
import { ITreeItem } from 'sql/workbench/common/views';
|
||||||
import { CONNECTIONS_SORT_BY_CONFIG_KEY } from 'sql/platform/connection/common/connectionConfig';
|
import { CONNECTIONS_SORT_BY_CONFIG_KEY } from 'sql/platform/connection/common/connectionConfig';
|
||||||
import { ConnectionSource } from 'sql/workbench/services/connection/browser/connectionDialogWidget';
|
import { ConnectionSource } from 'sql/workbench/services/connection/browser/connectionDialogWidget';
|
||||||
@@ -118,7 +117,6 @@ export class ConnectionBrowserView extends Disposable implements IPanelView {
|
|||||||
//this._register(attachProgressBarStyler(this.filterProgressBar, this.themeService));
|
//this._register(attachProgressBarStyler(this.filterProgressBar, this.themeService));
|
||||||
this.filterInput.element.style.margin = '5px';
|
this.filterInput.element.style.margin = '5px';
|
||||||
this._register(this.filterInput);
|
this._register(this.filterInput);
|
||||||
this._register(attachInputBoxStyler(this.filterInput, this.themeService));
|
|
||||||
this._register(this.filterInput.onDidChange(async () => {
|
this._register(this.filterInput.onDidChange(async () => {
|
||||||
await this.applyFilter();
|
await this.applyFilter();
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ import { isMssqlAuthProviderEnabled } from 'sql/workbench/services/connection/br
|
|||||||
import { RequiredIndicatorClassName } from 'sql/base/browser/ui/label/label';
|
import { RequiredIndicatorClassName } from 'sql/base/browser/ui/label/label';
|
||||||
import { FieldSet } from 'sql/base/browser/ui/fieldset/fieldset';
|
import { FieldSet } from 'sql/base/browser/ui/fieldset/fieldset';
|
||||||
import { defaultButtonStyles, defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultButtonStyles, defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
import { defaultCheckboxStyles } from 'sql/platform/theme/browser/defaultStyles';
|
import { defaultCheckboxStyles, defaultEditableDropdownStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
const ConnectionStringText = localize('connectionWidget.connectionString', "Connection string");
|
const ConnectionStringText = localize('connectionWidget.connectionString', "Connection string");
|
||||||
|
|
||||||
@@ -309,7 +309,6 @@ export class ConnectionWidget extends lifecycle.Disposable {
|
|||||||
placeholder: option.placeholder,
|
placeholder: option.placeholder,
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: defaultInputBoxStyles
|
||||||
});
|
});
|
||||||
this._register(styler.attachInputBoxStyler(this._customOptionWidgets[i] as InputBox, this._themeService));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this._register(this._customOptionWidgets[i]);
|
this._register(this._customOptionWidgets[i]);
|
||||||
@@ -468,7 +467,8 @@ export class ConnectionWidget extends lifecycle.Disposable {
|
|||||||
strictSelection: false,
|
strictSelection: false,
|
||||||
placeholder: databaseOption.placeholder ?? this._defaultDatabaseName,
|
placeholder: databaseOption.placeholder ?? this._defaultDatabaseName,
|
||||||
maxHeight: 125,
|
maxHeight: 125,
|
||||||
ariaLabel: databaseOption.displayName
|
ariaLabel: databaseOption.displayName,
|
||||||
|
...defaultEditableDropdownStyles
|
||||||
});
|
});
|
||||||
this._register(this._databaseNameInputBox);
|
this._register(this._databaseNameInputBox);
|
||||||
}
|
}
|
||||||
@@ -541,10 +541,6 @@ export class ConnectionWidget extends lifecycle.Disposable {
|
|||||||
|
|
||||||
protected registerListeners(): void {
|
protected registerListeners(): void {
|
||||||
// Theme styler
|
// Theme styler
|
||||||
this._register(styler.attachInputBoxStyler(this._serverNameInputBox, this._themeService));
|
|
||||||
this._register(styler.attachInputBoxStyler(this._connectionNameInputBox, this._themeService));
|
|
||||||
this._register(styler.attachInputBoxStyler(this._userNameInputBox, this._themeService));
|
|
||||||
this._register(styler.attachInputBoxStyler(this._passwordInputBox, this._themeService));
|
|
||||||
this._register(styler.attachSelectBoxStyler(this._azureAccountDropdown, this._themeService));
|
this._register(styler.attachSelectBoxStyler(this._azureAccountDropdown, this._themeService));
|
||||||
if (this._serverGroupSelectBox) {
|
if (this._serverGroupSelectBox) {
|
||||||
this._register(styler.attachSelectBoxStyler(this._serverGroupSelectBox, this._themeService));
|
this._register(styler.attachSelectBoxStyler(this._serverGroupSelectBox, this._themeService));
|
||||||
@@ -553,7 +549,6 @@ export class ConnectionWidget extends lifecycle.Disposable {
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
if (this._databaseNameInputBox) {
|
if (this._databaseNameInputBox) {
|
||||||
this._register(styler.attachEditableDropdownStyler(this._databaseNameInputBox, this._themeService));
|
|
||||||
this._register(this._databaseNameInputBox.onFocus(() => {
|
this._register(this._databaseNameInputBox.onFocus(() => {
|
||||||
this._databaseDropdownExpanded = true;
|
this._databaseDropdownExpanded = true;
|
||||||
if (this.serverName) {
|
if (this.serverName) {
|
||||||
@@ -581,10 +576,6 @@ export class ConnectionWidget extends lifecycle.Disposable {
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._connectionStringInputBox) {
|
|
||||||
this._register(styler.attachInputBoxStyler(this._connectionStringInputBox, this._themeService));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this._authTypeSelectBox) {
|
if (this._authTypeSelectBox) {
|
||||||
// Theme styler
|
// Theme styler
|
||||||
this._register(styler.attachSelectBoxStyler(this._authTypeSelectBox, this._themeService));
|
this._register(styler.attachSelectBoxStyler(this._authTypeSelectBox, this._themeService));
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import 'vs/css!./media/passwordDialog';
|
|||||||
import { Button } from 'sql/base/browser/ui/button/button';
|
import { Button } from 'sql/base/browser/ui/button/button';
|
||||||
import { Modal } from 'sql/workbench/browser/modal/modal';
|
import { Modal } from 'sql/workbench/browser/modal/modal';
|
||||||
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||||
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
||||||
@@ -102,7 +101,6 @@ export class PasswordChangeDialog extends Modal {
|
|||||||
type: 'password',
|
type: 'password',
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: defaultInputBoxStyles
|
||||||
});
|
});
|
||||||
this._register(attachInputBoxStyler(this._passwordValueText, this._themeService));
|
|
||||||
|
|
||||||
contentElement.appendChild(DOM.$('')).appendChild(DOM.$('span.component-label')).innerText = confirmPasswordText;
|
contentElement.appendChild(DOM.$('')).appendChild(DOM.$('span.component-label')).innerText = confirmPasswordText;
|
||||||
const confirmInputContainer = contentElement.appendChild(DOM.$(''));
|
const confirmInputContainer = contentElement.appendChild(DOM.$(''));
|
||||||
@@ -110,7 +108,6 @@ export class PasswordChangeDialog extends Modal {
|
|||||||
type: 'password',
|
type: 'password',
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: defaultInputBoxStyles
|
||||||
});
|
});
|
||||||
this._register(attachInputBoxStyler(this._confirmValueText, this._themeService));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected layout(height?: number): void {
|
protected layout(height?: number): void {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import { Event, Emitter } from 'vs/base/common/event';
|
|||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { attachInputBoxStyler, attachSelectBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
import { attachSelectBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import * as strings from 'vs/base/common/strings';
|
import * as strings from 'vs/base/common/strings';
|
||||||
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
||||||
@@ -227,7 +227,6 @@ export class FileBrowserDialog extends Modal {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
// Theme styler
|
// Theme styler
|
||||||
this._register(attachInputBoxStyler(this._filePathInputBox, this._themeService));
|
|
||||||
this._register(attachSelectBoxStyler(this._fileFilterSelectBox, this._themeService));
|
this._register(attachSelectBoxStyler(this._fileFilterSelectBox, this._themeService));
|
||||||
|
|
||||||
this._register(this._themeService.onDidColorThemeChange(e => this.updateTheme()));
|
this._register(this._themeService.onDidColorThemeChange(e => this.updateTheme()));
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import 'vs/css!./../media/filterDialog';
|
import 'vs/css!./../media/filterDialog';
|
||||||
import { Button } from 'sql/base/browser/ui/button/button';
|
|
||||||
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
||||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||||
import { Modal } from 'sql/workbench/browser/modal/modal'
|
import { Modal } from 'sql/workbench/browser/modal/modal'
|
||||||
@@ -15,13 +14,10 @@ import { ILogService } from 'vs/platform/log/common/log';
|
|||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { attachModalDialogStyler } from 'sql/workbench/common/styler';
|
import { attachModalDialogStyler } from 'sql/workbench/common/styler';
|
||||||
//import { attachButtonStyler, attachInputBoxStyler, attachSelectBoxStyler } from 'vs/platform/theme/common/styler';
|
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { NodeFilterPropertyDataType, NodeFilterOperator } from 'sql/workbench/api/common/sqlExtHostTypes';
|
import { NodeFilterPropertyDataType, NodeFilterOperator } from 'sql/workbench/api/common/sqlExtHostTypes';
|
||||||
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
|
||||||
import { Table } from 'sql/base/browser/ui/table/table';
|
import { Table } from 'sql/base/browser/ui/table/table';
|
||||||
import { TableCellEditorFactory } from 'sql/base/browser/ui/table/tableCellEditorFactory';
|
import { TableCellEditorFactory } from 'sql/base/browser/ui/table/tableCellEditorFactory';
|
||||||
import { Emitter } from 'vs/base/common/event';
|
import { Emitter } from 'vs/base/common/event';
|
||||||
@@ -30,15 +26,14 @@ import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
|||||||
import { TableDataView } from 'sql/base/browser/ui/table/tableDataView';
|
import { TableDataView } from 'sql/base/browser/ui/table/tableDataView';
|
||||||
import { TableHeaderRowHeight, TableRowHeight } from 'sql/workbench/browser/designer/designerTableUtil';
|
import { TableHeaderRowHeight, TableRowHeight } from 'sql/workbench/browser/designer/designerTableUtil';
|
||||||
import { textFormatter } from 'sql/base/browser/ui/table/formatters';
|
import { textFormatter } from 'sql/base/browser/ui/table/formatters';
|
||||||
import { Dropdown } from 'sql/base/browser/ui/editableDropdown/browser/dropdown';
|
|
||||||
import { Checkbox } from 'sql/base/browser/ui/checkbox/checkbox';
|
|
||||||
import { TabbedPanel } from 'sql/base/browser/ui/panel/panel';
|
|
||||||
import { attachTableStyler } from 'sql/platform/theme/common/styler';
|
import { attachTableStyler } from 'sql/platform/theme/common/styler';
|
||||||
import { ButtonColumn } from 'sql/base/browser/ui/table/plugins/buttonColumn.plugin';
|
import { ButtonColumn } from 'sql/base/browser/ui/table/plugins/buttonColumn.plugin';
|
||||||
import Severity from 'vs/base/common/severity';
|
import Severity from 'vs/base/common/severity';
|
||||||
import { status } from 'vs/base/browser/ui/aria/aria';
|
import { status } from 'vs/base/browser/ui/aria/aria';
|
||||||
import { IErrorMessageService } from 'sql/platform/errorMessage/common/errorMessageService';
|
import { IErrorMessageService } from 'sql/platform/errorMessage/common/errorMessageService';
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
|
import { defaultInputBoxStyles, defaultSelectBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
|
import { defaultEditableDropdownStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
// strings for filter dialog
|
// strings for filter dialog
|
||||||
const OkButtonText = localize('objectExplorer.okButtonText', "OK");
|
const OkButtonText = localize('objectExplorer.okButtonText', "OK");
|
||||||
@@ -83,7 +78,6 @@ export class FilterDialog extends Modal {
|
|||||||
|
|
||||||
private filterTable: Table<Slick.SlickData>;
|
private filterTable: Table<Slick.SlickData>;
|
||||||
private _tableCellEditorFactory: TableCellEditorFactory;
|
private _tableCellEditorFactory: TableCellEditorFactory;
|
||||||
private _onStyleChangeEventEmitter = new Emitter<void>();
|
|
||||||
private _description: HTMLElement;
|
private _description: HTMLElement;
|
||||||
private _onFilterApplied = new Emitter<azdata.NodeFilter[]>();
|
private _onFilterApplied = new Emitter<azdata.NodeFilter[]>();
|
||||||
public readonly onFilterApplied = this._onFilterApplied.event;
|
public readonly onFilterApplied = this._onFilterApplied.event;
|
||||||
@@ -226,10 +220,9 @@ export class FilterDialog extends Modal {
|
|||||||
optionsGetter: (item, column): string[] => {
|
optionsGetter: (item, column): string[] => {
|
||||||
return item[column.field].values;
|
return item[column.field].values;
|
||||||
},
|
},
|
||||||
editorStyler: (component) => {
|
inputBoxStyles: defaultInputBoxStyles,
|
||||||
this.styleComponent(component);
|
editableDropdownStyles: defaultEditableDropdownStyles,
|
||||||
},
|
selectBoxStyles: defaultSelectBoxStyles
|
||||||
onStyleChange: this._onStyleChangeEventEmitter.event
|
|
||||||
}, this._contextViewProvider
|
}, this._contextViewProvider
|
||||||
);
|
);
|
||||||
const columns: Slick.Column<Slick.SlickData>[] = [
|
const columns: Slick.Column<Slick.SlickData>[] = [
|
||||||
@@ -675,17 +668,6 @@ export class FilterDialog extends Modal {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private styleComponent(component: TabbedPanel | InputBox | Checkbox | Table<Slick.SlickData> | SelectBox | Button | Dropdown): void {
|
|
||||||
// if (component instanceof InputBox) {
|
|
||||||
// this._register(attachInputBoxStyler(component, this._themeService));
|
|
||||||
// } else if (component instanceof SelectBox) {
|
|
||||||
// this._register(attachSelectBoxStyler(component, this._themeService));
|
|
||||||
// } else if (component instanceof Table) {
|
|
||||||
// this._register(attachTableStyler(component, this._themeService));
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is used to let user apply filters on the given filters properties.
|
* This method is used to let user apply filters on the given filters properties.
|
||||||
* @param properties Properties on which user can apply filters.
|
* @param properties Properties on which user can apply filters.
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import 'vs/css!./media/profilerFilterDialog';
|
|||||||
import { Button } from 'sql/base/browser/ui/button/button';
|
import { Button } from 'sql/base/browser/ui/button/button';
|
||||||
import { Modal } from 'sql/workbench/browser/modal/modal';
|
import { Modal } from 'sql/workbench/browser/modal/modal';
|
||||||
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/styler';
|
|
||||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||||
@@ -251,7 +250,6 @@ export class ProfilerFilterDialog extends Modal {
|
|||||||
ariaLabel: ValueText,
|
ariaLabel: ValueText,
|
||||||
inputBoxStyles: defaultInputBoxStyles
|
inputBoxStyles: defaultInputBoxStyles
|
||||||
});
|
});
|
||||||
this._register(attachInputBoxStyler(valueText, this._themeService));
|
|
||||||
|
|
||||||
const removeCell = DOM.append(row, DOM.$('td'));
|
const removeCell = DOM.append(row, DOM.$('td'));
|
||||||
const removeClauseButton = DOM.append(removeCell, DOM.$('.profiler-filter-remove-condition.codicon.remove', {
|
const removeClauseButton = DOM.append(removeCell, DOM.$('.profiler-filter-remove-condition.codicon.remove', {
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import { Event, Emitter } from 'vs/base/common/event';
|
|||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { buttonBackground } from 'vs/platform/theme/common/colorRegistry';
|
import { buttonBackground } from 'vs/platform/theme/common/colorRegistry';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||||
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
||||||
@@ -266,9 +265,6 @@ export class FirewallRuleDialog extends Modal {
|
|||||||
// Theme styler
|
// Theme styler
|
||||||
this._register(this._createButton!);
|
this._register(this._createButton!);
|
||||||
this._register(this._closeButton!);
|
this._register(this._closeButton!);
|
||||||
this._register(attachInputBoxStyler(this._ruleNameInpuBox!, this._themeService));
|
|
||||||
this._register(attachInputBoxStyler(this._fromRangeinputBox!, this._themeService));
|
|
||||||
this._register(attachInputBoxStyler(this._toRangeinputBox!, this._themeService));
|
|
||||||
|
|
||||||
// handler for firewall rule name change events
|
// handler for firewall rule name change events
|
||||||
this._register(this._ruleNameInpuBox!.onDidChange(ruleName => {
|
this._register(this._ruleNameInpuBox!.onDidChange(ruleName => {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import { Table } from 'sql/base/browser/ui/table/table';
|
|||||||
import { TableDataView } from 'sql/base/browser/ui/table/tableDataView';
|
import { TableDataView } from 'sql/base/browser/ui/table/tableDataView';
|
||||||
import * as DialogHelper from 'sql/workbench/browser/modal/dialogHelper';
|
import * as DialogHelper from 'sql/workbench/browser/modal/dialogHelper';
|
||||||
import { HideReason, Modal } from 'sql/workbench/browser/modal/modal';
|
import { HideReason, Modal } from 'sql/workbench/browser/modal/modal';
|
||||||
import { attachTableStyler, attachInputBoxStyler, attachSelectBoxStyler, attachEditableDropdownStyler } from 'sql/platform/theme/common/styler';
|
import { attachTableStyler, attachSelectBoxStyler } from 'sql/platform/theme/common/styler';
|
||||||
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
||||||
import { RestoreViewModel, RestoreOptionParam, SouceDatabaseNamesParam } from 'sql/workbench/services/restore/browser/restoreViewModel';
|
import { RestoreViewModel, RestoreOptionParam, SouceDatabaseNamesParam } from 'sql/workbench/services/restore/browser/restoreViewModel';
|
||||||
import * as FileValidationConstants from 'sql/workbench/services/fileBrowser/common/fileValidationServiceConstants';
|
import * as FileValidationConstants from 'sql/workbench/services/fileBrowser/common/fileValidationServiceConstants';
|
||||||
@@ -51,7 +51,7 @@ import { IAccessibilityService } from 'vs/platform/accessibility/common/accessib
|
|||||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||||
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
import { IComponentContextService } from 'sql/workbench/services/componentContext/browser/componentContextService';
|
||||||
import { defaultButtonStyles, defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
import { defaultButtonStyles, defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
||||||
import { defaultCheckboxStyles } from 'sql/platform/theme/browser/defaultStyles';
|
import { defaultCheckboxStyles, defaultEditableDropdownStyles } from 'sql/platform/theme/browser/defaultStyles';
|
||||||
|
|
||||||
interface FileListElement {
|
interface FileListElement {
|
||||||
logicalFileName: string;
|
logicalFileName: string;
|
||||||
@@ -265,7 +265,8 @@ export class RestoreDialog extends Modal {
|
|||||||
this._databaseDropdown = this._register(new Dropdown(dropdownContainer, this._contextViewService,
|
this._databaseDropdown = this._register(new Dropdown(dropdownContainer, this._contextViewService,
|
||||||
{
|
{
|
||||||
strictSelection: false,
|
strictSelection: false,
|
||||||
ariaLabel: LocalizedStrings.TARGETDATABASE
|
ariaLabel: LocalizedStrings.TARGETDATABASE,
|
||||||
|
...defaultEditableDropdownStyles
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
this._databaseDropdown.onValueChange(s => {
|
this._databaseDropdown.onValueChange(s => {
|
||||||
@@ -281,7 +282,6 @@ export class RestoreDialog extends Modal {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this._databaseDropdown.value = this.viewModel.targetDatabaseName!;
|
this._databaseDropdown.value = this.viewModel.targetDatabaseName!;
|
||||||
attachEditableDropdownStyler(this._databaseDropdown, this._themeService);
|
|
||||||
|
|
||||||
this._targetDatabaseInputElement = DOM.append(destinationElement, DOM.$('.dialog-input-section'));
|
this._targetDatabaseInputElement = DOM.append(destinationElement, DOM.$('.dialog-input-section'));
|
||||||
DOM.append(this._targetDatabaseInputElement, DOM.$('.dialog-label')).innerText = LocalizedStrings.TARGETDATABASE;
|
DOM.append(this._targetDatabaseInputElement, DOM.$('.dialog-label')).innerText = LocalizedStrings.TARGETDATABASE;
|
||||||
@@ -303,7 +303,8 @@ export class RestoreDialog extends Modal {
|
|||||||
|
|
||||||
const restoreToLabel = localize('restoreTo', "Restore to");
|
const restoreToLabel = localize('restoreTo', "Restore to");
|
||||||
const destinationRestoreToAriaOptions = {
|
const destinationRestoreToAriaOptions = {
|
||||||
ariaLabel: restoreToLabel
|
ariaLabel: restoreToLabel,
|
||||||
|
inputBoxStyles: defaultInputBoxStyles
|
||||||
};
|
};
|
||||||
this._destinationRestoreToContainer = DOM.append(destinationElement, DOM.$('.dialog-input-section'));
|
this._destinationRestoreToContainer = DOM.append(destinationElement, DOM.$('.dialog-input-section'));
|
||||||
DOM.append(this._destinationRestoreToContainer, DOM.$('.dialog-label')).innerText = restoreToLabel;
|
DOM.append(this._destinationRestoreToContainer, DOM.$('.dialog-label')).innerText = restoreToLabel;
|
||||||
@@ -525,8 +526,7 @@ export class RestoreDialog extends Modal {
|
|||||||
}));
|
}));
|
||||||
break;
|
break;
|
||||||
case ServiceOptionType.string:
|
case ServiceOptionType.string:
|
||||||
propertyWidget = this.createInputBoxHelper(container, option.description);
|
propertyWidget = this.createInputBoxHelper(container, option.description, { inputBoxStyles: defaultInputBoxStyles });
|
||||||
this._register(attachInputBoxStyler(propertyWidget, this._themeService));
|
|
||||||
this._register(propertyWidget.onLoseFocus(params => {
|
this._register(propertyWidget.onLoseFocus(params => {
|
||||||
this.onStringOptionChanged(optionName, params);
|
this.onStringOptionChanged(optionName, params);
|
||||||
}));
|
}));
|
||||||
@@ -572,7 +572,7 @@ export class RestoreDialog extends Modal {
|
|||||||
return selectBox;
|
return selectBox;
|
||||||
}
|
}
|
||||||
|
|
||||||
private createInputBoxHelper(container: HTMLElement, label: string, options?: IInputOptions): InputBox {
|
private createInputBoxHelper(container: HTMLElement, label: string, options: IInputOptions): InputBox {
|
||||||
const ariaOptions = {
|
const ariaOptions = {
|
||||||
ariaLabel: label
|
ariaLabel: label
|
||||||
};
|
};
|
||||||
@@ -663,10 +663,6 @@ export class RestoreDialog extends Modal {
|
|||||||
|
|
||||||
private registerListeners(): void {
|
private registerListeners(): void {
|
||||||
// Theme styler
|
// Theme styler
|
||||||
this._register(attachInputBoxStyler(this._targetDatabaseInputBox, this._themeService));
|
|
||||||
this._register(attachInputBoxStyler(this._urlInputBox!, this._themeService));
|
|
||||||
this._register(attachInputBoxStyler(this._filePathInputBox!, this._themeService));
|
|
||||||
this._register(attachInputBoxStyler(this._destinationRestoreToInputBox!, this._themeService));
|
|
||||||
this._register(attachSelectBoxStyler(this._restoreFromSelectBox!, this._themeService));
|
this._register(attachSelectBoxStyler(this._restoreFromSelectBox!, this._themeService));
|
||||||
this._register(attachSelectBoxStyler(this._sourceDatabaseSelectBox!, this._themeService));
|
this._register(attachSelectBoxStyler(this._sourceDatabaseSelectBox!, this._themeService));
|
||||||
this._register(this._browseFileButton!);
|
this._register(this._browseFileButton!);
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import * as DOM from 'vs/base/browser/dom';
|
|||||||
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import { attachInputBoxStyler } from 'sql/platform/theme/common/vsstyler';
|
|
||||||
import { Event, Emitter } from 'vs/base/common/event';
|
import { Event, Emitter } from 'vs/base/common/event';
|
||||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
@@ -175,9 +174,6 @@ export class ServerGroupDialog extends Modal {
|
|||||||
|
|
||||||
private registerListeners(): void {
|
private registerListeners(): void {
|
||||||
const renderedDialog = this.withRenderedDialog;
|
const renderedDialog = this.withRenderedDialog;
|
||||||
// Theme styler
|
|
||||||
this._register(attachInputBoxStyler(renderedDialog.groupNameInputBox, this._themeService));
|
|
||||||
this._register(attachInputBoxStyler(renderedDialog.groupDescriptionInputBox, this._themeService));
|
|
||||||
this._register(renderedDialog.addServerButton);
|
this._register(renderedDialog.addServerButton);
|
||||||
this._register(renderedDialog.closeButton);
|
this._register(renderedDialog.closeButton);
|
||||||
|
|
||||||
|
|||||||
@@ -220,6 +220,7 @@ export class Button extends Disposable implements IButton {
|
|||||||
background = border = 'transparent';
|
background = border = 'transparent';
|
||||||
foreground = this.options.buttonSecondaryForeground;
|
foreground = this.options.buttonSecondaryForeground;
|
||||||
fontWeight = fontSize = 'inherit';
|
fontWeight = fontSize = 'inherit';
|
||||||
|
this._element.style.backgroundRepeat = 'no-repeat';
|
||||||
} else {
|
} else {
|
||||||
if (this.enabled) {
|
if (this.enabled) {
|
||||||
if (this.options.secondary) {
|
if (this.options.secondary) {
|
||||||
|
|||||||
@@ -57,6 +57,11 @@ export interface IInputBoxStyles {
|
|||||||
readonly inputValidationErrorBorder: string | undefined;
|
readonly inputValidationErrorBorder: string | undefined;
|
||||||
readonly inputValidationErrorBackground: string | undefined;
|
readonly inputValidationErrorBackground: string | undefined;
|
||||||
readonly inputValidationErrorForeground: string | undefined;
|
readonly inputValidationErrorForeground: string | undefined;
|
||||||
|
// {{SQL CARBON EDIT}}
|
||||||
|
readonly disabledInputBackground: string | undefined;
|
||||||
|
readonly disabledInputForeground: string | undefined;
|
||||||
|
readonly disabledInputBorder: string | undefined;
|
||||||
|
// {{SQL CARBON EDIT}} - End
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IInputValidator {
|
export interface IInputValidator {
|
||||||
@@ -97,7 +102,12 @@ export const unthemedInboxStyles: IInputBoxStyles = {
|
|||||||
inputBorder: undefined,
|
inputBorder: undefined,
|
||||||
inputValidationErrorForeground: undefined,
|
inputValidationErrorForeground: undefined,
|
||||||
inputValidationInfoForeground: undefined,
|
inputValidationInfoForeground: undefined,
|
||||||
inputValidationWarningForeground: undefined
|
inputValidationWarningForeground: undefined,
|
||||||
|
// {{SQL CARBON EDIT}}
|
||||||
|
disabledInputBackground: undefined,
|
||||||
|
disabledInputForeground: undefined,
|
||||||
|
disabledInputBorder: undefined
|
||||||
|
// {{SQL CARBON EDIT}} - End
|
||||||
};
|
};
|
||||||
|
|
||||||
export class InputBox extends Widget {
|
export class InputBox extends Widget {
|
||||||
@@ -233,9 +243,6 @@ export class InputBox extends Widget {
|
|||||||
this.applyStyles();
|
this.applyStyles();
|
||||||
}
|
}
|
||||||
|
|
||||||
public style(styles: IInputBoxStyles): void { // {{SQL CARBON TODO}} - remove this method
|
|
||||||
}
|
|
||||||
|
|
||||||
protected onBlur(): void {
|
protected onBlur(): void {
|
||||||
this._hideMessage();
|
this._hideMessage();
|
||||||
if (this.options.showPlaceholderOnFocus) {
|
if (this.options.showPlaceholderOnFocus) {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import { IListStyles } from 'vs/base/browser/ui/list/listWidget';
|
|||||||
import { ISelectBoxStyles } from 'vs/base/browser/ui/selectBox/selectBox';
|
import { ISelectBoxStyles } from 'vs/base/browser/ui/selectBox/selectBox';
|
||||||
import { Color } from 'vs/base/common/color';
|
import { Color } from 'vs/base/common/color';
|
||||||
import { IMenuStyles } from 'vs/base/browser/ui/menu/menu';
|
import { IMenuStyles } from 'vs/base/browser/ui/menu/menu';
|
||||||
|
import { disabledInputBackground, disabledInputForeground } from 'sql/platform/theme/common/colors'; // {{SQL CARBON EDIT}}
|
||||||
|
|
||||||
export type IStyleOverride<T> = {
|
export type IStyleOverride<T> = {
|
||||||
[P in keyof T]?: ColorIdentifier | undefined;
|
[P in keyof T]?: ColorIdentifier | undefined;
|
||||||
@@ -118,7 +119,12 @@ export const defaultInputBoxStyles: IInputBoxStyles = {
|
|||||||
inputValidationWarningForeground: asCssVariable(inputValidationWarningForeground),
|
inputValidationWarningForeground: asCssVariable(inputValidationWarningForeground),
|
||||||
inputValidationErrorBorder: asCssVariable(inputValidationErrorBorder),
|
inputValidationErrorBorder: asCssVariable(inputValidationErrorBorder),
|
||||||
inputValidationErrorBackground: asCssVariable(inputValidationErrorBackground),
|
inputValidationErrorBackground: asCssVariable(inputValidationErrorBackground),
|
||||||
inputValidationErrorForeground: asCssVariable(inputValidationErrorForeground)
|
inputValidationErrorForeground: asCssVariable(inputValidationErrorForeground),
|
||||||
|
// {{SQL CARBON EDIT}}
|
||||||
|
disabledInputBackground: asCssVariable(disabledInputBackground),
|
||||||
|
disabledInputForeground: asCssVariable(disabledInputForeground),
|
||||||
|
disabledInputBorder: 'transparent'
|
||||||
|
// {{SQL CARBON EDIT}} - END
|
||||||
};
|
};
|
||||||
|
|
||||||
export function getInputBoxStyle(override: IStyleOverride<IInputBoxStyles>): IInputBoxStyles {
|
export function getInputBoxStyle(override: IStyleOverride<IInputBoxStyles>): IInputBoxStyles {
|
||||||
|
|||||||
Reference in New Issue
Block a user