com.phloxui
Version:
PhloxUI Ng2+ Framework
693 lines (692 loc) • 86.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Directive, ElementRef, Input, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';
import { Option } from '../decorator/Option.decorator';
import { I18N } from '../decorator/I18N.decorator';
import { AbstractI18NApplicable } from '../share/AbstractI18NApplicable';
import { MaterialIconLoader } from '../theme/material/component/MaterialIconLoader.component';
import { DEFAULT_SCROLL_LOAD_OFF_SET, DEFAULT_SCROLL_LOAD_COUNT, DEFAULT_SCROLL_LOAD_LABEL, DEFAULT_SCROLL_LOAD_DELAY, DEFAULT_SCROLL_LOAD_RELOAD_LABEL, DEFAULT_SCROLL_LOAD_COMPLETE_LABEL, DEFAULT_SCROLL_LOAD_AUTO, DEFAULT_SCROLL_LOAD_RELOAD_AUTO, DEFAULT_SCROLL_LOAD_RELOAD_DISABLED, DEFAULT_SCROLL_LOAD_APPEND_CLASS_WRAPPER_ICON_RELOAD } from '../share/Constants';
const /** @type {?} */ NAME = 'scroll-load';
const /** @type {?} */ SETTIMEOUT_HIDE_LOAD_MORE = 10;
const /** @type {?} */ SETTIMEOUT_CHECK_NONE_SCROLL_LOAD = 20;
const /** @type {?} */ SETTIMEOUT_LOAD_NEXT_RELOAD_AND_SHOW_HIDE_LOADMORE = 100;
const /** @type {?} */ SETTIMEOUT_FADEOUT_REMOVE_CLASS_SHOW_WRAPPER_ICON_RELOAD = 200;
const /** @type {?} */ SETTIMEOUT_ON_SHOW_RELOADER = SETTIMEOUT_FADEOUT_REMOVE_CLASS_SHOW_WRAPPER_ICON_RELOAD;
const /** @type {?} */ SETTIMEOUT_FADEOUT_SHOW_LOAD_MORE = SETTIMEOUT_FADEOUT_REMOVE_CLASS_SHOW_WRAPPER_ICON_RELOAD;
const /** @type {?} */ SETTIMEOUT_MOUSE_OUT_HOVER_HIDE_RELOAD_ICON = 1000;
const /** @type {?} */ SETTIMEOUT_SHOW_ICON_RELOADING_AND_HIDE_RELOAD_ICON = 1000;
const /** @type {?} */ SETTIMEOUT_MOUSE_MOVE_HIDE_RELOAD_ICON = 3000;
export class ScrollLoad extends AbstractI18NApplicable {
/**
* @param {?} containerRef
* @param {?} componentFactoryResolver
* @param {?} elementRef
*/
constructor(containerRef, componentFactoryResolver, elementRef) {
super();
this.containerRef = containerRef;
this.componentFactoryResolver = componentFactoryResolver;
this.onShowReloader = false;
this.elementRef = elementRef;
}
/**
* @return {?}
*/
ngOnInit() {
if (this.options !== null) {
if (typeof this.options === 'object') {
this.setOptions(this.options);
}
else if (typeof this.options === 'function' && !this.scrollLoadFunc) {
this.scrollLoadFunc = this.options;
}
}
if (this.scrollLoadOffset === undefined || this.scrollLoadOffset === null || typeof this.scrollLoadOffset !== 'number') {
this.scrollLoadOffset = DEFAULT_SCROLL_LOAD_OFF_SET;
}
if (this.scrollLoadCount === undefined || this.scrollLoadCount === null || typeof this.scrollLoadCount !== 'number') {
this.scrollLoadCount = DEFAULT_SCROLL_LOAD_COUNT;
}
if (this.scrollLoadInitCount === undefined || this.scrollLoadInitCount === null || typeof this.scrollLoadInitCount !== 'number') {
this.scrollLoadInitCount = this.scrollLoadCount;
}
if (this.scrollLoadIcon === undefined || this.scrollLoadIcon === null || typeof this.scrollLoadIcon !== 'string') {
this.scrollLoadIcon = MaterialIconLoader.BALL_PULSE_SYNC;
}
if (this.scrollLoadReloadIcon === undefined || this.scrollLoadReloadIcon === null || typeof this.scrollLoadReloadIcon !== 'string') {
this.scrollLoadReloadIcon = MaterialIconLoader.BALL_SCALE_RIPPLE_MULTIPLE;
}
if (this.scrollLoadLabel === undefined || this.scrollLoadLabel === null || typeof this.scrollLoadLabel !== 'string') {
this.scrollLoadLabel = DEFAULT_SCROLL_LOAD_LABEL;
}
if (this.scrollLoadReloadLabel === undefined || this.scrollLoadReloadLabel === null || typeof this.scrollLoadReloadLabel !== 'string') {
this.scrollLoadReloadLabel = DEFAULT_SCROLL_LOAD_RELOAD_LABEL;
}
if (this.scrollLoadCompleteLabel === undefined || this.scrollLoadCompleteLabel === null || typeof this.scrollLoadCompleteLabel !== 'string') {
this.scrollLoadCompleteLabel = DEFAULT_SCROLL_LOAD_COMPLETE_LABEL;
}
if (this.scrollLoadAuto === undefined || this.scrollLoadAuto === null || typeof this.scrollLoadAuto !== 'boolean') {
this.scrollLoadAuto = DEFAULT_SCROLL_LOAD_AUTO;
}
if (this.scrollLoadReloadAuto === undefined || this.scrollLoadReloadAuto === null || typeof this.scrollLoadReloadAuto !== 'boolean') {
this.scrollLoadReloadAuto = DEFAULT_SCROLL_LOAD_RELOAD_AUTO;
}
if (this.scrollLoadReloadDisabled === undefined || this.scrollLoadReloadDisabled === null || typeof this.scrollLoadReloadDisabled !== 'boolean') {
this.scrollLoadReloadDisabled = DEFAULT_SCROLL_LOAD_RELOAD_DISABLED;
}
if (this.scrollLoadDelay === undefined || this.scrollLoadDelay === null || typeof this.scrollLoadDelay !== 'number') {
this.scrollLoadDelay = DEFAULT_SCROLL_LOAD_DELAY;
}
$(this.elementRef.nativeElement).addClass('phx-scroll-load');
$(this.elementRef.nativeElement).append(DEFAULT_SCROLL_LOAD_APPEND_CLASS_WRAPPER_ICON_RELOAD);
if (!this.scrollLoadReloadAuto && !this.scrollLoadReloadDisabled) {
this.counter = 0;
this.initManualReloadEvents();
}
this.reset();
this.renderIconLoader();
this.renderReloadIconLoader();
this.hideLoadIcon();
$(this.elementRef.nativeElement).find(".icon-reloading").hide();
this.refreshIconLoaders();
this.initScrollEvents();
this.loadNext().then(() => {
this.checkNoneScrollLoad();
});
}
/**
* @return {?}
*/
ngOnChanges() {
if (this.iconLoader !== undefined && this.reloadIconLoader !== undefined) {
this.refreshIconLoaders();
if (!this.scrollLoadReloadAuto && !this.scrollLoadReloadDisabled) {
if ($(this.elementRef.nativeElement).find(".reloader-manual").length === 0) {
this.initManualReloadEvents();
}
}
else if (this.scrollLoadReloadAuto && !this.scrollLoadReloadDisabled) {
if ($(this.elementRef.nativeElement).find(".reloader-manual").length > 0) {
$(this.elementRef.nativeElement).find(".reloader-manual").removeClass("show-reloader-manual");
}
}
$(this.elementRef.nativeElement).scrollTop(1);
this.reload();
}
}
/**
* @return {?}
*/
refreshIconLoaders() {
this.iconLoader['iconName'] = this.scrollLoadIcon;
this.reloadIconLoader['iconName'] = this.scrollLoadReloadIcon;
}
/**
* @return {?}
*/
renderIconLoader() {
let /** @type {?} */ factory = this.componentFactoryResolver.resolveComponentFactory(MaterialIconLoader);
let /** @type {?} */ componentRef = this.containerRef.createComponent(factory);
let /** @type {?} */ componentEl = componentRef.location;
$(componentEl.nativeElement).detach().appendTo(this.elementRef.nativeElement);
$(componentEl.nativeElement).addClass('icon-loading-next');
this.iconLoader = componentRef.instance;
this.iconLoader.setLoaderClass('color-icon-load-next');
this.iconLoader.start();
}
/**
* @return {?}
*/
renderReloadIconLoader() {
let /** @type {?} */ factory = this.componentFactoryResolver.resolveComponentFactory(MaterialIconLoader);
let /** @type {?} */ componentRef = this.containerRef.createComponent(factory);
let /** @type {?} */ componentEl = componentRef.location;
$(componentEl.nativeElement).detach().appendTo($(this.elementRef.nativeElement).find(".wrapper-icon-reload"));
$(componentEl.nativeElement).addClass('icon-reloading');
this.reloadIconLoader = componentRef.instance;
this.reloadIconLoader.setLoaderClass('color-icon-reload');
this.reloadIconLoader.start();
}
/**
* @return {?}
*/
initManualReloadEvents() {
let /** @type {?} */ manualReload = document.createElement("div");
manualReload.setAttribute("class", 'reloader-manual show-reloader-manual');
$(this.elementRef.nativeElement).append(manualReload);
$(manualReload)
.mouseout(() => {
this.counter = 0;
this.hideReloadIconTimeout = setTimeout(() => {
this.counter = 0;
this.hideReloadIcon();
}, SETTIMEOUT_MOUSE_MOVE_HIDE_RELOAD_ICON);
})
.mousemove(() => {
if (this.onLoading && this.onReload) {
this.counter++;
if (this.counter === 10) {
this.showReloadIcon();
this.onShowReloader = true;
setTimeout(() => {
this.onShowReloader = false;
}, SETTIMEOUT_ON_SHOW_RELOADER);
}
}
});
let /** @type {?} */ iconReload = $(this.elementRef.nativeElement).find(".icon-reloader");
let /** @type {?} */ wrapperIconReload = $(this.elementRef.nativeElement).find(".wrapper-icon-reload");
iconReload.hover(() => {
if (!this.onShowReloader) {
clearTimeout(this.hideReloadIconTimeout);
wrapperIconReload.append("<span class='below-reload'>" + this.scrollLoadReloadLabel + "</span>");
}
}, () => {
wrapperIconReload.find(".below-reload").remove();
this.hideReloadIconTimeout = setTimeout(() => {
this.counter = 0;
this.hideReloadIcon();
}, SETTIMEOUT_MOUSE_OUT_HOVER_HIDE_RELOAD_ICON);
});
$(this.elementRef.nativeElement).scroll(() => {
this.hideReloadIcon();
});
}
/**
* @return {?}
*/
initScrollEvents() {
$(this.elementRef.nativeElement).scroll(() => {
let /** @type {?} */ ele = this.elementRef.nativeElement;
let /** @type {?} */ scrollHeight = ele.scrollHeight;
let /** @type {?} */ clientHeight = ele.clientHeight;
let /** @type {?} */ scrollTop = clientHeight + ele.scrollTop;
if (scrollHeight !== clientHeight && this.scrollLoadAuto) {
if (((scrollHeight - (scrollTop)) < 15) && this.onLoading && this.onReload && this.onLoadAuto) {
this.showLoadIcon();
this.onLoading = false;
setTimeout(() => {
this.loadNext().then(() => {
this.checkNoneScrollLoad();
});
}, SETTIMEOUT_LOAD_NEXT_RELOAD_AND_SHOW_HIDE_LOADMORE);
}
}
if (!this.scrollLoadReloadDisabled && this.scrollLoadReloadAuto) {
if (ele.scrollTop === 0 && this.onLoading && this.onReload && this.cursor !== 0) {
this.callDelayEvents();
ele.setAttribute('style', 'padding-top: 50px;');
$(this.elementRef.nativeElement).scrollTop(50);
this.onReload = false;
$(this.elementRef.nativeElement).scrollTop(0);
setTimeout(() => {
this.reload().then(() => {
this.checkNoneScrollLoad(true);
});
this.showReloadIcon();
ele.setAttribute('style', 'padding-top: unset;');
}, SETTIMEOUT_LOAD_NEXT_RELOAD_AND_SHOW_HIDE_LOADMORE);
}
}
else if (!this.scrollLoadReloadDisabled && !this.scrollLoadReloadAuto) {
if (ele.scrollTop <= 10) {
$(this.elementRef.nativeElement).find(".reloader-manual").addClass('show-reloader-manual');
}
else {
$(this.elementRef.nativeElement).find(".reloader-manual").removeClass("show-reloader-manual");
}
}
});
}
/**
* @return {?}
*/
showReloadIcon() {
$(this.elementRef.nativeElement).find(".wrapper-icon-reload").show();
$(this.elementRef.nativeElement).find(".wrapper-icon-reload").addClass('show-wrapper-icon-reload');
let /** @type {?} */ loade2 = $(this.elementRef.nativeElement).find(".icon-reloader");
loade2.click(() => {
this.callDelayEvents();
if (!this.scrollLoadReloadAuto && this.onLoading && this.onReload) {
this.onReload = false;
this.reload().then(() => {
this.checkNoneScrollLoad(true);
});
}
});
}
/**
* @return {?}
*/
hideReloadIcon() {
return new Promise((resolve, reject) => {
try {
$(this.elementRef.nativeElement).find(".wrapper-icon-reload").fadeOut(SETTIMEOUT_FADEOUT_REMOVE_CLASS_SHOW_WRAPPER_ICON_RELOAD, function () {
$(this).removeClass("show-wrapper-icon-reload");
resolve();
});
}
catch (/** @type {?} */ err) {
reject(err);
}
});
}
/**
* @return {?}
*/
showLoadIcon() {
$(this.elementRef.nativeElement).find(".icon-loading-next").show();
}
/**
* @return {?}
*/
hideLoadIcon() {
$(this.elementRef.nativeElement).find(".icon-loading-next").fadeOut(SETTIMEOUT_FADEOUT_REMOVE_CLASS_SHOW_WRAPPER_ICON_RELOAD);
}
/**
* @return {?}
*/
showLoadMore() {
let /** @type {?} */ loadMore = document.createElement("div");
loadMore.innerHTML = this.scrollLoadLabel;
loadMore.setAttribute("class", 'loadMore');
if (this.completeInformation) {
loadMore.innerHTML = this.scrollLoadCompleteLabel;
}
else {
loadMore.innerHTML = this.scrollLoadLabel;
}
$(this.elementRef.nativeElement).append(loadMore);
$(loadMore).click(() => {
this.callDelayEvents();
if (this.onLoading && this.onReload) {
this.onLoading = false;
this.hideLoadMore();
this.showLoadIcon();
setTimeout(() => {
this.loadNext().then(() => {
this.checkNoneScrollLoad();
});
}, SETTIMEOUT_LOAD_NEXT_RELOAD_AND_SHOW_HIDE_LOADMORE);
}
});
}
/**
* @return {?}
*/
hideLoadMore() {
$(this.elementRef.nativeElement).find(".loadMore").fadeOut(SETTIMEOUT_HIDE_LOAD_MORE, function () {
$(this).remove();
});
}
/**
* @return {?}
*/
callDelayEvents() {
let /** @type {?} */ curTime = Date.now();
if (curTime - this.lastScrollTime <= /*delay*/ /*delay*/ this.scrollLoadDelay) {
// Do nothing within delay.
return;
}
this.lastScrollTime = curTime;
}
/**
* @return {?}
*/
doScrollTopReLoad() {
if (this.scrollLoadFunc === null || typeof this.scrollLoadFunc !== 'function') {
return Promise.resolve(0);
}
let /** @type {?} */ resultProm = null;
try {
this.reset(true);
let /** @type {?} */ result = this.scrollLoadFunc(this.cursor, this.scrollLoadInitCount);
if (result !== null && result instanceof Promise) {
resultProm = result;
}
else {
resultProm = Promise.resolve(result);
}
}
catch (/** @type {?} */ e) {
return Promise.reject(e);
}
return resultProm;
}
/**
* @return {?}
*/
doScrollLoad() {
if (this.scrollLoadFunc === null || typeof this.scrollLoadFunc !== 'function') {
return Promise.resolve(0);
}
let /** @type {?} */ resultProm = null;
try {
let /** @type {?} */ result;
if (this.cursor === 0) {
result = this.scrollLoadFunc(this.cursor, this.scrollLoadInitCount + this.cursor);
}
else {
result = this.scrollLoadFunc(this.cursor, this.scrollLoadCount + this.cursor);
}
if (result !== null && result instanceof Promise) {
resultProm = result;
}
else {
resultProm = Promise.resolve(result);
}
}
catch (/** @type {?} */ e) {
return Promise.reject(e);
}
return resultProm;
}
/**
* @param {?=} reload
* @return {?}
*/
reset(reload) {
return new Promise((resolve, reject) => {
try {
this.onLoading = true;
this.onLoadAuto = true;
this.completeInformation = false;
this.onReload = true;
this.cursor = 0;
if (reload) {
this.onReload = false;
this.lastScrollTime = 0;
}
else {
$(this.elementRef.nativeElement).scrollTop(1);
}
let /** @type {?} */ ele = $(this.elementRef.nativeElement);
if (ele.children.length !== 0) {
let /** @type {?} */ loadMore = ele.find(".loadMore");
if (loadMore.length > 0) {
this.hideLoadMore();
}
}
if (!this.scrollLoadAuto) {
this.showLoadMore();
}
resolve();
}
catch (/** @type {?} */ err) {
reject(err);
}
});
}
/**
* @return {?}
*/
reload() {
$(this.elementRef.nativeElement).find(".icon-reloader").hide();
$(this.elementRef.nativeElement).find(".icon-reloading").show();
return this.doScrollTopReLoad().then((result) => {
let /** @type {?} */ rowCount = 0;
if (result === null || result === undefined) {
rowCount = 0;
}
else if (typeof result === 'number') {
rowCount = result;
}
else if (Array.isArray(result)) {
rowCount = result.length;
}
else {
rowCount = 1;
}
this.onReload = true;
setTimeout(() => {
$(this.elementRef.nativeElement).find(".icon-reloading").hide();
this.hideReloadIcon().then(() => {
$(this.elementRef.nativeElement).find(".icon-reloader").show();
});
}, SETTIMEOUT_SHOW_ICON_RELOADING_AND_HIDE_RELOAD_ICON);
this.cursor += rowCount;
return result;
});
}
/**
* @return {?}
*/
loadNext() {
if (this.scrollLoadAuto) {
if (this.completeInformation) {
this.hideLoadMore();
}
}
else {
this.hideLoadMore();
}
return this.doScrollLoad().then((result) => {
let /** @type {?} */ rowCount = 0;
if (result === null || result === undefined) {
rowCount = 0;
}
else if (typeof result === 'number') {
rowCount = result;
}
else if (Array.isArray(result)) {
rowCount = result.length;
}
else {
rowCount = 1;
}
if (rowCount < this.scrollLoadCount) {
if (this.scrollLoadAuto) {
$(this.elementRef.nativeElement)[0].setAttribute('style', "padding-bottom: 0px;");
}
this.hideLoadIcon();
this.completeInformation = true;
setTimeout(() => {
this.hideLoadMore();
this.showLoadMore();
}, SETTIMEOUT_FADEOUT_SHOW_LOAD_MORE);
this.onLoadAuto = false;
}
else {
this.hideLoadIcon();
this.completeInformation = false;
this.onLoadAuto = true;
if (this.scrollLoadAuto) {
$(this.elementRef.nativeElement)[0].setAttribute('style', "padding-bottom: " + this.scrollLoadOffset + "px;");
}
}
this.onLoading = true;
if (!this.scrollLoadAuto && this.onLoading && !this.completeInformation) {
setTimeout(() => {
this.showLoadMore();
}, SETTIMEOUT_FADEOUT_SHOW_LOAD_MORE);
}
this.cursor += rowCount;
return result;
});
}
/**
* @param {?=} reload
* @return {?}
*/
checkNoneScrollLoad(reload) {
setTimeout(() => {
if (this.scrollLoadAuto && !this.completeInformation) {
this.completeInformation = true;
this.showLoadMore();
let /** @type {?} */ ele = this.elementRef.nativeElement;
let /** @type {?} */ scrollHeight = ele.scrollHeight;
let /** @type {?} */ clientHeight = ele.clientHeight;
let /** @type {?} */ loadMore = $(this.elementRef.nativeElement).find(".loadMore");
if (reload && this.cursor < this.scrollLoadInitCount) {
for (let /** @type {?} */ index = 0; index < loadMore.length; index++) {
loadMore[index].innerHTML = this.scrollLoadCompleteLabel;
}
}
else {
for (let /** @type {?} */ index = 0; index < loadMore.length; index++) {
loadMore[index].innerHTML = this.scrollLoadLabel;
}
}
if ((scrollHeight - clientHeight) > (this.scrollLoadOffset / 2)) {
this.hideLoadMore();
}
}
}, SETTIMEOUT_CHECK_NONE_SCROLL_LOAD);
}
}
ScrollLoad.NAME = NAME;
ScrollLoad.decorators = [
{ type: Directive, args: [{
selector: '[phxScrollLoad]'
},] },
];
/** @nocollapse */
ScrollLoad.ctorParameters = () => [
{ type: ViewContainerRef, },
{ type: ComponentFactoryResolver, },
{ type: ElementRef, },
];
ScrollLoad.propDecorators = {
"options": [{ type: Input, args: ['phxScrollLoad',] },],
"scrollLoadFunc": [{ type: Input, args: ['scrollLoadHandler',] },],
"scrollLoadOffset": [{ type: Input, args: ['scrollLoadOffset',] },],
"scrollLoadCount": [{ type: Input, args: ['scrollLoadCount',] },],
"scrollLoadInitCount": [{ type: Input, args: ['scrollLoadInitCount',] },],
"scrollLoadIcon": [{ type: Input, args: ['scrollLoadIcon',] },],
"scrollLoadReloadIcon": [{ type: Input, args: ['scrollLoadReloadIcon',] },],
"scrollLoadLabel": [{ type: Input, args: ['scrollLoadLabel',] },],
"scrollLoadReloadLabel": [{ type: Input, args: ['scrollLoadReloadLabel',] },],
"scrollLoadCompleteLabel": [{ type: Input, args: ['scrollLoadCompleteLabel',] },],
"scrollLoadAuto": [{ type: Input, args: ['scrollLoadAuto',] },],
"scrollLoadReloadAuto": [{ type: Input, args: ['scrollLoadReloadAuto',] },],
"scrollLoadReloadDisabled": [{ type: Input, args: ['scrollLoadReloadDisabled',] },],
"scrollLoadDelay": [{ type: Input, args: ['scrollLoadDelay',] },],
};
tslib_1.__decorate([
Option('load'),
tslib_1.__metadata("design:type", Function)
], ScrollLoad.prototype, "scrollLoadFunc", void 0);
tslib_1.__decorate([
Option('offset'),
tslib_1.__metadata("design:type", Number)
], ScrollLoad.prototype, "scrollLoadOffset", void 0);
tslib_1.__decorate([
Option('count'),
tslib_1.__metadata("design:type", Number)
], ScrollLoad.prototype, "scrollLoadCount", void 0);
tslib_1.__decorate([
Option('initCount'),
tslib_1.__metadata("design:type", Number)
], ScrollLoad.prototype, "scrollLoadInitCount", void 0);
tslib_1.__decorate([
Option('loadIcon'),
tslib_1.__metadata("design:type", String)
], ScrollLoad.prototype, "scrollLoadIcon", void 0);
tslib_1.__decorate([
Option('loadReloadIcon'),
tslib_1.__metadata("design:type", String)
], ScrollLoad.prototype, "scrollLoadReloadIcon", void 0);
tslib_1.__decorate([
I18N('load'),
Option('loadLabel'),
tslib_1.__metadata("design:type", String)
], ScrollLoad.prototype, "scrollLoadLabel", void 0);
tslib_1.__decorate([
I18N('reload'),
Option('reloadLabel'),
tslib_1.__metadata("design:type", String)
], ScrollLoad.prototype, "scrollLoadReloadLabel", void 0);
tslib_1.__decorate([
I18N('complete'),
Option('completeLabel'),
tslib_1.__metadata("design:type", String)
], ScrollLoad.prototype, "scrollLoadCompleteLabel", void 0);
tslib_1.__decorate([
Option('loadAuto'),
tslib_1.__metadata("design:type", Boolean)
], ScrollLoad.prototype, "scrollLoadAuto", void 0);
tslib_1.__decorate([
Option('reloadAuto'),
tslib_1.__metadata("design:type", Boolean)
], ScrollLoad.prototype, "scrollLoadReloadAuto", void 0);
tslib_1.__decorate([
Option('reloadDisabled'),
tslib_1.__metadata("design:type", Boolean)
], ScrollLoad.prototype, "scrollLoadReloadDisabled", void 0);
tslib_1.__decorate([
Option('delay'),
tslib_1.__metadata("design:type", Number)
], ScrollLoad.prototype, "scrollLoadDelay", void 0);
function ScrollLoad_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
ScrollLoad.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
ScrollLoad.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
ScrollLoad.propDecorators;
/** @type {?} */
ScrollLoad.NAME;
/** @type {?} */
ScrollLoad.prototype.options;
/** @type {?} */
ScrollLoad.prototype.scrollLoadFunc;
/** @type {?} */
ScrollLoad.prototype.scrollLoadOffset;
/** @type {?} */
ScrollLoad.prototype.scrollLoadCount;
/** @type {?} */
ScrollLoad.prototype.scrollLoadInitCount;
/** @type {?} */
ScrollLoad.prototype.scrollLoadIcon;
/** @type {?} */
ScrollLoad.prototype.scrollLoadReloadIcon;
/** @type {?} */
ScrollLoad.prototype.scrollLoadLabel;
/** @type {?} */
ScrollLoad.prototype.scrollLoadReloadLabel;
/** @type {?} */
ScrollLoad.prototype.scrollLoadCompleteLabel;
/** @type {?} */
ScrollLoad.prototype.scrollLoadAuto;
/** @type {?} */
ScrollLoad.prototype.scrollLoadReloadAuto;
/** @type {?} */
ScrollLoad.prototype.scrollLoadReloadDisabled;
/** @type {?} */
ScrollLoad.prototype.scrollLoadDelay;
/** @type {?} */
ScrollLoad.prototype.elementRef;
/** @type {?} */
ScrollLoad.prototype.onReload;
/** @type {?} */
ScrollLoad.prototype.onLoading;
/** @type {?} */
ScrollLoad.prototype.onLoadAuto;
/** @type {?} */
ScrollLoad.prototype.completeInformation;
/** @type {?} */
ScrollLoad.prototype.cursor;
/** @type {?} */
ScrollLoad.prototype.counter;
/** @type {?} */
ScrollLoad.prototype.hideReloadIconTimeout;
/** @type {?} */
ScrollLoad.prototype.lastScrollTime;
/** @type {?} */
ScrollLoad.prototype.onShowReloader;
/** @type {?} */
ScrollLoad.prototype.componentFactoryResolver;
/** @type {?} */
ScrollLoad.prototype.containerRef;
/** @type {?} */
ScrollLoad.prototype.iconLoader;
/** @type {?} */
ScrollLoad.prototype.reloadIconLoader;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nyb2xsTG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmUvU2Nyb2xsTG9hZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDOUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixFQUFFLGdDQUFnQyxFQUFFLGtDQUFrQyxFQUFFLHdCQUF3QixFQUFFLCtCQUErQixFQUFFLG1DQUFtQyxFQUFFLG9EQUFvRCxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOVcsdUJBQU0sSUFBSSxHQUFXLGFBQWEsQ0FBQztBQUNuQyx1QkFBTSx5QkFBeUIsR0FBVyxFQUFFLENBQUM7QUFDN0MsdUJBQU0saUNBQWlDLEdBQVcsRUFBRSxDQUFDO0FBQ3JELHVCQUFNLGtEQUFrRCxHQUFXLEdBQUcsQ0FBQztBQUN2RSx1QkFBTSx3REFBd0QsR0FBVyxHQUFHLENBQUM7QUFDN0UsdUJBQU0sMkJBQTJCLEdBQVcsd0RBQXdELENBQUM7QUFDckcsdUJBQU0saUNBQWlDLEdBQVcsd0RBQXdELENBQUM7QUFDM0csdUJBQU0sMkNBQTJDLEdBQVcsSUFBSSxDQUFDO0FBQ2pFLHVCQUFNLG1EQUFtRCxHQUFXLElBQUksQ0FBQztBQUN6RSx1QkFBTSxzQ0FBc0Ms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