ack-angular
Version:
Extra special directives, components, providers and pipes to aide in tackling everyday interface development needs in Angular2
40 lines • 4.77 kB
JavaScript
import { Directive, Input, Output, EventEmitter } from "@angular/core";
import * as i0 from "@angular/core";
import * as i1 from "./HtmlSizeWatcher";
export class ScreenWidthModel {
constructor(HtmlSizeService) {
this.HtmlSizeService = HtmlSizeService;
this.screenWidthModelChange = new EventEmitter();
this.sub = this.HtmlSizeService.change.subscribe(() => this.changed());
this.HtmlSizeService.checkWatchers();
if (this.HtmlSizeService.htmlSize) {
this.changed();
}
}
changed() {
if (!this.HtmlSizeService.htmlSize
|| !this.hasChanged())
return;
this.updateModel();
}
hasChanged() {
return this.screenWidthModel !== window.innerWidth;
}
updateModel() {
this.screenWidthModel = window.innerWidth;
this.screenWidthModelChange.emit(this.screenWidthModel);
}
}
ScreenWidthModel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ScreenWidthModel, deps: [{ token: i1.HtmlSizeService }], target: i0.ɵɵFactoryTarget.Directive });
ScreenWidthModel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.4", type: ScreenWidthModel, selector: "[screenWidthModel]", inputs: { screenWidthModel: "screenWidthModel" }, outputs: { screenWidthModelChange: "screenWidthModelChange" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ScreenWidthModel, decorators: [{
type: Directive,
args: [{
selector: '[screenWidthModel]'
}]
}], ctorParameters: function () { return [{ type: i1.HtmlSizeService }]; }, propDecorators: { screenWidthModel: [{
type: Input
}], screenWidthModelChange: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyZWVuV2lkdGhNb2RlbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9TY3JlZW5XaWR0aE1vZGVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFBOzs7QUFTbkIsTUFBTSxPQUFPLGdCQUFnQjtJQU05QixZQUNTLGVBQStCO1FBQS9CLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUg5QiwyQkFBc0IsR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUt4RSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFFLEVBQUUsQ0FBQSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUVwRSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBRXBDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVE7ZUFDL0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU07UUFFUCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDcEIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLENBQUMsVUFBVSxDQUFBO0lBQ3BELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUE7UUFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUN6RCxDQUFDOzs2R0FqQ2EsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFGL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjtzR0FHVSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksc0JBQXNCO3NCQUEvQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7XG4gIC8vaHRtbFNpemUsXG4gIEh0bWxTaXplU2VydmljZVxufSBmcm9tIFwiLi9IdG1sU2l6ZVdhdGNoZXJcIlxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2NyZWVuV2lkdGhNb2RlbF0nXG59KSBleHBvcnQgY2xhc3MgU2NyZWVuV2lkdGhNb2RlbHtcbiAgc3ViOiBTdWJzY3JpcHRpb25cblxuICBASW5wdXQoKSBzY3JlZW5XaWR0aE1vZGVsITogbnVtYmVyXG4gIEBPdXRwdXQoKSBzY3JlZW5XaWR0aE1vZGVsQ2hhbmdlOkV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIEh0bWxTaXplU2VydmljZTpIdG1sU2l6ZVNlcnZpY2VcbiAgKXtcbiAgICB0aGlzLnN1YiA9IHRoaXMuSHRtbFNpemVTZXJ2aWNlLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnRoaXMuY2hhbmdlZCgpKVxuXG4gICAgdGhpcy5IdG1sU2l6ZVNlcnZpY2UuY2hlY2tXYXRjaGVycygpXG5cbiAgICBpZiggdGhpcy5IdG1sU2l6ZVNlcnZpY2UuaHRtbFNpemUgKXtcbiAgICAgIHRoaXMuY2hhbmdlZCgpXG4gICAgfVxuICB9XG5cbiAgY2hhbmdlZCgpe1xuICAgIGlmKCAhdGhpcy5IdG1sU2l6ZVNlcnZpY2UuaHRtbFNpemVcbiAgICB8fCAhdGhpcy5oYXNDaGFuZ2VkKClcbiAgICApcmV0dXJuXG5cbiAgICB0aGlzLnVwZGF0ZU1vZGVsKClcbiAgfVxuXG4gIGhhc0NoYW5nZWQoKXtcbiAgICByZXR1cm4gdGhpcy5zY3JlZW5XaWR0aE1vZGVsICE9PSB3aW5kb3cuaW5uZXJXaWR0aFxuICB9XG5cbiAgdXBkYXRlTW9kZWwoKXtcbiAgICB0aGlzLnNjcmVlbldpZHRoTW9kZWwgPSB3aW5kb3cuaW5uZXJXaWR0aFxuICAgIHRoaXMuc2NyZWVuV2lkdGhNb2RlbENoYW5nZS5lbWl0KHRoaXMuc2NyZWVuV2lkdGhNb2RlbClcbiAgfVxufSJdfQ==