Renable Strict TSLint (#5018)

* removes more builder references

* remove builder from profiler

* formatting

* fix profiler dailog

* remove builder from oatuhdialog

* remove the rest of builder references

* formatting

* add more strict null checks to base

* enable strict tslint rules

* fix formatting

* fix compile error

* fix the rest of the hygeny issues and add pipeline step

* fix pipeline files
This commit is contained in:
Anthony Dresser
2019-04-18 00:34:53 -07:00
committed by GitHub
parent b852f032d3
commit ddd89fc52a
431 changed files with 3147 additions and 3789 deletions

View File

@@ -60,8 +60,8 @@ declare module 'azdata' {
export namespace credentials {
/**
* Register a credential provider to handle credential requests.
* @param {CredentialProvider} provider The provider to register
* @return {Disposable} Handle to the provider for disposal
* @param provider The provider to register
* @return Handle to the provider for disposal
*/
export function registerProvider(provider: CredentialProvider): vscode.Disposable;
@@ -69,8 +69,8 @@ declare module 'azdata' {
* Retrieves a provider from the extension host if one has been registered. Any credentials
* accessed with the returned provider will have the namespaceId appended to credential ID
* to prevent extensions from trampling over each others' credentials.
* @param {string} namespaceId ID that will be appended to credential IDs.
* @return {Thenable<CredentialProvider>} Promise that returns the namespaced provider
* @param namespaceId ID that will be appended to credential IDs.
* @return Promise that returns the namespaced provider
*/
export function getProvider(namespaceId: string): Thenable<CredentialProvider>;
}
@@ -98,14 +98,14 @@ declare module 'azdata' {
/**
* Get the credentials for an active connection
* @param {string} connectionId The id of the connection
* @returns {{ [name: string]: string}} A dictionary containing the credentials as they would be included in the connection's options dictionary
* @param connectionId The id of the connection
* @returns A dictionary containing the credentials as they would be included in the connection's options dictionary
*/
export function getCredentials(connectionId: string): Thenable<{ [name: string]: string }>;
/**
* Get ServerInfo for a connectionId
* @param {string} connectionId The id of the connection
* @param connectionId The id of the connection
* @returns ServerInfo
*/
export function getServerInfo(connectionId: string): Thenable<ServerInfo>;
@@ -134,35 +134,35 @@ declare module 'azdata' {
* Get an Object Explorer node corresponding to the given connection and path. If no path
* is given, it returns the top-level node for the given connection. If there is no node at
* the given path, it returns undefined.
* @param {string} connectionId The id of the connection that the node exists on
* @param {string?} nodePath The path of the node to get
* @returns {ObjectExplorerNode} The node corresponding to the given connection and path,
* @param connectionId The id of the connection that the node exists on
* @param nodePath The path of the node to get
* @returns The node corresponding to the given connection and path,
* or undefined if no such node exists.
*/
export function getNode(connectionId: string, nodePath?: string): Thenable<ObjectExplorerNode>;
/**
* Get all active Object Explorer connection nodes
* @returns {ObjectExplorerNode[]} The Object Explorer nodes for each saved connection
* @returns The Object Explorer nodes for each saved connection
*/
export function getActiveConnectionNodes(): Thenable<ObjectExplorerNode[]>;
/**
* Find Object Explorer nodes that match the given information
* @param {string} connectionId The id of the connection that the node exists on
* @param {string} type The type of the object to retrieve
* @param {string} schema The schema of the object, if applicable
* @param {string} name The name of the object
* @param {string} database The database the object exists under, if applicable
* @param {string[]} parentObjectNames A list of names of parent objects in the tree, ordered from highest to lowest level
* @param connectionId The id of the connection that the node exists on
* @param type The type of the object to retrieve
* @param schema The schema of the object, if applicable
* @param name The name of the object
* @param database The database the object exists under, if applicable
* @param parentObjectNames A list of names of parent objects in the tree, ordered from highest to lowest level
* (for example when searching for a table's column, provide the name of its parent table for this argument)
*/
export function findNodes(connectionId: string, type: string, schema: string, name: string, database: string, parentObjectNames: string[]): Thenable<ObjectExplorerNode[]>;
/**
* Get connectionProfile from sessionId
* *@param {string} sessionId The id of the session that the node exists on
* @returns {IConnectionProfile} The IConnecitonProfile for the session
* @param sessionId The id of the session that the node exists on
* @returns The IConnecitonProfile for the session
*/
export function getSessionConnectionProfile(sessionId: string): Thenable<IConnectionProfile>;
@@ -2047,11 +2047,7 @@ declare module 'azdata' {
* Launches a flyout dialog that will display the information on how to complete device
* code OAuth login to the user. Only one flyout can be opened at once and each must be closed
* by calling {@link endAutoOAuthDeviceCode}.
* @param {string} providerId ID of the provider that's requesting the flyout be opened
* @param {string} title
* @param {string} message
* @param {string} userCode
* @param {string} uri
* @param providerId ID of the provider that's requesting the flyout be opened
*/
export function beginAutoOAuthDeviceCode(providerId: string, title: string, message: string, userCode: string, uri: string): Thenable<void>;
@@ -2063,21 +2059,21 @@ declare module 'azdata' {
/**
* Notifies the account management service that an account has updated (usually due to the
* account going stale).
* @param {Account} updatedAccount Account object with updated properties
* @param updatedAccount Account object with updated properties
*/
export function accountUpdated(updatedAccount: Account): void;
/**
* Gets all added accounts.
* @returns {Thenable<Account>} Promise to return the accounts
* @returns Promise to return the accounts
*/
export function getAllAccounts(): Thenable<Account[]>;
/**
* Generates a security token by asking the account's provider
* @param {Account} account Account to generate security token for (defaults to
* @param account Account to generate security token for (defaults to
* AzureResource.ResourceManagement if not given)
* @return {Thenable<{}>} Promise to return the security token
* @return Promise to return the security token
*/
export function getSecurityToken(account: Account, resource?: AzureResource): Thenable<{}>;
@@ -2211,16 +2207,16 @@ declare module 'azdata' {
export interface AccountProvider {
/**
* Initializes the account provider with the accounts restored from the memento,
* @param {Account[]} storedAccounts Accounts restored from the memento
* @return {Thenable<Account[]>} Account objects after being rehydrated (if necessary)
* @param storedAccounts Accounts restored from the memento
* @return Account objects after being rehydrated (if necessary)
*/
initialize(storedAccounts: Account[]): Thenable<Account[]>;
/**
* Generates a security token for the provided account
* @param {Account} account The account to generate a security token for
* @param {AzureResource} resource The resource to get the token for
* @return {Thenable<{}>} Promise to return a security token object
* @param account The account to generate a security token for
* @param resource The resource to get the token for
* @return Promise to return a security token object
*/
getSecurityToken(account: Account, resource: AzureResource): Thenable<{}>;
@@ -2444,7 +2440,6 @@ declare module 'azdata' {
/**
* Supports defining a model that can be instantiated as a view in the UI
* @export
* @interface ModelBuilder
*/
export interface ModelBuilder {
navContainer(): ContainerBuilder<NavContainer, any, any>;
@@ -2554,7 +2549,7 @@ declare module 'azdata' {
* Creates a collection of child components and adds them all to this container
*
* @param formComponents the definitions
* @param {*} [itemLayout] Optional layout for the child items
* @param [itemLayout] Optional layout for the child items
*/
addFormItems(formComponents: Array<FormComponent | FormComponentGroup>, itemLayout?: FormItemLayout): void;
@@ -2562,7 +2557,7 @@ declare module 'azdata' {
* Creates a child component and adds it to this container.
*
* @param formComponent the component to be added
* @param {*} [itemLayout] Optional layout for this child item
* @param [itemLayout] Optional layout for this child item
*/
addFormItem(formComponent: FormComponent | FormComponentGroup, itemLayout?: FormItemLayout): void;
@@ -2576,7 +2571,6 @@ declare module 'azdata' {
/**
* Removes a from item from the from
* @param formComponent
*/
removeFormItem(formComponent: FormComponent | FormComponentGroup): boolean;
}
@@ -2587,18 +2581,16 @@ declare module 'azdata' {
/**
* Sends any updated properties of the component to the UI
*
* @returns {Thenable<void>} Thenable that completes once the update
* @returns Thenable that completes once the update
* has been applied in the UI
* @memberof Component
*/
updateProperties(properties: { [key: string]: any }): Thenable<void>;
/**
* Sends an updated property of the component to the UI
*
* @returns {Thenable<void>} Thenable that completes once the update
* @returns Thenable that completes once the update
* has been applied in the UI
* @memberof Component
*/
updateProperty(key: string, value: any): Thenable<void>;
@@ -2665,7 +2657,7 @@ declare module 'azdata' {
* Creates a collection of child components and adds them all to this container
*
* @param itemConfigs the definitions
* @param {*} [itemLayout] Optional layout for the child items
* @param [itemLayout] Optional layout for the child items
*/
addItems(itemConfigs: Array<Component>, itemLayout?: TItemLayout): void;
@@ -2673,8 +2665,8 @@ declare module 'azdata' {
* Creates a child component and adds it to this container.
* Adding component to multiple containers is not supported
*
* @param {Component} component the component to be added
* @param {*} [itemLayout] Optional layout for this child item
* @param component the component to be added
* @param [itemLayout] Optional layout for this child item
*/
addItem(component: Component, itemLayout?: TItemLayout): void;
@@ -2683,7 +2675,7 @@ declare module 'azdata' {
* Adding component to multiple containers is not supported
* @param component the component to be added
* @param index the index to insert the component to
* @param {*} [itemLayout] Optional layout for this child item
* @param [itemLayout] Optional layout for this child item
*/
insertItem(component: Component, index: number, itemLayout?: TItemLayout): void;
@@ -2696,7 +2688,7 @@ declare module 'azdata' {
/**
* Defines the layout for this container
*
* @param {TLayout} layout object
* @param layout object
*/
setLayout(layout: TLayout): void;
}
@@ -2834,8 +2826,8 @@ declare module 'azdata' {
export interface DivContainer extends Container<DivLayout, DivItemLayout>, DivContainerProperties {
/**
* An event called when the div is clicked
*/
* An event called when the div is clicked
*/
onDidClick: vscode.Event<any>;
}
@@ -3371,9 +3363,8 @@ declare module 'azdata' {
export namespace window {
/**
* creates a web view dialog
* @param title
*/
* creates a web view dialog
*/
export function createWebViewDialog(title: string): ModalDialog;
/**
@@ -3736,14 +3727,14 @@ declare module 'azdata' {
/**
* Make connection for the query editor
* @param {string} fileUri file URI for the query editor
* @param {string} connectionId connection ID
* @param fileUri file URI for the query editor
* @param connectionId connection ID
*/
export function connect(fileUri: string, connectionId: string): Thenable<void>;
/**
* Run query if it is a query editor and it is already opened.
* @param {string} fileUri file URI for the query editor
* @param fileUri file URI for the query editor
*/
export function runQuery(fileUri: string, options?: Map<string, string>): void;
@@ -3752,7 +3743,7 @@ declare module 'azdata' {
*/
export function registerQueryEventListener(listener: queryeditor.QueryEventListener): void;
export function getQueryDocument(fileUri: string): queryeditor.QueryDocument
export function getQueryDocument(fileUri: string): queryeditor.QueryDocument;
}
/**
@@ -3944,8 +3935,8 @@ declare module 'azdata' {
export namespace connection {
/**
* List the databases that can be accessed from the given connection
* @param {string} connectionId The ID of the connection
* @returns {string[]} An list of names of databases
* @param connectionId The ID of the connection
* @returns An list of names of databases
*/
export function listDatabases(connectionId: string): Thenable<string[]>;
@@ -3960,7 +3951,6 @@ declare module 'azdata' {
/**
* Opens the connection dialog, calls the callback with the result. If connection was successful
* returns the connection otherwise returns undefined
* @param callback
*/
export function openConnectionDialog(providers?: string[], initialConnectionProfile?: IConnectionProfile, connectionCompletionOptions?: IConnectionCompletionOptions): Thenable<connection.Connection>;
@@ -3974,8 +3964,6 @@ declare module 'azdata' {
export namespace nb {
/**
* All notebook documents currently known to the system.
*
* @readonly
*/
export let notebookDocuments: NotebookDocument[];

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.custom-checkbox.sql-checkbox {
.custom-checkbox.sql-checkbox {
margin-right: 5px;
margin-top: 2px;
width: 12px;

View File

@@ -107,7 +107,7 @@ export class Dropdown extends Disposable {
super();
this._contextView = new ContextView(layoutService.container);
this._options = opt || Object.create(null);
mixin(this._options, defaults, false) as IDropdownOptions;
mixin(this._options, defaults, false);
this._el = DOM.append(container, DOM.$('.monaco-dropdown'));
this._el.style.width = '100%';

View File

@@ -1,10 +1,15 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.labelOnTopContainer {
display: flex;
flex-direction: column;
display: flex;
flex-direction: column;
}
.labelOnLeftContainer {
display: flex;
flex-direction: row;
margin-right: 5px;
display: flex;
flex-direction: row;
margin-right: 5px;
}

View File

@@ -1,9 +1,7 @@
/*
IMPORTANT:
In order to preserve the uniform grid appearance, all cell styles need to have padding, margin and border sizes.
No built-in (selected, editable, highlight, flashing, invalid, loading, :focus) or user-specified CSS
classes should alter those!
*/
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.slick-header.ui-state-default, .slick-headerrow.ui-state-default, .slick-footerrow.ui-state-default {
width: 100%;

View File

@@ -71,7 +71,7 @@
/* grid styling */
.vs slick-grid.active .grid .slick-cell.active {
border-color: var(--color-cell-border-active);
border-color: var(--color-cell-border-active);
}
.vs slick-grid.active .grid .slick-cell.selected {
@@ -202,7 +202,7 @@
/* grid styling */
.vs-dark slick-grid.active .grid .slick-cell.active {
border-color: var(--color-cell-border-active);
border-color: var(--color-cell-border-active);
}
.vs-dark slick-grid.active .grid .slick-cell.selected {
@@ -348,7 +348,7 @@
/* grid styling */
.hc-black slick-grid.active .grid .slick-cell.active {
border-color: var(--color-cell-border-active);
border-color: var(--color-cell-border-active);
}
.hc-black slick-grid.active .grid .slick-cell.selected {

View File

@@ -35,129 +35,129 @@
}
.slick-header-menubutton {
background-position: center center;
background-repeat: no-repeat;
bottom: 0;
cursor: pointer;
display: inline-block;
position: absolute;
right: 10px;
top: 0;
width: 18px;
background-image: url('down.svg');
background-position: center center;
background-repeat: no-repeat;
bottom: 0;
cursor: pointer;
display: inline-block;
position: absolute;
right: 10px;
top: 0;
width: 18px;
background-image: url('down.svg');
}
.vs-dark .slick-header-menubutton,
.hc-black .slick-header-menubutton {
background-image: url('down-inverse.svg');
background-image: url('down-inverse.svg');
}
.slick-header-menubutton.filtered {
background-image: url('filter.svg');
background-image: url('filter.svg');
}
.vs-dark .slick-header-menubutton.filtered,
.hc-black .slick-header-menubutton.filtered {
background-image: url('filter_inverse.svg');
background-image: url('filter_inverse.svg');
}
.slick-header-menu {
background: none repeat scroll 0 0 white;
border: 1px solid #BFBDBD;
min-width: 175px;
padding: 4px;
z-index: 100000;
cursor: default;
display: inline-block;
margin: 0;
position: absolute;
background: none repeat scroll 0 0 white;
border: 1px solid #BFBDBD;
min-width: 175px;
padding: 4px;
z-index: 100000;
cursor: default;
display: inline-block;
margin: 0;
position: absolute;
}
.vs-dark .slick-header-menu {
background: none repeat scroll 0 0 #333333;
background: none repeat scroll 0 0 #333333;
}
.hc-black .slick-header-menu {
background: none repeat scroll 0 0 #000000;
background: none repeat scroll 0 0 #000000;
}
.slick-header-menu a.monaco-button.monaco-text-button {
width: 60px;
margin: 6px 6px 6px 6px;
padding: 4px;
width: 60px;
margin: 6px 6px 6px 6px;
padding: 4px;
}
.slick-header-menu .filter
{
border: 1px solid #BFBDBD;
font-size: 8pt;
height: 250px;
margin-top: 6px;
overflow: scroll;
padding: 4px;
white-space: nowrap;
width: 200px;
border: 1px solid #BFBDBD;
font-size: 8pt;
height: 250px;
margin-top: 6px;
overflow: scroll;
padding: 4px;
white-space: nowrap;
width: 200px;
}
.monaco-table label {
display: block;
margin-bottom: 5px;
display: block;
margin-bottom: 5px;
}
.slick-header-menuitem
{
border: 1px solid transparent;
padding: 2px 4px;
cursor: pointer;
list-style: none outside none;
margin: 0;
border: 1px solid transparent;
padding: 2px 4px;
cursor: pointer;
list-style: none outside none;
margin: 0;
}
.slick-header-menuicon
{
display: inline-block;
height: 16px;
margin-right: 4px;
vertical-align: middle;
width: 16px;
display: inline-block;
height: 16px;
margin-right: 4px;
vertical-align: middle;
width: 16px;
}
.slick-header-menuicon.ascending {
background: url('sort-asc.gif');
background-position: center center;
background-repeat: no-repeat;
background: url('sort-asc.gif');
background-position: center center;
background-repeat: no-repeat;
}
.slick-header-menuicon.descending {
background: url('sort-desc.gif');
background-position: center center;
background-repeat: no-repeat;
background: url('sort-desc.gif');
background-position: center center;
background-repeat: no-repeat;
}
.slick-header-menucontent {
display: inline-block;
vertical-align: middle;
display: inline-block;
vertical-align: middle;
}
.slick-header-menuitem:hover {
border-color: #BFBDBD;
border-color: #BFBDBD;
}
.header-overlay, .cell-overlay, .selection-cell-overlay {
display: block;
position: absolute;
z-index: 999;
display: block;
position: absolute;
z-index: 999;
}
.vs-dark .slick-header-menu > input.input {
color: #4a4a4a;
color: #4a4a4a;
}
.hc-black .slick-header-menu > input.input {
color: #000000;
color: #000000;
}
.vs-dark .slick-header-menu,
.hc-black .slick-header-menu {
color: #FFFFFF;
}
color: #FFFFFF;
}

View File

@@ -1,3 +1,8 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { mixin } from 'vs/base/common/objects';
const defaultOptions: ICellRangeSelectorOptions = {

View File

@@ -48,12 +48,12 @@
background-repeat: no-repeat;
background-position: 0% 50%;
padding-left: 15px;
}
}
.carbon-taskbar .action-item-label {
.carbon-taskbar .action-item-label {
display: flex;
padding-right: 5px;
}
}
.listDatabasesSelectBox {
padding-left: 2px;
@@ -64,7 +64,7 @@
.configuration.select-container .select-box {
margin-top: 4px;
margin-top: 3px;
}
}
.taskbarSeparator {
width: 1px;

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
export function log(...args: any[]): void {
console.log(`\x1b[90m[main ${new Date().toLocaleTimeString()}]\x1b[0m`, ...args);

View File

@@ -10,26 +10,26 @@ import * as editorCommon from 'vs/editor/common/editorCommon';
* @param lineChanges The line changes to be reversed
*/
export function reverseLineChanges(lineChanges: editorCommon.ILineChange[]): editorCommon.ILineChange[] {
let reversedLineChanges = lineChanges.map(linechange => {
return {
modifiedStartLineNumber: linechange.originalStartLineNumber,
modifiedEndLineNumber: linechange.originalEndLineNumber,
originalStartLineNumber: linechange.modifiedStartLineNumber,
originalEndLineNumber: linechange.modifiedEndLineNumber,
charChanges: (linechange.charChanges) ?
linechange.charChanges.map(charchange => {
return {
originalStartColumn: charchange.modifiedStartColumn,
originalEndColumn: charchange.modifiedEndColumn,
modifiedStartColumn: charchange.originalStartColumn,
modifiedEndColumn: charchange.originalEndColumn,
modifiedStartLineNumber: charchange.originalStartLineNumber,
modifiedEndLineNumber: charchange.originalEndLineNumber,
originalStartLineNumber: charchange.modifiedStartLineNumber,
originalEndLineNumber: charchange.modifiedEndLineNumber,
};
}) : undefined
};
});
return reversedLineChanges;
}
let reversedLineChanges = lineChanges.map(linechange => {
return {
modifiedStartLineNumber: linechange.originalStartLineNumber,
modifiedEndLineNumber: linechange.originalEndLineNumber,
originalStartLineNumber: linechange.modifiedStartLineNumber,
originalEndLineNumber: linechange.modifiedEndLineNumber,
charChanges: (linechange.charChanges) ?
linechange.charChanges.map(charchange => {
return {
originalStartColumn: charchange.modifiedStartColumn,
originalEndColumn: charchange.modifiedEndColumn,
modifiedStartColumn: charchange.originalStartColumn,
modifiedEndColumn: charchange.originalEndColumn,
modifiedStartLineNumber: charchange.originalStartLineNumber,
modifiedEndLineNumber: charchange.originalEndLineNumber,
originalStartLineNumber: charchange.modifiedStartLineNumber,
originalEndLineNumber: charchange.modifiedEndLineNumber,
};
}) : undefined
};
});
return reversedLineChanges;
}

View File

@@ -11,7 +11,7 @@
/* Activity Bar - explore */
.monaco-workbench > .activitybar > .content .monaco-action-bar .action-label.explore {
-webkit-mask: url('icons/file_inverse.svg') no-repeat 50% 50%;
-webkit-mask: url('icons/file_inverse.svg') no-repeat 50% 50%;
-webkit-mask-size: 25px 25px;
}
@@ -23,7 +23,7 @@
/* Activity Bar - search */
.monaco-workbench > .activitybar > .content .monaco-action-bar .action-label.search {
-webkit-mask: url('icons/search_inverse.svg') no-repeat 50% 50%;
-webkit-mask: url('icons/search_inverse.svg') no-repeat 50% 50%;
-webkit-mask-size: 25px 25px;
}

View File

@@ -33,7 +33,7 @@
.vs .icon.error,
.vs-dark .icon.error,
.hc-black .icon.error {
background: url("globalerror_red.svg") center center no-repeat;
background: url("globalerror_red.svg") center center no-repeat;
}
.vs .icon.file {

View File

@@ -24,634 +24,634 @@
.vs .icon.aggregatefunction,
.vs-dark .icon.aggregatefunction,
.hc-black .icon.aggregatefunction {
background: url("AggregateFunction.svg") center center no-repeat;
background: url("AggregateFunction.svg") center center no-repeat;
}
.vs .icon.aggregatefunctionparameter_input,
.vs-dark .icon.aggregatefunctionparameter_input,
.hc-black .icon.aggregatefunctionparameter_input {
background: url("AggregateFunctionParameter_Input.svg") center center no-repeat;
background: url("AggregateFunctionParameter_Input.svg") center center no-repeat;
}
.vs .icon.aggregatefunctionparameter_output,
.vs-dark .icon.aggregatefunctionparameter_output,
.hc-black .icon.aggregatefunctionparameter_output {
background: url("AggregateFunctionParameter_Output.svg") center center no-repeat;
background: url("AggregateFunctionParameter_Output.svg") center center no-repeat;
}
.vs .icon.aggregatefunctionparameter_return,
.vs-dark .icon.aggregatefunctionparameter_return,
.hc-black .icon.aggregatefunctionparameter_return {
background: url("AggregateFunctionParameter_Return.svg") center center no-repeat;
background: url("AggregateFunctionParameter_Return.svg") center center no-repeat;
}
.vs .icon.applicationrole,
.vs-dark .icon.applicationrole,
.hc-black .icon.applicationrole {
background: url("ApplicationRole.svg") center center no-repeat;
background: url("ApplicationRole.svg") center center no-repeat;
}
.vs .icon.assembly,
.vs-dark .icon.assembly,
.hc-black .icon.assembly {
background: url("Assembly.svg") center center no-repeat;
background: url("Assembly.svg") center center no-repeat;
}
.vs .icon.asymmetrickey,
.vs-dark .icon.asymmetrickey,
.hc-black .icon.asymmetrickey {
background: url("AsymmetricKey.svg") center center no-repeat;
background: url("AsymmetricKey.svg") center center no-repeat;
}
.vs .icon.brokerpriority,
.vs-dark .icon.brokerpriority,
.hc-black .icon.brokerpriority {
background: url("BrokerPriority.svg") center center no-repeat;
background: url("BrokerPriority.svg") center center no-repeat;
}
.vs .icon.certificate,
.vs-dark .icon.certificate,
.hc-black .icon.certificate {
background: url("Certificate.svg") center center no-repeat;
background: url("Certificate.svg") center center no-repeat;
}
.vs .icon.column,
.vs-dark .icon.column,
.hc-black .icon.column {
background: url("Column.svg") center center no-repeat;
background: url("Column.svg") center center no-repeat;
}
.vs .icon.columnencryptionkey,
.vs-dark .icon.columnencryptionkey,
.hc-black .icon.columnencryptionkey {
background: url("ColumnEncryptionKey.svg") center center no-repeat;
background: url("ColumnEncryptionKey.svg") center center no-repeat;
}
.vs .icon.columnmasterkey,
.vs-dark .icon.columnmasterkey,
.hc-black .icon.columnmasterkey {
background: url("ColumnMasterKey.svg") center center no-repeat;
background: url("ColumnMasterKey.svg") center center no-repeat;
}
.vs .icon.constraint,
.vs-dark .icon.constraint,
.hc-black .icon.constraint {
background: url("Constraint.svg") center center no-repeat;
background: url("Constraint.svg") center center no-repeat;
}
.vs .icon.contract,
.vs-dark .icon.contract,
.hc-black .icon.contract {
background: url("Contract.svg") center center no-repeat;
background: url("Contract.svg") center center no-repeat;
}
.vs .icon.database,
.vs-dark .icon.database,
.hc-black .icon.database {
background: url("Database.svg") center center no-repeat;
background: url("Database.svg") center center no-repeat;
}
.vs .icon.database_unavailable,
.vs-dark .icon.database_unavailable,
.hc-black .icon.database_unavailable {
background: url("Database_Unavailable.svg") center center no-repeat;
background: url("Database_Unavailable.svg") center center no-repeat;
}
.vs .icon.databaseandqueueeventnotification,
.vs-dark .icon.databaseandqueueeventnotification,
.hc-black .icon.databaseandqueueeventnotification {
background: url("DatabaseAndQueueEventNotification.svg") center center no-repeat;
background: url("DatabaseAndQueueEventNotification.svg") center center no-repeat;
}
.vs .icon.databaseauditspecification,
.vs-dark .icon.databaseauditspecification,
.hc-black .icon.databaseauditspecification {
background: url("DatabaseAuditSpecification.svg") center center no-repeat;
background: url("DatabaseAuditSpecification.svg") center center no-repeat;
}
.vs .icon.databaseencryptionkey,
.vs-dark .icon.databaseencryptionkey,
.hc-black .icon.databaseencryptionkey {
background: url("DatabaseEncryptionKey.svg") center center no-repeat;
background: url("DatabaseEncryptionKey.svg") center center no-repeat;
}
.vs .icon.databaserole,
.vs-dark .icon.databaserole,
.hc-black .icon.databaserole {
background: url("DatabaseRole.svg") center center no-repeat;
background: url("DatabaseRole.svg") center center no-repeat;
}
.vs .icon.databasescopedcredential,
.vs-dark .icon.databasescopedcredential,
.hc-black .icon.databasescopedcredential {
background: url("DatabaseScopedCredential.svg") center center no-repeat;
background: url("DatabaseScopedCredential.svg") center center no-repeat;
}
.vs .icon.databasetrigger,
.vs-dark .icon.databasetrigger,
.hc-black .icon.databasetrigger {
background: url("DatabaseTrigger.svg") center center no-repeat;
background: url("DatabaseTrigger.svg") center center no-repeat;
}
.vs .icon.defaulticon,
.vs-dark .icon.defaulticon,
.hc-black .icon.defaulticon {
background: url("DefaultIcon.svg") center center no-repeat;
background: url("DefaultIcon.svg") center center no-repeat;
}
.vs .icon.externaldatasource,
.vs-dark .icon.externaldatasource,
.hc-black .icon.externaldatasource {
background: url("ExternalDataSource.svg") center center no-repeat;
background: url("ExternalDataSource.svg") center center no-repeat;
}
.vs .icon.externalfileformat,
.vs-dark .icon.externalfileformat,
.hc-black .icon.externalfileformat {
background: url("ExternalFileFormat.svg") center center no-repeat;
background: url("ExternalFileFormat.svg") center center no-repeat;
}
.vs .icon.filegroupfile,
.vs-dark .icon.filegroupfile,
.hc-black .icon.filegroupfile {
background: url("FileGroupFile.svg") center center no-repeat;
background: url("FileGroupFile.svg") center center no-repeat;
}
.vs .icon.folder,
.vs-dark .icon.folder,
.hc-black .icon.folder {
background: url("Folder.svg") center center no-repeat;
background: url("Folder.svg") center center no-repeat;
}
.vs .icon.fulltextcatalog,
.vs-dark .icon.fulltextcatalog,
.hc-black .icon.fulltextcatalog {
background: url("FullTextCatalog.svg") center center no-repeat;
background: url("FullTextCatalog.svg") center center no-repeat;
}
.vs .icon.fulltextstoplist,
.vs-dark .icon.fulltextstoplist,
.hc-black .icon.fulltextstoplist {
background: url("FullTextStopList.svg") center center no-repeat;
background: url("FullTextStopList.svg") center center no-repeat;
}
.vs .icon.hdfsfolder,
.vs-dark .icon.hdfsfolder,
.hc-black .icon.hdfsfolder {
background: url("HDFSFolder.svg") center center no-repeat;
background: url("HDFSFolder.svg") center center no-repeat;
}
.vs .icon.index,
.vs-dark .icon.index,
.hc-black .icon.index {
background: url("Index.svg") center center no-repeat;
background: url("Index.svg") center center no-repeat;
}
.vs .icon.key_foreignkey,
.vs-dark .icon.key_foreignkey,
.hc-black .icon.key_foreignkey {
background: url("Key_ForeignKey.svg") center center no-repeat;
background: url("Key_ForeignKey.svg") center center no-repeat;
}
.vs .icon.key_primarykey,
.vs-dark .icon.key_primarykey,
.hc-black .icon.key_primarykey {
background: url("Key_PrimaryKey.svg") center center no-repeat;
background: url("Key_PrimaryKey.svg") center center no-repeat;
}
.vs .icon.index_primarykey,
.vs-dark .icon.index_primarykey,
.hc-black .icon.index_primarykey {
background: url("Key_PrimaryKey.svg") center center no-repeat;
background: url("Key_PrimaryKey.svg") center center no-repeat;
}
.vs .icon.key_uniquekey,
.vs-dark .icon.key_uniquekey,
.hc-black .icon.key_uniquekey {
background: url("Key_UniqueKey.svg") center center no-repeat;
background: url("Key_UniqueKey.svg") center center no-repeat;
}
.vs .icon.index_uniquekey,
.vs-dark .icon.index_uniquekey,
.hc-black .icon.index_uniquekey {
background: url("Key_UniqueKey.svg") center center no-repeat;
background: url("Key_UniqueKey.svg") center center no-repeat;
}
.vs .icon.masterkey,
.vs-dark .icon.masterkey,
.hc-black .icon.masterkey {
background: url("MasterKey.svg") center center no-repeat;
background: url("MasterKey.svg") center center no-repeat;
}
.vs .icon.messagetype,
.vs-dark .icon.messagetype,
.hc-black .icon.messagetype {
background: url("MessageType.svg") center center no-repeat;
background: url("MessageType.svg") center center no-repeat;
}
.vs .icon.objecttypes.css,
.vs-dark .icon.objecttypes.css,
.hc-black .icon.objecttypes.css {
background: url("objecttypes.css") center center no-repeat;
background: url("objecttypes.css") center center no-repeat;
}
.vs .icon.partitionfunction,
.vs-dark .icon.partitionfunction,
.hc-black .icon.partitionfunction {
background: url("PartitionFunction.svg") center center no-repeat;
background: url("PartitionFunction.svg") center center no-repeat;
}
.vs .icon.partitionscheme,
.vs-dark .icon.partitionscheme,
.hc-black .icon.partitionscheme {
background: url("PartitionScheme.svg") center center no-repeat;
background: url("PartitionScheme.svg") center center no-repeat;
}
.vs .icon.queue,
.vs-dark .icon.queue,
.hc-black .icon.queue {
background: url("Queue.svg") center center no-repeat;
background: url("Queue.svg") center center no-repeat;
}
.vs .icon.remoteservicebinding,
.vs-dark .icon.remoteservicebinding,
.hc-black .icon.remoteservicebinding {
background: url("RemoteServiceBinding.svg") center center no-repeat;
background: url("RemoteServiceBinding.svg") center center no-repeat;
}
.vs .icon.route,
.vs-dark .icon.route,
.hc-black .icon.route {
background: url("Route.svg") center center no-repeat;
background: url("Route.svg") center center no-repeat;
}
.vs .icon.scalarvaluedfunction,
.vs-dark .icon.scalarvaluedfunction,
.hc-black .icon.scalarvaluedfunction {
background: url("ScalarValuedFunction.svg") center center no-repeat;
background: url("ScalarValuedFunction.svg") center center no-repeat;
}
.vs .icon.scalarvaluedfunctionparameter_input,
.vs-dark .icon.scalarvaluedfunctionparameter_input,
.hc-black .icon.scalarvaluedfunctionparameter_input {
background: url("ScalarValuedFunctionParameter_Input.svg") center center no-repeat;
background: url("ScalarValuedFunctionParameter_Input.svg") center center no-repeat;
}
.vs .icon.scalarvaluedfunctionparameter_output,
.vs-dark .icon.scalarvaluedfunctionparameter_output,
.hc-black .icon.scalarvaluedfunctionparameter_output {
background: url("ScalarValuedFunctionParameter_Output.svg") center center no-repeat;
background: url("ScalarValuedFunctionParameter_Output.svg") center center no-repeat;
}
.vs .icon.scalarvaluedfunctionparameter_return,
.vs-dark .icon.scalarvaluedfunctionparameter_return,
.hc-black .icon.scalarvaluedfunctionparameter_return {
background: url("ScalarValuedFunctionParameter_Return.svg") center center no-repeat;
background: url("ScalarValuedFunctionParameter_Return.svg") center center no-repeat;
}
.vs .icon.schema,
.vs-dark .icon.schema,
.hc-black .icon.schema {
background: url("Schema.svg") center center no-repeat;
background: url("Schema.svg") center center no-repeat;
}
.vs .icon.searchpropertylist,
.vs-dark .icon.searchpropertylist,
.hc-black .icon.searchpropertylist {
background: url("SearchPropertyList.svg") center center no-repeat;
background: url("SearchPropertyList.svg") center center no-repeat;
}
.vs .icon.securitypolicy,
.vs-dark .icon.securitypolicy,
.hc-black .icon.securitypolicy {
background: url("SecurityPolicy.svg") center center no-repeat;
background: url("SecurityPolicy.svg") center center no-repeat;
}
.vs .icon.sequence,
.vs-dark .icon.sequence,
.hc-black .icon.sequence {
background: url("Sequence.svg") center center no-repeat;
background: url("Sequence.svg") center center no-repeat;
}
.vs .icon.server,
.vs-dark .icon.server,
.hc-black .icon.server {
background: url("Server.svg") center center no-repeat;
background: url("Server.svg") center center no-repeat;
}
.vs .icon.serverlevelcredential,
.vs-dark .icon.serverlevelcredential,
.hc-black .icon.serverlevelcredential {
background: url("ServerLevelCredential.svg") center center no-repeat;
background: url("ServerLevelCredential.svg") center center no-repeat;
}
.vs .icon.serverlevelcryptographicprovider,
.vs-dark .icon.serverlevelcryptographicprovider,
.hc-black .icon.serverlevelcryptographicprovider {
background: url("ServerLevelCryptographicProvider.svg") center center no-repeat;
background: url("ServerLevelCryptographicProvider.svg") center center no-repeat;
}
.vs .icon.serverlevelendpoint,
.vs-dark .icon.serverlevelendpoint,
.hc-black .icon.serverlevelendpoint {
background: url("ServerLevelEndpoint.svg") center center no-repeat;
background: url("ServerLevelEndpoint.svg") center center no-repeat;
}
.vs .icon.serverlevellinkedserver,
.vs-dark .icon.serverlevellinkedserver,
.hc-black .icon.serverlevellinkedserver {
background: url("ServerLevelLinkedServer.svg") center center no-repeat;
background: url("ServerLevelLinkedServer.svg") center center no-repeat;
}
.vs .icon.serverlevellinkedserverlogin,
.vs-dark .icon.serverlevellinkedserverlogin,
.hc-black .icon.serverlevellinkedserverlogin {
background: url("ServerLevelLinkedServerLogin.svg") center center no-repeat;
background: url("ServerLevelLinkedServerLogin.svg") center center no-repeat;
}
.vs .icon.serverlevellinkedserverlogin_disabled,
.vs-dark .icon.serverlevellinkedserverlogin_disabled,
.hc-black .icon.serverlevellinkedserverlogin_disabled {
background: url("ServerLevelLinkedServerLogin_Disabled.svg") center center no-repeat;
background: url("ServerLevelLinkedServerLogin_Disabled.svg") center center no-repeat;
}
.vs .icon.serverlevellogin,
.vs-dark .icon.serverlevellogin,
.hc-black .icon.serverlevellogin {
background: url("ServerLevelLogin.svg") center center no-repeat;
background: url("ServerLevelLogin.svg") center center no-repeat;
}
.vs .icon.serverlevellogin_disabled,
.vs-dark .icon.serverlevellogin_disabled,
.hc-black .icon.serverlevellogin_disabled {
background: url("ServerLevelLogin_Disabled.svg") center center no-repeat;
background: url("ServerLevelLogin_Disabled.svg") center center no-repeat;
}
.vs .icon.serverlevelserveraudit,
.vs-dark .icon.serverlevelserveraudit,
.hc-black .icon.serverlevelserveraudit {
background: url("ServerLevelServerAudit.svg") center center no-repeat;
background: url("ServerLevelServerAudit.svg") center center no-repeat;
}
.vs .icon.serverlevelserverauditspecification,
.vs-dark .icon.serverlevelserverauditspecification,
.hc-black .icon.serverlevelserverauditspecification {
background: url("ServerLevelServerAuditSpecification.svg") center center no-repeat;
background: url("ServerLevelServerAuditSpecification.svg") center center no-repeat;
}
.vs .icon.serverlevelserverrole,
.vs-dark .icon.serverlevelserverrole,
.hc-black .icon.serverlevelserverrole {
background: url("ServerLevelServerRole.svg") center center no-repeat;
background: url("ServerLevelServerRole.svg") center center no-repeat;
}
.vs .icon.serverlevelservertrigger,
.vs-dark .icon.serverlevelservertrigger,
.hc-black .icon.serverlevelservertrigger {
background: url("ServerLevelServerTrigger.svg") center center no-repeat;
background: url("ServerLevelServerTrigger.svg") center center no-repeat;
}
.vs .icon.service,
.vs-dark .icon.service,
.hc-black .icon.service {
background: url("Service.svg") center center no-repeat;
background: url("Service.svg") center center no-repeat;
}
.vs .icon.sqllogfile,
.vs-dark .icon.sqllogfile,
.hc-black .icon.sqllogfile {
background: url("SqlLogFile.svg") center center no-repeat;
background: url("SqlLogFile.svg") center center no-repeat;
}
.vs .icon.statistic,
.vs-dark .icon.statistic,
.hc-black .icon.statistic {
background: url("Statistic.svg") center center no-repeat;
background: url("Statistic.svg") center center no-repeat;
}
.vs .icon.storedprocedure,
.vs-dark .icon.storedprocedure,
.hc-black .icon.storedprocedure {
background: url("StoredProcedure.svg") center center no-repeat;
background: url("StoredProcedure.svg") center center no-repeat;
}
.vs .icon.storedprocedureparameter_input,
.vs-dark .icon.storedprocedureparameter_input,
.hc-black .icon.storedprocedureparameter_input {
background: url("StoredProcedureParameter_Input.svg") center center no-repeat;
background: url("StoredProcedureParameter_Input.svg") center center no-repeat;
}
.vs .icon.storedprocedureparameter_output,
.vs-dark .icon.storedprocedureparameter_output,
.hc-black .icon.storedprocedureparameter_output {
background: url("StoredProcedureParameter_Output.svg") center center no-repeat;
background: url("StoredProcedureParameter_Output.svg") center center no-repeat;
}
.vs .icon.storedprocedureparameter_return,
.vs-dark .icon.storedprocedureparameter_return,
.hc-black .icon.storedprocedureparameter_return {
background: url("StoredProcedureParameter_Return.svg") center center no-repeat;
background: url("StoredProcedureParameter_Return.svg") center center no-repeat;
}
.vs .icon.symmetrickey,
.vs-dark .icon.symmetrickey,
.hc-black .icon.symmetrickey {
background: url("SymmetricKey.svg") center center no-repeat;
background: url("SymmetricKey.svg") center center no-repeat;
}
.vs .icon.synonym,
.vs-dark .icon.synonym,
.hc-black .icon.synonym {
background: url("Synonym.svg") center center no-repeat;
background: url("Synonym.svg") center center no-repeat;
}
.vs .icon.systemapproximatenumeric,
.vs-dark .icon.systemapproximatenumeric,
.hc-black .icon.systemapproximatenumeric {
background: url("SystemApproximateNumeric.svg") center center no-repeat;
background: url("SystemApproximateNumeric.svg") center center no-repeat;
}
.vs .icon.systembinarystring,
.vs-dark .icon.systembinarystring,
.hc-black .icon.systembinarystring {
background: url("SystemBinaryString.svg") center center no-repeat;
background: url("SystemBinaryString.svg") center center no-repeat;
}
.vs .icon.systemcharacterstring,
.vs-dark .icon.systemcharacterstring,
.hc-black .icon.systemcharacterstring {
background: url("SystemCharacterString.svg") center center no-repeat;
background: url("SystemCharacterString.svg") center center no-repeat;
}
.vs .icon.systemclrdatatype,
.vs-dark .icon.systemclrdatatype,
.hc-black .icon.systemclrdatatype {
background: url("SystemClrDataType.svg") center center no-repeat;
background: url("SystemClrDataType.svg") center center no-repeat;
}
.vs .icon.systemcontract,
.vs-dark .icon.systemcontract,
.hc-black .icon.systemcontract {
background: url("SystemContract.svg") center center no-repeat;
background: url("SystemContract.svg") center center no-repeat;
}
.vs .icon.systemdateandtime,
.vs-dark .icon.systemdateandtime,
.hc-black .icon.systemdateandtime {
background: url("SystemDateAndTime.svg") center center no-repeat;
background: url("SystemDateAndTime.svg") center center no-repeat;
}
.vs .icon.systemexactnumeric,
.vs-dark .icon.systemexactnumeric,
.hc-black .icon.systemexactnumeric {
background: url("SystemExactNumeric.svg") center center no-repeat;
background: url("SystemExactNumeric.svg") center center no-repeat;
}
.vs .icon.systemmessagetype,
.vs-dark .icon.systemmessagetype,
.hc-black .icon.systemmessagetype {
background: url("SystemMessageType.svg") center center no-repeat;
background: url("SystemMessageType.svg") center center no-repeat;
}
.vs .icon.systemotherdatatype,
.vs-dark .icon.systemotherdatatype,
.hc-black .icon.systemotherdatatype {
background: url("SystemOtherDataType.svg") center center no-repeat;
background: url("SystemOtherDataType.svg") center center no-repeat;
}
.vs .icon.systemqueue,
.vs-dark .icon.systemqueue,
.hc-black .icon.systemqueue {
background: url("SystemQueue.svg") center center no-repeat;
background: url("SystemQueue.svg") center center no-repeat;
}
.vs .icon.systemservice,
.vs-dark .icon.systemservice,
.hc-black .icon.systemservice {
background: url("SystemService.svg") center center no-repeat;
background: url("SystemService.svg") center center no-repeat;
}
.vs .icon.systemspatialdatatype,
.vs-dark .icon.systemspatialdatatype,
.hc-black .icon.systemspatialdatatype {
background: url("SystemSpatialDataType.svg") center center no-repeat;
background: url("SystemSpatialDataType.svg") center center no-repeat;
}
.vs .icon.systemunicodecharacterstring,
.vs-dark .icon.systemunicodecharacterstring,
.hc-black .icon.systemunicodecharacterstring {
background: url("SystemUnicodeCharacterString.svg") center center no-repeat;
background: url("SystemUnicodeCharacterString.svg") center center no-repeat;
}
.vs .icon.tablevaluedfunction,
.vs-dark .icon.tablevaluedfunction,
.hc-black .icon.tablevaluedfunction {
background: url("TableValuedFunction.svg") center center no-repeat;
background: url("TableValuedFunction.svg") center center no-repeat;
}
.vs .icon.tablevaluedfunctionparameter_input,
.vs-dark .icon.tablevaluedfunctionparameter_input,
.hc-black .icon.tablevaluedfunctionparameter_input {
background: url("TableValuedFunctionParameter_Input.svg") center center no-repeat;
background: url("TableValuedFunctionParameter_Input.svg") center center no-repeat;
}
.vs .icon.tablevaluedfunctionparameter_output,
.vs-dark .icon.tablevaluedfunctionparameter_output,
.hc-black .icon.tablevaluedfunctionparameter_output {
background: url("TableValuedFunctionParameter_Output.svg") center center no-repeat;
background: url("TableValuedFunctionParameter_Output.svg") center center no-repeat;
}
.vs .icon.tablevaluedfunctionparameter_return,
.vs-dark .icon.tablevaluedfunctionparameter_return,
.hc-black .icon.tablevaluedfunctionparameter_return {
background: url("TableValuedFunctionParameter_Return.svg") center center no-repeat;
background: url("TableValuedFunctionParameter_Return.svg") center center no-repeat;
}
.vs .icon.table_temporal,
.vs-dark .icon.table_temporal,
.hc-black .icon.table_temporal {
background: url("Table_Temporal.svg") center center no-repeat;
background: url("Table_Temporal.svg") center center no-repeat;
}
.vs .icon.trigger,
.vs-dark .icon.trigger,
.hc-black .icon.trigger {
background: url("Trigger.svg") center center no-repeat;
background: url("Trigger.svg") center center no-repeat;
}
.vs .icon.trigger_disabled,
.vs-dark .icon.trigger_disabled,
.hc-black .icon.trigger_disabled {
background: url("Trigger_Disabled.svg") center center no-repeat;
background: url("Trigger_Disabled.svg") center center no-repeat;
}
.vs .icon.user,
.vs-dark .icon.user,
.hc-black .icon.user {
background: url("User.svg") center center no-repeat;
background: url("User.svg") center center no-repeat;
}
.vs .icon.user_disabled,
.vs-dark .icon.user_disabled,
.hc-black .icon.user_disabled {
background: url("User_Disabled.svg") center center no-repeat;
background: url("User_Disabled.svg") center center no-repeat;
}
.vs .icon.userdefineddatatype,
.vs-dark .icon.userdefineddatatype,
.hc-black .icon.userdefineddatatype {
background: url("UserDefinedDataType.svg") center center no-repeat;
background: url("UserDefinedDataType.svg") center center no-repeat;
}
.vs .icon.userdefinedtabletype,
.vs-dark .icon.userdefinedtabletype,
.hc-black .icon.userdefinedtabletype {
background: url("UserDefinedTableType.svg") center center no-repeat;
background: url("UserDefinedTableType.svg") center center no-repeat;
}
.vs .icon.userdefinedtabletypecolumn,
.vs-dark .icon.userdefinedtabletypecolumn,
.hc-black .icon.userdefinedtabletypecolumn {
background: url("UserDefinedTableTypeColumn.svg") center center no-repeat;
background: url("UserDefinedTableTypeColumn.svg") center center no-repeat;
}
.vs .icon.userdefinedtabletypeconstraint,
.vs-dark .icon.userdefinedtabletypeconstraint,
.hc-black .icon.userdefinedtabletypeconstraint {
background: url("UserDefinedTableTypeConstraint.svg") center center no-repeat;
background: url("UserDefinedTableTypeConstraint.svg") center center no-repeat;
}
.vs .icon.userdefinedtype,
.vs-dark .icon.userdefinedtype,
.hc-black .icon.userdefinedtype {
background: url("UserDefinedType.svg") center center no-repeat;
background: url("UserDefinedType.svg") center center no-repeat;
}
.vs .icon.view,
.vs-dark .icon.view,
.hc-black .icon.view {
background: url("View.svg") center center no-repeat;
background: url("View.svg") center center no-repeat;
}
.vs .icon.xmlschemacollection,
.vs-dark .icon.xmlschemacollection,
.hc-black .icon.xmlschemacollection {
background: url("XmlSchemaCollection.svg") center center no-repeat;
background: url("XmlSchemaCollection.svg") center center no-repeat;
}
.vs .icon.filegroup,
.vs-dark .icon.filegroup,
.hc-black .icon.filegroup {
background: url("DefaultIcon.svg") center center no-repeat;
background: url("DefaultIcon.svg") center center no-repeat;
}
.vs .icon.securitypolicie,
.vs-dark .icon.securitypolicie,
.hc-black .icon.securitypolicie {
background: url("DefaultIcon.svg") center center no-repeat;
background: url("DefaultIcon.svg") center center no-repeat;
}
.vs .icon.historytable,
.vs-dark .icon.historytable,
.hc-black .icon.historytable {
background: url("DefaultIcon.svg") center center no-repeat;
background: url("DefaultIcon.svg") center center no-repeat;
}

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import 'vs/css!sql/parts/disasterRecovery/backup/media/backupDialog';

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import {
ApplicationRef, ComponentFactoryResolver, NgModule,

View File

@@ -2,6 +2,7 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.backup-path-list {
overflow-x: auto;
}
@@ -34,8 +35,8 @@
}
.backup-dialog input[type="radio"] {
margin-top: -2px;
vertical-align: middle;
margin-top: -2px;
vertical-align: middle;
}
.backup-dialog .indent {

View File

@@ -715,8 +715,8 @@ export class RestoreDialog extends Modal {
public dispose(): void {
super.dispose();
for (var key in this._optionsMap) {
var widget: Widget = this._optionsMap[key];
for (let key in this._optionsMap) {
let widget: Widget = this._optionsMap[key];
widget.dispose();
delete this._optionsMap[key];
}

View File

@@ -3,7 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as azdata from 'azdata';
import * as DialogHelper from 'sql/workbench/browser/modal/dialogHelper';
import * as types from 'vs/base/common/types';
@@ -189,7 +188,7 @@ export class RestoreViewModel {
*/
public updateOptionWithPlanDetail(planDetails: { [key: string]: azdata.RestorePlanDetailInfo }): void {
if (planDetails) {
for (var key in planDetails) {
for (let key in planDetails) {
let optionElement = this._optionsMap[key];
if (optionElement) {
let planDetailInfo = planDetails[key];
@@ -219,7 +218,7 @@ export class RestoreViewModel {
this.defaultBackupFolder = configInfo['defaultBackupFolder'];
}
for (var key in configInfo) {
for (let key in configInfo) {
let optionElement = this._optionsMap[key];
if (optionElement) {
let planDetailInfo = configInfo[key];
@@ -258,7 +257,7 @@ export class RestoreViewModel {
this.updateLastBackupTaken('');
this.databaseList = [];
this.selectedBackupSets = null;
for (var key in this._optionsMap) {
for (let key in this._optionsMap) {
this._optionsMap[key].defaultValue = this.getDisplayValue(this._optionsMap[key].optionMetadata, this._optionsMap[key].optionMetadata.defaultValue);
this._optionsMap[key].currentValue = this._optionsMap[key].defaultValue;
this._onSetRestoreOption.fire({ optionName: key, value: this._optionsMap[key].defaultValue, isReadOnly: false });
@@ -296,4 +295,4 @@ export class RestoreViewModel {
this.targetDatabaseName = value;
this._onSetTargetDatabaseName.fire(value);
}
}
}

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as DOM from 'vs/base/browser/dom';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';

View File

@@ -1,39 +1,44 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.detailView-toggle
{
display: inline-block;
cursor: pointer;
display: inline-block;
cursor: pointer;
}
.detailView-toggle.expand
{
height: 20px;
width: 20px;
background: url(../images/arrow-right.gif) no-repeat center center;
height: 20px;
width: 20px;
background: url(../images/arrow-right.gif) no-repeat center center;
}
.detailView-toggle.collapse
{
height: 20px;
width: 20px;
background: url(../images/sort-desc.gif) no-repeat center center;
height: 20px;
width: 20px;
background: url(../images/sort-desc.gif) no-repeat center center;
}
.dynamic-cell-detail
{
z-index: 10000;
position: absolute;
background-color: #dae5e8;
margin: 0;
padding: 0;
width: 100%;
overflow: auto;
z-index: 10000;
position: absolute;
background-color: #dae5e8;
margin: 0;
padding: 0;
width: 100%;
overflow: auto;
}
.dynamic-cell-detail > :first-child
{
vertical-align: middle;
line-height: 13px;
vertical-align: middle;
line-height: 13px;
}
.dynamic-cell-detail > .detail-container {
overflow: auto;
display: block !important;
overflow: auto;
display: block !important;
}

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
agentview-component {
agentview-component {
height: 100%;
width : 100%;
display: block;
@@ -22,23 +22,23 @@ jobhistory-component {
}
.job-heading-container {
height: 50px;
border-bottom: 3px solid #f4f4f4;
display: -webkit-box;
height: 50px;
border-bottom: 3px solid #f4f4f4;
display: -webkit-box;
}
.vs-dark .job-heading-container {
border-bottom: 3px solid #444444;
border-bottom: 3px solid #444444;
}
.hc-black .job-heading-container {
border-bottom: 3px solid #2b56f2;
border-bottom: 3px solid #2b56f2;
}
.jobview-grid {
height: calc(100% - 75px);
height: calc(100% - 75px);
width : 100%;
display: block;
display: block;
}
.vs-dark #agentViewDiv .slick-header-column {
@@ -47,134 +47,134 @@ jobhistory-component {
#agentViewDiv .slick-header-column {
background-color: transparent !important;
border: 0px !important;
font-weight: bold;
border: 0px !important;
font-weight: bold;
}
.hc-black #jobsDiv jobsview-component .jobview-grid .grid-canvas .ui-widget-content.slick-row .slick-cell {
border: 1px solid #2b56f2;
border: 1px solid #2b56f2;
}
#jobsDiv jobsview-component .jobview-grid .grid-canvas .ui-widget-content.slick-row .slick-cell {
border-right: transparent !important;
border-left: transparent !important;
line-height: 33px !important;
border-right: transparent !important;
border-left: transparent !important;
line-height: 33px !important;
}
#jobsDiv .jobview-joblist {
height: 100%;
width: 100%;
height: 100%;
width: 100%;
}
#jobsDiv .jobview-jobnametable {
border: 0px;
width: 100%;
height: 100%;
border: 0px;
width: 100%;
height: 100%;
}
#jobsDiv .jobview-jobnameindicatorsuccess {
width: 5px;
background: green;
width: 5px;
background: green;
}
#jobsDiv .slick-cell.l1.r1 .jobview-jobnameindicatorfailure {
width: 5px;
background: red;
width: 5px;
background: red;
}
#jobsDiv .jobview-jobnameindicatorcancel {
width: 5px;
background: orange;
width: 5px;
background: orange;
}
#jobsDiv .jobview-grid .jobview-jobnameindicatorunknown {
width: 5px;
background: grey;
width: 5px;
background: grey;
}
#jobsDiv .jobview-grid .slick-cell.l1.r1.error-row .jobview-jobnametext {
width: 100%;
width: 100%;
}
#jobsDiv .jobview-grid .slick-cell.l1.r1 .jobview-jobnametext {
text-overflow: ellipsis;
width: 250px;
overflow: hidden;
white-space: nowrap;
display: inline-block;
text-overflow: ellipsis;
width: 250px;
overflow: hidden;
white-space: nowrap;
display: inline-block;
}
#operatorsDiv .joboperatorsview-grid .slick-cell.l1.r1 .operatorview-operatornametext,
#alertsDiv .jobalertsview-grid .slick-cell.l1.r1 .alertview-alertnametext,
#proxiesDiv .jobproxiesview-grid .slick-cell.l1.r1 .proxyview-proxynametext {
text-overflow: ellipsis;
width: 100%;
overflow: hidden;
white-space: nowrap;
display: inline-block;
text-overflow: ellipsis;
width: 100%;
overflow: hidden;
white-space: nowrap;
display: inline-block;
}
#jobsDiv .job-with-error {
border-bottom: none;
border-bottom: none;
}
.jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row .slick-cell.l1.r1.error-row {
width: 100%;
opacity: 1;
font-weight: 700;
color: orangered;
width: 100%;
opacity: 1;
font-weight: 700;
color: orangered;
}
.jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row .slick-cell._detail_selector.error-row {
opacity: 1;
opacity: 1;
}
#jobsDiv .jobview-splitter {
height: 1px;
width: 100%;
background-color: gray;
height: 1px;
width: 100%;
background-color: gray;
}
#jobsDiv .jobview-jobitem {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
flex-flow: row wrap;
white-space: nowrap;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
flex-flow: row wrap;
white-space: nowrap;
}
#jobsDiv .jobview-label {
padding-bottom: 10px;
padding-top: 10px;
padding-bottom: 10px;
padding-top: 10px;
}
#jobsDiv .jobview-highlight-none {
width: 5px;
margin-right: 10px;
width: 5px;
margin-right: 10px;
}
#jobsDiv .detail-container {
max-height: 100px !important;
line-height: 20px;
max-height: 100px !important;
line-height: 20px;
}
#jobsDiv .detail {
padding: 5px
padding: 5px
}
#jobsDiv .preload {
font-size: 13px;
font-size: 13px;
}
#jobsDiv .dynamic-cell-detail > :first-child {
vertical-align: middle;
line-height: 13px;
padding: 10px;
margin-left: 20px;
vertical-align: middle;
line-height: 13px;
padding: 10px;
margin-left: 20px;
}
.jobsview-icon {
background-image: url('./job.svg');
background-image: url('./job.svg');
}
.vs-dark .jobsview-icon,
@@ -183,7 +183,7 @@ jobhistory-component {
}
.alertsview-icon {
background-image: url('./alert.svg');
background-image: url('./alert.svg');
}
.vs-dark .alertsview-icon,
@@ -192,7 +192,7 @@ jobhistory-component {
}
.proxiesview-icon {
background-image: url('./proxy.svg');
background-image: url('./proxy.svg');
}
.vs-dark .proxiesview-icon,
@@ -201,7 +201,7 @@ jobhistory-component {
}
.operatorsview-icon {
background-image: url('./operator.svg');
background-image: url('./operator.svg');
}
.vs-dark .operatorsview-icon,
@@ -211,88 +211,88 @@ jobhistory-component {
agentview-component .jobview-grid .grid-canvas > .ui-widget-content.slick-row.even > .slick-cell,
agentview-component .jobview-grid .grid-canvas > .ui-widget-content.slick-row.odd > .slick-cell {
cursor: pointer;
cursor: pointer;
}
.vs-dark .jobview-grid > .monaco-table .slick-header-columns .slick-resizable-handle {
border-left: 1px dotted white;
border-left: 1px dotted white;
}
.hc-black .jobview-grid > .monaco-table .slick-header-columns .slick-resizable-handle {
border-left: 1px dotted #2b56f2;
border-left: 1px dotted #2b56f2;
}
.jobview-grid > .monaco-table .slick-header-columns .slick-resizable-handle {
border-left: 1px dotted #444444;
border-left: 1px dotted #444444;
}
.job-heading-container > .icon.in-progress {
height: 20px;
width: 20px;
padding-top: 16px;
padding-left: 15px;
height: 20px;
width: 20px;
padding-top: 16px;
padding-left: 15px;
}
#jobsDiv jobsview-component .jobview-grid .slick-cell.l1.r1.error-row td.jobview-jobnameindicatorfailure {
width: 0;
background: none;
width: 0;
background: none;
}
#jobsDiv .jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row:hover > .slick-cell,
#jobsDiv .jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row.hovered > .slick-cell,
#jobsDiv .jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row> .slick-cell.hovered {
background: #dcdcdc !important;
background: #dcdcdc !important;
}
.vs-dark #jobsDiv .jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row:hover > .slick-cell,
.vs-dark #jobsDiv .jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row > .slick-cell.hovered,
.vs-dark #jobsDiv .jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row.hovered > .slick-cell {
background: #444444 !important;
background: #444444 !important;
}
.hc-black #jobsDiv .jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row:hover > .slick-cell,
.hc-black #jobsDiv .jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row > .slick-cell.hovered,
.hc-black #jobsDiv .jobview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row.hovered > .slick-cell {
background: none !important;
background: none !important;
}
table.jobprevruns div.bar0, table.jobprevruns div.bar1, table.jobprevruns div.bar2,
table.jobprevruns div.bar3, table.jobprevruns div.bar4, table.jobprevruns div.bar5 {
padding-top: 3px;
padding-left: 5px;
padding-top: 3px;
padding-left: 5px;
width: 10px;
}
.jobview-grid .slick-cell.l10.r10 {
text-align: center;
display: inline-flex;
text-align: center;
display: inline-flex;
}
table.jobprevruns {
height: 100%;
height: 100%;
}
table.jobprevruns > tbody {
vertical-align: bottom;
vertical-align: bottom;
}
#alertsDiv .jobalertsview-grid {
height: calc(100% - 75px);
height: calc(100% - 75px);
width : 100%;
display: block;
display: block;
}
#operatorsDiv .joboperatorsview-grid {
height: calc(100% - 75px);
height: calc(100% - 75px);
width : 100%;
display: block;
overflow: scroll;
display: block;
overflow: scroll;
}
#proxiesDiv .jobproxiesview-grid {
height: calc(100% - 75px);
height: calc(100% - 75px);
width : 100%;
display: block;
display: block;
}
.vs .action-label.icon.refreshIcon {
@@ -309,108 +309,108 @@ table.jobprevruns > tbody {
}
jobsview-component .jobview-grid .slick-cell.error-row {
opacity: 0;
opacity: 0;
}
#alertsDiv jobalertsview-component .jobalertsview-grid .grid-canvas .ui-widget-content.slick-row .slick-cell {
border-right: transparent !important;
border-left: transparent !important;
line-height: 33px !important;
border-right: transparent !important;
border-left: transparent !important;
line-height: 33px !important;
}
#alertsDiv .jobalertsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row:hover > .slick-cell,
#alertsDiv .jobalertsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row.hovered > .slick-cell,
#alertsDiv .jobalertsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row> .slick-cell.hovered {
background: #dcdcdc !important;
background: #dcdcdc !important;
}
.vs-dark #alertsDiv .jobalertsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row:hover > .slick-cell,
.vs-dark #alertsDiv .jobalertsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row > .slick-cell.hovered,
.vs-dark #alertsDiv .jobalertsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row.hovered > .slick-cell {
background: #444444 !important;
background: #444444 !important;
}
.vs-dark .jobalertsview-grid > .monaco-table .slick-header-columns .slick-resizable-handle {
border-left: 1px dotted white;
border-left: 1px dotted white;
}
.jobalertsview-grid > .monaco-table .slick-header-columns .slick-resizable-handle {
border-left: 1px dotted #444444;
border-left: 1px dotted #444444;
}
#operatorsDiv joboperatorsview-component .joboperatorsview-grid .grid-canvas .ui-widget-content.slick-row .slick-cell {
border-right: transparent !important;
border-left: transparent !important;
line-height: 33px !important;
border-right: transparent !important;
border-left: transparent !important;
line-height: 33px !important;
}
#operatorsDiv .joboperatorsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row:hover > .slick-cell,
#operatorsDiv .joboperatorsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row.hovered > .slick-cell,
#operatorsDiv .joboperatorsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row> .slick-cell.hovered {
background: #dcdcdc !important;
background: #dcdcdc !important;
}
.vs-dark #operatorsDiv .joboperatorsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row:hover > .slick-cell,
.vs-dark #operatorsDiv .joboperatorsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row > .slick-cell.hovered,
.vs-dark #operatorsDiv .joboperatorsview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row.hovered > .slick-cell {
background: #444444 !important;
background: #444444 !important;
}
.vs-dark .joboperatorsview-grid > .monaco-table .slick-header-columns .slick-resizable-handle {
border-left: 1px dotted white;
border-left: 1px dotted white;
}
.joboperatorsview-grid > .monaco-table .slick-header-columns .slick-resizable-handle {
border-left: 1px dotted #444444;
border-left: 1px dotted #444444;
}
#proxiesDiv jobproxiesview-component .jobproxiesview-grid .grid-canvas .ui-widget-content.slick-row .slick-cell {
border-right: transparent !important;
border-left: transparent !important;
line-height: 33px !important;
border-right: transparent !important;
border-left: transparent !important;
line-height: 33px !important;
}
#proxiesDiv .jobproxiesview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row:hover > .slick-cell,
#proxiesDiv .jobproxiesview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row.hovered > .slick-cell,
#proxiesDiv .jobproxiesview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row> .slick-cell.hovered {
background: #dcdcdc !important;
background: #dcdcdc !important;
}
.vs-dark #proxiesDiv .jobproxiesview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row:hover > .slick-cell,
.vs-dark #proxiesDiv .jobproxiesview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row > .slick-cell.hovered,
.vs-dark #proxiesDiv .jobproxiesview-grid > .monaco-table .slick-viewport > .grid-canvas > .ui-widget-content.slick-row.hovered > .slick-cell {
background: #444444 !important;
background: #444444 !important;
}
.vs-dark .jobproxiesview-grid > .monaco-table .slick-header-columns .slick-resizable-handle {
border-left: 1px dotted white;
border-left: 1px dotted white;
}
.jobproxiesview-grid > .monaco-table .slick-header-columns .slick-resizable-handle {
border-left: 1px dotted #444444;
border-left: 1px dotted #444444;
}
.overview-container > .overview-tab > label {
margin-bottom: 0px;
margin-bottom: 0px;
}
#operatorsDiv .operatorview-operatornameindicatorenabled,
#alertsDiv .alertview-alertnameindicatorenabled,
#proxiesDiv .proxyview-proxynameindicatorenabled {
width: 5px;
background: green;
width: 5px;
background: green;
}
#operatorsDiv .operatorview-operatornameindicatordisabled,
#alertsDiv .alertview-alertnameindicatordisabled,
#proxiesDiv .proxyview-proxynameindicatordisabled {
width: 5px;
background: red;
width: 5px;
background: red;
}
#jobsDiv jobsview-component .monaco-toolbar.carbon-taskbar,
#operatorsDiv joboperatorsview-component .monaco-toolbar.carbon-taskbar,
#alertsDiv jobalertsview-component .monaco-toolbar.carbon-taskbar,
#proxiesDiv jobproxiesview-component .monaco-toolbar.carbon-taskbar {
margin: 10px 0px 10px 0px;
margin: 10px 0px 10px 0px;
}

View File

@@ -5,28 +5,28 @@
*--------------------------------------------------------------------------------------------*/
-->
<div class="jobhistory-heading-container">
<h1 class="job-heading">Jobs | {{this._agentJobInfo?.name}} </h1>
<div class="icon in-progress" *ngIf="showProgressWheel()"></div>
<h1 class="job-heading">Jobs | {{this._agentJobInfo?.name}} </h1>
<div class="icon in-progress" *ngIf="showProgressWheel()"></div>
</div>
<!-- Back -->
<div class="all-jobs">
<!-- Back -->
<div class="all-jobs">
<div class="back-button-icon" (click)="goToJobs()"></div>All Jobs
</div>
</div>
<!-- Actions -->
<div #actionbarContainer class="agent-actionbar-container"></div>
<!-- Overview -->
<div class="overview-container">
<div class="overview-tab" (click)='toggleCollapse()' tabindex="0">
<input id="accordion" type="checkbox">
<label for="accordion">
<div class="resultsViewCollapsible collapsed" (click)='toggleCollapse()'></div>
Overview
</label>
<div class="accordion-content">
<table align='left'>
<div class="overview-container">
<div class="overview-tab" (click)='toggleCollapse()' tabindex="0">
<input id="accordion" type="checkbox">
<label for="accordion">
<div class="resultsViewCollapsible collapsed" (click)='toggleCollapse()'></div>
Overview
</label>
<div class="accordion-content">
<table align='left'>
<tr>
<td id='col1'>
Category:
@@ -69,9 +69,9 @@
{{this._agentJobInfo?.nextRun}}
</td>
</tr>
</table>
</div>
</div>
</table>
</div>
</div>
</div>
<!-- Job History details -->
@@ -161,4 +161,4 @@
</div>
<h3 *ngIf="showSteps === false">No Steps Available</h3>
</div>
</div>
</div>

View File

@@ -96,7 +96,7 @@ export abstract class JobManagementView extends TabChild implements AfterContent
}
protected _keybindingFor(action: IAction): ResolvedKeybinding {
var [kb] = this._keybindingService.lookupKeybindings(action.id);
let [kb] = this._keybindingService.lookupKeybindings(action.id);
return kb;
}

View File

@@ -1,3 +1,8 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.model-card {
position: relative;
display: inline-block;

View File

@@ -72,7 +72,7 @@ export abstract class ComponentBase extends Disposable implements IComponent, On
abstract setLayout(layout: any): void;
getHtml(): any{
getHtml(): any {
return this._el.nativeElement;
}

View File

@@ -1,3 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.declarative-table {
padding: 5px 30px 0px 30px;
@@ -5,9 +9,6 @@
border-collapse: collapse;
}
.declarative-table-row {
}
.declarative-table-header {
padding: 5px;
border: 1px solid gray;

View File

@@ -1,3 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.divContainer {
display: block;

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
modelview-editor-component {
modelview-editor-component {
height: 100%;
width : 100%;
display: block;

View File

@@ -1,3 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.flexContainer {
display: flex;

View File

@@ -1,3 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.form-table {
display: table;

View File

@@ -1,3 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.modelview-group-container {
display: table;

View File

@@ -12,7 +12,6 @@ import { IDisposable } from 'vs/base/common/lifecycle';
* An instance of a model-backed component. This will be a UI element
*
* @export
* @interface IComponent
*/
export interface IComponent extends IDisposable {
descriptor: IComponentDescriptor;
@@ -44,7 +43,6 @@ export interface IComponentConfig {
* world to the frontend UI;
*
* @export
* @interface IComponentDescriptor
*/
export interface IComponentDescriptor {
/**
@@ -91,9 +89,8 @@ export interface IModelStore {
* Runs on a component immediately if the component exists, or runs on
* registration of the component otherwise
*
* @param {string} componentId unique identifier of the component
* @param {(component: IComponent) => void} action some action to perform
* @memberof IModelStore
* @param componentId unique identifier of the component
* @param action some action to perform
*/
eventuallyRunOnComponent<T>(componentId: string, action: (component: IComponent) => T): Promise<T>;
/**

View File

@@ -1,3 +1,8 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.modelview-loadingComponent-container {
display: flex;
flex-direction: row;

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
modelview-dom-component {
modelview-dom-component {
font-family: "Segoe WPC", "Segoe UI", "SFUIText-Light", "HelveticaNeue-Light", sans-serif, "Droid Sans Fallback";
font-size: 14px;
padding: 0 26px;

View File

@@ -1,21 +1,12 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { Registry } from 'vs/platform/registry/common/platform';
import * as azdata from 'azdata';
import { IModelStore, IComponentDescriptor, IComponent } from './interfaces';
import { Extensions, IComponentRegistry } from 'sql/platform/dashboard/common/modelComponentRegistry';
import { Deferred } from 'sql/base/common/promise';
import { entries } from 'sql/base/common/objects';
const componentRegistry = <IComponentRegistry>Registry.as(Extensions.ComponentContribution);
class ComponentDescriptor implements IComponentDescriptor {
constructor(public readonly id: string, public readonly type: string) {

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// import 'vs/css!./modelViewContent';
import { Component, forwardRef, Input, OnInit, Inject, ChangeDetectorRef } from '@angular/core';

View File

@@ -104,7 +104,7 @@ export class QueryTextEditor extends BaseTextEditor {
return nls.localize('queryTextEditorAriaLabel', 'modelview code editor for view model.');
}
public layout(dimension?: DOM.Dimension){
public layout(dimension?: DOM.Dimension) {
if (dimension) {
this._dimension = dimension;
}
@@ -175,11 +175,11 @@ export class QueryTextEditor extends BaseTextEditor {
this.setHeight(editorHeightUsingMinHeight);
}
public setMinimumHeight(height: number) : void {
public setMinimumHeight(height: number): void {
this._minHeight = height;
}
public setMaximumHeight(height: number) : void {
public setMaximumHeight(height: number): void {
this._maxHeight = height;
}

View File

@@ -1,3 +1,8 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.modelview-radiobutton-container {
align-items: flex-start;
}
@@ -5,7 +10,3 @@
.modelview-radiobutton-item {
align-self: flex-start ;
}
.modelview-radiobutton-title {
}

View File

@@ -5,15 +5,14 @@
import 'vs/css!./flexContainer';
import {
Component, Input, Inject, ChangeDetectorRef, forwardRef, ComponentFactoryResolver,
ViewChild, ViewChildren, ElementRef, Injector, OnDestroy, QueryList,
Component, Input, Inject, ChangeDetectorRef, forwardRef, ElementRef, OnDestroy,
} from '@angular/core';
import { IComponent, IComponentDescriptor, IModelStore } from 'sql/parts/modelComponents/interfaces';
import { FlexItemLayout, SplitViewLayout } from 'azdata';
import { FlexItem } from './flexContainer.component';
import { ContainerBase, ComponentBase } from 'sql/parts/modelComponents/componentBase';
import { Event, Emitter } from 'vs/base/common/event';
import { Event } from 'vs/base/common/event';
import { SplitView, Orientation, Sizing, IView } from 'vs/base/browser/ui/splitview/splitview';
class SplitPane implements IView {
@@ -91,7 +90,7 @@ export default class SplitViewContainer extends ContainerBase<FlexItemLayout> im
let basicView: SplitPane = new SplitPane();
basicView.orientation = orientation;
basicView.element = c.getHtml(),
basicView.component = c;
basicView.component = c;
basicView.minimumSize = 50;
basicView.maximumSize = Number.MAX_VALUE;
return basicView;
@@ -113,7 +112,7 @@ export default class SplitViewContainer extends ContainerBase<FlexItemLayout> im
if (this._componentWrappers) {
this._componentWrappers.forEach(item => {
var component = item.modelStore.getComponent(item.descriptor.id);
let component = item.modelStore.getComponent(item.descriptor.id);
item.modelStore.validate(component).then(value => {
if (value === true) {
let view = this.GetCorrespondingView(component, this._orientation);

View File

@@ -1,3 +1,8 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.tree-component-node-tile {
display: flex;
}

View File

@@ -1,9 +1,8 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { ChangeDetectorRef } from '@angular/core';
import { Registry } from 'vs/platform/registry/common/platform';

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
modelview-webview-component {
modelview-webview-component {
height: 100%;
width : 100%;
display: block;

View File

@@ -2,7 +2,8 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.profiler-filter-dialog {
.profiler-filter-dialog {
height: 300px;
padding: 10px;
overflow-y: scroll;

View File

@@ -263,7 +263,7 @@ export class ProfilerFilterDialog extends Modal {
case NotStartsWith:
return ProfilerFilterClauseOperator.NotStartsWith;
default:
throw `Not a valid operator: ${operator}`;
throw new Error(`Not a valid operator: ${operator}`);
}
}
@@ -294,7 +294,7 @@ export class ProfilerFilterDialog extends Modal {
case ProfilerFilterClauseOperator.NotStartsWith:
return NotStartsWith;
default:
throw `Not a valid operator: ${operator}`;
throw new Error(`Not a valid operator: ${operator}`);
}
}
}

View File

@@ -27,8 +27,8 @@ function matches(item: any, clauses: ProfilerFilterClause[]): boolean {
let expectedValueString: string = expectedValue === undefined ? undefined : expectedValue.toLocaleLowerCase();
let actualValueDate = new Date(actualValue).valueOf();
let expectedValueDate = new Date(expectedValue).valueOf();
let actualValueNumber = new Number(actualValue).valueOf();
let expectedValueNumber = new Number(expectedValue).valueOf();
let actualValueNumber = Number(actualValue).valueOf();
let expectedValueNumber = Number(expectedValue).valueOf();
if (isValidNumber(actualValue) && isValidNumber(expectedValue)) {
actualValue = actualValueNumber;
@@ -79,7 +79,7 @@ function matches(item: any, clauses: ProfilerFilterClause[]): boolean {
match = !actualValueString || !actualValueString.startsWith(expectedValueString);
break;
default:
throw `Not a valid operator: ${clause.operator}`;
throw new Error(`Not a valid operator: ${clause.operator}`);
}
}
@@ -93,7 +93,7 @@ function matches(item: any, clauses: ProfilerFilterClause[]): boolean {
}
function isValidNumber(value: string): boolean {
let num = new Number(value);
let num = Number(value);
return value !== undefined && !isNaN(num.valueOf()) && value.replace(' ', '') !== '';
}

View File

@@ -173,7 +173,7 @@ export class QueryInput extends EditorInput implements IEncodingSupport, IConnec
let profile = this._connectionManagementService.getConnectionProfile(this.uri);
let title = '';
if (this._description && this._description !== '') {
title = this._description + ' ';
title = this._description + ' ';
}
if (profile) {
if (profile.userName) {
@@ -184,7 +184,7 @@ export class QueryInput extends EditorInput implements IEncodingSupport, IConnec
} else {
title += localize('disconnected', 'disconnected');
}
return this._sql.getName() + (longForm ? (' - ' + title) : ` - ${trimTitle(title)}`);
return this._sql.getName() + (longForm ? (' - ' + title) : ` - ${trimTitle(title)}`);
} else {
return this._sql.getName();
}

View File

@@ -1,11 +1,8 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { Action } from 'vs/base/common/actions';
import { localize } from 'vs/nls';
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
@@ -150,8 +147,7 @@ export class CopyAllMessagesAction extends Action {
constructor(
private tree: ITree,
@IClipboardService private clipboardService: IClipboardService)
{
@IClipboardService private clipboardService: IClipboardService) {
super(CopyAllMessagesAction.ID, CopyAllMessagesAction.LABEL);
}

View File

@@ -3,14 +3,11 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { IPanelTab } from 'sql/base/browser/ui/panel/panel';
import { ChartView } from './chartView';
import QueryRunner from 'sql/platform/query/common/queryRunner';
import { localize } from 'vs/nls';
import { generateUuid } from 'vs/base/common/uuid';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
export class ChartTab implements IPanelTab {
@@ -18,7 +15,7 @@ export class ChartTab implements IPanelTab {
public readonly identifier = 'ChartTab';
public readonly view: ChartView;
constructor( @IInstantiationService instantiationService: IInstantiationService) {
constructor(@IInstantiationService instantiationService: IInstantiationService) {
this.view = instantiationService.createInstance(ChartView);
}

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { Chart as ChartJs } from 'chart.js';
import { mixin } from 'sql/base/common/objects';
@@ -303,7 +301,7 @@ export class Graph implements IInsight {
* color functionality
*/
const defaultColors = [
const defaultColors: Array<Color> = [
[255, 99, 132],
[54, 162, 235],
[255, 206, 86],
@@ -318,42 +316,71 @@ const defaultColors = [
[77, 83, 96]
];
type Color = [number, number, number];
function rgba(colour, alpha) {
interface ILineColor {
backgroundColor: string;
borderColor: string;
pointBackgroundColor: string;
pointBorderColor: string;
pointHoverBackgroundColor: string;
pointHoverBorderColor: string;
}
interface IBarColor {
backgroundColor: string;
borderColor: string;
hoverBackgroundColor: string;
hoverBorderColor: string;
}
interface IPieColors {
backgroundColor: Array<string>;
borderColor: Array<string>;
pointBackgroundColor: Array<string>;
pointBorderColor: Array<string>;
pointHoverBackgroundColor: Array<string>;
pointHoverBorderColor: Array<string>;
}
interface IPolarAreaColors {
backgroundColor: Array<string>;
borderColor: Array<string>;
hoverBackgroundColor: Array<string>;
hoverBorderColor: Array<string>;
}
function rgba(colour: Color, alpha: number): string {
return 'rgba(' + colour.concat(alpha).join(',') + ')';
}
function getRandomInt(min, max) {
function getRandomInt(min: number, max: number): number {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function getRandomColor() {
function getRandomColor(): Color {
return [getRandomInt(0, 255), getRandomInt(0, 255), getRandomInt(0, 255)];
}
/**
* Generate colors for line|bar charts
* @param index
* @returns {number[]|Color}
*/
function generateColor(index) {
function generateColor(index: number): Color {
return defaultColors[index] || getRandomColor();
}
/**
* Generate colors for pie|doughnut charts
* @param count
* @returns {Colors}
*/
function generateColors(count) {
var colorsArr = new Array(count);
for (var i = 0; i < count; i++) {
function generateColors(count: number): Array<Color> {
const colorsArr = new Array(count);
for (let i = 0; i < count; i++) {
colorsArr[i] = defaultColors[i] || getRandomColor();
}
return colorsArr;
}
function formatLineColor(colors) {
function formatLineColor(colors: Color): ILineColor {
return {
backgroundColor: rgba(colors, 0.4),
borderColor: rgba(colors, 1),
@@ -364,7 +391,7 @@ function formatLineColor(colors) {
};
}
function formatBarColor(colors) {
function formatBarColor(colors: Color): IBarColor {
return {
backgroundColor: rgba(colors, 0.6),
borderColor: rgba(colors, 1),
@@ -373,34 +400,30 @@ function formatBarColor(colors) {
};
}
function formatPieColors(colors) {
function formatPieColors(colors: Array<Color>): IPieColors {
return {
backgroundColor: colors.map(function (color) { return rgba(color, 0.6); }),
borderColor: colors.map(function () { return '#fff'; }),
pointBackgroundColor: colors.map(function (color) { return rgba(color, 1); }),
pointBorderColor: colors.map(function () { return '#fff'; }),
pointHoverBackgroundColor: colors.map(function (color) { return rgba(color, 1); }),
pointHoverBorderColor: colors.map(function (color) { return rgba(color, 1); })
backgroundColor: colors.map(color => rgba(color, 0.6)),
borderColor: colors.map(() => '#fff'),
pointBackgroundColor: colors.map(color => rgba(color, 1)),
pointBorderColor: colors.map(() => '#fff'),
pointHoverBackgroundColor: colors.map(color => rgba(color, 1)),
pointHoverBorderColor: colors.map(color => rgba(color, 1))
};
}
function formatPolarAreaColors(colors) {
function formatPolarAreaColors(colors: Array<Color>): IPolarAreaColors {
return {
backgroundColor: colors.map(function (color) { return rgba(color, 0.6); }),
borderColor: colors.map(function (color) { return rgba(color, 1); }),
hoverBackgroundColor: colors.map(function (color) { return rgba(color, 0.8); }),
hoverBorderColor: colors.map(function (color) { return rgba(color, 1); })
backgroundColor: colors.map(color => rgba(color, 0.6)),
borderColor: colors.map(color => rgba(color, 1)),
hoverBackgroundColor: colors.map(color => rgba(color, 0.8)),
hoverBorderColor: colors.map(color => rgba(color, 1))
};
}
/**
* Generate colors by chart type
* @param chartType
* @param index
* @param count
* @returns {Color}
*/
function getColors(chartType, index, count) {
function getColors(chartType: string, index: number, count: number): Color | ILineColor | IBarColor | IPieColors | IPolarAreaColors {
if (chartType === 'pie' || chartType === 'doughnut') {
return formatPieColors(generateColors(count));
}

View File

@@ -3,7 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { Dimension } from 'vs/base/browser/dom';
import { IInsightData } from 'sql/workbench/parts/dashboard/widgets/insights/interfaces';
@@ -35,7 +34,7 @@ export interface IInsight {
}
export interface IInsightCtor {
new (container: HTMLElement, options: IInsightOptions, ...services: { _serviceBrand: any; }[]): IInsight;
new(container: HTMLElement, options: IInsightOptions, ...services: { _serviceBrand: any; }[]): IInsight;
readonly types: Array<InsightType | ChartType>;
}

View File

@@ -1,3 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/* Disable repl hover highlight in tree. */
.monaco-workbench .message-tree .monaco-tree .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) {
@@ -7,10 +11,10 @@
/* Disable repl hover highlight in tree. */
.monaco-workbench .message-tree .monaco-tree .monaco-tree-row > .content {
line-height: 18px;
user-select: text;
word-wrap: break-word;
/* white-space: pre-wrap; */
word-break: break-all;
user-select: text;
word-wrap: break-word;
/* white-space: pre-wrap; */
word-break: break-all;
}
.monaco-workbench .message-tree .monaco-tree .monaco-tree-rows>.monaco-tree-row {

View File

@@ -1,3 +1,8 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.databaseListDropdown {
min-width: 150px;
}

View File

@@ -121,7 +121,7 @@ export class QueryEditor extends BaseEditor {
// PROPERTIES //////////////////////////////////////////////////////////
/**
* Returns the URI of this editor if it is connected.
* @returns {string} URI of the editor if connected, undefined otherwise
* @returns URI of the editor if connected, undefined otherwise
*/
public get connectedUri(): string {
return this._connectionManagementService.isConnected(this.uri)
@@ -131,7 +131,7 @@ export class QueryEditor extends BaseEditor {
/**
* Returns the URI of this editor if an input is associated with it
* @return {string} URI of this if input is associated, undefined otherwise
* @return URI of this if input is associated, undefined otherwise
*/
get uri(): string {
let input: QueryInput = <QueryInput>this.input;

View File

@@ -2,7 +2,6 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { QueryResultsInput, ResultsViewState } from 'sql/parts/query/common/queryResultsInput';
import { TabbedPanel, IPanelTab, IPanelView } from 'sql/base/browser/ui/panel/panel';
@@ -55,7 +54,7 @@ class ResultsView extends Disposable implements IPanelView {
if (this.state && this.state.gridPanelSize) {
panelSize = this.state.gridPanelSize;
} else if (this.currentDimension) {
panelSize = Math.round(this.currentDimension.height * .7);
panelSize = Math.round(this.currentDimension.height * 0.7);
} else {
panelSize = 200;
this.needsGridResize = true;
@@ -68,7 +67,7 @@ class ResultsView extends Disposable implements IPanelView {
if (this.state && this.state.gridPanelSize) {
panelSize = this.state.gridPanelSize;
} else if (this.currentDimension) {
panelSize = Math.round(this.currentDimension.height * .7);
panelSize = Math.round(this.currentDimension.height * 0.7);
} else {
panelSize = 200;
this.needsGridResize = true;
@@ -108,7 +107,7 @@ class ResultsView extends Disposable implements IPanelView {
}
this.currentDimension = dimension;
if (this.needsGridResize) {
this.panelViewlet.resizePanel(this.gridPanel, this.state.gridPanelSize || Math.round(this.currentDimension.height * .7));
this.panelViewlet.resizePanel(this.gridPanel, this.state.gridPanelSize || Math.round(this.currentDimension.height * 0.7));
// we have the right scroll position saved as part of gridPanel state, use this to re-position scrollbar
this.gridPanel.resetScrollPosition();
}

View File

@@ -266,9 +266,7 @@ export class RunQueryShortcutAction extends Action {
* Runs one of the optionally registered query shortcuts. This will lookup the shortcut's stored procedure
* reference from the settings, and if found will execute it plus any
*
* @param {QueryEditor} editor
* @param {number} shortcutIndex which shortcut should be run?
* @memberof RunQueryShortcutAction
* @param shortcutIndex which shortcut should be run?
*/
public runQueryShortcut(editor: QueryEditor, shortcutIndex: number): Thenable<void> {
if (!editor) {

View File

@@ -75,5 +75,5 @@
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
width: 100%;
}

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';

View File

@@ -3,13 +3,13 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { Dimension } from 'vs/base/browser/dom';
import { Disposable } from 'vs/base/common/lifecycle';
import { Event, Emitter } from 'vs/base/common/event';
import { IHorizontalSashLayoutProvider, IVerticalSashLayoutProvider,
ISashEvent, Orientation, Sash } from 'vs/base/browser/ui/sash/sash';
import {
IHorizontalSashLayoutProvider, IVerticalSashLayoutProvider,
ISashEvent, Orientation, Sash
} from 'vs/base/browser/ui/sash/sash';
// There is no need to import the sash CSS - 'vs/base/browser/ui/sash/sash' already includes it
/**

View File

@@ -74,7 +74,7 @@ export class AccountPickerListRenderer implements IListRenderer<azdata.Account,
if (account.displayInfo.userId && account.displayInfo.displayName) {
templateData.displayName.innerText = account.displayInfo.displayName + ' (' + account.displayInfo.userId + ')';
} else {
templateData.displayName.innerText = account.displayInfo.displayName ;
templateData.displayName.innerText = account.displayInfo.displayName;
}
if (account.isStale) {

View File

@@ -33,7 +33,7 @@ export class AccountPickerViewModel {
// PUBLIC METHODS //////////////////////////////////////////////////////
/**
* Loads an initial list of accounts from the account management service
* @return {Thenable<Account[]>} Promise to return the list of accounts
* @return Promise to return the list of accounts
*/
public initialize(): Thenable<azdata.Account[]> {
// Load a baseline of the accounts for the provider

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as azdata from 'azdata';
import { AccountAdditionResult } from 'sql/platform/accounts/common/eventTypes';

View File

@@ -50,21 +50,21 @@ export enum AzureResource {
export interface IAccountStore {
/**
* Adds the provided account if the account doesn't exist. Updates the account if it already exists
* @param {Account} account Account to add/update
* @return {Thenable<AccountAdditionResult>} Results of the add/update operation
* @param account Account to add/update
* @return Results of the add/update operation
*/
addOrUpdate(account: azdata.Account): Thenable<AccountAdditionResult>;
/**
* Retrieves all accounts, filtered by provider ID
* @param {string} providerId ID of the provider to filter by
* @return {Thenable<Account[]>} Promise to return all accounts that belong to the provided provider
* @param providerId ID of the provider to filter by
* @return Promise to return all accounts that belong to the provided provider
*/
getAccountsByProvider(providerId: string): Thenable<azdata.Account[]>;
/**
* Retrieves all accounts in the store. Returns empty array if store is not initialized
* @return {Thenable<Account[]>} Promise to return all accounts
* @return Promise to return all accounts
*/
getAllAccounts(): Thenable<azdata.Account[]>;

View File

@@ -34,7 +34,6 @@ export interface IAngularEventingService {
* Adds a listener for the dashboard to send events, should only be called once for each dashboard by the dashboard itself
* @param uri Uri of the dashboard
* @param cb Listening function
* @returns
*/
onAngularEvent(uri: string, cb: (event: IAngularEvent) => void): Subscription;

View File

@@ -143,7 +143,6 @@ export class CapabilitiesService extends Disposable implements ICapabilitiesServ
/**
* Register the capabilities provider and query the provider for its capabilities
* @param provider
*/
public registerProvider(provider: azdata.CapabilitiesProvider): void {
// request the capabilities from server

View File

@@ -3,7 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilitiesService';
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
import { ConnectionProfileGroup, IConnectionProfileGroup } from 'sql/platform/connection/common/connectionProfileGroup';
@@ -69,7 +68,7 @@ export class ConnectionConfig implements IConnectionConfig {
let newProfile = ConnectionProfile.convertToProfileStore(this._capabilitiesService, connectionProfile);
// Remove the profile if already set
var sameProfileInList = profiles.find(value => {
let sameProfileInList = profiles.find(value => {
let providerConnectionProfile = ConnectionProfile.createFromStoredProfile(value, this._capabilitiesService);
return providerConnectionProfile.matches(connectionProfile);
});
@@ -100,7 +99,6 @@ export class ConnectionConfig implements IConnectionConfig {
/**
*Returns group id
* @param groupName
*/
public addGroupFromProfile(profile: IConnectionProfile): Promise<string> {
if (profile.groupId && profile.groupId !== Utils.defaultGroupId) {
@@ -116,7 +114,6 @@ export class ConnectionConfig implements IConnectionConfig {
/**
*Returns group id
* @param groupName
*/
public addGroup(profileGroup: IConnectionProfileGroup): Promise<string> {
if (profileGroup.id) {
@@ -159,13 +156,12 @@ export class ConnectionConfig implements IConnectionConfig {
/**
* Replace duplicate ids with new ones. Sets id for the profiles without id
* @param profiles
*/
private fixConnectionIds(profiles: IConnectionProfileStore[]): boolean {
let idsCache: { [label: string]: boolean } = {};
let changed: boolean = false;
for (var index = 0; index < profiles.length; index++) {
var profile = profiles[index];
for (let index = 0; index < profiles.length; index++) {
let profile = profiles[index];
if (!profile.id) {
profile.id = generateUuid();
changed = true;

View File

@@ -3,17 +3,14 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as interfaces from 'sql/platform/connection/common/interfaces';
/**
* Sets sensible defaults for key connection properties, especially
* if connection to Azure
*
* @export connectionInfo/fixupConnectionCredentials
* @param {interfaces.IConnectionCredentials} connCreds connection to be fixed up
* @returns {interfaces.IConnectionCredentials} the updated connection
* @param connCreds connection to be fixed up
* @returns the updated connection
*/
export function fixupConnectionCredentials(connCreds: interfaces.IConnectionProfile): interfaces.IConnectionProfile {
if (!connCreds.serverName) {

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { Event } from 'vs/base/common/event';
import * as azdata from 'azdata';
@@ -221,18 +219,15 @@ export interface IConnectionManagementService {
* Sends a notification that the language flavor for a given URI has changed.
* For SQL, this would be the specific SQL implementation being used.
*
* @param {string} uri the URI of the resource whose language has changed
* @param {string} language the base language
* @param {string} flavor the specific language flavor that's been set
*
* @memberof IConnectionManagementService
* @param uri the URI of the resource whose language has changed
* @param language the base language
* @param flavor the specific language flavor that's been set
*/
doChangeLanguageFlavor(uri: string, language: string, flavor: string): void;
/**
* Ensures that a default language flavor is set for a URI, if none has already been defined.
* @param {string} uri document identifier
* @memberof ConnectionManagementService
* @param uri document identifier
*/
ensureDefaultLanguageFlavor(uri: string): void;
@@ -243,22 +238,22 @@ export interface IConnectionManagementService {
/**
* Get a copy of the connection profile with its passwords removed
* @param {IConnectionProfile} profile The connection profile to remove passwords from
* @returns {IConnectionProfile} A copy of the connection profile with passwords removed
* @param profile The connection profile to remove passwords from
* @returns A copy of the connection profile with passwords removed
*/
removeConnectionProfileCredentials(profile: IConnectionProfile): IConnectionProfile;
/**
* Get the credentials for a connected connection profile, as they would appear in the options dictionary
* @param {string} profileId The id of the connection profile to get the password for
* @returns {{ [name: string]: string }} A dictionary containing the credentials as they would be included
* @param profileId The id of the connection profile to get the password for
* @returns A dictionary containing the credentials as they would be included
* in the connection profile's options dictionary, or undefined if the profile is not connected
*/
getActiveConnectionCredentials(profileId: string): { [name: string]: string };
/**
* Get the ServerInfo for a connected connection profile
* @param {string} profileId The id of the connection profile to get the password for
* @param profileId The id of the connection profile to get the password for
* @returns ServerInfo
*/
getServerInfo(profileId: string): azdata.ServerInfo;

View File

@@ -1,9 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
import * as azdata from 'azdata';

View File

@@ -2,7 +2,6 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
import * as WorkbenchUtils from 'sql/workbench/common/sqlWorkbenchUtils';
@@ -703,8 +702,6 @@ export class ConnectionManagementService extends Disposable implements IConnecti
/**
* Returns a formatted URI in case the database field is empty for the original
* URI, which happens when the connected database is master or the default database
* @param uri
* @param connectionProfile
*/
public getFormattedUri(uri: string, connectionProfile: IConnectionProfile): string {
if (this._connectionStatusManager.isDefaultTypeUri(uri)) {
@@ -718,11 +715,10 @@ export class ConnectionManagementService extends Disposable implements IConnecti
* Sends a notification that the language flavor for a given URI has changed.
* For SQL, this would be the specific SQL implementation being used.
*
* @param {string} uri the URI of the resource whose language has changed
* @param {string} language the base language
* @param {string} flavor the specific language flavor that's been set
* @param uri the URI of the resource whose language has changed
* @param language the base language
* @param flavor the specific language flavor that's been set
* @throws {Error} if the provider is not in the list of registered providers
* @memberof ConnectionManagementService
*/
public doChangeLanguageFlavor(uri: string, language: string, provider: string): void {
if (this._providers.has(provider)) {
@@ -738,8 +734,7 @@ export class ConnectionManagementService extends Disposable implements IConnecti
/**
* Ensures that a default language flavor is set for a URI, if none has already been defined.
* @param {string} uri document identifier
* @memberof ConnectionManagementService
* @param uri document identifier
*/
public ensureDefaultLanguageFlavor(uri: string): void {
if (!this.getProviderIdFromUri(uri)) {
@@ -973,7 +968,7 @@ export class ConnectionManagementService extends Disposable implements IConnecti
return new Promise<boolean>((resolve, reject) => {
// If the URI is connected, disconnect it and the editor
if (self.isConnected(owner.uri)) {
var connection = self.getConnectionProfile(owner.uri);
let connection = self.getConnectionProfile(owner.uri);
owner.onDisconnect();
resolve(self.doDisconnect(owner.uri, connection));

View File

@@ -2,7 +2,6 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { ConnectionManagementInfo } from 'sql/platform/connection/common/connectionManagementInfo';
import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilitiesService';
@@ -16,7 +15,7 @@ export class ConnectionStatusManager {
private _connections: { [id: string]: ConnectionManagementInfo };
constructor( @ICapabilitiesService private _capabilitiesService: ICapabilitiesService) {
constructor(@ICapabilitiesService private _capabilitiesService: ICapabilitiesService) {
this._connections = {};
}

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as Constants from 'sql/platform/connection/common/constants';
import * as ConnInfo from 'sql/platform/connection/common/connectionInfo';
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
@@ -24,7 +22,6 @@ const MAX_CONNECTIONS_DEFAULT = 25;
* Manages the connections list including saved profiles and the most recently used connections
*
* @export
* @class ConnectionStore
*/
export class ConnectionStore {
private _memento: any;
@@ -65,10 +62,9 @@ export class ConnectionStore {
/**
* Creates a formatted credential usable for uniquely identifying a SQL Connection.
* This string can be decoded but is not optimized for this.
* @static
* @param {IConnectionProfile} connectionProfile connection profile - require
* @param {string} itemType type of the item (MRU or Profile) - optional
* @returns {string} formatted string with server, DB and username
* @param connectionProfile connection profile - require
* @param itemType type of the item (MRU or Profile) - optional
* @returns formatted string with server, DB and username
*/
public formatCredentialId(connectionProfile: IConnectionProfile, itemType?: string): string {
let connectionProfileInstance: ConnectionProfile = ConnectionProfile.fromIConnectionProfile(
@@ -120,9 +116,9 @@ export class ConnectionStore {
}
resolve({ profile: credentialsItem, savedCred: !!savedCred });
},
reason => {
reject(reason);
});
reason => {
reject(reason);
});
} else {
// No need to look up the password
resolve({ profile: credentialsItem, savedCred: credentialsItem.savePassword });
@@ -134,9 +130,9 @@ export class ConnectionStore {
* Saves a connection profile to the user settings.
* Password values are stored to a separate credential store if the "savePassword" option is true
*
* @param {IConnectionProfile} profile the profile to save
* @param {forceWritePlaintextPassword} whether the plaintext password should be written to the settings file
* @returns {Promise<IConnectionProfile>} a Promise that returns the original profile, for help in chaining calls
* @param profile the profile to save
* @param whether the plaintext password should be written to the settings file
* @returns a Promise that returns the original profile, for help in chaining calls
*/
public saveProfile(profile: IConnectionProfile, forceWritePlaintextPassword?: boolean): Promise<IConnectionProfile> {
const self = this;
@@ -172,8 +168,8 @@ export class ConnectionStore {
/**
* Saves a connection profile group to the user settings.
*
* @param {IConnectionProfileGroup} profile the profile group to save
* @returns {Promise<string>} a Promise that returns the id of connection group
* @param profile the profile group to save
* @returns a Promise that returns the id of connection group
*/
public saveProfileGroup(profile: IConnectionProfileGroup): Promise<string> {
const self = this;
@@ -205,7 +201,7 @@ export class ConnectionStore {
* Gets the list of recently used connections. These will not include the password - a separate call to
* {addSavedPassword} is needed to fill that before connecting
*
* @returns {azdata.ConnectionInfo} the array of connections, empty if none are found
* @returns the array of connections, empty if none are found
*/
public getRecentlyUsedConnections(providers?: string[]): ConnectionProfile[] {
let configValues: IConnectionProfile[] = this._memento[Constants.recentConnections];
@@ -245,7 +241,7 @@ export class ConnectionStore {
* Gets the list of active connections. These will not include the password - a separate call to
* {addSavedPassword} is needed to fill that before connecting
*
* @returns {azdata.ConnectionInfo} the array of connections, empty if none are found
* @returns the array of connections, empty if none are found
*/
public getActiveConnections(): ConnectionProfile[] {
let configValues: IConnectionProfile[] = this._memento[Constants.activeConnections];
@@ -272,9 +268,9 @@ export class ConnectionStore {
* Connection is only added if there are no other connections with the same connection ID in the list.
* Password values are stored to a separate credential store if the "savePassword" option is true
*
* @param {IConnectionCredentials} conn the connection to add
* @param {boolean} addToMru Whether to add this connection to the MRU
* @returns {Promise<void>} a Promise that returns when the connection was saved
* @param conn the connection to add
* @param addToMru Whether to add this connection to the MRU
* @returns a Promise that returns when the connection was saved
*/
public async addActiveConnection(conn: IConnectionProfile, addToMru: boolean): Promise<void> {
if (addToMru) {
@@ -459,7 +455,7 @@ export class ConnectionStore {
this.addGroupFullNameToMap(group.id, connectionGroup.fullName);
if (connections) {
let connectionsForGroup = connections.filter(conn => conn.groupId === connectionGroup.id);
var conns = [];
let conns = [];
connectionsForGroup.forEach((conn) => {
conn.groupFullName = connectionGroup.fullName;
conns.push(conn);

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
import { IConnectionProfileGroup, ConnectionProfileGroup } from 'sql/platform/connection/common/connectionProfileGroup';
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
@@ -13,7 +11,6 @@ import { ConnectionProfile } from 'sql/platform/connection/common/connectionProf
* Interface for a configuration file that stores connection profiles.
*
* @export
* @interface IConnectionConfig
*/
export interface IConnectionConfig {
addConnection(profile: IConnectionProfile): Promise<IConnectionProfile>;

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { Disposable } from 'vs/base/common/lifecycle';
import { isString } from 'vs/base/common/types';
@@ -228,7 +226,7 @@ export class ProviderConnectionInfo extends Disposable implements azdata.Connect
idNames.sort();
let idValues: string[] = [];
for (var index = 0; index < idNames.length; index++) {
for (let index = 0; index < idNames.length; index++) {
let value = this.options[idNames[index]];
value = value ? value : '';
idValues.push(`${idNames[index]}${ProviderConnectionInfo.nameValueSeparator}${value}`);

View File

@@ -3,12 +3,9 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { OptionsDialog } from 'sql/workbench/browser/modal/optionsDialog';
import { DialogModal } from 'sql/platform/dialog/dialogModal';
import { WizardModal } from 'sql/platform/dialog/wizardModal';
import { Dialog, Wizard, DialogTab } from 'sql/platform/dialog/dialogTypes';
import { Dialog, Wizard } from 'sql/platform/dialog/dialogTypes';
import { IModalOptions } from 'sql/workbench/browser/modal/modal';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
@@ -19,7 +16,7 @@ export class CustomDialogService {
private _dialogModals = new Map<Dialog, DialogModal>();
private _wizardModals = new Map<Wizard, WizardModal>();
constructor( @IInstantiationService private _instantiationService: IInstantiationService) { }
constructor(@IInstantiationService private _instantiationService: IInstantiationService) { }
public showDialog(dialog: Dialog, dialogName?: string, options?: IModalOptions): void {
let name = dialogName ? dialogName : 'CustomDialog';

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';

View File

@@ -75,5 +75,5 @@
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
width: 100%;
}

View File

@@ -1,7 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';

View File

@@ -67,7 +67,7 @@ export class FileBrowserService implements IFileBrowserService {
&& fileBrowserOpenedParams.fileTree.rootNode
&& fileBrowserOpenedParams.fileTree.selectedNode
) {
var fileTree = this.convertFileTree(null, fileBrowserOpenedParams.fileTree.rootNode, fileBrowserOpenedParams.fileTree.selectedNode.fullPath, fileBrowserOpenedParams.ownerUri);
let fileTree = this.convertFileTree(null, fileBrowserOpenedParams.fileTree.rootNode, fileBrowserOpenedParams.fileTree.selectedNode.fullPath, fileBrowserOpenedParams.ownerUri);
this._onAddFileTree.fire({ rootNode: fileTree.rootNode, selectedNode: fileTree.selectedNode, expandedNodes: fileTree.expandedNodes });
} else {
let genericErrorMessage = localize('fileBrowserErrorMessage', 'An error occured while loading the file browser.');
@@ -84,7 +84,7 @@ export class FileBrowserService implements IFileBrowserService {
const provider = this.getProvider(fileNode.ownerUri);
if (provider) {
provider.expandFolderNode(fileNode.ownerUri, fileNode.fullPath).then(result => {
var mapKey = self.generateResolveMapKey(fileNode.ownerUri, fileNode.fullPath);
let mapKey = self.generateResolveMapKey(fileNode.ownerUri, fileNode.fullPath);
self._expandResolveMap[mapKey] = resolve;
}, error => {
reject(error);
@@ -96,12 +96,12 @@ export class FileBrowserService implements IFileBrowserService {
}
public onFolderNodeExpanded(handle: number, fileBrowserExpandedParams: azdata.FileBrowserExpandedParams) {
var mapKey = this.generateResolveMapKey(fileBrowserExpandedParams.ownerUri, fileBrowserExpandedParams.expandPath);
var expandResolve = this._expandResolveMap[mapKey];
let mapKey = this.generateResolveMapKey(fileBrowserExpandedParams.ownerUri, fileBrowserExpandedParams.expandPath);
let expandResolve = this._expandResolveMap[mapKey];
if (expandResolve) {
if (fileBrowserExpandedParams.succeeded === true) {
// get the expanded folder node
var expandedNode = this._pathToFileNodeMap[fileBrowserExpandedParams.expandPath];
let expandedNode = this._pathToFileNodeMap[fileBrowserExpandedParams.expandPath];
if (expandedNode) {
if (fileBrowserExpandedParams.children && fileBrowserExpandedParams.children.length > 0) {
expandedNode.children = this.convertChildren(expandedNode, fileBrowserExpandedParams.children, fileBrowserExpandedParams.ownerUri);
@@ -158,9 +158,9 @@ export class FileBrowserService implements IFileBrowserService {
private convertFileTree(parentNode: FileNode, fileTreeNode: azdata.FileTreeNode, expandPath: string, ownerUri: string): FileBrowserTree {
FileBrowserService.fileNodeId += 1;
var expandedNodes: FileNode[] = [];
var selectedNode: FileNode;
var fileNode = new FileNode(FileBrowserService.fileNodeId.toString(),
let expandedNodes: FileNode[] = [];
let selectedNode: FileNode;
let fileNode = new FileNode(FileBrowserService.fileNodeId.toString(),
fileTreeNode.name,
fileTreeNode.fullPath,
fileTreeNode.isFile,
@@ -174,9 +174,9 @@ export class FileBrowserService implements IFileBrowserService {
}
if (fileTreeNode.children) {
var convertedChildren = [];
for (var i = 0; i < fileTreeNode.children.length; i++) {
var convertedFileTree: FileBrowserTree = this.convertFileTree(fileNode, fileTreeNode.children[i], expandPath, ownerUri);
let convertedChildren = [];
for (let i = 0; i < fileTreeNode.children.length; i++) {
let convertedFileTree: FileBrowserTree = this.convertFileTree(fileNode, fileTreeNode.children[i], expandPath, ownerUri);
convertedChildren.push(convertedFileTree.rootNode);
if (convertedFileTree.expandedNodes.length > 0) {
@@ -206,11 +206,11 @@ export class FileBrowserService implements IFileBrowserService {
}
private convertChildren(expandedNode: FileNode, childrenToConvert: azdata.FileTreeNode[], ownerUri: string): FileNode[] {
var childrenNodes = [];
let childrenNodes = [];
for (var i = 0; i < childrenToConvert.length; i++) {
for (let i = 0; i < childrenToConvert.length; i++) {
FileBrowserService.fileNodeId += 1;
var childNode = new FileNode(FileBrowserService.fileNodeId.toString(),
let childNode = new FileNode(FileBrowserService.fileNodeId.toString(),
childrenToConvert[i].name,
childrenToConvert[i].fullPath,
childrenToConvert[i].isFile,

View File

@@ -104,7 +104,7 @@ export class RunJobAction extends Action {
return new Promise<boolean>((resolve, reject) => {
this.jobManagementService.jobAction(ownerUri, jobName, JobActions.Run).then(result => {
if (result.success) {
var startMsg = nls.localize('jobSuccessfullyStarted', ': The job was successfully started.');
let startMsg = nls.localize('jobSuccessfullyStarted', ': The job was successfully started.');
this.notificationService.info(jobName + startMsg);
refreshAction.run(context);
resolve(true);
@@ -140,7 +140,7 @@ export class StopJobAction extends Action {
this.jobManagementService.jobAction(ownerUri, jobName, JobActions.Stop).then(result => {
if (result.success) {
refreshAction.run(context);
var stopMsg = nls.localize('jobSuccessfullyStopped', ': The job was successfully stopped.');
let stopMsg = nls.localize('jobSuccessfullyStopped', ': The job was successfully stopped.');
this.notificationService.info(jobName + stopMsg);
resolve(true);
} else {

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
@@ -39,7 +37,7 @@ export class MetadataService implements IMetadataService {
private _providers: { [handle: string]: azdata.MetadataProvider; } = Object.create(null);
constructor( @IConnectionManagementService private _connectionService: IConnectionManagementService) {
constructor(@IConnectionManagementService private _connectionService: IConnectionManagementService) {
}
public getMetadata(connectionUri: string): Thenable<azdata.ProviderMetadata> {

View File

@@ -396,14 +396,14 @@ export class ResultSerializer {
this._editorService.openEditor(input, { pinned: true })
.then(
(success) => {
},
(error: any) => {
this._notificationService.notify({
severity: Severity.Error,
message: error
});
}
(success) => {
},
(error: any) => {
this._notificationService.notify({
severity: Severity.Error,
message: error
});
}
);
}
}

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
export const ISqlOAuthService = createDecorator<ISqlOAuthService>('sqlOAuthService');
@@ -19,16 +17,16 @@ export interface ISqlOAuthService {
/**
* Sends request to main thread to handle OAuth request
* @param {string} eventId Unique ID of the request to return upon completion
* @param {string} url URL to load to do OAuth
* @param {boolean} silent Whether or not to show the OAuth window
* @return {Thenable<string>} Promise to return an authorization code
* @param eventId Unique ID of the request to return upon completion
* @param url URL to load to do OAuth
* @param silent Whether or not to show the OAuth window
* @return Promise to return an authorization code
*/
performOAuthAuthorization(eventId: string, url: string, silent: boolean): void;
/**
* Registers a handler for the oauth-reply event on the IPC channel
* @param {(event, args) => void} handler Handler to call when the event is triggered
* @param handler Handler to call when the event is triggered
*/
registerOAuthCallback(handler: (event, args) => void): void;
}

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as electron from 'electron';
import { ISqlOAuthService } from 'sql/platform/oAuth/common/sqlOAuthService';
@@ -18,10 +16,10 @@ export class SqlOAuthService implements ISqlOAuthService {
/**
* Sends request to main thread to handle OAuth request
* @param {string} eventId Unique ID of the request to return upon completion
* @param {string} url URL to load to do OAuth
* @param {boolean} silent Whether or not to show the OAuth window
* @return {Thenable<string>} Promise to return an authorization code
* @param eventId Unique ID of the request to return upon completion
* @param url URL to load to do OAuth
* @param silent Whether or not to show the OAuth window
* @return Promise to return an authorization code
*/
performOAuthAuthorization(eventId: string, url: string, silent: boolean): void {
// Setup the args and send the IPC call
@@ -37,7 +35,7 @@ export class SqlOAuthService implements ISqlOAuthService {
/**
* Registers a handler for the oauth-reply event on the IPC channel
* @param {(event, args) => void} handler Handler to call when the event is triggered
* @param handler Handler to call when the event is triggered
*/
registerOAuthCallback(handler: (event, args) => void): void {
electron.ipcRenderer.on('oauth-reply', handler);

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
@@ -50,14 +48,10 @@ export class ScriptingService implements IScriptingService {
private _providers: { [handle: string]: azdata.ScriptingProvider; } = Object.create(null);
private failedScriptingOperations: { [operationId: string]: azdata.ScriptingCompleteResult } = {};
constructor( @IConnectionManagementService private _connectionService: IConnectionManagementService) { }
constructor(@IConnectionManagementService private _connectionService: IConnectionManagementService) { }
/**
* Call the service for scripting based on provider and scripting operation
* @param connectionUri
* @param metadata
* @param operation
* @param paramDetails
*/
public script(connectionUri: string, metadata: azdata.ObjectMetadata, operation: ScriptOperation, paramDetails: azdata.ScriptingParamDetails): Thenable<azdata.ScriptingResult> {
let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri);
@@ -73,8 +67,6 @@ export class ScriptingService implements IScriptingService {
/**
* Callback method for when scripting is complete
* @param handle
* @param scriptingCompleteResult
*/
public onScriptingComplete(handle: number, scriptingCompleteResult: azdata.ScriptingCompleteResult): void {
if (scriptingCompleteResult && scriptingCompleteResult.hasError && scriptingCompleteResult.errorMessage) {

View File

@@ -3,7 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as azdata from 'azdata';
import { TaskNode, TaskStatus, TaskExecutionMode } from 'sql/workbench/parts/taskHistory/common/taskNode';
import { IQueryEditorService } from 'sql/workbench/services/queryEditor/common/queryEditorService';
@@ -192,7 +191,7 @@ export class TaskService implements ITaskService {
}
public handleTaskComplete(eventArgs: TaskStatusChangeArgs): void {
var task = this.getTaskInQueue(eventArgs.taskId);
let task = this.getTaskInQueue(eventArgs.taskId);
if (task) {
task.status = eventArgs.status;
if (eventArgs.message) {
@@ -240,7 +239,7 @@ export class TaskService implements ITaskService {
public getNumberOfInProgressTasks(): number {
if (this._taskQueue.hasChildren) {
var inProgressTasks = this._taskQueue.children.filter(x => x.status === TaskStatus.InProgress);
let inProgressTasks = this._taskQueue.children.filter(x => x.status === TaskStatus.InProgress);
return inProgressTasks ? inProgressTasks.length : 0;
}
return 0;
@@ -249,4 +248,4 @@ export class TaskService implements ITaskService {
public getAllTasks(): TaskNode {
return this._taskQueue;
}
}
}

View File

@@ -41,7 +41,7 @@ export class SqlTelemetryContribution extends Disposable implements IWorkbenchCo
/* send monthly uses once the user launches on a day that's in a month
after the last time we sent a monthly usage count */
after the last time we sent a monthly usage count */
const monthlyUseCount: number = storageService.getNumber('telemetry.monthlyUseCount', StorageScope.GLOBAL, 0);
if (this.didMonthChange(monthlyLastUseDate)) {
telemetryService.publicLog('telemetry.monthlyUse', { monthlyFirstUse: true });
@@ -136,9 +136,9 @@ export class SqlTelemetryContribution extends Disposable implements IWorkbenchCo
}
/**
Growth Metrics
Active here means opened app atleast 1 time in a month
*/
* Growth Metrics
* Active here means opened app atleast 1 time in a month
*/
export enum UserGrowthType {
// first time opening app
NewUser = 1,

39
src/sql/sqlops.d.ts vendored
View File

@@ -54,8 +54,8 @@ declare module 'sqlops' {
export namespace credentials {
/**
* Register a credential provider to handle credential requests.
* @param {CredentialProvider} provider The provider to register
* @return {Disposable} Handle to the provider for disposal
* @param provider The provider to register
* @return Handle to the provider for disposal
*/
export function registerProvider(provider: CredentialProvider): vscode.Disposable;
@@ -63,8 +63,8 @@ declare module 'sqlops' {
* Retrieves a provider from the extension host if one has been registered. Any credentials
* accessed with the returned provider will have the namespaceId appended to credential ID
* to prevent extensions from trampling over each others' credentials.
* @param {string} namespaceId ID that will be appended to credential IDs.
* @return {Thenable<CredentialProvider>} Promise that returns the namespaced provider
* @param namespaceId ID that will be appended to credential IDs.
* @return Promise that returns the namespaced provider
*/
export function getProvider(namespaceId: string): Thenable<CredentialProvider>;
}
@@ -97,14 +97,14 @@ declare module 'sqlops' {
/**
* Get the credentials for an active connection
* @param {string} connectionId The id of the connection
* @returns {{ [name: string]: string}} A dictionary containing the credentials as they would be included in the connection's options dictionary
* @param connectionId The id of the connection
* @returns A dictionary containing the credentials as they would be included in the connection's options dictionary
*/
export function getCredentials(connectionId: string): Thenable<{ [name: string]: string }>;
/**
* Get ServerInfo for a connectionId
* @param {string} connectionId The id of the connection
* @param connectionId The id of the connection
* @returns ServerInfo
*/
export function getServerInfo(connectionId: string): Thenable<ServerInfo>;
@@ -133,35 +133,35 @@ declare module 'sqlops' {
* Get an Object Explorer node corresponding to the given connection and path. If no path
* is given, it returns the top-level node for the given connection. If there is no node at
* the given path, it returns undefined.
* @param {string} connectionId The id of the connection that the node exists on
* @param {string?} nodePath The path of the node to get
* @returns {ObjectExplorerNode} The node corresponding to the given connection and path,
* @param connectionId The id of the connection that the node exists on
* @param nodePath The path of the node to get
* @returns The node corresponding to the given connection and path,
* or undefined if no such node exists.
*/
export function getNode(connectionId: string, nodePath?: string): Thenable<ObjectExplorerNode>;
/**
* Get all active Object Explorer connection nodes
* @returns {ObjectExplorerNode[]} The Object Explorer nodes for each saved connection
* @returns The Object Explorer nodes for each saved connection
*/
export function getActiveConnectionNodes(): Thenable<ObjectExplorerNode[]>;
/**
* Find Object Explorer nodes that match the given information
* @param {string} connectionId The id of the connection that the node exists on
* @param {string} type The type of the object to retrieve
* @param {string} schema The schema of the object, if applicable
* @param {string} name The name of the object
* @param {string} database The database the object exists under, if applicable
* @param {string[]} parentObjectNames A list of names of parent objects in the tree, ordered from highest to lowest level
* @param connectionId The id of the connection that the node exists on
* @param type The type of the object to retrieve
* @param schema The schema of the object, if applicable
* @param name The name of the object
* @param database The database the object exists under, if applicable
* @param parentObjectNames A list of names of parent objects in the tree, ordered from highest to lowest level
* (for example when searching for a table's column, provide the name of its parent table for this argument)
*/
export function findNodes(connectionId: string, type: string, schema: string, name: string, database: string, parentObjectNames: string[]): Thenable<ObjectExplorerNode[]>;
/**
* Get connectionProfile from sessionId
* *@param {string} sessionId The id of the session that the node exists on
* @returns {IConnectionProfile} The IConnecitonProfile for the session
* @param sessionId The id of the session that the node exists on
* @returns The IConnecitonProfile for the session
*/
export function getSessionConnectionProfile(sessionId: string): Thenable<IConnectionProfile>;
@@ -1718,7 +1718,6 @@ declare module 'sqlops' {
export namespace window {
/**
* @deprecated this method has been deprecated and will be removed in a future release, please use sqlops.window.createWebViewDialog instead.
* @param title
*/
export function createDialog(
title: string

View File

@@ -13,7 +13,6 @@ declare module 'sqlops' {
/**
* Supports defining a model that can be instantiated as a view in the UI
* @export
* @interface ModelBuilder
*/
export interface ModelBuilder {
navContainer(): ContainerBuilder<NavContainer, any, any>;
@@ -117,7 +116,7 @@ declare module 'sqlops' {
* Creates a collection of child components and adds them all to this container
*
* @param formComponents the definitions
* @param {*} [itemLayout] Optional layout for the child items
* @param [itemLayout] Optional layout for the child items
*/
addFormItems(formComponents: Array<FormComponent | FormComponentGroup>, itemLayout?: FormItemLayout): void;
@@ -125,7 +124,7 @@ declare module 'sqlops' {
* Creates a child component and adds it to this container.
*
* @param formComponent the component to be added
* @param {*} [itemLayout] Optional layout for this child item
* @param [itemLayout] Optional layout for this child item
*/
addFormItem(formComponent: FormComponent | FormComponentGroup, itemLayout?: FormItemLayout): void;
@@ -139,7 +138,6 @@ declare module 'sqlops' {
/**
* Removes a from item from the from
* @param formComponent
*/
removeFormItem(formComponent: FormComponent | FormComponentGroup): boolean;
}
@@ -150,18 +148,16 @@ declare module 'sqlops' {
/**
* Sends any updated properties of the component to the UI
*
* @returns {Thenable<void>} Thenable that completes once the update
* @returns henable that completes once the update
* has been applied in the UI
* @memberof Component
*/
updateProperties(properties: { [key: string]: any }): Thenable<void>;
/**
* Sends an updated property of the component to the UI
*
* @returns {Thenable<void>} Thenable that completes once the update
* @returns Thenable that completes once the update
* has been applied in the UI
* @memberof Component
*/
updateProperty(key: string, value: any): Thenable<void>;
@@ -227,7 +223,7 @@ declare module 'sqlops' {
* Creates a collection of child components and adds them all to this container
*
* @param itemConfigs the definitions
* @param {*} [itemLayout] Optional layout for the child items
* @param [itemLayout] Optional layout for the child items
*/
addItems(itemConfigs: Array<Component>, itemLayout?: TItemLayout): void;
@@ -235,8 +231,8 @@ declare module 'sqlops' {
* Creates a child component and adds it to this container.
* Adding component to multiple containers is not supported
*
* @param {Component} component the component to be added
* @param {*} [itemLayout] Optional layout for this child item
* @param component the component to be added
* @param [itemLayout] Optional layout for this child item
*/
addItem(component: Component, itemLayout?: TItemLayout): void;
@@ -245,7 +241,7 @@ declare module 'sqlops' {
* Adding component to multiple containers is not supported
* @param component the component to be added
* @param index the index to insert the component to
* @param {*} [itemLayout] Optional layout for this child item
* @param [itemLayout] Optional layout for this child item
*/
insertItem(component: Component, index: number, itemLayout?: TItemLayout): void;
@@ -258,7 +254,7 @@ declare module 'sqlops' {
/**
* Defines the layout for this container
*
* @param {TLayout} layout object
* @param layout object
*/
setLayout(layout: TLayout): void;
}
@@ -1193,9 +1189,8 @@ declare module 'sqlops' {
}
/**
* creates a web view dialog
* @param title
*/
* creates a web view dialog
*/
export function createWebViewDialog(title: string): ModalDialog;
/**
@@ -1533,14 +1528,14 @@ declare module 'sqlops' {
/**
* Make connection for the query editor
* @param {string} fileUri file URI for the query editor
* @param {string} connectionId connection ID
* @param fileUri file URI for the query editor
* @param connectionId connection ID
*/
export function connect(fileUri: string, connectionId: string): Thenable<void>;
/**
* Run query if it is a query editor and it is already opened.
* @param {string} fileUri file URI for the query editor
* @param fileUri file URI for the query editor
*/
export function runQuery(fileUri: string): void;
}
@@ -1723,8 +1718,8 @@ declare module 'sqlops' {
export namespace connection {
/**
* List the databases that can be accessed from the given connection
* @param {string} connectionId The ID of the connection
* @returns {string[]} An list of names of databases
* @param connectionId The ID of the connection
* @returns An list of names of databases
*/
export function listDatabases(connectionId: string): Thenable<string[]>;
@@ -1739,7 +1734,6 @@ declare module 'sqlops' {
/**
* Opens the connection dialog, calls the callback with the result. If connection was successful
* returns the connection otherwise returns undefined
* @param callback
*/
export function openConnectionDialog(providers?: string[], initialConnectionProfile?: IConnectionProfile, connectionCompletionOptions?: IConnectionCompletionOptions): Thenable<connection.Connection>;
@@ -1754,7 +1748,6 @@ declare module 'sqlops' {
/**
* All notebook documents currently known to the system.
*
* @readonly
*/
export let notebookDocuments: NotebookDocument[];

View File

@@ -2,7 +2,6 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { nb, IConnectionProfile } from 'azdata';
import * as vsExtTypes from 'vs/workbench/api/common/extHostTypes';
@@ -555,12 +554,12 @@ export enum SchemaUpdateAction {
Add = 2
}
export enum SchemaDifferenceType {
export enum SchemaDifferenceType {
Object = 0,
Property = 1
}
export enum SchemaCompareEndpointType {
export enum SchemaCompareEndpointType {
database = 0,
dacpac = 1
}

View File

@@ -1,9 +1,8 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
import { SqlMainContext, MainThreadDashboardShape, ExtHostDashboardShape, SqlExtHostContext } from 'sql/workbench/api/node/sqlExtHost.protocol';
import { IExtHostContext } from 'vs/workbench/api/common/extHost.protocol';
@@ -15,14 +14,14 @@ export class MainThreadDashboard implements MainThreadDashboardShape {
constructor(
context: IExtHostContext,
@IDashboardService private _dashboardService: IDashboardService
@IDashboardService dashboardService: IDashboardService
) {
this._proxy = context.getProxy(SqlExtHostContext.ExtHostDashboard);
_dashboardService.onDidChangeToDashboard(e => {
dashboardService.onDidChangeToDashboard(e => {
this._proxy.$onDidChangeToDashboard(e);
});
_dashboardService.onDidOpenDashboard(e => {
dashboardService.onDidOpenDashboard(e => {
this._proxy.$onDidOpenDashboard(e);
});
}

View File

@@ -3,8 +3,6 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as azdata from 'azdata';
import { Disposable } from 'vs/workbench/api/common/extHostTypes';
import {
@@ -143,7 +141,7 @@ export class ExtHostAccountManagement extends ExtHostAccountManagementShape {
/**
* This method is for testing only, it is not exposed via the shape.
* @return {number} Number of providers that are currently registered
* @return Number of providers that are currently registered
*/
public getProviderCount(): number {
return Object.keys(this._providers).length;

View File

@@ -2,7 +2,6 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { IMainContext } from 'vs/workbench/api/common/extHost.protocol';
import { SqlMainContext, MainThreadCredentialManagementShape, ExtHostCredentialManagementShape } from 'sql/workbench/api/node/sqlExtHost.protocol';
@@ -93,7 +92,7 @@ export class ExtHostCredentialManagement extends ExtHostCredentialManagementShap
/**
* Helper method for tests. Not exposed via shape.
* @return {number} Number of providers registered
* @return Number of providers registered
*/
public getProviderCount(): number {
return Object.keys(this._adapter).length;

View File

@@ -358,11 +358,11 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
}
public $expandObjectExplorerNode(handle: number, nodeInfo: azdata.ExpandNodeInfo): Thenable<boolean> {
return this._resolveProvider<azdata.ObjectExplorerProviderBase> (handle).expandNode(nodeInfo);
return this._resolveProvider<azdata.ObjectExplorerProviderBase>(handle).expandNode(nodeInfo);
}
public $refreshObjectExplorerNode(handle: number, nodeInfo: azdata.ExpandNodeInfo): Thenable<boolean> {
return this._resolveProvider<azdata.ObjectExplorerProviderBase> (handle).refreshNode(nodeInfo);
return this._resolveProvider<azdata.ObjectExplorerProviderBase>(handle).refreshNode(nodeInfo);
}
public $closeObjectExplorerSession(handle: number, closeSessionInfo: azdata.ObjectExplorerCloseSessionInfo): Thenable<azdata.ObjectExplorerCloseSessionResponse> {

View File

@@ -99,15 +99,15 @@ export class ExtHostTreeView<T> extends vsTreeExt.ExtHostTreeView<T> {
console.error(`No tree item with id \'${parentHandle}\' found.`);
}
this._onNodeCheckedChanged.fire({element: parentElement, checked: checked});
this._onNodeCheckedChanged.fire({ element: parentElement, checked: checked });
}
onNodeSelectedChanged(parentHandles?: vsTreeExt.TreeItemHandle[]): void {
if (parentHandles) {
let nodes = parentHandles.map(parentHandle => {
return parentHandle ? this.getExtensionElement(parentHandle) : void 0;
return parentHandle ? this.getExtensionElement(parentHandle) : void 0;
});
this._onChangeSelection.fire({ selection: nodes});
this._onChangeSelection.fire({ selection: nodes });
}
}

View File

@@ -2,7 +2,6 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as azdata from 'azdata';
import * as vscode from 'vscode';
@@ -99,7 +98,7 @@ export class ExtHostNotebook implements ExtHostNotebookShape {
};
return details;
} catch (error) {
throw typeof(error) === 'string' ? new Error(error) : error;
throw typeof (error) === 'string' ? new Error(error) : error;
}
});
}
@@ -231,7 +230,7 @@ export class ExtHostNotebook implements ExtHostNotebookShape {
}
private findManagerForUri(uriString: string): NotebookManagerAdapter {
for(let manager of this.getAdapters(NotebookManagerAdapter)) {
for (let manager of this.getAdapters(NotebookManagerAdapter)) {
if (manager.uriString === uriString) {
return manager;
}
@@ -279,7 +278,7 @@ export class ExtHostNotebook implements ExtHostNotebookShape {
let value = await callback(manager);
return value;
} catch (error) {
throw typeof(error) === 'string' ? new Error(error) : error;
throw typeof (error) === 'string' ? new Error(error) : error;
}
}

View File

@@ -2,7 +2,6 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as azdata from 'azdata';
@@ -91,7 +90,7 @@ export class ExtHostNotebookDocumentData implements IDisposable {
}
private _validateIndex(index: number): number {
if (typeof(index) !== 'number') {
if (typeof (index) !== 'number') {
throw new Error('Invalid argument');
}

View File

@@ -2,7 +2,6 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as azdata from 'azdata';
import * as vscode from 'vscode';
@@ -70,7 +69,7 @@ export class NotebookEditorEdit {
private getAsRange(location: number | CellRange): CellRange {
let range: CellRange = null;
if (typeof (location) === 'number') {
range = new CellRange(location, location+1);
range = new CellRange(location, location + 1);
}
else if (location instanceof CellRange) {
range = location;
@@ -81,7 +80,7 @@ export class NotebookEditorEdit {
return range;
}
insertCell(value: Partial<azdata.nb.ICellContents>, location?: number): void {
insertCell(value: Partial<azdata.nb.ICellContents>, location?: number): void {
if (location === null || location === undefined) {
// If not specified, assume adding to end of list
location = this._document.cells.length;
@@ -92,11 +91,11 @@ export class NotebookEditorEdit {
deleteCell(index: number): void {
let range: CellRange = null;
if (typeof(index) === 'number') {
if (typeof (index) === 'number') {
// Currently only allowing single-cell deletion.
// Do this by saying the range extends over 1 cell so on the main thread
// we can delete that cell, then handle insertions
range = new CellRange(index, index+1);
range = new CellRange(index, index + 1);
} else {
throw new Error('Unrecognized index');
}
@@ -104,7 +103,7 @@ export class NotebookEditorEdit {
this._pushEdit(range, null, true);
}
private _pushEdit(range: azdata.nb.CellRange, cell: Partial<azdata.nb.ICellContents>, forceMoveMarkers: boolean): void {
private _pushEdit(range: azdata.nb.CellRange, cell: Partial<azdata.nb.ICellContents>, forceMoveMarkers: boolean): void {
let validRange = this._document.validateCellRange(range);
this._collectedEdits.push({
range: validRange,

Some files were not shown because too many files have changed in this diff Show More