Skip to content

Commit

Permalink
fix(grid-list): hide overflow on tiles (#1299)
Browse files Browse the repository at this point in the history
  • Loading branch information
kara authored and josephperrott committed Sep 22, 2016
1 parent e160668 commit 617f514
Show file tree
Hide file tree
Showing 9 changed files with 44 additions and 64 deletions.
12 changes: 7 additions & 5 deletions src/demo-app/snack-bar/snack-bar-demo.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ <h1>SnackBar demo</h1>
<div>
<div>Message: <md-input type="text" [(ngModel)]="message"></md-input></div>
<div>
<md-checkbox [(ngModel)]="action">Show button</md-checkbox>
<md-input type="text" class="button-label-input"
placeholder="Snack bar action label"
[disabled]="!action"
[(ngModel)]="actionButtonLabel"></md-input>
<md-checkbox [(ngModel)]="action">
<p *ngIf="!action">Show button</p>
<md-input type="text" class="button-label-input"
*ngIf="action"
placeholder="Snack bar action label"
[(ngModel)]="actionButtonLabel"></md-input>
</md-checkbox>
</div>
</div>

Expand Down
1 change: 1 addition & 0 deletions src/lib/grid-list/grid-list.scss
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ md-grid-list {
md-grid-tile {
display: block;
position: absolute;
overflow: hidden;

figure {
display: flex;
Expand Down
12 changes: 0 additions & 12 deletions src/lib/snack-bar/base-snack-bar.ts

This file was deleted.

29 changes: 0 additions & 29 deletions src/lib/snack-bar/package.json

This file was deleted.

4 changes: 2 additions & 2 deletions src/lib/snack-bar/simple-snack-bar.scss
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
md-simple-snackbar {
display: flex;
justify-content: space-between;
display: flex;
justify-content: space-between;
}

.md-simple-snackbar-message {
Expand Down
16 changes: 14 additions & 2 deletions src/lib/snack-bar/simple-snack-bar.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
import {Component} from '@angular/core';
import {BaseSnackBarContent} from './base-snack-bar';
import {MdSnackBarRef} from './snack-bar-ref';


/**
* A component used to open as the default snack bar, matching material spec.
* This should only be used internally by the snack bar service.
*/
@Component({
moduleId: module.id,
selector: 'simple-snack-bar',
templateUrl: 'simple-snack-bar.html',
styleUrls: ['simple-snack-bar.css'],
})
export class SimpleSnackBar extends BaseSnackBarContent<SimpleSnackBar> {
export class SimpleSnackBar {
/** The message to be shown in the snack bar. */
message: string;

/** The label for the button in the snack bar. */
action: string;

/** The instance of the component making up the content of the snack bar. */
snackBarRef: MdSnackBarRef<SimpleSnackBar>;

/** Dismisses the snack bar. */
dismiss(): void {
this.snackBarRef.dismiss();
}

/** If the action button should be shown. */
get hasAction(): boolean { return !!this.action; }
}
10 changes: 6 additions & 4 deletions src/lib/snack-bar/snack-bar-config.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import {ViewContainerRef} from '@angular/core';
import {AriaLivePoliteness} from '@angular2-material/core'


export type SnackBarRole = 'alert' | 'polite';

export class MdSnackBarConfig {
/** The aria-role of the snack bar. */
role: SnackBarRole = 'alert';
/** The politeness level for the MdAriaLiveAnnouncer announcement. */
politeness: AriaLivePoliteness = 'assertive';

/** Message to be announced by the MdAriaLiveAnnouncer */
announcementMessage: string;

/** The view container to place the overlay for the snack bar into. */
viewContainerRef: ViewContainerRef;
Expand Down
4 changes: 2 additions & 2 deletions src/lib/snack-bar/snack-bar-ref.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ import {Subject} from 'rxjs/Subject';
*/
export class MdSnackBarRef<T> {
/** The instance of the component making up the content of the snack bar. */
readonly instance: T|any;
readonly instance: T;

/** Subject for notifying the user that the snack bar has closed. */
private _afterClosed: Subject<any> = new Subject();

/** If the snack bar is active. */
private _isActive: boolean = true;

constructor(instance: T|any, private _overlayRef: OverlayRef) {
constructor(instance: T, private _overlayRef: OverlayRef) {
// Sets the readonly instance of the snack bar content component.
this.instance = instance;
this.afterDismissed().subscribe(null, null, () => { this._isActive = false; });
Expand Down
20 changes: 12 additions & 8 deletions src/lib/snack-bar/snack-bar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ import {
ComponentRef,
} from '@angular/core';
import {
Overlay,
OverlayState,
OverlayRef,
ComponentType,
ComponentPortal,
Overlay,
OverlayModule,
OverlayRef,
OverlayState,
PortalModule,
OVERLAY_PROVIDERS,
MdLiveAnnouncer,
} from '@angular2-material/core';
import {CommonModule} from '@angular/common';
import {MdSnackBarConfig} from './snack-bar-config';
Expand All @@ -35,7 +36,8 @@ export class MdSnackBar {
/** A reference to the current snack bar in the view. */
private _snackBarRef: MdSnackBarRef<any>;

constructor(private _overlay: Overlay) {}
constructor(private _overlay: Overlay,
private _live: MdLiveAnnouncer) {}

/**
* Creates and dispatches a snack bar with a custom component for the content, removing any
Expand All @@ -48,8 +50,9 @@ export class MdSnackBar {
}
let overlayRef = this._createOverlay();
let snackBarContainer = this._attachSnackBarContainer(overlayRef, config);

return this._attachSnackbarContent(component, snackBarContainer, overlayRef);
let mdSnackBarRef = this._attachSnackbarContent(component, snackBarContainer, overlayRef);
this._live.announce(config.announcementMessage, config.politeness);
return mdSnackBarRef;
}


Expand All @@ -58,7 +61,9 @@ export class MdSnackBar {
*/
open(message: string, actionLabel: string,
config: MdSnackBarConfig): MdSnackBarRef<SimpleSnackBar> {
config.announcementMessage = message;
let simpleSnackBarRef = this.openFromComponent(SimpleSnackBar, config);
simpleSnackBarRef.instance.snackBarRef = simpleSnackBarRef;
simpleSnackBarRef.instance.message = message;
simpleSnackBarRef.instance.action = actionLabel;
return simpleSnackBarRef;
Expand Down Expand Up @@ -87,7 +92,6 @@ export class MdSnackBar {
let portal = new ComponentPortal(component);
let contentRef = container.attachComponentPortal(portal);
let snackBarRef = <MdSnackBarRef<T>> new MdSnackBarRef(contentRef.instance, overlayRef);
snackBarRef.instance.snackBarRef = snackBarRef;

this._snackBarRef = snackBarRef;
return snackBarRef;
Expand Down Expand Up @@ -118,7 +122,7 @@ export class MdSnackBarModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: MdSnackBarModule,
providers: [MdSnackBar, OVERLAY_PROVIDERS]
providers: [MdSnackBar, OVERLAY_PROVIDERS, MdLiveAnnouncer]
};
}
}

0 comments on commit 617f514

Please sign in to comment.