diff --git a/package.json b/package.json index 472e9b3a23..040b0994a0 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@angular/router": "~4.1.3", "@angular/upgrade": "~4.1.3", "angular2-grid": "2.0.6", - "angular2-slickgrid": "git://github.com/Microsoft/angular2-slickgrid.git#1.3.10", + "angular2-slickgrid": "git://github.com/Microsoft/angular2-slickgrid.git#1.3.9", "applicationinsights": "0.17.1", "chart.js": "^2.6.0", "core-js": "^2.4.1", diff --git a/src/sql/parts/grid/views/query/query.component.html b/src/sql/parts/grid/views/query/query.component.html index 81e3085794..96e8c37b51 100644 --- a/src/sql/parts/grid/views/query/query.component.html +++ b/src/sql/parts/grid/views/query/query.component.html @@ -26,8 +26,7 @@ (mousedown)="navigateToGrid(i)" [selectionModel]="selectionModel" [plugins]="slickgridPlugins" - class="boxCol content vertBox slickgrid" - [rowHeight]="rowHeight"> + class="boxCol content vertBox slickgrid">
diff --git a/src/sql/parts/grid/views/query/query.component.ts b/src/sql/parts/grid/views/query/query.component.ts index 9e6c1fdd56..dbf749dd8b 100644 --- a/src/sql/parts/grid/views/query/query.component.ts +++ b/src/sql/parts/grid/views/query/query.component.ts @@ -133,7 +133,6 @@ export class QueryComponent extends GridParentComponent implements OnInit, OnDes private resizing = false; private resizeHandleTop: string = '0'; private scrollEnabled = true; - private rowHeight: number; // tslint:disable-next-line:no-unused-variable private firstRender = true; private totalElapsedTimeSpan: number; @@ -158,16 +157,6 @@ export class QueryComponent extends GridParentComponent implements OnInit, OnDes ) { super(el, cd, bootstrapService); this._el.nativeElement.className = 'slickgridContainer'; - this.rowHeight = bootstrapService.configurationService.getValue('resultsGrid').rowHeight; - bootstrapService.configurationService.onDidChangeConfiguration(e => { - if (e.affectsConfiguration('resultsGrid')) { - this.rowHeight = bootstrapService.configurationService.getValue('resultsGrid').rowHeight; - this.slickgrids.forEach(i => { - i.rowHeight = this.rowHeight; - }); - this.resizeGrids(); - } - }); } /** diff --git a/src/sql/parts/query/common/queryResultsInput.ts b/src/sql/parts/query/common/queryResultsInput.ts index 2a0cb23586..c22bf123ae 100644 --- a/src/sql/parts/query/common/queryResultsInput.ts +++ b/src/sql/parts/query/common/queryResultsInput.ts @@ -23,7 +23,6 @@ export class QueryResultsInput extends EditorInput { // Holds the HTML content for the editor when the editor discards this input and loads another private _editorContainer: HTMLElement; - public css: HTMLStyleElement; constructor(private _uri: string) { super(); diff --git a/src/sql/parts/query/editor/queryResultsEditor.ts b/src/sql/parts/query/editor/queryResultsEditor.ts index 2822520cbb..dae64393cb 100644 --- a/src/sql/parts/query/editor/queryResultsEditor.ts +++ b/src/sql/parts/query/editor/queryResultsEditor.ts @@ -11,60 +11,16 @@ import { EditorOptions } from 'vs/workbench/common/editor'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { RawContextKey } from 'vs/platform/contextkey/common/contextkey'; import { BaseEditor } from 'vs/workbench/browser/parts/editor/baseEditor'; -import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { BareFontInfo } from 'vs/editor/common/config/fontInfo'; -import { getZoomLevel } from 'vs/base/browser/browser'; -import { Configuration } from 'vs/editor/browser/config/configuration'; -import { IThemeService } from 'vs/platform/theme/common/themeService'; -import * as dom from 'vs/base/browser/dom'; -import * as types from 'vs/base/common/types'; - import { QueryResultsInput } from 'sql/parts/query/common/queryResultsInput'; import { IQueryModelService } from 'sql/parts/query/execution/queryModel'; import { IBootstrapService } from 'sql/services/bootstrap/bootstrapService'; import { QueryComponentParams } from 'sql/services/bootstrap/bootstrapParams'; +import { IThemeService } from 'vs/platform/theme/common/themeService'; import { QueryOutputModule } from 'sql/parts/query/views/queryOutput.module'; import { QUERY_OUTPUT_SELECTOR } from 'sql/parts/query/views/queryOutput.component'; -export const RESULTS_GRID_DEFAULTS = { - cellPadding: [6, 10, 5], - rowHeight: 29 -}; - export const TextCompareEditorVisible = new RawContextKey('textCompareEditorVisible', false); -export class BareResultsGridInfo extends BareFontInfo { - - public static createFromRawSettings(opts: { - fontFamily?: string; - fontWeight?: string; - fontSize?: number | string; - lineHeight?: number | string; - letterSpacing?: number | string; - cellPadding?: number | number[]; - }, zoomLevel: number): BareResultsGridInfo { - let cellPadding = !types.isUndefinedOrNull(opts.cellPadding) ? opts.cellPadding : RESULTS_GRID_DEFAULTS.cellPadding; - - return new BareResultsGridInfo(BareFontInfo.createFromRawSettings(opts, zoomLevel), { cellPadding }); - } - - readonly cellPadding: number | number[]; - - protected constructor(fontInfo: BareFontInfo, opts: { - cellPadding: number | number[]; - }) { - super({ - zoomLevel: fontInfo.zoomLevel, - fontFamily: fontInfo.fontFamily, - fontWeight: fontInfo.fontWeight, - fontSize: fontInfo.fontSize, - lineHeight: fontInfo.lineHeight, - letterSpacing: fontInfo.letterSpacing - }); - this.cellPadding = opts.cellPadding; - } -} - /** * Editor associated with viewing and editing the data of a query results grid. */ @@ -72,45 +28,14 @@ export class QueryResultsEditor extends BaseEditor { public static ID: string = 'workbench.editor.queryResultsEditor'; public static AngularSelectorString: string = 'slickgrid-container.slickgridContainer'; - protected _rawOptions: BareResultsGridInfo; - protected _input: QueryResultsInput; constructor( @ITelemetryService telemetryService: ITelemetryService, @IThemeService themeService: IThemeService, @IQueryModelService private _queryModelService: IQueryModelService, - @IBootstrapService private _bootstrapService: IBootstrapService, - @IConfigurationService private _configurationService: IConfigurationService + @IBootstrapService private _bootstrapService: IBootstrapService ) { super(QueryResultsEditor.ID, telemetryService, themeService); - this._rawOptions = BareResultsGridInfo.createFromRawSettings(this._configurationService.getValue('resultsGrid'), getZoomLevel()); - this._configurationService.onDidChangeConfiguration(e => { - if (e.affectsConfiguration('resultsGrid')) { - this._rawOptions = BareResultsGridInfo.createFromRawSettings(this._configurationService.getValue('resultsGrid'), getZoomLevel()); - this.applySettings(); - } - }); - } - - public get input(): QueryResultsInput { - return this._input; - } - - private applySettings() { - if (this.input && this.input.container) { - Configuration.applyFontInfoSlow(this.getContainer().getHTMLElement(), this._rawOptions); - if (!this.input.css) { - this.input.css = dom.createStyleSheet(this.input.container); - } - let cssRuleText = ''; - if (types.isNumber(this._rawOptions.cellPadding)) { - cssRuleText = this._rawOptions.cellPadding + 'px'; - } else { - cssRuleText = this._rawOptions.cellPadding.join('px ') + 'px;'; - } - let content = `.grid .slick-cell { padding: ${cssRuleText}; }`; - this.input.css.innerHTML = content; - } } createEditor(parent: Builder): void { @@ -121,7 +46,6 @@ export class QueryResultsEditor extends BaseEditor { setInput(input: QueryResultsInput, options: EditorOptions): TPromise { super.setInput(input, options); - this.applySettings(); if (!input.hasBootstrapped) { this._bootstrapAngular(); } diff --git a/src/sql/parts/query/editor/resultsGridContribution.ts b/src/sql/parts/query/editor/resultsGridContribution.ts deleted file mode 100644 index 09a715fb30..0000000000 --- a/src/sql/parts/query/editor/resultsGridContribution.ts +++ /dev/null @@ -1,70 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * 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 { Extensions, IConfigurationRegistry, IConfigurationNode, ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry'; -import { Registry } from 'vs/platform/registry/common/platform'; -import * as nls from 'vs/nls'; -import * as editorOptions from 'vs/editor/common/config/editorOptions'; -import EDITOR_DEFAULTS = editorOptions.EDITOR_DEFAULTS; -import EDITOR_FONT_DEFAULTS = editorOptions.EDITOR_FONT_DEFAULTS; -import EDITOR_MODEL_DEFAULTS = editorOptions.EDITOR_MODEL_DEFAULTS; - -import { RESULTS_GRID_DEFAULTS } from 'sql/parts/query/editor/queryResultsEditor'; - -const configurationRegistry = Registry.as(Extensions.Configuration); - -const resultsGridConfiguration: IConfigurationNode = { - id: 'resultsGrid', - type: 'object', - title: nls.localize('resultsGridConfigurationTitle', "Results Grid"), - overridable: true, - scope: ConfigurationScope.RESOURCE, - properties: { - 'resultsGrid.fontFamily': { - type: 'string', - default: EDITOR_FONT_DEFAULTS.fontFamily, - description: nls.localize('fontFamily', "Controls the font family.") - }, - 'resultsGrid.fontWeight': { - type: 'string', - enum: ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'], - default: EDITOR_FONT_DEFAULTS.fontWeight, - description: nls.localize('fontWeight', "Controls the font weight.") - }, - 'resultsGrid.fontSize': { - type: 'number', - default: EDITOR_FONT_DEFAULTS.fontSize, - description: nls.localize('fontSize', "Controls the font size in pixels.") - }, - 'resultsGrid.letterSpacing': { - type: 'number', - default: EDITOR_FONT_DEFAULTS.letterSpacing, - description: nls.localize('letterSpacing', "Controls the letter spacing in pixels.") - }, - 'resultsGrid.rowHeight': { - type: 'number', - default: RESULTS_GRID_DEFAULTS.rowHeight, - description: nls.localize('rowHeight', "Controls the row height in pixels") - }, - 'resultsGrid.cellPadding': { - oneOf: [ - { - type: 'number' - }, - { - type: 'array', - items: { - type: 'number' - } - } - ], - default: RESULTS_GRID_DEFAULTS.cellPadding, - description: nls.localize('cellPadding', "Controls the cell padding in pixels") - } - } -}; - -configurationRegistry.registerConfiguration(resultsGridConfiguration); diff --git a/src/typings/modules/angular2-slickgrid/index.d.ts b/src/typings/modules/angular2-slickgrid/index.d.ts index ecdbf3b92b..30a25152d0 100644 --- a/src/typings/modules/angular2-slickgrid/index.d.ts +++ b/src/typings/modules/angular2-slickgrid/index.d.ts @@ -1,8 +1,8 @@ // Generated by typings -// Source: node_modules/angular2-slickgrid/out/js/gridsync.service.d.ts -declare module '~angular2-slickgrid/out/js/gridsync.service' { +// Source: node_modules/angular2-slickgrid/components/js/gridsync.service.d.ts +declare module '~angular2-slickgrid/components/js/gridsync.service' { import { Observable } from 'rxjs/Rx'; -import { SelectionModel } from '~angular2-slickgrid/out/js/selectionModel'; +import { SelectionModel } from '~angular2-slickgrid/components/js/selectionmodel'; export class GridSyncService { columnMinWidthPX: number; private _scrollLeftPX; @@ -30,13 +30,13 @@ export class GridSyncService { private notifyUpdates(propertyName); } } -declare module 'angular2-slickgrid/out/js/gridsync.service' { -export * from '~angular2-slickgrid/out/js/gridsync.service'; +declare module 'angular2-slickgrid/components/js/gridsync.service' { +export * from '~angular2-slickgrid/components/js/gridsync.service'; } // Generated by typings -// Source: node_modules/angular2-slickgrid/out/js/interfaces.d.ts -declare module '~angular2-slickgrid/out/js/interfaces' { +// Source: node_modules/angular2-slickgrid/components/js/interfaces.d.ts +declare module '~angular2-slickgrid/components/js/interfaces' { import { Observable } from 'rxjs/Rx'; export enum NotificationType { Error = 0, @@ -90,14 +90,14 @@ export interface IGridDataRow { values: any[]; } } -declare module 'angular2-slickgrid/out/js/interfaces' { -export * from '~angular2-slickgrid/out/js/interfaces'; +declare module 'angular2-slickgrid/components/js/interfaces' { +export * from '~angular2-slickgrid/components/js/interfaces'; } // Generated by typings -// Source: node_modules/angular2-slickgrid/out/js/selectionModel.d.ts -declare module '~angular2-slickgrid/out/js/selectionModel' { -import { ISelectionRange } from '~angular2-slickgrid/out/js/interfaces'; +// Source: node_modules/angular2-slickgrid/components/js/selectionmodel.d.ts +declare module '~angular2-slickgrid/components/js/selectionmodel' { +import { ISelectionRange } from '~angular2-slickgrid/components/js/interfaces'; export class SelectionModel implements ISlickSelectionModel { private _rowSelectionModel; private _handler; @@ -156,17 +156,17 @@ export interface ISlickGrid { getDataLength(): number; } } -declare module 'angular2-slickgrid/out/js/selectionModel' { -export * from '~angular2-slickgrid/out/js/selectionModel'; +declare module 'angular2-slickgrid/components/js/selectionmodel' { +export * from '~angular2-slickgrid/components/js/selectionmodel'; } // Generated by typings -// Source: node_modules/angular2-slickgrid/out/js/slickGrid.d.ts -declare module '~angular2-slickgrid/out/js/slickGrid' { +// Source: node_modules/angular2-slickgrid/components/js/slickgrid.d.ts +declare module '~angular2-slickgrid/components/js/slickgrid' { import { OnChanges, OnInit, OnDestroy, SimpleChange, EventEmitter, AfterViewInit } from '@angular/core'; import { Observable } from 'rxjs/Rx'; -import { IObservableCollection, IGridDataRow, IColumnDefinition } from '~angular2-slickgrid/out/js/interfaces'; -import { ISlickRange } from '~angular2-slickgrid/out/js/selectionModel'; +import { IObservableCollection, IGridDataRow, IColumnDefinition } from '~angular2-slickgrid/components/js/interfaces'; +import { ISlickRange, ISlickEvent } from '~angular2-slickgrid/components/js/selectionmodel'; export class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit { private _el; private _gridSyncService; @@ -184,22 +184,17 @@ export class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit { showDataTypeIcon: boolean; enableColumnReorder: boolean; enableAsyncPostRender: boolean; - selectionModel: string | Slick.SelectionModel; - plugins: Array>; + selectionModel: string; + plugins: string[]; enableEditing: boolean; topRowNumber: number; overrideCellFn: (rowNumber, columnId, value?, data?) => string; isColumnEditable: (column: number) => boolean; isCellEditValid: (row: number, column: number, newValue: any) => boolean; - private _rowHeight; loadFinished: EventEmitter; editingFinished: EventEmitter; contextMenu: EventEmitter; topRowNumberChange: EventEmitter; - activeCellChanged: EventEmitter<{ - row: number; - column: number; - }>; cellEditBegin: EventEmitter<{ row: number; column: number; @@ -216,11 +211,11 @@ export class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit { row: number; }>; onFocus(): void; - rowHeight: number; private _grid; private _gridColumns; private _columnNameToIndex; private _gridData; + private _rowHeight; private _resizeSubscription; private _gridSyncSubscription; private _topRow; @@ -236,11 +231,11 @@ export class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit { ngOnDestroy(): void; enterEditSession(): void; endEditSession(): void; - readonly onSelectedRowsChanged: Slick.Event>; + readonly onSelectedRowsChanged: ISlickEvent; getSelectedRows(): number[]; getColumnIndex(name: string): number; getSelectedRanges(): ISlickRange[]; - registerPlugin(plugin: Slick.Plugin | string): void; + registerPlugin(plugin: string): void; setActive(): void; selection: ISlickRange[] | boolean; subscribeToContextMenu(): void; @@ -263,14 +258,14 @@ export class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit { private renderGridDataRowsRange(startIndex, count); } } -declare module 'angular2-slickgrid/out/js/slickGrid' { -export * from '~angular2-slickgrid/out/js/slickGrid'; +declare module 'angular2-slickgrid/components/js/slickgrid' { +export * from '~angular2-slickgrid/components/js/slickgrid'; } // Generated by typings -// Source: node_modules/angular2-slickgrid/out/js/virtualizedCollection.d.ts -declare module '~angular2-slickgrid/out/js/virtualizedCollection' { -import { IObservableCollection, CollectionChange } from '~angular2-slickgrid/out/js/interfaces'; +// Source: node_modules/angular2-slickgrid/components/js/virtualizedcollection.d.ts +declare module '~angular2-slickgrid/components/js/virtualizedcollection' { +import { IObservableCollection, CollectionChange } from '~angular2-slickgrid/components/js/interfaces'; export class VirtualizedCollection implements IObservableCollection { private _placeHolderGenerator; private _length; @@ -289,22 +284,22 @@ export class VirtualizedCollection implements IObservableCollection