UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

142 lines (141 loc) 13 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Directive, ElementRef, Input } from '@angular/core'; import { UUID } from 'angular2-uuid'; const /** @type {?} */ NAME = 'preload'; const /** @type {?} */ PREFIX_CLASSNAME = 'phx-preload'; export class Preload { /** * @param {?} elementRef */ constructor(elementRef) { this.elementRef = elementRef; this.preloadAutoSize = true; this.uuid = UUID.UUID(); this.showing = false; } /** * @return {?} */ ngOnInit() { if (this.conponent === undefined || this.conponent === null) { return; } let /** @type {?} */ loaded = true; if (typeof this.conponent['isLoaded'] === 'function') { loaded = this.conponent.isLoaded() && this.conponent.isLoadingEnabled(); } if (!loaded) { this.show(); } } /** * @return {?} */ isShowing() { return this.showing; } /** * @return {?} */ show() { if (this.showing) { // To prevent calling twice. return; } this.showing = true; let /** @type {?} */ ele = this.elementRef.nativeElement; let /** @type {?} */ preLoadDom = document.createElement("div"); let /** @type {?} */ className = ""; className += PREFIX_CLASSNAME; if (this.preloadClass !== undefined && this.preloadClass !== null) { if (typeof this.preloadClass === 'string') { className += " " + this.preloadClass; } else if (Array.isArray(this.preloadClass)) { for (let /** @type {?} */ item of this.preloadClass) { className += " " + item; } } } preLoadDom.setAttribute("class", className); preLoadDom.setAttribute("id", this.uuid); let /** @type {?} */ styleText = ""; if (this.preloadAutoSize) { let /** @type {?} */ outlineSize = this.preloadOutline === undefined ? 0 : this.preloadOutline; styleText += "width:" + (ele.clientWidth + outlineSize * 2) + "px; height:" + (ele.clientHeight + outlineSize * 2) + "px;"; styleText += " left:" + (ele.offsetLeft - outlineSize) + "px; top:" + (ele.offsetTop - outlineSize) + "px;"; } else { styleText += " left:" + ele.offsetLeft + "px; top:" + ele.offsetTop + "px;"; } preLoadDom.setAttribute("style", styleText); // Add preload dom $(ele.parentElement).append(preLoadDom); // Hide original dom $(ele).css("opacity", 0); } /** * @return {?} */ hide() { if (!this.showing) { // To prevent calling twice. return; } this.showing = false; // Remove preload dom $(this.elementRef.nativeElement.parentElement).find("#" + this.uuid).remove(); // Show original dom $(this.elementRef.nativeElement).css("opacity", 1); } } Preload.NAME = NAME; Preload.PREFIX_CLASSNAME = PREFIX_CLASSNAME; Preload.decorators = [ { type: Directive, args: [{ selector: '[phxPreload]' },] }, ]; /** @nocollapse */ Preload.ctorParameters = () => [ { type: ElementRef, }, ]; Preload.propDecorators = { "conponent": [{ type: Input, args: ['phxPreload',] },], "preloadClass": [{ type: Input, args: ['preloadClass',] },], "preloadAutoSize": [{ type: Input, args: ['preloadAutoSize',] },], "preloadOutline": [{ type: Input, args: ['preloadOutline',] },], }; function Preload_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ Preload.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ Preload.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ Preload.propDecorators; /** @type {?} */ Preload.NAME; /** @type {?} */ Preload.PREFIX_CLASSNAME; /** @type {?} */ Preload.prototype.conponent; /** @type {?} */ Preload.prototype.preloadClass; /** @type {?} */ Preload.prototype.preloadAutoSize; /** @type {?} */ Preload.prototype.preloadOutline; /** @type {?} */ Preload.prototype.elementRef; /** @type {?} */ Preload.prototype.uuid; /** @type {?} */ Preload.prototype.showing; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlbG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmUvUHJlbG9hZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJDLHVCQUFNLElBQUksR0FBVyxTQUFTLENBQUM7QUFDL0IsdUJBQU0sZ0JBQWdCLEdBQVcsYUFBYSxDQUFDO0FBSy9DLE1BQU07Ozs7SUFpQkosWUFBWSxVQUFzQjtRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztLQUN0Qjs7OztJQUVNLFFBQVE7UUFDYixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUQsTUFBTSxDQUFDO1NBQ1I7UUFFRCxxQkFBSSxNQUFNLEdBQVksSUFBSSxDQUFDO1FBQzNCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6RTtRQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiOzs7OztJQUdJLFNBQVM7UUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzs7Ozs7SUFHZixJQUFJO1FBQ1QsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7O1lBRWpCLE1BQU0sQ0FBQztTQUNSO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIscUJBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3hDLHFCQUFJLFVBQVUsR0FBZ0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxxQkFBSSxTQUFTLEdBQVcsRUFBRSxDQUFDO1FBRTNCLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQztRQUU5QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEUsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLFNBQVMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN0QztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLEdBQUcsQ0FBQyxDQUFDLHFCQUFJLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztvQkFDbkMsU0FBUyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUM7aUJBQ3pCO2FBQ0Y7U0FDRjtRQUVELFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxxQkFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLHFCQUFJLFdBQVcsR0FBVyxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3RGLFNBQVMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxhQUFhLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUE7WUFDMUgsU0FBUyxJQUFJLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDN0c7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLFNBQVMsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLEdBQUcsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDN0U7UUFFRCxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQzs7UUFHNUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7O1FBR3hDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDOzs7OztJQUdwQixJQUFJO1FBQ1QsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzs7WUFFbEIsTUFBTSxDQUFDO1NBQ1I7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzs7UUFHckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDOztRQUc5RSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDOzs7ZUFsR2YsSUFBSTsyQkFDUSxnQkFBZ0I7O1lBTm5FLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsY0FBYzthQUN6Qjs7OztZQVZtQixVQUFVOzs7MEJBZ0IzQixLQUFLLFNBQUMsWUFBWTs2QkFFbEIsS0FBSyxTQUFDLGNBQWM7Z0NBRXBCLEtBQUssU0FBQyxpQkFBaUI7K0JBRXZCLEtBQUssU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVVSUQgfSBmcm9tICdhbmd1bGFyMi11dWlkJztcblxuZGVjbGFyZSB2YXIgJDogYW55O1xuXG5jb25zdCBOQU1FOiBzdHJpbmcgPSAncHJlbG9hZCc7XG5jb25zdCBQUkVGSVhfQ0xBU1NOQU1FOiBzdHJpbmcgPSAncGh4LXByZWxvYWQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcGh4UHJlbG9hZF0nXG59KVxuZXhwb3J0IGNsYXNzIFByZWxvYWQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTkFNRTogc3RyaW5nID0gTkFNRTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUkVGSVhfQ0xBU1NOQU1FOiBzdHJpbmcgPSBQUkVGSVhfQ0xBU1NOQU1FO1xuXG4gIEBJbnB1dCgncGh4UHJlbG9hZCcpXG4gIHByaXZhdGUgY29ucG9uZW50OiBhbnk7XG4gIEBJbnB1dCgncHJlbG9hZENsYXNzJylcbiAgcHJpdmF0ZSBwcmVsb2FkQ2xhc3M6IGFueTtcbiAgQElucHV0KCdwcmVsb2FkQXV0b1NpemUnKVxuICBwcml2YXRlIHByZWxvYWRBdXRvU2l6ZTogYm9vbGVhbjtcbiAgQElucHV0KCdwcmVsb2FkT3V0bGluZScpXG4gIHByaXZhdGUgcHJlbG9hZE91dGxpbmU6IG51bWJlcjtcbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIHV1aWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBzaG93aW5nOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICAgIHRoaXMucHJlbG9hZEF1dG9TaXplID0gdHJ1ZTtcbiAgICB0aGlzLnV1aWQgPSBVVUlELlVVSUQoKTtcbiAgICB0aGlzLnNob3dpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25wb25lbnQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmNvbnBvbmVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBsb2FkZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb25wb25lbnRbJ2lzTG9hZGVkJ10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGxvYWRlZCA9IHRoaXMuY29ucG9uZW50LmlzTG9hZGVkKCkgJiYgdGhpcy5jb25wb25lbnQuaXNMb2FkaW5nRW5hYmxlZCgpO1xuICAgIH1cblxuICAgIGlmICghbG9hZGVkKSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNTaG93aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dpbmc7XG4gIH1cblxuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93aW5nKSB7XG4gICAgICAvLyBUbyBwcmV2ZW50IGNhbGxpbmcgdHdpY2UuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93aW5nID0gdHJ1ZTtcblxuICAgIGxldCBlbGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBsZXQgcHJlTG9hZERvbTogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGxldCBjbGFzc05hbWU6IHN0cmluZyA9IFwiXCI7XG5cbiAgICBjbGFzc05hbWUgKz0gUFJFRklYX0NMQVNTTkFNRTtcblxuICAgIGlmICh0aGlzLnByZWxvYWRDbGFzcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMucHJlbG9hZENsYXNzICE9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMucHJlbG9hZENsYXNzID09PSAnc3RyaW5nJykge1xuICAgICAgICBjbGFzc05hbWUgKz0gXCIgXCIgKyB0aGlzLnByZWxvYWRDbGFzcztcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnByZWxvYWRDbGFzcykpIHtcbiAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLnByZWxvYWRDbGFzcykge1xuICAgICAgICAgIGNsYXNzTmFtZSArPSBcIiBcIiArIGl0ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcmVMb2FkRG9tLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIGNsYXNzTmFtZSk7XG4gICAgcHJlTG9hZERvbS5zZXRBdHRyaWJ1dGUoXCJpZFwiLCB0aGlzLnV1aWQpO1xuXG4gICAgbGV0IHN0eWxlVGV4dCA9IFwiXCI7XG4gICAgaWYgKHRoaXMucHJlbG9hZEF1dG9TaXplKSB7XG4gICAgICBsZXQgb3V0bGluZVNpemU6IG51bWJlciA9IHRoaXMucHJlbG9hZE91dGxpbmUgPT09IHVuZGVmaW5lZCA/IDAgOiB0aGlzLnByZWxvYWRPdXRsaW5lO1xuICAgICAgc3R5bGVUZXh0ICs9IFwid2lkdGg6XCIgKyAoZWxlLmNsaWVudFdpZHRoICsgb3V0bGluZVNpemUgKiAyKSArIFwicHg7IGhlaWdodDpcIiArIChlbGUuY2xpZW50SGVpZ2h0ICsgb3V0bGluZVNpemUgKiAyKSArIFwicHg7XCJcbiAgICAgIHN0eWxlVGV4dCArPSBcIiBsZWZ0OlwiICsgKGVsZS5vZmZzZXRMZWZ0IC0gb3V0bGluZVNpemUpICsgXCJweDsgdG9wOlwiICsgKGVsZS5vZmZzZXRUb3AgLSBvdXRsaW5lU2l6ZSkgKyBcInB4O1wiO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVRleHQgKz0gXCIgbGVmdDpcIiArIGVsZS5vZmZzZXRMZWZ0ICsgXCJweDsgdG9wOlwiICsgZWxlLm9mZnNldFRvcCArIFwicHg7XCI7XG4gICAgfVxuXG4gICAgcHJlTG9hZERvbS5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBzdHlsZVRleHQpO1xuXG4gICAgLy8gQWRkIHByZWxvYWQgZG9tXG4gICAgJChlbGUucGFyZW50RWxlbWVudCkuYXBwZW5kKHByZUxvYWREb20pO1xuXG4gICAgLy8gSGlkZSBvcmlnaW5hbCBkb21cbiAgICAkKGVsZSkuY3NzKFwib3BhY2l0eVwiLCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG93aW5nKSB7XG4gICAgICAvLyBUbyBwcmV2ZW50IGNhbGxpbmcgdHdpY2UuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93aW5nID0gZmFsc2U7XG5cbiAgICAvLyBSZW1vdmUgcHJlbG9hZCBkb21cbiAgICAkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpLmZpbmQoXCIjXCIgKyB0aGlzLnV1aWQpLnJlbW92ZSgpO1xuXG4gICAgLy8gU2hvdyBvcmlnaW5hbCBkb21cbiAgICAkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoXCJvcGFjaXR5XCIsIDEpO1xuICB9XG59XG4iXX0=