mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-28 02:51:37 -05:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f7abf5a2d5 | ||
|
|
c8c6d072f6 | ||
|
|
4d9cc604b9 | ||
|
|
1dc76fa171 | ||
|
|
1d37b9ae9c | ||
|
|
26828602a8 | ||
|
|
e253f3ac89 | ||
|
|
4d59fdea1b | ||
|
|
98a313eb5b | ||
|
|
77e1cd8b32 | ||
|
|
dede5c5ef5 | ||
|
|
d156c0be3d | ||
|
|
dc0bc6e606 |
2
.yarnrc
2
.yarnrc
@@ -1,3 +1,3 @@
|
|||||||
disturl "https://atom.io/download/electron"
|
disturl "https://atom.io/download/electron"
|
||||||
target "2.0.8"
|
target "2.0.9"
|
||||||
runtime "electron"
|
runtime "electron"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
"azure-storage": "^2.1.0",
|
"azure-storage": "^2.1.0",
|
||||||
"decompress": "^4.2.0",
|
"decompress": "^4.2.0",
|
||||||
"documentdb": "1.13.0",
|
"documentdb": "1.13.0",
|
||||||
"service-downloader": "github:anthonydresser/service-downloader#0.1.2",
|
"service-downloader": "github:anthonydresser/service-downloader#0.1.5",
|
||||||
"fs-extra-promise": "^1.0.1",
|
"fs-extra-promise": "^1.0.1",
|
||||||
"mime": "^1.3.4",
|
"mime": "^1.3.4",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
|
|||||||
@@ -1002,7 +1002,7 @@ hoek@4.x.x:
|
|||||||
version "4.2.1"
|
version "4.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
|
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
|
||||||
|
|
||||||
http-proxy-agent@^2.0.0:
|
http-proxy-agent@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1025,7 +1025,7 @@ http-signature@~1.2.0:
|
|||||||
jsprim "^1.2.2"
|
jsprim "^1.2.2"
|
||||||
sshpk "^1.7.0"
|
sshpk "^1.7.0"
|
||||||
|
|
||||||
https-proxy-agent@^2.1.1:
|
https-proxy-agent@^2.2.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1843,14 +1843,14 @@ semver@^5.4.1:
|
|||||||
version "5.5.0"
|
version "5.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
||||||
|
|
||||||
"service-downloader@github:anthonydresser/service-downloader#0.1.2":
|
"service-downloader@github:anthonydresser/service-downloader#0.1.5":
|
||||||
version "0.1.2"
|
version "0.1.5"
|
||||||
resolved "https://codeload.github.com/anthonydresser/service-downloader/tar.gz/2aa9b336b6442e17e24693ddc907030575539798"
|
resolved "https://codeload.github.com/anthonydresser/service-downloader/tar.gz/6ebb0465573cc140e461a22f334260f55ef45546"
|
||||||
dependencies:
|
dependencies:
|
||||||
decompress "^4.2.0"
|
decompress "^4.2.0"
|
||||||
eventemitter2 "^5.0.1"
|
eventemitter2 "^5.0.1"
|
||||||
http-proxy-agent "^2.0.0"
|
http-proxy-agent "^2.1.0"
|
||||||
https-proxy-agent "^2.1.1"
|
https-proxy-agent "^2.2.1"
|
||||||
mkdirp "^0.5.1"
|
mkdirp "^0.5.1"
|
||||||
tmp "^0.0.33"
|
tmp "^0.0.33"
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.2.7",
|
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.2.7",
|
||||||
"opener": "^1.4.3",
|
"opener": "^1.4.3",
|
||||||
"service-downloader": "github:anthonydresser/service-downloader#0.1.4",
|
"service-downloader": "github:anthonydresser/service-downloader#0.1.5",
|
||||||
"vscode-extension-telemetry": "^0.0.5",
|
"vscode-extension-telemetry": "^0.0.5",
|
||||||
"vscode-nls": "^3.2.1"
|
"vscode-nls": "^3.2.1"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -177,14 +177,14 @@ graceful-fs@^4.1.10:
|
|||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
||||||
|
|
||||||
http-proxy-agent@^2.0.0:
|
http-proxy-agent@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "4"
|
agent-base "4"
|
||||||
debug "3.1.0"
|
debug "3.1.0"
|
||||||
|
|
||||||
https-proxy-agent@^2.1.1:
|
https-proxy-agent@^2.2.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -297,14 +297,14 @@ seek-bzip@^1.0.5:
|
|||||||
dependencies:
|
dependencies:
|
||||||
commander "~2.8.1"
|
commander "~2.8.1"
|
||||||
|
|
||||||
"service-downloader@github:anthonydresser/service-downloader#0.1.4":
|
"service-downloader@github:anthonydresser/service-downloader#0.1.5":
|
||||||
version "0.1.4"
|
version "0.1.5"
|
||||||
resolved "https://codeload.github.com/anthonydresser/service-downloader/tar.gz/3c0abdf8603aca85d2eacfac3c547173e41bf0c7"
|
resolved "https://codeload.github.com/anthonydresser/service-downloader/tar.gz/6ebb0465573cc140e461a22f334260f55ef45546"
|
||||||
dependencies:
|
dependencies:
|
||||||
decompress "^4.2.0"
|
decompress "^4.2.0"
|
||||||
eventemitter2 "^5.0.1"
|
eventemitter2 "^5.0.1"
|
||||||
http-proxy-agent "^2.0.0"
|
http-proxy-agent "^2.1.0"
|
||||||
https-proxy-agent "^2.1.1"
|
https-proxy-agent "^2.2.1"
|
||||||
mkdirp "^0.5.1"
|
mkdirp "^0.5.1"
|
||||||
tmp "^0.0.33"
|
tmp "^0.0.33"
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.2.8",
|
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.2.8",
|
||||||
"opener": "^1.4.3",
|
"opener": "^1.4.3",
|
||||||
"service-downloader": "github:anthonydresser/service-downloader#0.1.4",
|
"service-downloader": "github:anthonydresser/service-downloader#0.1.5",
|
||||||
"vscode-extension-telemetry": "^0.0.15"
|
"vscode-extension-telemetry": "^0.0.15"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -191,14 +191,14 @@ graceful-fs@^4.1.10:
|
|||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
||||||
|
|
||||||
http-proxy-agent@^2.0.0:
|
http-proxy-agent@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "4"
|
agent-base "4"
|
||||||
debug "3.1.0"
|
debug "3.1.0"
|
||||||
|
|
||||||
https-proxy-agent@^2.1.1:
|
https-proxy-agent@^2.2.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -315,14 +315,14 @@ semver@^5.3.0:
|
|||||||
version "5.5.0"
|
version "5.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
||||||
|
|
||||||
"service-downloader@github:anthonydresser/service-downloader#0.1.4":
|
"service-downloader@github:anthonydresser/service-downloader#0.1.5":
|
||||||
version "0.1.4"
|
version "0.1.5"
|
||||||
resolved "https://codeload.github.com/anthonydresser/service-downloader/tar.gz/3c0abdf8603aca85d2eacfac3c547173e41bf0c7"
|
resolved "https://codeload.github.com/anthonydresser/service-downloader/tar.gz/6ebb0465573cc140e461a22f334260f55ef45546"
|
||||||
dependencies:
|
dependencies:
|
||||||
decompress "^4.2.0"
|
decompress "^4.2.0"
|
||||||
eventemitter2 "^5.0.1"
|
eventemitter2 "^5.0.1"
|
||||||
http-proxy-agent "^2.0.0"
|
http-proxy-agent "^2.1.0"
|
||||||
https-proxy-agent "^2.1.1"
|
https-proxy-agent "^2.2.1"
|
||||||
mkdirp "^0.5.1"
|
mkdirp "^0.5.1"
|
||||||
tmp "^0.0.33"
|
tmp "^0.0.33"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "sqlops",
|
"name": "sqlops",
|
||||||
"version": "0.33.5",
|
"version": "0.33.6",
|
||||||
"distro": "8c3e97e3425cc9814496472ab73e076de2ba99ee",
|
"distro": "8c3e97e3425cc9814496472ab73e076de2ba99ee",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Microsoft Corporation"
|
"name": "Microsoft Corporation"
|
||||||
@@ -167,5 +167,8 @@
|
|||||||
"windows-foreground-love": "0.1.0",
|
"windows-foreground-love": "0.1.0",
|
||||||
"windows-mutex": "^0.2.0",
|
"windows-mutex": "^0.2.0",
|
||||||
"windows-process-tree": "0.2.2"
|
"windows-process-tree": "0.2.2"
|
||||||
|
},
|
||||||
|
"resolutions": {
|
||||||
|
"rc": "1.2.8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2791
samples/extensionSamples/package-lock.json
generated
2791
samples/extensionSamples/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
2642
samples/serverReports/package-lock.json
generated
2642
samples/serverReports/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
2794
samples/sp_whoIsActive/package-lock.json
generated
2794
samples/sp_whoIsActive/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
2687
samples/sqlservices/package-lock.json
generated
2687
samples/sqlservices/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -518,5 +518,6 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
public dispose() {
|
public dispose() {
|
||||||
super.dispose();
|
super.dispose();
|
||||||
this._keydownListener.dispose();
|
this._keydownListener.dispose();
|
||||||
|
this._footerButtons = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ export interface IView extends HeightIView {
|
|||||||
readonly onDidChange: Event<number | undefined>;
|
readonly onDidChange: Event<number | undefined>;
|
||||||
render(container: HTMLElement, orientation: Orientation): void;
|
render(container: HTMLElement, orientation: Orientation): void;
|
||||||
layout(size: number, orientation: Orientation): void;
|
layout(size: number, orientation: Orientation): void;
|
||||||
|
onAdd?(): void;
|
||||||
|
onRemove?(): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ISashEvent {
|
interface ISashEvent {
|
||||||
@@ -48,6 +50,8 @@ interface IViewItem extends HeightIViewItem {
|
|||||||
container: HTMLElement;
|
container: HTMLElement;
|
||||||
disposable: IDisposable;
|
disposable: IDisposable;
|
||||||
layout(): void;
|
layout(): void;
|
||||||
|
onRemove: () => void;
|
||||||
|
onAdd: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ISashItem {
|
interface ISashItem {
|
||||||
@@ -159,6 +163,9 @@ export class ScrollableSplitView extends HeightMap implements IDisposable {
|
|||||||
});
|
});
|
||||||
const disposable = combinedDisposable([onChangeDisposable, containerDisposable]);
|
const disposable = combinedDisposable([onChangeDisposable, containerDisposable]);
|
||||||
|
|
||||||
|
const onAdd = view.onAdd ? () => view.onAdd() : () => { };
|
||||||
|
const onRemove = view.onRemove ? () => view.onRemove() : () => { };
|
||||||
|
|
||||||
const layoutContainer = this.orientation === Orientation.VERTICAL
|
const layoutContainer = this.orientation === Orientation.VERTICAL
|
||||||
? size => item.container.style.height = `${item.size}px`
|
? size => item.container.style.height = `${item.size}px`
|
||||||
: size => item.container.style.width = `${item.size}px`;
|
: size => item.container.style.width = `${item.size}px`;
|
||||||
@@ -169,7 +176,7 @@ export class ScrollableSplitView extends HeightMap implements IDisposable {
|
|||||||
};
|
};
|
||||||
|
|
||||||
size = Math.round(size);
|
size = Math.round(size);
|
||||||
const item: IViewItem = { view, container, size, layout, disposable, height: size, top: 0, width: 0 };
|
const item: IViewItem = { onRemove, onAdd, view, container, size, layout, disposable, height: size, top: 0, width: 0 };
|
||||||
this.viewItems.splice(viewIndex, 0, item);
|
this.viewItems.splice(viewIndex, 0, item);
|
||||||
|
|
||||||
this.onInsertItems(new ArrayIterator([item]), viewIndex > 0 ? this.viewItems[viewIndex - 1].view.id : undefined);
|
this.onInsertItems(new ArrayIterator([item]), viewIndex > 0 ? this.viewItems[viewIndex - 1].view.id : undefined);
|
||||||
@@ -224,6 +231,9 @@ export class ScrollableSplitView extends HeightMap implements IDisposable {
|
|||||||
});
|
});
|
||||||
const disposable = combinedDisposable([onChangeDisposable, containerDisposable]);
|
const disposable = combinedDisposable([onChangeDisposable, containerDisposable]);
|
||||||
|
|
||||||
|
const onAdd = view.onAdd ? () => view.onAdd() : () => { };
|
||||||
|
const onRemove = view.onRemove ? () => view.onRemove() : () => { };
|
||||||
|
|
||||||
const layoutContainer = this.orientation === Orientation.VERTICAL
|
const layoutContainer = this.orientation === Orientation.VERTICAL
|
||||||
? size => item.container.style.height = `${item.size}px`
|
? size => item.container.style.height = `${item.size}px`
|
||||||
: size => item.container.style.width = `${item.size}px`;
|
: size => item.container.style.width = `${item.size}px`;
|
||||||
@@ -234,7 +244,7 @@ export class ScrollableSplitView extends HeightMap implements IDisposable {
|
|||||||
};
|
};
|
||||||
|
|
||||||
size = Math.round(size);
|
size = Math.round(size);
|
||||||
const item: IViewItem = { view, container, size, layout, disposable, height: size, top: 0, width: 0 };
|
const item: IViewItem = { onAdd, onRemove, view, container, size, layout, disposable, height: size, top: 0, width: 0 };
|
||||||
this.viewItems.splice(index, 0, item);
|
this.viewItems.splice(index, 0, item);
|
||||||
|
|
||||||
this.onInsertItems(new ArrayIterator([item]), index > 0 ? this.viewItems[index - 1].view.id : undefined);
|
this.onInsertItems(new ArrayIterator([item]), index > 0 ? this.viewItems[index - 1].view.id : undefined);
|
||||||
@@ -495,6 +505,8 @@ export class ScrollableSplitView extends HeightMap implements IDisposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
item.layout();
|
item.layout();
|
||||||
|
|
||||||
|
item.onAdd();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -504,6 +516,8 @@ export class ScrollableSplitView extends HeightMap implements IDisposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.el.removeChild(item.container);
|
this.el.removeChild(item.container);
|
||||||
|
|
||||||
|
item.onRemove();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
|
|
||||||
this.onCellEditEnd = (event: Slick.OnCellChangeEventArgs<any>): void => {
|
this.onCellEditEnd = (event: Slick.OnCellChangeEventArgs<any>): void => {
|
||||||
// Store the value that was set
|
// Store the value that was set
|
||||||
self.currentEditCellValue = event.item[event.cell - 1];
|
self.currentEditCellValue = event.item[event.cell];
|
||||||
};
|
};
|
||||||
|
|
||||||
this.overrideCellFn = (rowNumber, columnId, value?, data?): string => {
|
this.overrideCellFn = (rowNumber, columnId, value?, data?): string => {
|
||||||
@@ -270,18 +270,18 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
|
|
||||||
return self.dataService.updateCell(sessionRowId, self.currentCell.column - 1, self.currentEditCellValue)
|
return self.dataService.updateCell(sessionRowId, self.currentCell.column - 1, self.currentEditCellValue)
|
||||||
.then(
|
.then(
|
||||||
result => {
|
result => {
|
||||||
// Cell update was successful, update the flags
|
// Cell update was successful, update the flags
|
||||||
self.currentEditCellValue = null;
|
self.currentEditCellValue = null;
|
||||||
self.setCellDirtyState(row, self.currentCell.column, result.cell.isDirty);
|
self.setCellDirtyState(row, self.currentCell.column, result.cell.isDirty);
|
||||||
self.setRowDirtyState(row, result.isRowDirty);
|
self.setRowDirtyState(row, result.isRowDirty);
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
// Cell update failed, jump back to the last cell we were on
|
// Cell update failed, jump back to the last cell we were on
|
||||||
self.focusCell(self.currentCell.row, self.currentCell.column, true);
|
self.focusCell(self.currentCell.row, self.currentCell.column, true);
|
||||||
return Promise.reject(null);
|
return Promise.reject(null);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -377,10 +377,11 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
index => { return {}; }
|
index => { return {}; }
|
||||||
),
|
),
|
||||||
columnDefinitions: [rowNumberColumn.getColumnDefinition()].concat(resultSet.columnInfo.map((c, i) => {
|
columnDefinitions: [rowNumberColumn.getColumnDefinition()].concat(resultSet.columnInfo.map((c, i) => {
|
||||||
|
let columnIndex = (i + 1).toString();
|
||||||
return {
|
return {
|
||||||
id: i.toString(),
|
id: columnIndex,
|
||||||
name: escape(c.columnName),
|
name: escape(c.columnName),
|
||||||
field: i.toString(),
|
field: columnIndex,
|
||||||
formatter: Services.textFormatter,
|
formatter: Services.textFormatter,
|
||||||
isEditable: c.isUpdatable
|
isEditable: c.isUpdatable
|
||||||
};
|
};
|
||||||
@@ -464,7 +465,7 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
// Perform a revert row operation
|
// Perform a revert row operation
|
||||||
if (this.currentCell) {
|
if (this.currentCell && this.currentCell.row !== undefined && this.currentCell.row !== null) {
|
||||||
await this.dataService.revertRow(this.currentCell.row);
|
await this.dataService.revertRow(this.currentCell.row);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -188,8 +188,16 @@ export class InsightsDialogView extends Modal {
|
|||||||
for (let i = 0; i < this._model.columns.length; i++) {
|
for (let i = 0; i < this._model.columns.length; i++) {
|
||||||
resourceArray.push({ label: this._model.columns[i], value: element.data[i], data: element.data });
|
resourceArray.push({ label: this._model.columns[i], value: element.data[i], data: element.data });
|
||||||
}
|
}
|
||||||
|
|
||||||
this._bottomTableData.clear();
|
this._bottomTableData.clear();
|
||||||
this._bottomTableData.push(resourceArray);
|
this._bottomTableData.push(resourceArray);
|
||||||
|
// this table view has to be collapsed and expanded
|
||||||
|
// because the initial expand doesn't have the
|
||||||
|
// loaded data
|
||||||
|
if (bottomTableView.isExpanded()) {
|
||||||
|
bottomTableView.collapse();
|
||||||
|
bottomTableView.expand();
|
||||||
|
}
|
||||||
this._enableTaskButtons(true);
|
this._enableTaskButtons(true);
|
||||||
} else {
|
} else {
|
||||||
this._enableTaskButtons(false);
|
this._enableTaskButtons(false);
|
||||||
@@ -334,6 +342,7 @@ export class InsightsDialogView extends Modal {
|
|||||||
this.hide();
|
this.hide();
|
||||||
dispose(this._taskButtonDisposables);
|
dispose(this._taskButtonDisposables);
|
||||||
this._taskButtonDisposables = [];
|
this._taskButtonDisposables = [];
|
||||||
|
this.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected onClose(e: StandardKeyboardEvent) {
|
protected onClose(e: StandardKeyboardEvent) {
|
||||||
|
|||||||
@@ -167,12 +167,12 @@ export class ServerTreeActionProvider extends ContributableActionProvider {
|
|||||||
if (TreeUpdateUtils.isDatabaseNode(treeNode)) {
|
if (TreeUpdateUtils.isDatabaseNode(treeNode)) {
|
||||||
if (TreeUpdateUtils.isAvailableDatabaseNode(treeNode)) {
|
if (TreeUpdateUtils.isAvailableDatabaseNode(treeNode)) {
|
||||||
actions.push(this._instantiationService.createInstance(ManageConnectionAction, ManageConnectionAction.ID, ManageConnectionAction.LABEL, context.tree));
|
actions.push(this._instantiationService.createInstance(ManageConnectionAction, ManageConnectionAction.ID, ManageConnectionAction.LABEL, context.tree));
|
||||||
|
this.addNewQueryAction(context, actions);
|
||||||
} else {
|
} else {
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.addNewQueryAction(context, actions);
|
|
||||||
this.addScriptingActions(context, actions);
|
this.addScriptingActions(context, actions);
|
||||||
actions.push(this._instantiationService.createInstance(RefreshAction, RefreshAction.ID, RefreshAction.LABEL, context.tree, treeNode));
|
actions.push(this._instantiationService.createInstance(RefreshAction, RefreshAction.ID, RefreshAction.LABEL, context.tree, treeNode));
|
||||||
|
|
||||||
|
|||||||
@@ -14,16 +14,21 @@ import { GridPanelState } from 'sql/parts/query/editor/gridPanel';
|
|||||||
import { MessagePanelState } from 'sql/parts/query/editor/messagePanel';
|
import { MessagePanelState } from 'sql/parts/query/editor/messagePanel';
|
||||||
import { QueryPlanState } from 'sql/parts/queryPlan/queryPlan';
|
import { QueryPlanState } from 'sql/parts/queryPlan/queryPlan';
|
||||||
import { ChartState } from 'sql/parts/query/editor/charting/chartView';
|
import { ChartState } from 'sql/parts/query/editor/charting/chartView';
|
||||||
|
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||||
|
|
||||||
export class ResultsViewState {
|
export class ResultsViewState {
|
||||||
public gridPanelState: GridPanelState = new GridPanelState();
|
public gridPanelState: GridPanelState = new GridPanelState();
|
||||||
public messagePanelState: MessagePanelState = new MessagePanelState();
|
public messagePanelState: MessagePanelState = new MessagePanelState(this.configurationService);
|
||||||
public chartState: ChartState = new ChartState();
|
public chartState: ChartState = new ChartState();
|
||||||
public queryPlanState: QueryPlanState = new QueryPlanState();
|
public queryPlanState: QueryPlanState = new QueryPlanState();
|
||||||
public gridPanelSize: number;
|
public gridPanelSize: number;
|
||||||
public messagePanelSize: number;
|
public messagePanelSize: number;
|
||||||
public activeTab: string;
|
public activeTab: string;
|
||||||
public visibleTabs: Set<string> = new Set<string>();
|
public visibleTabs: Set<string> = new Set<string>();
|
||||||
|
|
||||||
|
constructor(@IConfigurationService private configurationService: IConfigurationService) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -45,9 +50,11 @@ export class QueryResultsInput extends EditorInput {
|
|||||||
public readonly onRestoreViewStateEmitter = new Emitter<void>();
|
public readonly onRestoreViewStateEmitter = new Emitter<void>();
|
||||||
public readonly onSaveViewStateEmitter = new Emitter<void>();
|
public readonly onSaveViewStateEmitter = new Emitter<void>();
|
||||||
|
|
||||||
public readonly state = new ResultsViewState();
|
public readonly state = new ResultsViewState(this.configurationService);
|
||||||
|
|
||||||
constructor(private _uri: string) {
|
constructor(private _uri: string,
|
||||||
|
@IConfigurationService private configurationService: IConfigurationService
|
||||||
|
) {
|
||||||
super();
|
super();
|
||||||
this._visible = false;
|
this._visible = false;
|
||||||
this._hasBootstrapped = false;
|
this._hasBootstrapped = false;
|
||||||
|
|||||||
@@ -149,6 +149,8 @@ export class Graph implements IInsight {
|
|||||||
let foreground = foregroundColor ? foregroundColor.toString() : null;
|
let foreground = foregroundColor ? foregroundColor.toString() : null;
|
||||||
let gridLinesColor = this._theme.getColor(editorLineNumbers);
|
let gridLinesColor = this._theme.getColor(editorLineNumbers);
|
||||||
let gridLines = gridLinesColor ? gridLinesColor.toString() : null;
|
let gridLines = gridLinesColor ? gridLinesColor.toString() : null;
|
||||||
|
let backgroundColor = this._theme.getColor(colors.editorBackground);
|
||||||
|
let background = backgroundColor ? backgroundColor.toString() : null;
|
||||||
|
|
||||||
if (options) {
|
if (options) {
|
||||||
retval.scales = {};
|
retval.scales = {};
|
||||||
@@ -187,12 +189,20 @@ export class Graph implements IInsight {
|
|||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
retval.legend = {
|
retval.legend = <ChartJs.ChartLegendOptions>{
|
||||||
position: options.legendPosition as ChartJs.PositionType,
|
position: options.legendPosition as ChartJs.PositionType,
|
||||||
display: options.legendPosition !== LegendPosition.None
|
display: options.legendPosition !== LegendPosition.None,
|
||||||
|
labels: {
|
||||||
|
fontColor: foreground
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// these are custom options that will throw compile errors
|
||||||
|
(<any>retval).viewArea = {
|
||||||
|
backgroundColor: background
|
||||||
|
};
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import { $ } from 'vs/base/browser/builder';
|
|||||||
import { generateUuid } from 'vs/base/common/uuid';
|
import { generateUuid } from 'vs/base/common/uuid';
|
||||||
import { TPromise } from 'vs/base/common/winjs.base';
|
import { TPromise } from 'vs/base/common/winjs.base';
|
||||||
import { Separator, ActionBar, ActionsOrientation } from 'vs/base/browser/ui/actionbar/actionbar';
|
import { Separator, ActionBar, ActionsOrientation } from 'vs/base/browser/ui/actionbar/actionbar';
|
||||||
import { Dimension, getContentWidth } from 'vs/base/browser/dom';
|
import { Dimension, getContentWidth, isInDOM } from 'vs/base/browser/dom';
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
|
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
|
||||||
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||||
@@ -168,7 +168,12 @@ export class GridPanel extends ViewletPanel {
|
|||||||
this.queryRunnerDisposables = [];
|
this.queryRunnerDisposables = [];
|
||||||
this.runner = runner;
|
this.runner = runner;
|
||||||
this.queryRunnerDisposables.push(this.runner.onResultSet(e => this.onResultSet(e)));
|
this.queryRunnerDisposables.push(this.runner.onResultSet(e => this.onResultSet(e)));
|
||||||
this.queryRunnerDisposables.push(this.runner.onQueryStart(() => this.reset()));
|
this.queryRunnerDisposables.push(this.runner.onQueryStart(() => {
|
||||||
|
if (this.state) {
|
||||||
|
this.state.tableStates = [];
|
||||||
|
}
|
||||||
|
this.reset();
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
private onResultSet(resultSet: sqlops.ResultSetSummary | sqlops.ResultSetSummary[]) {
|
private onResultSet(resultSet: sqlops.ResultSetSummary | sqlops.ResultSetSummary[]) {
|
||||||
@@ -235,7 +240,6 @@ export class GridPanel extends ViewletPanel {
|
|||||||
for (let i = this.splitView.length - 1; i >= 0; i--) {
|
for (let i = this.splitView.length - 1; i >= 0; i--) {
|
||||||
this.splitView.removeView(i);
|
this.splitView.removeView(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
dispose(this.tables);
|
dispose(this.tables);
|
||||||
this.tables = [];
|
this.tables = [];
|
||||||
|
|
||||||
@@ -306,6 +310,8 @@ class GridTable<T> extends Disposable implements IView {
|
|||||||
|
|
||||||
private _state: GridTableState;
|
private _state: GridTableState;
|
||||||
|
|
||||||
|
private scrolled = false;
|
||||||
|
|
||||||
// this handles if the row count is small, like 4-5 rows
|
// this handles if the row count is small, like 4-5 rows
|
||||||
private readonly maxSize = ((this.resultSet.rowCount) * ROW_HEIGHT) + HEADER_HEIGHT + ESTIMATED_SCROLL_BAR_HEIGHT;
|
private readonly maxSize = ((this.resultSet.rowCount) * ROW_HEIGHT) + HEADER_HEIGHT + ESTIMATED_SCROLL_BAR_HEIGHT;
|
||||||
|
|
||||||
@@ -337,6 +343,11 @@ class GridTable<T> extends Disposable implements IView {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public onRemove() {
|
||||||
|
// when we are removed slickgrid acts badly so we need to account for that
|
||||||
|
this.scrolled = false;
|
||||||
|
}
|
||||||
|
|
||||||
public render(container: HTMLElement, orientation: Orientation): void {
|
public render(container: HTMLElement, orientation: Orientation): void {
|
||||||
container.appendChild(this.container);
|
container.appendChild(this.container);
|
||||||
}
|
}
|
||||||
@@ -409,9 +420,13 @@ class GridTable<T> extends Disposable implements IView {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.table.grid.onScroll.subscribe(e => {
|
this.table.grid.onScroll.subscribe((e, data) => {
|
||||||
if (this.state) {
|
if (!this.scrolled && this.state.scrollPosition && isInDOM(this.container)) {
|
||||||
this.state.scrollPosition = this.table.grid.getViewport().top;
|
this.scrolled = true;
|
||||||
|
this.table.grid.scrollTo(this.state.scrollPosition);
|
||||||
|
}
|
||||||
|
if (this.state && isInDOM(this.container)) {
|
||||||
|
this.state.scrollPosition = data.scrollTop;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -431,7 +446,10 @@ class GridTable<T> extends Disposable implements IView {
|
|||||||
this.state.onCanBeMaximizedChange(this.rebuildActionBar, this);
|
this.state.onCanBeMaximizedChange(this.rebuildActionBar, this);
|
||||||
|
|
||||||
if (this.state.scrollPosition) {
|
if (this.state.scrollPosition) {
|
||||||
this.table.grid.scrollRowToTop(this.state.scrollPosition);
|
// most of the time this won't do anything
|
||||||
|
this.table.grid.scrollTo(this.state.scrollPosition);
|
||||||
|
// the problem here is that the scrolling state slickgrid uses
|
||||||
|
// doesn't work with it offDOM.
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.state.selection) {
|
if (this.state.selection) {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import { OpenMode, ClickBehavior, ICancelableEvent, IControllerOptions } from 'v
|
|||||||
import { WorkbenchTreeController } from 'vs/platform/list/browser/listService';
|
import { WorkbenchTreeController } from 'vs/platform/list/browser/listService';
|
||||||
import { IMouseEvent } from 'vs/base/browser/mouseEvent';
|
import { IMouseEvent } from 'vs/base/browser/mouseEvent';
|
||||||
import { $ } from 'vs/base/browser/builder';
|
import { $ } from 'vs/base/browser/builder';
|
||||||
import { isArray } from 'vs/base/common/types';
|
import { isArray, isUndefinedOrNull } from 'vs/base/common/types';
|
||||||
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
||||||
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||||
import { IEditor } from 'vs/editor/common/editorCommon';
|
import { IEditor } from 'vs/editor/common/editorCommon';
|
||||||
@@ -62,6 +62,13 @@ const TemplateIds = {
|
|||||||
export class MessagePanelState {
|
export class MessagePanelState {
|
||||||
public scrollPosition: number;
|
public scrollPosition: number;
|
||||||
public collapsed = false;
|
public collapsed = false;
|
||||||
|
|
||||||
|
constructor(@IConfigurationService configurationService: IConfigurationService) {
|
||||||
|
let messagesOpenedSettings = configurationService.getValue<boolean>('sql.messagesDefaultOpen');
|
||||||
|
if (!isUndefinedOrNull(messagesOpenedSettings)) {
|
||||||
|
this.collapsed = !messagesOpenedSettings;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class MessagePanel extends ViewletPanel {
|
export class MessagePanel extends ViewletPanel {
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ export class QueryPlanView implements IPanelView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
container.appendChild(this.container);
|
container.appendChild(this.container);
|
||||||
|
container.style.overflow = 'scroll';
|
||||||
|
container.style.background = '#FFFFFF';
|
||||||
}
|
}
|
||||||
|
|
||||||
public layout(dimension: Dimension): void {
|
public layout(dimension: Dimension): void {
|
||||||
|
|||||||
@@ -441,7 +441,7 @@ export class NewDatabaseAction extends Action {
|
|||||||
|
|
||||||
export class ConfigureDashboardAction extends Task {
|
export class ConfigureDashboardAction extends Task {
|
||||||
public static readonly ID = 'configureDashboard';
|
public static readonly ID = 'configureDashboard';
|
||||||
public static readonly LABEL = nls.localize('configureDashboard', 'Configure');
|
public static readonly LABEL = nls.localize('configureDashboard', 'Learn How To Configure The Dashboard');
|
||||||
public static readonly ICON = 'configure-dashboard';
|
public static readonly ICON = 'configure-dashboard';
|
||||||
private static readonly configHelpUri = 'https://aka.ms/sqldashboardconfig';
|
private static readonly configHelpUri = 'https://aka.ms/sqldashboardconfig';
|
||||||
|
|
||||||
|
|||||||
@@ -110,18 +110,26 @@ suite('SQL QueryEditor Tests', () => {
|
|||||||
editorDescriptorService = TypeMoq.Mock.ofType(EditorDescriptorService, TypeMoq.MockBehavior.Loose);
|
editorDescriptorService = TypeMoq.Mock.ofType(EditorDescriptorService, TypeMoq.MockBehavior.Loose);
|
||||||
editorDescriptorService.setup(x => x.getEditor(TypeMoq.It.isAny())).returns(() => descriptor);
|
editorDescriptorService.setup(x => x.getEditor(TypeMoq.It.isAny())).returns(() => descriptor);
|
||||||
|
|
||||||
|
configurationService = TypeMoq.Mock.ofInstance({
|
||||||
|
getValue: () => undefined,
|
||||||
|
onDidChangeConfiguration: () => undefined
|
||||||
|
} as any);
|
||||||
|
configurationService.setup(x => x.getValue(TypeMoq.It.isAny())).returns(() => {
|
||||||
|
return { enablePreviewFeatures: true };
|
||||||
|
});
|
||||||
|
|
||||||
// Create a QueryInput
|
// Create a QueryInput
|
||||||
let filePath = 'someFile.sql';
|
let filePath = 'someFile.sql';
|
||||||
let uri: URI = URI.parse(filePath);
|
let uri: URI = URI.parse(filePath);
|
||||||
let fileInput = new UntitledEditorInput(uri, false, '', '', '', instantiationService.object, undefined, undefined, undefined);
|
let fileInput = new UntitledEditorInput(uri, false, '', '', '', instantiationService.object, undefined, undefined, undefined);
|
||||||
let queryResultsInput: QueryResultsInput = new QueryResultsInput(uri.fsPath);
|
let queryResultsInput: QueryResultsInput = new QueryResultsInput(uri.fsPath, configurationService.object);
|
||||||
queryInput = new QueryInput('first', fileInput, queryResultsInput, undefined, undefined, undefined, undefined, undefined);
|
queryInput = new QueryInput('first', fileInput, queryResultsInput, undefined, undefined, undefined, undefined, undefined);
|
||||||
|
|
||||||
// Create a QueryInput to compare to the previous one
|
// Create a QueryInput to compare to the previous one
|
||||||
let filePath2 = 'someFile2.sql';
|
let filePath2 = 'someFile2.sql';
|
||||||
let uri2: URI = URI.parse(filePath2);
|
let uri2: URI = URI.parse(filePath2);
|
||||||
let fileInput2 = new UntitledEditorInput(uri2, false, '', '', '', instantiationService.object, undefined, undefined, undefined);
|
let fileInput2 = new UntitledEditorInput(uri2, false, '', '', '', instantiationService.object, undefined, undefined, undefined);
|
||||||
let queryResultsInput2: QueryResultsInput = new QueryResultsInput(uri2.fsPath);
|
let queryResultsInput2: QueryResultsInput = new QueryResultsInput(uri2.fsPath, configurationService.object);
|
||||||
queryInput2 = new QueryInput('second', fileInput2, queryResultsInput2, undefined, undefined, undefined, undefined, undefined);
|
queryInput2 = new QueryInput('second', fileInput2, queryResultsInput2, undefined, undefined, undefined, undefined, undefined);
|
||||||
|
|
||||||
// Mock IMessageService
|
// Mock IMessageService
|
||||||
@@ -136,14 +144,6 @@ suite('SQL QueryEditor Tests', () => {
|
|||||||
|
|
||||||
// Create a QueryModelService
|
// Create a QueryModelService
|
||||||
queryModelService = new QueryModelService(instantiationService.object, notificationService.object);
|
queryModelService = new QueryModelService(instantiationService.object, notificationService.object);
|
||||||
|
|
||||||
configurationService = TypeMoq.Mock.ofInstance({
|
|
||||||
getValue: () => undefined,
|
|
||||||
onDidChangeConfiguration: () => undefined
|
|
||||||
} as any);
|
|
||||||
configurationService.setup(x => x.getValue(TypeMoq.It.isAny())).returns(() => {
|
|
||||||
return { enablePreviewFeatures: true };
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('createEditor creates only the taskbar', (done) => {
|
test('createEditor creates only the taskbar', (done) => {
|
||||||
@@ -393,7 +393,7 @@ suite('SQL QueryEditor Tests', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
test('Test that we attempt to dispose query when the queryInput is disposed', (done) => {
|
test('Test that we attempt to dispose query when the queryInput is disposed', (done) => {
|
||||||
let queryResultsInput = new QueryResultsInput('testUri');
|
let queryResultsInput = new QueryResultsInput('testUri', configurationService.object);
|
||||||
queryInput['_results'] = queryResultsInput;
|
queryInput['_results'] = queryResultsInput;
|
||||||
queryInput.dispose();
|
queryInput.dispose();
|
||||||
queryModelService.verify(x => x.disposeQuery(TypeMoq.It.isAnyString()), TypeMoq.Times.once());
|
queryModelService.verify(x => x.disposeQuery(TypeMoq.It.isAnyString()), TypeMoq.Times.once());
|
||||||
|
|||||||
1
src/typings/globals/slickgrid/index.d.ts
vendored
1
src/typings/globals/slickgrid/index.d.ts
vendored
@@ -1233,6 +1233,7 @@ declare namespace Slick {
|
|||||||
public scrollRowIntoView(row: number, doPaging: boolean): void;
|
public scrollRowIntoView(row: number, doPaging: boolean): void;
|
||||||
public scrollRowToTop(row: number): void;
|
public scrollRowToTop(row: number): void;
|
||||||
public scrollCellIntoView(row: number, cell: number, doPaging: boolean): void;
|
public scrollCellIntoView(row: number, cell: number, doPaging: boolean): void;
|
||||||
|
public scrollTo(y: number);
|
||||||
public getCanvasNode(): HTMLCanvasElement;
|
public getCanvasNode(): HTMLCanvasElement;
|
||||||
public focus(): void;
|
public focus(): void;
|
||||||
|
|
||||||
|
|||||||
15
yarn.lock
15
yarn.lock
@@ -1393,10 +1393,6 @@ deep-extend@^0.6.0:
|
|||||||
version "0.6.0"
|
version "0.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
|
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
|
||||||
|
|
||||||
deep-extend@~0.4.0:
|
|
||||||
version "0.4.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
|
|
||||||
|
|
||||||
deep-is@~0.1.2, deep-is@~0.1.3:
|
deep-is@~0.1.2, deep-is@~0.1.3:
|
||||||
version "0.1.3"
|
version "0.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
|
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
|
||||||
@@ -5493,16 +5489,7 @@ raw-body@2.3.2:
|
|||||||
iconv-lite "0.4.19"
|
iconv-lite "0.4.19"
|
||||||
unpipe "1.0.0"
|
unpipe "1.0.0"
|
||||||
|
|
||||||
rc@^1.1.2:
|
rc@1.2.8, rc@^1.1.2, rc@^1.1.6:
|
||||||
version "1.2.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077"
|
|
||||||
dependencies:
|
|
||||||
deep-extend "~0.4.0"
|
|
||||||
ini "~1.3.0"
|
|
||||||
minimist "^1.2.0"
|
|
||||||
strip-json-comments "~2.0.1"
|
|
||||||
|
|
||||||
rc@^1.1.6:
|
|
||||||
version "1.2.8"
|
version "1.2.8"
|
||||||
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
|
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|||||||
Reference in New Issue
Block a user