From 619c816e7f92d8d119c1c2d0945cd19e6b2f5bfe Mon Sep 17 00:00:00 2001 From: Kevin Cunnane Date: Mon, 23 Apr 2018 09:54:44 -0700 Subject: [PATCH] Fix flex container and card layout issues (#1195) * Fix main layout issues and add box around card - Need to improve box size as it's taking too much space * Fix UI issues with flexContainer and cards * Simplify card HTML --- .../src/controllers/mainController.ts | 11 +++++--- .../parts/modelComponents/card.component.ts | 10 +++---- src/sql/parts/modelComponents/card.css | 27 +++++++++++++++++++ .../flexContainer.component.ts | 17 ++++++++++-- .../parts/modelComponents/flexContainer.css | 3 ++- src/sql/sqlops.proposed.d.ts | 10 ++++++- 6 files changed, 65 insertions(+), 13 deletions(-) create mode 100644 src/sql/parts/modelComponents/card.css diff --git a/samples/sqlservices/src/controllers/mainController.ts b/samples/sqlservices/src/controllers/mainController.ts index 0e28a7ab78..5974a55a8e 100644 --- a/samples/sqlservices/src/controllers/mainController.ts +++ b/samples/sqlservices/src/controllers/mainController.ts @@ -47,11 +47,16 @@ export default class MainController implements vscode.Disposable { sqlops.dashboard.registerModelViewProvider('sqlservices', async (view) => { let flexModel = view.modelBuilder.flexContainer() .withLayout({ - flexFlow: 'row' + flexFlow: 'row', + alignItems: 'center' }).withItems([ // 1st child panel with N cards view.modelBuilder.flexContainer() - .withLayout({ flexFlow: 'column' }) + .withLayout({ + flexFlow: 'column', + alignItems: 'center', + justifyContent: 'center' + }) .withItems([ view.modelBuilder.card() .withProperties({ @@ -73,7 +78,7 @@ export default class MainController implements vscode.Disposable { }) .component() ]).component() - ], { flex: '0 1 50%' }) + ], { flex: '1 1 50%' }) .component(); await view.initializeModel(flexModel); }); diff --git a/src/sql/parts/modelComponents/card.component.ts b/src/sql/parts/modelComponents/card.component.ts index fb8eea1f21..823053866c 100644 --- a/src/sql/parts/modelComponents/card.component.ts +++ b/src/sql/parts/modelComponents/card.component.ts @@ -2,7 +2,7 @@ * 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!./flexContainer'; +import 'vs/css!./card'; import { Component, Input, Inject, ChangeDetectorRef, forwardRef, ComponentFactoryResolver, ViewChild, ViewChildren, ElementRef, Injector, OnDestroy, QueryList, @@ -16,11 +16,9 @@ import { IComponent, IComponentDescriptor, IModelStore } from 'sql/parts/modelCo @Component({ template: ` -
- -
{{label}}
-
{{value}}
-
+
+

{{label}}

+

{{value}}

` }) diff --git a/src/sql/parts/modelComponents/card.css b/src/sql/parts/modelComponents/card.css new file mode 100644 index 0000000000..29e21d6f0f --- /dev/null +++ b/src/sql/parts/modelComponents/card.css @@ -0,0 +1,27 @@ + +.model-card { + position: relative; + display: inline-block; + height: auto; + width: auto; + margin: 15px; + padding: 10px 45px 20px 45px; + min-height: 30px; + min-width: 30px; + border-width: 1px; + border-style: solid; + border-color: rgb(214, 214, 214); + text-align: left; + vertical-align: top; + box-shadow: rgba(120, 120, 120, 0.75) 0px 0px 6px; +} + +.model-card .card-label { + font-size: 12px; + font-weight: bold; +} + +.model-card .card-value { + font-size: 12px; + line-height: 18px; +} \ No newline at end of file diff --git a/src/sql/parts/modelComponents/flexContainer.component.ts b/src/sql/parts/modelComponents/flexContainer.component.ts index 9f5e9be916..385640bd16 100644 --- a/src/sql/parts/modelComponents/flexContainer.component.ts +++ b/src/sql/parts/modelComponents/flexContainer.component.ts @@ -21,7 +21,8 @@ class FlexItem { @Component({ template: ` -
+
@@ -34,6 +35,8 @@ export default class FlexContainer extends ContainerBase impleme @Input() modelStore: IModelStore; private _flexFlow: string; private _justifyContent: string; + private _alignItems: string; + private _alignContent: string; @ViewChildren(ModelComponentWrapper) private _componentWrappers: QueryList; @@ -65,6 +68,8 @@ export default class FlexContainer extends ContainerBase impleme public setLayout (layout: FlexLayout): void { this._flexFlow = layout.flexFlow ? layout.flexFlow : ''; this._justifyContent= layout.justifyContent ? layout.justifyContent : ''; + this._alignItems= layout.alignItems ? layout.alignItems : ''; + this._alignContent= layout.alignContent ? layout.alignContent : ''; this.layout(); } @@ -77,8 +82,16 @@ export default class FlexContainer extends ContainerBase impleme return this._justifyContent; } + public get alignItems(): string { + return this._alignItems; + } + + public get alignContent(): string { + return this._alignContent; + } + private getItemFlex(item: FlexItem): string { - return item.config ? item.config.flex : ''; + return item.config ? item.config.flex : '1 1 auto'; } private getItemOrder(item: FlexItem): number { return item.config ? item.config.order : 0; diff --git a/src/sql/parts/modelComponents/flexContainer.css b/src/sql/parts/modelComponents/flexContainer.css index 5f1ce18127..3b225299af 100644 --- a/src/sql/parts/modelComponents/flexContainer.css +++ b/src/sql/parts/modelComponents/flexContainer.css @@ -1,4 +1,5 @@ .flexContainer { - display: flex + display: flex; + padding: 5px; } \ No newline at end of file diff --git a/src/sql/sqlops.proposed.d.ts b/src/sql/sqlops.proposed.d.ts index f3b5aaa5c5..b3762de69c 100644 --- a/src/sql/sqlops.proposed.d.ts +++ b/src/sql/sqlops.proposed.d.ts @@ -108,6 +108,14 @@ declare module 'sqlops' { * Matches the justify-content CSS property. */ justifyContent?: string; + /** + * Matches the align-items CSS property. + */ + alignItems?: string; + /** + * Matches the align-content CSS property. + */ + alignContent?: string; } export interface FlexItemLayout { @@ -117,7 +125,7 @@ declare module 'sqlops' { order?: number; /** * Matches the flex CSS property and its available values. - * Default is "0 1 auto". + * Default is "1 1 auto". */ flex?: string; }