| /** |
| * @fileoverview added by tsickle |
| * Generated from: directives/media-toggle.directive.ts |
| * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
| */ |
| import { Directive, ElementRef, Input } from '@angular/core'; |
| import { Renderer2 } from '@angular/core'; |
| import { TdMediaService } from '../services/media.service'; |
| export class TdMediaToggleDirective { |
| /** |
| * @param {?} _renderer |
| * @param {?} _elementRef |
| * @param {?} _mediaService |
| */ |
| constructor(_renderer, _elementRef, _mediaService) { |
| this._renderer = _renderer; |
| this._elementRef = _elementRef; |
| this._mediaService = _mediaService; |
| this._matches = false; |
| this._attributes = {}; |
| this._styles = {}; |
| this._classes = []; |
| } |
| /** |
| * tdMediaToggle: string |
| * Media query used to evaluate screen/window size. |
| * Toggles attributes, classes and styles if media query is matched. |
| * @param {?} query |
| * @return {?} |
| */ |
| set query(query) { |
| if (!query) { |
| throw new Error('Query needed for [tdMediaToggle] directive.'); |
| } |
| this._query = query; |
| } |
| /** |
| * mediaAttributes: {[key: string]: string} |
| * Attributes to be toggled when media query matches. |
| * @param {?} attributes |
| * @return {?} |
| */ |
| set attributes(attributes) { |
| this._attributes = attributes; |
| } |
| /** |
| * mediaClasses: string[] |
| * CSS Classes to be toggled when media query matches. |
| * @param {?} classes |
| * @return {?} |
| */ |
| set classes(classes) { |
| this._classes = classes; |
| } |
| /** |
| * mediaStyles: {[key: string]: string} |
| * CSS Styles to be toggled when media query matches. |
| * @param {?} styles |
| * @return {?} |
| */ |
| set styles(styles) { |
| this._styles = styles; |
| } |
| /** |
| * @return {?} |
| */ |
| ngOnInit() { |
| this._mediaChange(this._mediaService.query(this._query)); |
| this._subscription = this._mediaService.registerQuery(this._query).subscribe((/** |
| * @param {?} matches |
| * @return {?} |
| */ |
| (matches) => { |
| this._mediaChange(matches); |
| })); |
| } |
| /** |
| * @return {?} |
| */ |
| ngOnDestroy() { |
| if (this._subscription) { |
| this._subscription.unsubscribe(); |
| } |
| } |
| /** |
| * @private |
| * @param {?} matches |
| * @return {?} |
| */ |
| _mediaChange(matches) { |
| this._matches = matches; |
| this._changeAttributes(); |
| this._changeClasses(); |
| this._changeStyles(); |
| } |
| /** |
| * @private |
| * @return {?} |
| */ |
| _changeAttributes() { |
| for (const attr in this._attributes) { |
| if (this._matches) { |
| this._renderer.setAttribute(this._elementRef.nativeElement, attr, this._attributes[attr]); |
| } |
| else { |
| this._renderer.removeAttribute(this._elementRef.nativeElement, attr); |
| } |
| } |
| } |
| /** |
| * @private |
| * @return {?} |
| */ |
| _changeClasses() { |
| this._classes.forEach((/** |
| * @param {?} className |
| * @return {?} |
| */ |
| (className) => { |
| if (this._matches) { |
| this._renderer.addClass(this._elementRef.nativeElement, className); |
| } |
| else { |
| this._renderer.removeClass(this._elementRef.nativeElement, className); |
| } |
| })); |
| } |
| /** |
| * @private |
| * @return {?} |
| */ |
| _changeStyles() { |
| for (const style in this._styles) { |
| if (this._matches) { |
| this._renderer.setStyle(this._elementRef.nativeElement, style, this._styles[style]); |
| } |
| else { |
| this._renderer.removeStyle(this._elementRef.nativeElement, style); |
| } |
| } |
| } |
| } |
| TdMediaToggleDirective.decorators = [ |
| { type: Directive, args: [{ |
| selector: '[tdMediaToggle]', |
| },] } |
| ]; |
| /** @nocollapse */ |
| TdMediaToggleDirective.ctorParameters = () => [ |
| { type: Renderer2 }, |
| { type: ElementRef }, |
| { type: TdMediaService } |
| ]; |
| TdMediaToggleDirective.propDecorators = { |
| query: [{ type: Input, args: ['tdMediaToggle',] }], |
| attributes: [{ type: Input, args: ['mediaAttributes',] }], |
| classes: [{ type: Input, args: ['mediaClasses',] }], |
| styles: [{ type: Input, args: ['mediaStyles',] }] |
| }; |
| if (false) { |
| /** |
| * @type {?} |
| * @private |
| */ |
| TdMediaToggleDirective.prototype._subscription; |
| /** |
| * @type {?} |
| * @private |
| */ |
| TdMediaToggleDirective.prototype._query; |
| /** |
| * @type {?} |
| * @private |
| */ |
| TdMediaToggleDirective.prototype._matches; |
| /** |
| * @type {?} |
| * @private |
| */ |
| TdMediaToggleDirective.prototype._attributes; |
| /** |
| * @type {?} |
| * @private |
| */ |
| TdMediaToggleDirective.prototype._styles; |
| /** |
| * @type {?} |
| * @private |
| */ |
| TdMediaToggleDirective.prototype._classes; |
| /** |
| * @type {?} |
| * @private |
| */ |
| TdMediaToggleDirective.prototype._renderer; |
| /** |
| * @type {?} |
| * @private |
| */ |
| TdMediaToggleDirective.prototype._elementRef; |
| /** |
| * @type {?} |
| * @private |
| */ |
| TdMediaToggleDirective.prototype._mediaService; |
| } |
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vY29yZS9tZWRpYS8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZXMvbWVkaWEtdG9nZ2xlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLM0QsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7O0lBaURqQyxZQUFvQixTQUFvQixFQUFVLFdBQXVCLEVBQVUsYUFBNkI7UUFBNUYsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBN0N4RyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQThCLEVBQUUsQ0FBQztRQUM1QyxZQUFPLEdBQThCLEVBQUUsQ0FBQztRQUN4QyxhQUFRLEdBQWEsRUFBRSxDQUFDO0lBMENtRixDQUFDOzs7Ozs7OztJQW5DcEgsSUFDSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQzs7Ozs7OztJQU1ELElBQ0ksVUFBVSxDQUFDLFVBQWU7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQzs7Ozs7OztJQU1ELElBQ0ksT0FBTyxDQUFDLE9BQWlCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFC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cEMsd0NBQXVCOzs7OztJQUN2QiwwQ0FBa0M7Ozs7O0lBQ2xDLDZDQUFvRDs7Ozs7SUFDcEQseUNBQWdEOzs7OztJQUNoRCwwQ0FBZ0M7Ozs7O0lBMENwQiwyQ0FBNEI7Ozs7O0lBQUUsNkNBQStCOzs7OztJQUFFLCtDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBUZE1lZGlhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21lZGlhLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGRNZWRpYVRvZ2dsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1lZGlhVG9nZ2xlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIF9xdWVyeTogc3RyaW5nO1xuICBwcml2YXRlIF9tYXRjaGVzOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2F0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgcHJpdmF0ZSBfc3R5bGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gIHByaXZhdGUgX2NsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIHRkTWVkaWFUb2dnbGU6IHN0cmluZ1xuICAgKiBNZWRpYSBxdWVyeSB1c2VkIHRvIGV2YWx1YXRlIHNjcmVlbi93aW5kb3cgc2l6ZS5cbiAgICogVG9nZ2xlcyBhdHRyaWJ1dGVzLCBjbGFzc2VzIGFuZCBzdHlsZXMgaWYgbWVkaWEgcXVlcnkgaXMgbWF0Y2hlZC5cbiAgICovXG4gIEBJbnB1dCgndGRNZWRpYVRvZ2dsZScpXG4gIHNldCBxdWVyeShxdWVyeTogc3RyaW5nKSB7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdRdWVyeSBuZWVkZWQgZm9yIFt0ZE1lZGlhVG9nZ2xlXSBkaXJlY3RpdmUuJyk7XG4gICAgfVxuICAgIHRoaXMuX3F1ZXJ5ID0gcXVlcnk7XG4gIH1cblxuICAvKipcbiAgICogbWVkaWFBdHRyaWJ1dGVzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfVxuICAgKiBBdHRyaWJ1dGVzIHRvIGJlIHRvZ2dsZWQgd2hlbiBtZWRpYSBxdWVyeSBtYXRjaGVzLlxuICAgKi9cbiAgQElucHV0KCdtZWRpYUF0dHJpYnV0ZXMnKVxuICBzZXQgYXR0cmlidXRlcyhhdHRyaWJ1dGVzOiBhbnkpIHtcbiAgICB0aGlzLl9hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBtZWRpYUNsYXNzZXM6IHN0cmluZ1tdXG4gICAqIENTUyBDbGFzc2VzIHRvIGJlIHRvZ2dsZWQgd2hlbiBtZWRpYSBxdWVyeSBtYXRjaGVzLlxuICAgKi9cbiAgQElucHV0KCdtZWRpYUNsYXNzZXMnKVxuICBzZXQgY2xhc3NlcyhjbGFzc2VzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2NsYXNzZXMgPSBjbGFzc2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIG1lZGlhU3R5bGVzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfVxuICAgKiBDU1MgU3R5bGVzIHRvIGJlIHRvZ2dsZWQgd2hlbiBtZWRpYSBxdWVyeSBtYXRjaGVzLlxuICAgKi9cbiAgQElucHV0KCdtZWRpYVN0eWxlcycpXG4gIHNldCBzdHlsZXMoc3R5bGVzOiBhbnkpIHtcbiAgICB0aGlzLl9zdHlsZXMgPSBzdHlsZXM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIF9tZWRpYVNlcnZpY2U6IFRkTWVkaWFTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhQ2hhbmdlKHRoaXMuX21lZGlhU2VydmljZS5xdWVyeSh0aGlzLl9xdWVyeSkpO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX21lZGlhU2VydmljZS5yZWdpc3RlclF1ZXJ5KHRoaXMuX3F1ZXJ5KS5zdWJzY3JpYmUoKG1hdGNoZXM6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMuX21lZGlhQ2hhbmdlKG1hdGNoZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbWVkaWFDaGFuZ2UobWF0Y2hlczogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX21hdGNoZXMgPSBtYXRjaGVzO1xuICAgIHRoaXMuX2NoYW5nZUF0dHJpYnV0ZXMoKTtcbiAgICB0aGlzLl9jaGFuZ2VDbGFzc2VzKCk7XG4gICAgdGhpcy5fY2hhbmdlU3R5bGVzKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGFuZ2VBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgYXR0ciBpbiB0aGlzLl9hdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAodGhpcy5fbWF0Y2hlcykge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBhdHRyLCB0aGlzLl9hdHRyaWJ1dGVzW2F0dHJdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGF0dHIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoYW5nZUNsYXNzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHRoaXMuX21hdGNoZXMpIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hhbmdlU3R5bGVzKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3R5bGUgaW4gdGhpcy5fc3R5bGVzKSB7XG4gICAgICBpZiAodGhpcy5fbWF0Y2hlcykge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHN0eWxlLCB0aGlzLl9zdHlsZXNbc3R5bGVdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc3R5bGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19 |