ferngully-aurelia-tools
Version:
Ferngully Tools for Aurelia
68 lines • 2.99 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { autoinject } from 'aurelia-framework';
import { EventAggregator } from 'aurelia-event-aggregator';
const windowResizeChannel = "window resize";
let BrowserService = class BrowserService {
constructor(eventAggregator) {
this.eventAggregator = eventAggregator;
this.escapeEl = document.createElement('textarea');
this.onWindowResize(this.windowResizeHandler.bind(this));
}
registerForWindowResize(callback) {
return this.eventAggregator.subscribe(windowResizeChannel, callback);
}
windowResizeHandler(event) {
this.eventAggregator.publish(windowResizeChannel, event);
}
onWindowResize(fun) {
if (fun === undefined)
return;
let oldresize = window.onresize;
window.onresize = (e) => {
if (typeof oldresize == 'function')
oldresize(e);
return fun(e);
};
}
verticalScrollBarIsShowing() {
return (window.innerWidth - document.body.clientWidth) > 0;
}
scrollbarWidth() {
if (!this._scrollbarWidth) {
var scrollDiv = document.createElement("div");
scrollDiv.style.width = "100px";
scrollDiv.style.height = "100px";
scrollDiv.style.overflow = "scroll";
scrollDiv.style.position = "absolute";
scrollDiv.style.top = "-9999px;";
document.body.appendChild(scrollDiv);
this._scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);
}
return this._scrollbarWidth;
}
escapeHtml(unEscapedString) {
this.escapeEl.textContent = unEscapedString ? unEscapedString : "";
return this.escapeEl.innerHTML;
}
;
unEscapeHtml(escapedString) {
this.escapeEl.innerHTML = escapedString ? escapedString : "";
return this.escapeEl.textContent == null ? "" : this.escapeEl.textContent;
}
;
};
BrowserService = __decorate([
autoinject,
__metadata("design:paramtypes", [EventAggregator])
], BrowserService);
export { BrowserService };
//# sourceMappingURL=browser-service.js.map