com.phloxui
Version:
PhloxUI Ng2+ Framework
165 lines (164 loc) • 14 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Directive, ElementRef, Input } from '@angular/core';
import { UUID } from 'angular2-uuid';
var /** @type {?} */ NAME = 'preload';
var /** @type {?} */ PREFIX_CLASSNAME = 'phx-preload';
var Preload = /** @class */ (function () {
function Preload(elementRef) {
this.elementRef = elementRef;
this.preloadAutoSize = true;
this.uuid = UUID.UUID();
this.showing = false;
}
/**
* @return {?}
*/
Preload.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (this.conponent === undefined || this.conponent === null) {
return;
}
var /** @type {?} */ loaded = true;
if (typeof this.conponent['isLoaded'] === 'function') {
loaded = this.conponent.isLoaded() && this.conponent.isLoadingEnabled();
}
if (!loaded) {
this.show();
}
};
/**
* @return {?}
*/
Preload.prototype.isShowing = /**
* @return {?}
*/
function () {
return this.showing;
};
/**
* @return {?}
*/
Preload.prototype.show = /**
* @return {?}
*/
function () {
if (this.showing) {
// To prevent calling twice.
return;
}
this.showing = true;
var /** @type {?} */ ele = this.elementRef.nativeElement;
var /** @type {?} */ preLoadDom = document.createElement("div");
var /** @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)) {
try {
for (var _a = tslib_1.__values(this.preloadClass), _b = _a.next(); !_b.done; _b = _a.next()) {
var item = _b.value;
className += " " + item;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
}
finally { if (e_1) throw e_1.error; }
}
}
}
preLoadDom.setAttribute("class", className);
preLoadDom.setAttribute("id", this.uuid);
var /** @type {?} */ styleText = "";
if (this.preloadAutoSize) {
var /** @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);
var e_1, _c;
};
/**
* @return {?}
*/
Preload.prototype.hide = /**
* @return {?}
*/
function () {
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 = function () { return [
{ type: ElementRef, },
]; };
Preload.propDecorators = {
"conponent": [{ type: Input, args: ['phxPreload',] },],
"preloadClass": [{ type: Input, args: ['preloadClass',] },],
"preloadAutoSize": [{ type: Input, args: ['preloadAutoSize',] },],
"preloadOutline": [{ type: Input, args: ['preloadOutline',] },],
};
return Preload;
}());
export { Preload };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlbG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmUvUHJlbG9hZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlyQyxxQkFBTSxJQUFJLEdBQVcsU0FBUyxDQUFDO0FBQy9CLHFCQUFNLGdCQUFnQixHQUFXLGFBQWEsQ0FBQzs7SUFzQjdDLGlCQUFZLFVBQXNCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0tBQ3RCOzs7O0lBRU0sMEJBQVE7Ozs7UUFDYixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUQsTUFBTSxDQUFDO1NBQ1I7UUFFRCxxQkFBSSxNQUFNLEdBQVksSUFBSSxDQUFDO1FBQzNCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6RTtRQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNaLElBQUksQ0FBQyxJ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LEtBQUssQ0FBQzs7UUFHckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDOztRQUc5RSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDOzttQkFsR2YsSUFBSTsrQkFDUSxnQkFBZ0I7O2dCQU5uRSxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCOzs7O2dCQVZtQixVQUFVOzs7OEJBZ0IzQixLQUFLLFNBQUMsWUFBWTtpQ0FFbEIsS0FBSyxTQUFDLGNBQWM7b0NBRXBCLEtBQUssU0FBQyxpQkFBaUI7bUNBRXZCLEtBQUssU0FBQyxnQkFBZ0I7O2tCQXRCekI7O1NBV2EsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVVJRCB9IGZyb20gJ2FuZ3VsYXIyLXV1aWQnO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbmNvbnN0IE5BTUU6IHN0cmluZyA9ICdwcmVsb2FkJztcbmNvbnN0IFBSRUZJWF9DTEFTU05BTUU6IHN0cmluZyA9ICdwaHgtcHJlbG9hZCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1twaHhQcmVsb2FkXSdcbn0pXG5leHBvcnQgY2xhc3MgUHJlbG9hZCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOQU1FOiBzdHJpbmcgPSBOQU1FO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBSRUZJWF9DTEFTU05BTUU6IHN0cmluZyA9IFBSRUZJWF9DTEFTU05BTUU7XG5cbiAgQElucHV0KCdwaHhQcmVsb2FkJylcbiAgcHJpdmF0ZSBjb25wb25lbnQ6IGFueTtcbiAgQElucHV0KCdwcmVsb2FkQ2xhc3MnKVxuICBwcml2YXRlIHByZWxvYWRDbGFzczogYW55O1xuICBASW5wdXQoJ3ByZWxvYWRBdXRvU2l6ZScpXG4gIHByaXZhdGUgcHJlbG9hZEF1dG9TaXplOiBib29sZWFuO1xuICBASW5wdXQoJ3ByZWxvYWRPdXRsaW5lJylcbiAgcHJpdmF0ZSBwcmVsb2FkT3V0bGluZTogbnVtYmVyO1xuICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgdXVpZDogc3RyaW5nO1xuICBwcml2YXRlIHNob3dpbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy5wcmVsb2FkQXV0b1NpemUgPSB0cnVlO1xuICAgIHRoaXMudXVpZCA9IFVVSUQuVVVJRCgpO1xuICAgIHRoaXMuc2hvd2luZyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnBvbmVudCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuY29ucG9uZW50ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGxvYWRlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmNvbnBvbmVudFsnaXNMb2FkZWQnXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgbG9hZGVkID0gdGhpcy5jb25wb25lbnQuaXNMb2FkZWQoKSAmJiB0aGlzLmNvbnBvbmVudC5pc0xvYWRpbmdFbmFibGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKCFsb2FkZWQpIHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc1Nob3dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd2luZztcbiAgfVxuXG4gIHB1YmxpYyBzaG93KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dpbmcpIHtcbiAgICAgIC8vIFRvIHByZXZlbnQgY2FsbGluZyB0d2ljZS5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dpbmcgPSB0cnVlO1xuXG4gICAgbGV0IGVsZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGxldCBwcmVMb2FkRG9tOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgbGV0IGNsYXNzTmFtZTogc3RyaW5nID0gXCJcIjtcblxuICAgIGNsYXNzTmFtZSArPSBQUkVGSVhfQ0xBU1NOQU1FO1xuXG4gICAgaWYgKHRoaXMucHJlbG9hZENsYXNzICE9PSB1bmRlZmluZWQgJiYgdGhpcy5wcmVsb2FkQ2xhc3MgIT09IG51bGwpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcmVsb2FkQ2xhc3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNsYXNzTmFtZSArPSBcIiBcIiArIHRoaXMucHJlbG9hZENsYXNzO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJlbG9hZENsYXNzKSkge1xuICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMucHJlbG9hZENsYXNzKSB7XG4gICAgICAgICAgY2xhc3NOYW1lICs9IFwiIFwiICsgaXRlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByZUxvYWREb20uc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgY2xhc3NOYW1lKTtcbiAgICBwcmVMb2FkRG9tLnNldEF0dHJpYnV0ZShcImlkXCIsIHRoaXMudXVpZCk7XG5cbiAgICBsZXQgc3R5bGVUZXh0ID0gXCJcIjtcbiAgICBpZiAodGhpcy5wcmVsb2FkQXV0b1NpemUpIHtcbiAgICAgIGxldCBvdXRsaW5lU2l6ZTogbnVtYmVyID0gdGhpcy5wcmVsb2FkT3V0bGluZSA9PT0gdW5kZWZpbmVkID8gMCA6IHRoaXMucHJlbG9hZE91dGxpbmU7XG4gICAgICBzdHlsZVRleHQgKz0gXCJ3aWR0aDpcIiArIChlbGUuY2xpZW50V2lkdGggKyBvdXRsaW5lU2l6ZSAqIDIpICsgXCJweDsgaGVpZ2h0OlwiICsgKGVsZS5jbGllbnRIZWlnaHQgKyBvdXRsaW5lU2l6ZSAqIDIpICsgXCJweDtcIlxuICAgICAgc3R5bGVUZXh0ICs9IFwiIGxlZnQ6XCIgKyAoZWxlLm9mZnNldExlZnQgLSBvdXRsaW5lU2l6ZSkgKyBcInB4OyB0b3A6XCIgKyAoZWxlLm9mZnNldFRvcCAtIG91dGxpbmVTaXplKSArIFwicHg7XCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlVGV4dCArPSBcIiBsZWZ0OlwiICsgZWxlLm9mZnNldExlZnQgKyBcInB4OyB0b3A6XCIgKyBlbGUub2Zmc2V0VG9wICsgXCJweDtcIjtcbiAgICB9XG5cbiAgICBwcmVMb2FkRG9tLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIHN0eWxlVGV4dCk7XG5cbiAgICAvLyBBZGQgcHJlbG9hZCBkb21cbiAgICAkKGVsZS5wYXJlbnRFbGVtZW50KS5hcHBlbmQocHJlTG9hZERvbSk7XG5cbiAgICAvLyBIaWRlIG9yaWdpbmFsIGRvbVxuICAgICQoZWxlKS5jc3MoXCJvcGFjaXR5XCIsIDApO1xuICB9XG5cbiAgcHVibGljIGhpZGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3dpbmcpIHtcbiAgICAgIC8vIFRvIHByZXZlbnQgY2FsbGluZyB0d2ljZS5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dpbmcgPSBmYWxzZTtcblxuICAgIC8vIFJlbW92ZSBwcmVsb2FkIGRvbVxuICAgICQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCkuZmluZChcIiNcIiArIHRoaXMudXVpZCkucmVtb3ZlKCk7XG5cbiAgICAvLyBTaG93IG9yaWdpbmFsIGRvbVxuICAgICQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmNzcyhcIm9wYWNpdHlcIiwgMSk7XG4gIH1cbn1cbiJdfQ==