From 7056d99763633502038fc15b5da63803234ba3eb Mon Sep 17 00:00:00 2001 From: Blackbaud-PatrickOFriel Date: Wed, 1 Feb 2017 15:26:54 -0500 Subject: [PATCH 1/4] starting files for list-toolbar --- src/modules/list-toolbar/index.ts | 4 + .../list-toolbar-item-renderer.component.scss | 79 ++++++++++ .../list-toolbar-item-renderer.component.ts | 17 +++ .../list-toolbar-item.component.ts | 16 ++ .../list-toolbar/list-toolbar.component.html | 28 ++++ .../list-toolbar/list-toolbar.component.scss | 51 +++++++ .../list-toolbar/list-toolbar.component.ts | 140 ++++++++++++++++++ .../list-toolbar/list-toolbar.module.ts | 30 ++++ 8 files changed, 365 insertions(+) create mode 100644 src/modules/list-toolbar/index.ts create mode 100644 src/modules/list-toolbar/list-toolbar-item-renderer.component.scss create mode 100644 src/modules/list-toolbar/list-toolbar-item-renderer.component.ts create mode 100644 src/modules/list-toolbar/list-toolbar-item.component.ts create mode 100644 src/modules/list-toolbar/list-toolbar.component.html create mode 100644 src/modules/list-toolbar/list-toolbar.component.scss create mode 100644 src/modules/list-toolbar/list-toolbar.component.ts create mode 100644 src/modules/list-toolbar/list-toolbar.module.ts diff --git a/src/modules/list-toolbar/index.ts b/src/modules/list-toolbar/index.ts new file mode 100644 index 000000000..0d9aeea4e --- /dev/null +++ b/src/modules/list-toolbar/index.ts @@ -0,0 +1,4 @@ +export { SkyListToolbarComponent } from './list-toolbar.component'; +export { SkyListToolbarItemComponent } from './list-toolbar-item.component'; +export { SkyListToolbarItemRendererComponent } from './list-toolbar-item-renderer.component'; +export { SkyListToolbarModule } from './list-toolbar.module'; diff --git a/src/modules/list-toolbar/list-toolbar-item-renderer.component.scss b/src/modules/list-toolbar/list-toolbar-item-renderer.component.scss new file mode 100644 index 000000000..d2e4547d1 --- /dev/null +++ b/src/modules/list-toolbar/list-toolbar-item-renderer.component.scss @@ -0,0 +1,79 @@ +@import '../../scss/variables'; +@import '../../scss/mixins'; + +:host { + position: relative; + float: left; + margin-right: 6px; + + /deep/ button, /deep/ input { + height: 32px; + font-size: 13px; + } + + /deep/ a { + @include sky-link(); + } + + /deep/ .toolbar-item-container { + position: relative; + + input { + float: left; + width: 150px; + border-radius: 6px; + line-height: 1.42857; + border: 1px solid $sky-color-gray-lighter-er; + outline: none; + -webkit-appearance: none; + + &:focus { + box-shadow: 3px 0 8px 0 $sky-search-bar-outline-color; + border: 1px solid $sky-color-blue; + border-right: none; + } + + &[type='text'] { + padding: 6px; + padding-right: 30px; + } + + &::-webkit-input-placeholder { + font-style: italic; + } + &:-moz-placeholder { + font-style: italic; + } + &::-moz-placeholder { + font-style: italic; + } + &:-ms-input-placeholder { + font-style: italic; + } + } + + @media (min-width: 768px) { + input { + width: 300px; + } + } + + button { + position: absolute; + right: 0; + margin: 0; + border-color: transparent; + background-color: transparent; + cursor: pointer; + } + } + + /deep/ button { + border-radius: 3px; + color: $sky-color-black; + background-color: $sky-color-white; + border: 1px solid #e7eaec; + padding: 6px 12px; + cursor: pointer; + } +} diff --git a/src/modules/list-toolbar/list-toolbar-item-renderer.component.ts b/src/modules/list-toolbar/list-toolbar-item-renderer.component.ts new file mode 100644 index 000000000..b4a5f6a50 --- /dev/null +++ b/src/modules/list-toolbar/list-toolbar-item-renderer.component.ts @@ -0,0 +1,17 @@ +import { Component, ViewContainerRef, ViewChild, Input, TemplateRef, OnInit} from '@angular/core'; + +@Component({ + selector: 'sky-list-toolbar-item-renderer', + template: '', + styles: [require('./list-toolbar-item-renderer.component.scss')] +}) +export class SkyListToolbarItemRendererComponent implements OnInit { + @Input() public template: TemplateRef; + @ViewChild('container', { read: ViewContainerRef }) private container: ViewContainerRef; + + public ngOnInit() { + if (this.template !== undefined) { + this.container.createEmbeddedView(this.template, this); + } + } +} diff --git a/src/modules/list-toolbar/list-toolbar-item.component.ts b/src/modules/list-toolbar/list-toolbar-item.component.ts new file mode 100644 index 000000000..b68a70eed --- /dev/null +++ b/src/modules/list-toolbar/list-toolbar-item.component.ts @@ -0,0 +1,16 @@ +import { Component, Input, ContentChildren, TemplateRef, QueryList } from '@angular/core'; +import * as moment from 'moment'; + +@Component({ + selector: 'sky-list-toolbar-item', + template: '' +}) +export class SkyListToolbarItemComponent { + @Input() public id: string = moment().toDate().getTime().toString(); + @Input() public index: number = -1; + @Input() public location: string = 'left'; + @ContentChildren(TemplateRef) private templates: QueryList>; + public get template(): TemplateRef { + return this.templates.length > 0 ? this.templates.first : undefined; + } +} diff --git a/src/modules/list-toolbar/list-toolbar.component.html b/src/modules/list-toolbar/list-toolbar.component.html new file mode 100644 index 000000000..efb35d84d --- /dev/null +++ b/src/modules/list-toolbar/list-toolbar.component.html @@ -0,0 +1,28 @@ + + +
+
+ + + +
+ +
+ + diff --git a/src/modules/list-toolbar/list-toolbar.component.scss b/src/modules/list-toolbar/list-toolbar.component.scss new file mode 100644 index 000000000..4ff883c47 --- /dev/null +++ b/src/modules/list-toolbar/list-toolbar.component.scss @@ -0,0 +1,51 @@ +@import '../../scss/variables'; + +:host { + display: block; + width: 100%; + + /deep/ .standard, /deep/ .search { + min-height: 46px; + } + + /deep/ .sky-toolbar-standard { + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + height: 46px; + padding: 6px; + + sky-list-toolbar-item-renderer > a { + display: inline-block; + padding-top: 6px; + } + } + + /deep/ .sky-toolbar-search { + background-color: #eee; + + .primary-bar { + width: 100%; + display: block; + min-height: 46px; + padding: 7px; + + sky-list-toolbar-item-renderer { + width: 100%; + + .toolbar-item-container { + > input { + width: 100%; + } + } + } + } + + .secondary-bar { + width: 100%; + display: inline-block; + border-top: 1px solid #ccc; + padding: 6px 10px; + padding-bottom: 2px; + } + } +} diff --git a/src/modules/list-toolbar/list-toolbar.component.ts b/src/modules/list-toolbar/list-toolbar.component.ts new file mode 100644 index 000000000..284a09574 --- /dev/null +++ b/src/modules/list-toolbar/list-toolbar.component.ts @@ -0,0 +1,140 @@ +import { + Component, + ContentChildren, + QueryList, + ViewChild, + TemplateRef, + Input, + OnInit, + AfterContentInit, + ChangeDetectionStrategy +} from '@angular/core'; +import { + ListToolbarConfigSetSearchEnabledAction +} from './state/config/actions'; +import { Observable } from 'rxjs'; +import { + ListToolbarState, + ListToolbarStateDispatcher, + ListToolbarStateModel +} from './state'; +import { ListToolbarModel } from '../list/state/toolbar/toolbar.model'; +import { ListToolbarItemModel } from '../list/state/toolbar/toolbar-item.model'; +import { SkyListToolbarItemComponent } from './list-toolbar-item.component'; +import { ListState, ListStateDispatcher } from '../list/state'; +import { getValue } from 'microedge-rxstate/dist/helpers'; + +@Component({ + selector: 'sky-list-toolbar', + templateUrl: './list-toolbar.component.html', + styleUrls: ['./list-toolbar.component.scss'], + providers: [ + ListToolbarState, + ListToolbarStateDispatcher, + ListToolbarStateModel + ], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class SkyListToolbarComponent implements OnInit, AfterContentInit { + @Input() public type: string = 'standard'; + @Input() public placeholder: string = 'Find in this list'; + @Input() public searchEnabled: boolean | Observable; + + /* tslint:disable */ + @Input('searchText') private searchTextInput: string | Observable; + /* tslint:enable */ + + @ContentChildren(SkyListToolbarItemComponent) + private toolbarItems: QueryList; + + @ViewChild('search') + private searchTemplate: TemplateRef; + + constructor( + private state: ListState, + private dispatcher: ListStateDispatcher, + private toolbarState: ListToolbarState, + public toolbarDispatcher: ListToolbarStateDispatcher + ) { + } + + public ngOnInit() { + this.dispatcher.toolbarExists(true); + getValue(this.searchTextInput, (searchText: string) => this.updateSearchText(searchText)); + getValue(this.searchEnabled, (searchEnabled: any) => + this.toolbarDispatcher.next( + new ListToolbarConfigSetSearchEnabledAction( + searchEnabled === undefined ? true : searchEnabled + ) + ) + ); + + this.dispatcher.toolbarAddItems([ + this.type !== 'search' ? + new ListToolbarItemModel({ + id: 'search', + template: this.searchTemplate, + location: 'center' + }) : + undefined + ].filter(s => s !== undefined)); + } + + public ngAfterContentInit() { + this.toolbarItems.forEach(toolbarItem => + this.dispatcher.toolbarAddItems( + [new ListToolbarItemModel(toolbarItem)], + toolbarItem.index + ) + ); + } + + get searchText() { + return this.state.map(s => s.search.searchText).distinctUntilChanged(); + } + + get leftTemplates() { + return Observable.combineLatest( + this.state.map(s => s.toolbar).distinctUntilChanged(), + this.view, + (toolbar: ListToolbarModel, view: string) => toolbar.items.filter( + (i: ListToolbarItemModel) => + i.location === 'left' && (i.view === undefined || i.view === view) + ) + ); + } + + get centerTemplates() { + return Observable.combineLatest( + this.state.map(s => s.toolbar).distinctUntilChanged(), + this.view, + (toolbar: ListToolbarModel, view: string) => toolbar.items.filter( + (i: ListToolbarItemModel) => + i.location === 'center' && (i.view === undefined || i.view === view) + ) + ); + } + + get rightTemplates() { + return Observable.combineLatest( + this.state.map(s => s.toolbar).distinctUntilChanged(), + this.view.distinctUntilChanged(), + (toolbar: ListToolbarModel, view: string) => { + return toolbar.items.filter( + (i: ListToolbarItemModel) => + i.location === 'right' && (i.view === undefined || i.view === view) + ); + }); + } + + + private updateSearchText(searchText: string) { + this.dispatcher.searchSetText(searchText); + } + + private get isSearchEnabled() { + return this.toolbarState.map(s => s.config) + .distinctUntilChanged() + .map(c => c.searchEnabled); + } +} diff --git a/src/modules/list-toolbar/list-toolbar.module.ts b/src/modules/list-toolbar/list-toolbar.module.ts new file mode 100644 index 000000000..e017ffbf7 --- /dev/null +++ b/src/modules/list-toolbar/list-toolbar.module.ts @@ -0,0 +1,30 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { SkyDropdownModule } from '../dropdown'; +import { SkyListToolbarComponent } from './list-toolbar.component'; +import { SkyListToolbarItemComponent } from './list-toolbar-item.component'; +import { SkyListToolbarItemRendererComponent } from './list-toolbar-item-renderer.component'; +import { SkyListToolbarSortComponent } from './list-toolbar-sort.component'; + +@NgModule({ + declarations: [ + SkyListToolbarComponent, + SkyListToolbarItemComponent, + SkyListToolbarItemRendererComponent, + SkyListToolbarSortComponent + ], + imports: [ + CommonModule, + SkyDropdownModule + ], + exports: [ + SkyListToolbarComponent, + SkyListToolbarItemComponent, + SkyListToolbarItemRendererComponent, + SkyListToolbarSortComponent + ], + providers: [ + ] +}) +export class SkyListToolbarModule { +} From a9da0a03c003d039ed0cd2dbdc4ae0faeb4d7f21 Mon Sep 17 00:00:00 2001 From: Blackbaud-PatrickOFriel Date: Wed, 1 Feb 2017 17:49:03 -0500 Subject: [PATCH 2/4] Add standalone toolbar component Also: - tweak input-group and search styles to not use table display since we can use flex instead. - Used toolbar component in search demo. TODO: - toolbar unit tests - toolbar visual tests - toolbar docs - use toolbar in list-toolbar component --- .../search/search-demo.component.html | 41 ++++++++----------- src/core.ts | 3 ++ .../list-toolbar-item.component.ts | 2 +- .../list-toolbar/list-toolbar.component.ts | 6 ++- src/modules/search/search.component.scss | 10 ++--- src/modules/toolbar/index.ts | 3 ++ .../toolbar/toolbar-item.component.html | 3 ++ .../toolbar/toolbar-item.component.scss | 5 +++ src/modules/toolbar/toolbar-item.component.ts | 12 ++++++ src/modules/toolbar/toolbar.component.html | 3 ++ src/modules/toolbar/toolbar.component.scss | 11 +++++ src/modules/toolbar/toolbar.component.ts | 12 ++++++ src/modules/toolbar/toolbar.module.ts | 20 +++++++++ src/scss/_input-groups.scss | 18 +++----- src/scss/_variables.scss | 6 +++ 15 files changed, 108 insertions(+), 47 deletions(-) create mode 100644 src/modules/toolbar/index.ts create mode 100644 src/modules/toolbar/toolbar-item.component.html create mode 100644 src/modules/toolbar/toolbar-item.component.scss create mode 100644 src/modules/toolbar/toolbar-item.component.ts create mode 100644 src/modules/toolbar/toolbar.component.html create mode 100644 src/modules/toolbar/toolbar.component.scss create mode 100644 src/modules/toolbar/toolbar.component.ts create mode 100644 src/modules/toolbar/toolbar.module.ts diff --git a/src/app/components/search/search-demo.component.html b/src/app/components/search/search-demo.component.html index 613fbb1d7..5fc710247 100644 --- a/src/app/components/search/search-demo.component.html +++ b/src/app/components/search/search-demo.component.html @@ -1,29 +1,20 @@ - - - + Predefined search text + + + + + + +
diff --git a/src/core.ts b/src/core.ts index b733b86f0..83b67c6ab 100644 --- a/src/core.ts +++ b/src/core.ts @@ -25,6 +25,7 @@ import { SkyRadioModule } from './modules/radio'; import { SkyRepeaterModule } from './modules/repeater'; import { SkySearchModule } from './modules/search'; import { SkyTabsModule } from './modules/tabs'; +import { SkyToolbarModule } from './modules/toolbar'; import { SkyTilesModule } from './modules/tiles'; import { SkyWaitModule } from './modules/wait'; @@ -54,6 +55,7 @@ import { SkyWaitModule } from './modules/wait'; SkySearchModule, SkyTabsModule, SkyTilesModule, + SkyToolbarModule, SkyWaitModule ] }) @@ -84,6 +86,7 @@ export * from './modules/repeater'; export * from './modules/search'; export * from './modules/tabs'; export * from './modules/tiles'; +export * from './modules/toolbar'; export * from './modules/wait'; export const SKY_PROVIDERS: any[] = [ diff --git a/src/modules/list-toolbar/list-toolbar-item.component.ts b/src/modules/list-toolbar/list-toolbar-item.component.ts index b68a70eed..4887f00a0 100644 --- a/src/modules/list-toolbar/list-toolbar-item.component.ts +++ b/src/modules/list-toolbar/list-toolbar-item.component.ts @@ -1,5 +1,5 @@ import { Component, Input, ContentChildren, TemplateRef, QueryList } from '@angular/core'; -import * as moment from 'moment'; +let moment = require('moment'); @Component({ selector: 'sky-list-toolbar-item', diff --git a/src/modules/list-toolbar/list-toolbar.component.ts b/src/modules/list-toolbar/list-toolbar.component.ts index 284a09574..3c642c2d6 100644 --- a/src/modules/list-toolbar/list-toolbar.component.ts +++ b/src/modules/list-toolbar/list-toolbar.component.ts @@ -1,3 +1,4 @@ +/* import { Component, ContentChildren, @@ -41,9 +42,9 @@ export class SkyListToolbarComponent implements OnInit, AfterContentInit { @Input() public searchEnabled: boolean | Observable; /* tslint:disable */ - @Input('searchText') private searchTextInput: string | Observable; + //@Input('searchText') private searchTextInput: string | Observable; /* tslint:enable */ - +/* @ContentChildren(SkyListToolbarItemComponent) private toolbarItems: QueryList; @@ -138,3 +139,4 @@ export class SkyListToolbarComponent implements OnInit, AfterContentInit { .map(c => c.searchEnabled); } } +*/ diff --git a/src/modules/search/search.component.scss b/src/modules/search/search.component.scss index 980bdf1ff..b5f3cbe74 100644 --- a/src/modules/search/search.component.scss +++ b/src/modules/search/search.component.scss @@ -2,7 +2,7 @@ @media (min-width: $sky-screen-sm-min) { .sky-search-input-container { - max-width: 300px; + min-width: 300px; } } @@ -52,10 +52,12 @@ .sky-search-item-dismiss { flex-shrink: 0; + display: flex; } .sky-search-item-input { flex-grow: 1; + display: flex; } /* This is needed or else the input will be tiny @@ -128,9 +130,3 @@ border: 2px solid $sky-color-green; padding: 5px 11px; } - -.sky-search-container { - display: inline-block; - vertical-align: middle; - margin-bottom: 0; -} diff --git a/src/modules/toolbar/index.ts b/src/modules/toolbar/index.ts new file mode 100644 index 000000000..72b6e8ab1 --- /dev/null +++ b/src/modules/toolbar/index.ts @@ -0,0 +1,3 @@ +export { SkyToolbarComponent } from './toolbar.component'; +export { SkyToolbarItemComponent } from './toolbar-item.component'; +export { SkyToolbarModule } from './toolbar.module'; diff --git a/src/modules/toolbar/toolbar-item.component.html b/src/modules/toolbar/toolbar-item.component.html new file mode 100644 index 000000000..3c16427e8 --- /dev/null +++ b/src/modules/toolbar/toolbar-item.component.html @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/modules/toolbar/toolbar-item.component.scss b/src/modules/toolbar/toolbar-item.component.scss new file mode 100644 index 000000000..24f709a94 --- /dev/null +++ b/src/modules/toolbar/toolbar-item.component.scss @@ -0,0 +1,5 @@ +@import '../../scss/mixins'; + +.sky-toolbar-item { + margin-right: $sky-margin-half; +} diff --git a/src/modules/toolbar/toolbar-item.component.ts b/src/modules/toolbar/toolbar-item.component.ts new file mode 100644 index 000000000..04918eb9b --- /dev/null +++ b/src/modules/toolbar/toolbar-item.component.ts @@ -0,0 +1,12 @@ +import { + Component +} from '@angular/core'; + +@Component({ + selector: 'sky-toolbar-item', + styleUrls: ['./toolbar-item.component.scss'], + templateUrl: './toolbar-item.component.html' +}) +export class SkyToolbarItemComponent { + +} diff --git a/src/modules/toolbar/toolbar.component.html b/src/modules/toolbar/toolbar.component.html new file mode 100644 index 000000000..d7b65b59b --- /dev/null +++ b/src/modules/toolbar/toolbar.component.html @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/modules/toolbar/toolbar.component.scss b/src/modules/toolbar/toolbar.component.scss new file mode 100644 index 000000000..6bf938c93 --- /dev/null +++ b/src/modules/toolbar/toolbar.component.scss @@ -0,0 +1,11 @@ +@import '../../scss/mixins'; + +.sky-toolbar-container { + min-height: $sky-toolbar-min-height; + background-color: $sky-toolbar-background-color; + padding: $sky-padding-half $sky-padding; + @include sky-border(dark, top, bottom); + display: flex; + align-items: center; + position: relative; +} diff --git a/src/modules/toolbar/toolbar.component.ts b/src/modules/toolbar/toolbar.component.ts new file mode 100644 index 000000000..6f88fe64d --- /dev/null +++ b/src/modules/toolbar/toolbar.component.ts @@ -0,0 +1,12 @@ +import { + Component +} from '@angular/core'; + +@Component({ + selector: 'sky-toolbar', + styleUrls: ['./toolbar.component.scss'], + templateUrl: './toolbar.component.html' +}) +export class SkyToolbarComponent { + +} diff --git a/src/modules/toolbar/toolbar.module.ts b/src/modules/toolbar/toolbar.module.ts new file mode 100644 index 000000000..30edeb47a --- /dev/null +++ b/src/modules/toolbar/toolbar.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { SkyToolbarComponent } from './toolbar.component'; +import { SkyToolbarItemComponent } from './toolbar-item.component'; + +@NgModule({ + declarations: [ + SkyToolbarComponent, + SkyToolbarItemComponent + ], + imports: [ + CommonModule + ], + exports: [ + SkyToolbarComponent, + SkyToolbarItemComponent + ] +}) +export class SkyToolbarModule { } diff --git a/src/scss/_input-groups.scss b/src/scss/_input-groups.scss index bf7df5b48..5b631bf15 100644 --- a/src/scss/_input-groups.scss +++ b/src/scss/_input-groups.scss @@ -2,8 +2,7 @@ .sky-input-group { position: relative; // For dropdowns - display: table; - border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table + display: flex; .sky-form-control { // Ensure that the input is always above the *appended* addon button for @@ -16,23 +15,14 @@ } } -// Display as table-cell .sky-input-group-btn, .sky-input-group .sky-form-control { - display: table-cell; &:not(:first-child):not(:last-child) { border-radius: 0; } } -// Addon and addon wrapper for buttons -.sky-input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; // Match the inputs -} - // Reset rounded corners .sky-input-group .sky-form-control:first-child, .sky-input-group-btn:first-child > .sky-btn, @@ -42,12 +32,14 @@ .sky-input-group .sky-form-control:last-child, .sky-input-group-btn:last-child > .sky-btn, -.sky-input-group-btn:first-child > .sky-btn:not(:first-child) { +.sky-input-group-btn:first-child > .sky-btn:not(:first-child), +.sky-input-group-btn:not(:first-child) > .sky-btn { @include sky-border-left-radius(0); } // Button input groups .sky-input-group-btn { + display: flex; position: relative; // Jankily prevent input button groups from wrapping with `white-space` and // `font-size` in combination with `inline-block` on buttons. @@ -57,6 +49,8 @@ // Negative margin for spacing, position for bringing hovered/focused/actived // element above the siblings. > .sky-btn { + padding-top: 0; + padding-bottom: 0; position: relative; + .sky-btn { margin-left: -1px; diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss index 7b6d22899..8062d61d0 100644 --- a/src/scss/_variables.scss +++ b/src/scss/_variables.scss @@ -135,6 +135,12 @@ $sky-paging-border-color: #ddd !default; $sky-paging-background-color: $sky-color-white !default; // end paging +// begin toolbar +$sky-toolbar-background-color: $sky-color-white !default; +$sky-toolbar-min-height: 49px; +// end toolbar + + // begin wait $sky-wait-color: $sky-color-blue !default; $sky-wait-mask-color: $sky-color-white !default; From 0421e54110daad60e3a7f849f58b5fc9a552dc46 Mon Sep 17 00:00:00 2001 From: Blackbaud-PatrickOFriel Date: Thu, 2 Feb 2017 09:40:19 -0500 Subject: [PATCH 3/4] Remove list-toolbar stuff and add unit tests for standalone toolbar --- src/modules/list-toolbar/index.ts | 4 - .../list-toolbar-item-renderer.component.scss | 79 ---------- .../list-toolbar-item-renderer.component.ts | 17 --- .../list-toolbar-item.component.ts | 16 -- .../list-toolbar/list-toolbar.component.html | 28 ---- .../list-toolbar/list-toolbar.component.scss | 51 ------- .../list-toolbar/list-toolbar.component.ts | 142 ------------------ .../list-toolbar/list-toolbar.module.ts | 30 ---- .../fixtures/toolbar.component.fixture.html | 8 + .../fixtures/toolbar.component.fixture.ts | 8 + src/modules/toolbar/toolbar.component.spec.ts | 39 +++++ 11 files changed, 55 insertions(+), 367 deletions(-) delete mode 100644 src/modules/list-toolbar/index.ts delete mode 100644 src/modules/list-toolbar/list-toolbar-item-renderer.component.scss delete mode 100644 src/modules/list-toolbar/list-toolbar-item-renderer.component.ts delete mode 100644 src/modules/list-toolbar/list-toolbar-item.component.ts delete mode 100644 src/modules/list-toolbar/list-toolbar.component.html delete mode 100644 src/modules/list-toolbar/list-toolbar.component.scss delete mode 100644 src/modules/list-toolbar/list-toolbar.component.ts delete mode 100644 src/modules/list-toolbar/list-toolbar.module.ts create mode 100644 src/modules/toolbar/fixtures/toolbar.component.fixture.html create mode 100644 src/modules/toolbar/fixtures/toolbar.component.fixture.ts create mode 100644 src/modules/toolbar/toolbar.component.spec.ts diff --git a/src/modules/list-toolbar/index.ts b/src/modules/list-toolbar/index.ts deleted file mode 100644 index 0d9aeea4e..000000000 --- a/src/modules/list-toolbar/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { SkyListToolbarComponent } from './list-toolbar.component'; -export { SkyListToolbarItemComponent } from './list-toolbar-item.component'; -export { SkyListToolbarItemRendererComponent } from './list-toolbar-item-renderer.component'; -export { SkyListToolbarModule } from './list-toolbar.module'; diff --git a/src/modules/list-toolbar/list-toolbar-item-renderer.component.scss b/src/modules/list-toolbar/list-toolbar-item-renderer.component.scss deleted file mode 100644 index d2e4547d1..000000000 --- a/src/modules/list-toolbar/list-toolbar-item-renderer.component.scss +++ /dev/null @@ -1,79 +0,0 @@ -@import '../../scss/variables'; -@import '../../scss/mixins'; - -:host { - position: relative; - float: left; - margin-right: 6px; - - /deep/ button, /deep/ input { - height: 32px; - font-size: 13px; - } - - /deep/ a { - @include sky-link(); - } - - /deep/ .toolbar-item-container { - position: relative; - - input { - float: left; - width: 150px; - border-radius: 6px; - line-height: 1.42857; - border: 1px solid $sky-color-gray-lighter-er; - outline: none; - -webkit-appearance: none; - - &:focus { - box-shadow: 3px 0 8px 0 $sky-search-bar-outline-color; - border: 1px solid $sky-color-blue; - border-right: none; - } - - &[type='text'] { - padding: 6px; - padding-right: 30px; - } - - &::-webkit-input-placeholder { - font-style: italic; - } - &:-moz-placeholder { - font-style: italic; - } - &::-moz-placeholder { - font-style: italic; - } - &:-ms-input-placeholder { - font-style: italic; - } - } - - @media (min-width: 768px) { - input { - width: 300px; - } - } - - button { - position: absolute; - right: 0; - margin: 0; - border-color: transparent; - background-color: transparent; - cursor: pointer; - } - } - - /deep/ button { - border-radius: 3px; - color: $sky-color-black; - background-color: $sky-color-white; - border: 1px solid #e7eaec; - padding: 6px 12px; - cursor: pointer; - } -} diff --git a/src/modules/list-toolbar/list-toolbar-item-renderer.component.ts b/src/modules/list-toolbar/list-toolbar-item-renderer.component.ts deleted file mode 100644 index b4a5f6a50..000000000 --- a/src/modules/list-toolbar/list-toolbar-item-renderer.component.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Component, ViewContainerRef, ViewChild, Input, TemplateRef, OnInit} from '@angular/core'; - -@Component({ - selector: 'sky-list-toolbar-item-renderer', - template: '', - styles: [require('./list-toolbar-item-renderer.component.scss')] -}) -export class SkyListToolbarItemRendererComponent implements OnInit { - @Input() public template: TemplateRef; - @ViewChild('container', { read: ViewContainerRef }) private container: ViewContainerRef; - - public ngOnInit() { - if (this.template !== undefined) { - this.container.createEmbeddedView(this.template, this); - } - } -} diff --git a/src/modules/list-toolbar/list-toolbar-item.component.ts b/src/modules/list-toolbar/list-toolbar-item.component.ts deleted file mode 100644 index 4887f00a0..000000000 --- a/src/modules/list-toolbar/list-toolbar-item.component.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Component, Input, ContentChildren, TemplateRef, QueryList } from '@angular/core'; -let moment = require('moment'); - -@Component({ - selector: 'sky-list-toolbar-item', - template: '' -}) -export class SkyListToolbarItemComponent { - @Input() public id: string = moment().toDate().getTime().toString(); - @Input() public index: number = -1; - @Input() public location: string = 'left'; - @ContentChildren(TemplateRef) private templates: QueryList>; - public get template(): TemplateRef { - return this.templates.length > 0 ? this.templates.first : undefined; - } -} diff --git a/src/modules/list-toolbar/list-toolbar.component.html b/src/modules/list-toolbar/list-toolbar.component.html deleted file mode 100644 index efb35d84d..000000000 --- a/src/modules/list-toolbar/list-toolbar.component.html +++ /dev/null @@ -1,28 +0,0 @@ - - -
-
- - - -
- -
- - diff --git a/src/modules/list-toolbar/list-toolbar.component.scss b/src/modules/list-toolbar/list-toolbar.component.scss deleted file mode 100644 index 4ff883c47..000000000 --- a/src/modules/list-toolbar/list-toolbar.component.scss +++ /dev/null @@ -1,51 +0,0 @@ -@import '../../scss/variables'; - -:host { - display: block; - width: 100%; - - /deep/ .standard, /deep/ .search { - min-height: 46px; - } - - /deep/ .sky-toolbar-standard { - border-top: 1px solid #ccc; - border-bottom: 1px solid #ccc; - height: 46px; - padding: 6px; - - sky-list-toolbar-item-renderer > a { - display: inline-block; - padding-top: 6px; - } - } - - /deep/ .sky-toolbar-search { - background-color: #eee; - - .primary-bar { - width: 100%; - display: block; - min-height: 46px; - padding: 7px; - - sky-list-toolbar-item-renderer { - width: 100%; - - .toolbar-item-container { - > input { - width: 100%; - } - } - } - } - - .secondary-bar { - width: 100%; - display: inline-block; - border-top: 1px solid #ccc; - padding: 6px 10px; - padding-bottom: 2px; - } - } -} diff --git a/src/modules/list-toolbar/list-toolbar.component.ts b/src/modules/list-toolbar/list-toolbar.component.ts deleted file mode 100644 index 3c642c2d6..000000000 --- a/src/modules/list-toolbar/list-toolbar.component.ts +++ /dev/null @@ -1,142 +0,0 @@ -/* -import { - Component, - ContentChildren, - QueryList, - ViewChild, - TemplateRef, - Input, - OnInit, - AfterContentInit, - ChangeDetectionStrategy -} from '@angular/core'; -import { - ListToolbarConfigSetSearchEnabledAction -} from './state/config/actions'; -import { Observable } from 'rxjs'; -import { - ListToolbarState, - ListToolbarStateDispatcher, - ListToolbarStateModel -} from './state'; -import { ListToolbarModel } from '../list/state/toolbar/toolbar.model'; -import { ListToolbarItemModel } from '../list/state/toolbar/toolbar-item.model'; -import { SkyListToolbarItemComponent } from './list-toolbar-item.component'; -import { ListState, ListStateDispatcher } from '../list/state'; -import { getValue } from 'microedge-rxstate/dist/helpers'; - -@Component({ - selector: 'sky-list-toolbar', - templateUrl: './list-toolbar.component.html', - styleUrls: ['./list-toolbar.component.scss'], - providers: [ - ListToolbarState, - ListToolbarStateDispatcher, - ListToolbarStateModel - ], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class SkyListToolbarComponent implements OnInit, AfterContentInit { - @Input() public type: string = 'standard'; - @Input() public placeholder: string = 'Find in this list'; - @Input() public searchEnabled: boolean | Observable; - - /* tslint:disable */ - //@Input('searchText') private searchTextInput: string | Observable; - /* tslint:enable */ -/* - @ContentChildren(SkyListToolbarItemComponent) - private toolbarItems: QueryList; - - @ViewChild('search') - private searchTemplate: TemplateRef; - - constructor( - private state: ListState, - private dispatcher: ListStateDispatcher, - private toolbarState: ListToolbarState, - public toolbarDispatcher: ListToolbarStateDispatcher - ) { - } - - public ngOnInit() { - this.dispatcher.toolbarExists(true); - getValue(this.searchTextInput, (searchText: string) => this.updateSearchText(searchText)); - getValue(this.searchEnabled, (searchEnabled: any) => - this.toolbarDispatcher.next( - new ListToolbarConfigSetSearchEnabledAction( - searchEnabled === undefined ? true : searchEnabled - ) - ) - ); - - this.dispatcher.toolbarAddItems([ - this.type !== 'search' ? - new ListToolbarItemModel({ - id: 'search', - template: this.searchTemplate, - location: 'center' - }) : - undefined - ].filter(s => s !== undefined)); - } - - public ngAfterContentInit() { - this.toolbarItems.forEach(toolbarItem => - this.dispatcher.toolbarAddItems( - [new ListToolbarItemModel(toolbarItem)], - toolbarItem.index - ) - ); - } - - get searchText() { - return this.state.map(s => s.search.searchText).distinctUntilChanged(); - } - - get leftTemplates() { - return Observable.combineLatest( - this.state.map(s => s.toolbar).distinctUntilChanged(), - this.view, - (toolbar: ListToolbarModel, view: string) => toolbar.items.filter( - (i: ListToolbarItemModel) => - i.location === 'left' && (i.view === undefined || i.view === view) - ) - ); - } - - get centerTemplates() { - return Observable.combineLatest( - this.state.map(s => s.toolbar).distinctUntilChanged(), - this.view, - (toolbar: ListToolbarModel, view: string) => toolbar.items.filter( - (i: ListToolbarItemModel) => - i.location === 'center' && (i.view === undefined || i.view === view) - ) - ); - } - - get rightTemplates() { - return Observable.combineLatest( - this.state.map(s => s.toolbar).distinctUntilChanged(), - this.view.distinctUntilChanged(), - (toolbar: ListToolbarModel, view: string) => { - return toolbar.items.filter( - (i: ListToolbarItemModel) => - i.location === 'right' && (i.view === undefined || i.view === view) - ); - }); - } - - - private updateSearchText(searchText: string) { - this.dispatcher.searchSetText(searchText); - } - - private get isSearchEnabled() { - return this.toolbarState.map(s => s.config) - .distinctUntilChanged() - .map(c => c.searchEnabled); - } -} -*/ diff --git a/src/modules/list-toolbar/list-toolbar.module.ts b/src/modules/list-toolbar/list-toolbar.module.ts deleted file mode 100644 index e017ffbf7..000000000 --- a/src/modules/list-toolbar/list-toolbar.module.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { SkyDropdownModule } from '../dropdown'; -import { SkyListToolbarComponent } from './list-toolbar.component'; -import { SkyListToolbarItemComponent } from './list-toolbar-item.component'; -import { SkyListToolbarItemRendererComponent } from './list-toolbar-item-renderer.component'; -import { SkyListToolbarSortComponent } from './list-toolbar-sort.component'; - -@NgModule({ - declarations: [ - SkyListToolbarComponent, - SkyListToolbarItemComponent, - SkyListToolbarItemRendererComponent, - SkyListToolbarSortComponent - ], - imports: [ - CommonModule, - SkyDropdownModule - ], - exports: [ - SkyListToolbarComponent, - SkyListToolbarItemComponent, - SkyListToolbarItemRendererComponent, - SkyListToolbarSortComponent - ], - providers: [ - ] -}) -export class SkyListToolbarModule { -} diff --git a/src/modules/toolbar/fixtures/toolbar.component.fixture.html b/src/modules/toolbar/fixtures/toolbar.component.fixture.html new file mode 100644 index 000000000..eeb10c486 --- /dev/null +++ b/src/modules/toolbar/fixtures/toolbar.component.fixture.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/modules/toolbar/fixtures/toolbar.component.fixture.ts b/src/modules/toolbar/fixtures/toolbar.component.fixture.ts new file mode 100644 index 000000000..b681456b6 --- /dev/null +++ b/src/modules/toolbar/fixtures/toolbar.component.fixture.ts @@ -0,0 +1,8 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'sky-test-cmp', + templateUrl: './toolbar.component.fixture.html' +}) +export class ToolbarTestComponent { +} diff --git a/src/modules/toolbar/toolbar.component.spec.ts b/src/modules/toolbar/toolbar.component.spec.ts new file mode 100644 index 000000000..ff4146863 --- /dev/null +++ b/src/modules/toolbar/toolbar.component.spec.ts @@ -0,0 +1,39 @@ +import { + TestBed +} from '@angular/core/testing'; + +import { BrowserModule } from '@angular/platform-browser'; + +import { ToolbarTestComponent } from './fixtures/toolbar.component.fixture'; + +import { SkyToolbarModule } from '.'; + +import { expect } from '../testing'; + +describe('toolbar component', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ + ToolbarTestComponent + ], + imports: [ + BrowserModule, + SkyToolbarModule + ] + }); + }); + + it('should create a toolbar with transcluded items', () => { + let fixture = TestBed.createComponent(ToolbarTestComponent); + let cmp = fixture.componentInstance as ToolbarTestComponent; + let el = fixture.nativeElement as HTMLElement; + + fixture.detectChanges(); + + let buttonEls = el.querySelectorAll('.sky-toolbar-container .sky-toolbar-item .sky-btn'); + + expect(buttonEls.item(0)).toHaveText('Button 1'); + expect(buttonEls.item(1)).toHaveText('Button 2'); + + }); +}); From 03ce1ca839ac78a120435fe44509f42fb67f08c1 Mon Sep 17 00:00:00 2001 From: Blackbaud-PatrickOFriel Date: Thu, 2 Feb 2017 10:07:20 -0500 Subject: [PATCH 4/4] Update search screenshots for new input group styles and toolbar component --- src/app/components/demo-components.service.ts | 21 ++++++++++ src/app/components/toolbar/index.html | 11 ++++++ .../toolbar/toolbar-demo.component.html | 8 ++++ .../toolbar/toolbar-demo.component.ts | 9 +++++ .../search.component.visual-fixture.html | 36 +++++++----------- .../fixtures/toolbar.component.fixture.html | 18 +++++---- .../toolbar.component.visual-fixture.html | 10 +++++ .../toolbar.component.visual-fixture.ts | 29 ++++++++++++++ src/modules/toolbar/toolbar.component.spec.ts | 1 - .../toolbar/toolbar.component.visual-spec.js | 13 +++++++ ...repeater_full.repeater.1280px.baseline.png | Bin 4680 -> 0 bytes ...ome_search_full.search.1280px.baseline.png | Bin 4653 -> 0 bytes ...ll.search_small_applied.480px.baseline.png | Bin 2899 -> 0 bytes ...all_dismissable_applied.480px.baseline.png | Bin 3555 -> 0 bytes ...earch_small_dismissable.480px.baseline.png | Bin 3270 -> 0 bytes ...small_full.search_small.480px.baseline.png | Bin 2662 -> 0 bytes ...fox_search_full.search.1280px.baseline.png | Bin 5144 -> 0 bytes ...ll.search_small_applied.480px.baseline.png | Bin 3245 -> 0 bytes ...all_dismissable_applied.480px.baseline.png | Bin 4077 -> 0 bytes ...earch_small_dismissable.480px.baseline.png | Bin 3265 -> 0 bytes ...small_full.search_small.480px.baseline.png | Bin 2991 -> 0 bytes 21 files changed, 124 insertions(+), 32 deletions(-) create mode 100644 src/app/components/toolbar/index.html create mode 100644 src/app/components/toolbar/toolbar-demo.component.html create mode 100644 src/app/components/toolbar/toolbar-demo.component.ts create mode 100644 src/modules/toolbar/fixtures/toolbar.component.visual-fixture.html create mode 100644 src/modules/toolbar/fixtures/toolbar.component.visual-fixture.ts create mode 100644 src/modules/toolbar/toolbar.component.visual-spec.js delete mode 100644 webdriver-screenshots/OS X_chrome/OS X_chrome_repeater_full.repeater.1280px.baseline.png delete mode 100644 webdriver-screenshots/OS X_chrome/OS X_chrome_search_full.search.1280px.baseline.png delete mode 100644 webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_applied_full.search_small_applied.480px.baseline.png delete mode 100644 webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_dismissable_applied_full.search_small_dismissable_applied.480px.baseline.png delete mode 100644 webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_dismissable_full.search_small_dismissable.480px.baseline.png delete mode 100644 webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_full.search_small.480px.baseline.png delete mode 100644 webdriver-screenshots/OS X_firefox/OS X_firefox_search_full.search.1280px.baseline.png delete mode 100644 webdriver-screenshots/OS X_firefox/OS X_firefox_search_small_applied_full.search_small_applied.480px.baseline.png delete mode 100644 webdriver-screenshots/OS X_firefox/OS X_firefox_search_small_dismissable_applied_full.search_small_dismissable_applied.480px.baseline.png delete mode 100644 webdriver-screenshots/OS X_firefox/OS X_firefox_search_small_dismissable_full.search_small_dismissable.480px.baseline.png delete mode 100644 webdriver-screenshots/OS X_firefox/OS X_firefox_search_small_full.search_small.480px.baseline.png diff --git a/src/app/components/demo-components.service.ts b/src/app/components/demo-components.service.ts index 1a4ef5185..9de14b70a 100644 --- a/src/app/components/demo-components.service.ts +++ b/src/app/components/demo-components.service.ts @@ -523,6 +523,27 @@ export class SkyDemoComponentsService { ]; } }, + { + name: 'Toolbar', + icon: 'bars', + // tslint:disable-next-line + summary: `The toolbar component displays a SKY UX-themed toolbar.`, + url: '/components/toolbar', + getCodeFiles: function () { + return [ + { + name: 'toolbar-demo.component.html', + fileContents: require('!!raw!./toolbar/toolbar-demo.component.html') + }, + { + name: 'toolbar-demo.component.ts', + fileContents: require('!!raw!./toolbar/toolbar-demo.component.ts'), + componentName: 'SkyToolbarDemoComponent', + bootstrapSelector: 'sky-toolbar-demo' + } + ]; + } + }, { name: 'Wait', icon: 'spinner', diff --git a/src/app/components/toolbar/index.html b/src/app/components/toolbar/index.html new file mode 100644 index 000000000..a92b68e41 --- /dev/null +++ b/src/app/components/toolbar/index.html @@ -0,0 +1,11 @@ + + + The toolbar component displays a SKY UX-themed toolbar. The sky-toolbar component should be used in conjunction with the sky-toolbar-item child component. + + + + + + + + diff --git a/src/app/components/toolbar/toolbar-demo.component.html b/src/app/components/toolbar/toolbar-demo.component.html new file mode 100644 index 000000000..eeb10c486 --- /dev/null +++ b/src/app/components/toolbar/toolbar-demo.component.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/app/components/toolbar/toolbar-demo.component.ts b/src/app/components/toolbar/toolbar-demo.component.ts new file mode 100644 index 000000000..0c5c3dcc5 --- /dev/null +++ b/src/app/components/toolbar/toolbar-demo.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'sky-toolbar-demo', + templateUrl: './toolbar-demo.component.html' +}) +export class SkyToolbarDemoComponent { + +} diff --git a/src/modules/search/fixtures/search.component.visual-fixture.html b/src/modules/search/fixtures/search.component.visual-fixture.html index 257b38654..bb321d460 100644 --- a/src/modules/search/fixtures/search.component.visual-fixture.html +++ b/src/modules/search/fixtures/search.component.visual-fixture.html @@ -1,36 +1,26 @@ -
-
-
-
- -
+
+ + + + + -
-
+ +
diff --git a/src/modules/toolbar/fixtures/toolbar.component.fixture.html b/src/modules/toolbar/fixtures/toolbar.component.fixture.html index eeb10c486..6447d8411 100644 --- a/src/modules/toolbar/fixtures/toolbar.component.fixture.html +++ b/src/modules/toolbar/fixtures/toolbar.component.fixture.html @@ -1,8 +1,10 @@ - - - - - - - - +
+ + + + + + + + +
diff --git a/src/modules/toolbar/fixtures/toolbar.component.visual-fixture.html b/src/modules/toolbar/fixtures/toolbar.component.visual-fixture.html new file mode 100644 index 000000000..6447d8411 --- /dev/null +++ b/src/modules/toolbar/fixtures/toolbar.component.visual-fixture.html @@ -0,0 +1,10 @@ +
+ + + + + + + + +
diff --git a/src/modules/toolbar/fixtures/toolbar.component.visual-fixture.ts b/src/modules/toolbar/fixtures/toolbar.component.visual-fixture.ts new file mode 100644 index 000000000..b9b8a40c8 --- /dev/null +++ b/src/modules/toolbar/fixtures/toolbar.component.visual-fixture.ts @@ -0,0 +1,29 @@ +import { Component, NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; + +import { SkyModule } from '../../../../src/core'; + +import { Bootstrapper } from '../../../../visual/bootstrapper'; + +@Component({ + selector: 'sky-demo-app', + templateUrl: './toolbar.component.visual-fixture.html' +}) +class AppComponent { +} + +@NgModule({ + imports: [ + BrowserModule, + SkyModule + ], + declarations: [ + AppComponent + ], + bootstrap: [ + AppComponent + ] +}) +class AppModule { } + +Bootstrapper.bootstrapModule(AppModule); diff --git a/src/modules/toolbar/toolbar.component.spec.ts b/src/modules/toolbar/toolbar.component.spec.ts index ff4146863..b134456c7 100644 --- a/src/modules/toolbar/toolbar.component.spec.ts +++ b/src/modules/toolbar/toolbar.component.spec.ts @@ -25,7 +25,6 @@ describe('toolbar component', () => { it('should create a toolbar with transcluded items', () => { let fixture = TestBed.createComponent(ToolbarTestComponent); - let cmp = fixture.componentInstance as ToolbarTestComponent; let el = fixture.nativeElement as HTMLElement; fixture.detectChanges(); diff --git a/src/modules/toolbar/toolbar.component.visual-spec.js b/src/modules/toolbar/toolbar.component.visual-spec.js new file mode 100644 index 000000000..16046cb68 --- /dev/null +++ b/src/modules/toolbar/toolbar.component.visual-spec.js @@ -0,0 +1,13 @@ +describe('Toolbar', function () { + 'use strict'; + + it('should match previous toolbar screenshot', function () { + return browser + .setupTest('/toolbar.html') + .compareScreenshot({ + screenshotName: 'toolbar', + selector: '#screenshot-toolbar', + checkAccessibility: true + }); + }); +}); diff --git a/webdriver-screenshots/OS X_chrome/OS X_chrome_repeater_full.repeater.1280px.baseline.png b/webdriver-screenshots/OS X_chrome/OS X_chrome_repeater_full.repeater.1280px.baseline.png deleted file mode 100644 index 20599ecfab62bc17f23ec3eb7a3ba56faf040658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4680 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 WXd;lwi3UJ^ki%IQScUDSTmJ)}{*`h7 diff --git a/webdriver-screenshots/OS X_chrome/OS X_chrome_search_full.search.1280px.baseline.png b/webdriver-screenshots/OS X_chrome/OS X_chrome_search_full.search.1280px.baseline.png deleted file mode 100644 index dbfc5b0d03550e2b4b09bb602a7cb97585c91a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4653 zcmYLNcU)6Tunr(n1RVv4*-?`yR6UrR# zG?f~{EVM+vke||Vt&CfL@07*+y~ne5$&QDx<@Vch5*7pkg(r=nm;Wpdc#)+hM-e(f zpjBGhaH2mFijxCG@<$3+eg?YvM*>Bo_S@8J=UJ$3CZp~57ghP?^Y*v5w>LNE=84>P zU0=$$hqOkO<_;?hhw3Tch77H+J%!}r>1&@ zwZ^Gj>rMB>TWBX?k_<$73t(`1={bhHu20mH(!`Niwyc z%tK2Kg(P*`{M&}L@{ZGe_~sg6`jB=tYzvggkT`gU^2S~l_*NwGo{%=-_p7?DBz0(e zrSlNV8^ns^ikoh`{9uHyPraWH=m9G}#Z!lsFzo4VtqAe>&rL0fzTQoK_dvH_ea>=u z8HDVpBzz4or6lra6v>n(z0||i5TiKBPYdHqUIdx^F`3Ri;$OnH^`^g;g;3Mo>j%Qa z(gdAC#s9NjIEacc4G47moyR_~otuhM%Dkku39lA}Xq>q2VeqH#cY16&fau=TqUwbuU763Hy9Zi5fKsT zY$Kz-ce_elpN+F%x3Mup!^7C=CKnQ7;txuS4#nHptBYDoWXbf;6bg!!94P_17yxtx zqf%KbQ=>B1zGm~NY=3gQWe@G!7R#j9>q0k(`C@T*V#$9dzlaXOazMT-3tBgOxE1W9 zxexO{ub6fUJrdE)Cl8&H>;d3U+?^@zQljdWCj*(oV*ybTS^%*>saPsF7HDm&r`fgS!Gn-ujd`sP2a zH1Vc<$+5`h?HRIbMv0~Iu=c#`fgSxcxLBm-Ru#8%pr7&Aw_SCYWCNUy+-J!2^D`a% zQQjT{Zm{UfKqoUN1mfd~iz>#qyngHUdNx3F{g6-dFpV%OsP-c_M4y4JMFLr=s|-~t zXeh|0*1RgcIMd0yShm&_qgkd7;(YX^BpinS=Dl@3j(BVn1AiMCz1BJ`u#{2#Dh589 zcq z_`Rj!(b4LvDyG>FMeDQZ8Lr>qqwRjAS zjg5VLPTrA_rD!;Kd3kATBSyRX`})^~*7zodCGZ zw<36wABl=KmY2uKgu57&8|KOe=$B6Gu~$jXE-nTFDtjpp)Dkf5KG*>S3*fQJ+FBh= z&5P~IT4`zN+@18>xT7V%74T$+$eP=uM{~!+o?c%1eAi+peq9d=8qdx;666V}1Fcdu zk(olMIb!3M_?9l5{uV!{13O8KnWd<8tpvO+hQ9pFC$FK++XxAse;CG&T({`S&FO@E z^u>}oimOzv(FkcSrVDhv^@Z-5{T@Jlric04a`)Liz^)Cy#I@9Nd`=M18 z98wM8X~jh~;MhKB=4GEkU*2s~oJ!yaLjw!ca}}t7Z9&A6Oj8aqyjKILi~bh};9{w}><3;BHVYkNyf&uNiv zUYI4vHtRmF_Z*^zKoPqj$9C~G%qwZA;H(%8}NFE57u}*f9(GK`%O(v7QAmPEtk6A zldS}7-H%lAJUiUDy1?^tamC-4nG5^{WCvbgve3)Zbn8$v4qDnI-G^WN4{ZJYPot<= zoSmH;8X5qcSowb^g*d}tFc%lmtWhZ`sp%5!m!DxkiqS1Mlt?O>&jOY<<=j+XUr!&W zQmijR)hj%Lt?jZhHg2{@)A921?rjSn*708?h8fIR!6%_C-dyICaG-rb2cq#-`r0)ME|Wv&&8 zyfYbl?=fzFWxSzk5(fBTO^rRI@BZcYX!bo!+qC_Y6W6YbiGKkkcyR`FN06qbrUrI& z27z$L$H0-WR-~THqmw)0_VeF=$tfs4DTK*`5iF85?d|7dIWiWY%{M~$z&{UNk`@p4 z+OaLm*~tkU*RNlmGPrJ5EABK^lqKmA7!V+LR?E7hT5aro)qchAcYHZhGf`Plq4ejR z4)3H2VdARyfV!(ZcR=^Ae_Ov(NWW{9hO^G~ZC!bJHRZ<>^Vza=6XPgw($H4q{dWd5_zzvOzpoYeU$z-vm0y<0C zcny8qdjc};R_<;`~3er&L zsTNN5_V%9J)pk@lHZC|~%1`K^eZo|E*C+*1`8;-3*6dH80>1Y|1{`gkot_?_kJTZh zyf=f7MkO~kHat2`jGsLVkBhqn_FS5wk0ad&CEBbHCT_`NoLZ;nMdmE+2IA}eItZ8+ z4whS!My)v=!rj`y!;N;!OYJ(Tw1N-_rD=;>PKs$7989N4w-VY8Wm-7LTpOj_ea&jl z!jO80;jn*$gt8=2l{u~@s{hBS;P1EEJsKYBgZYtq71k_)97M4(rp+xBdB{=Xt6vPN zkx=L)#iM*%+nDD=x@73R!JQgxJI%IZbrK_rH=WD&)-rgP%(KR(SS9y?RbhGP1fqprV5WKv-=W8rw%Fb%O zFKq1X$$R#EXg@#y_;G4%Y|QG~;t=0uy(xb=hi$>tFc5YgRjWpYvJ56sjyZ(G!P;CE zNu*?C@)>ew+Z@|2PpnmWXjULyo$XH#5E<*@RZ3Gq4_rf4Z=VH++J5tjfAQkmG@gzyX5beSoqlWC;ajoinfymj`g=>dky89Re$ zbUBa!%gX^+t3&Odd~$YixzL#;5&KKfg2iqyA!N5{-f=uPCp)`p*11&c)8T}Hg@r{# zM1Pu`6M2Lz(kh;V@o7@pKJcTB)L{G=r53F}i}c{K(k&Nf);9CB^3BhL z!?~avOpy-E2-SIkwua0eOQuL?gmLL?*{nE}tEiLtRgo8a1s|WD3$yt4PAi_W{Tzn8 zTr3xh%|9U3r)ksQ~OCH9Ttg})1NC<>`W6TtF$XR(kF)b{kYt*O;s(_OTYKp zo}m$1B`xHo)&}tz_v&vy_K}wo5#esX;5FH}TOr1bn3KQi!AIY~I{3{VltD)WbTm%juw0yxSGD0+3nw98#ivN-^6{rk|txx#0ptKSwq zH1w60VeqO|T6%Fgl|W=rbrL_+>&l+;N(q%>dDVwXOMO)}W8eo%7gv)-U&}IvrZIv* z`MCj&=jY-o%6xHxvdkLI?y7tcS8%cvg0oeRAC1$kuU*^Mn@&w9 zIyg97oSu?LDy3@7PEFa$?Z5)hHHA8UY{!QEp|TS)x!SKSLqe`lgMG{U(LcEpe0Brh z(BQ4yt;z5hkuufu8V?&X1^-2oEvk|nHeP)BmPrV*9(^R0NR)kE)@l;KzTU1#9~T)U z<-J;%)W&>Hx!tk7vm=%@D$6#`^O*%Ppx8t*UIuWgkWMFqkSn*WU8Q_oetM@SZKzlf zZs*E6Ob$hLIg|U85Lt{oY>z;_g>`nIoBpZ*39G8AYB;>EENfj}tiT^0X3Aak8?gu5 zNMtFP-t)oE2{3Ej9JoUUD6Yb2!*_2IF|LZVhg{$)%F2KP4m|lKp!WLPatDn9=^s`b z{=U0R55!0zD<_v&T2FNfGdq*Ge z1(ZMvP-Ra~U-wy-9ZS-1W!Nl>MRv}v<)1qTS)*p6jPWh+Tc3OGIEXR3(Km8K7+yyW zO*z9F3549DG9NLtwkF%k-9uQ#s@ZEK)kmw^*Jj3CbQCv;gXSe{0m7P=Mj!PGsNP(C z&G^%TMx`OkFi8`lu)E88H~i!I>EkA67AhoZ&49~;_5Zy*Aj*Ir2X=JZ2!GPT)wuPo z9i0JDD>q$h^it;A+_Jlv5AJdog!=2iUzR8=C9YBQJe2T%);l!dTZBykA`wqFA%1}; w`v2)X5fS5meXPX9!v9H6Z``o?PkKXsP2-N`tPQN8fD(GtRbD`Alx!mY2RpjhOaK4? diff --git a/webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_applied_full.search_small_applied.480px.baseline.png b/webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_applied_full.search_small_applied.480px.baseline.png deleted file mode 100644 index fea6b216bcd5f67e1f335d8ebc1f368ba0d95f3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2899 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 diff --git a/webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_dismissable_applied_full.search_small_dismissable_applied.480px.baseline.png b/webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_dismissable_applied_full.search_small_dismissable_applied.480px.baseline.png deleted file mode 100644 index 01a6ed04fff4a9c8632082b75506d5da8ccd59c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3555 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 diff --git a/webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_dismissable_full.search_small_dismissable.480px.baseline.png b/webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_dismissable_full.search_small_dismissable.480px.baseline.png deleted file mode 100644 index d46409173b8cd7597de3714715b1cc43e247e37c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3270 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 BN-6*V diff --git a/webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_full.search_small.480px.baseline.png b/webdriver-screenshots/OS X_chrome/OS X_chrome_search_small_full.search_small.480px.baseline.png deleted file mode 100644 index 1a3a332066454dbaa57ef0f31eb9e5d0d26bb04e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2662 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 E0LrS@#sB~S diff --git a/webdriver-screenshots/OS X_firefox/OS X_firefox_search_small_applied_full.search_small_applied.480px.baseline.png b/webdriver-screenshots/OS X_firefox/OS X_firefox_search_small_applied_full.search_small_applied.480px.baseline.png deleted file mode 100644 index 3f524ccea471ffd1e4c41bf067e5a5f3cb0a6cf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3245 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%0A%r*|XdTEdBC;&2=w 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