UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

764 lines (763 loc) 88.6 kB
/** * @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'; var /** @type {?} */ NAME = 'scroll-load'; var /** @type {?} */ SETTIMEOUT_HIDE_LOAD_MORE = 10; var /** @type {?} */ SETTIMEOUT_CHECK_NONE_SCROLL_LOAD = 20; var /** @type {?} */ SETTIMEOUT_LOAD_NEXT_RELOAD_AND_SHOW_HIDE_LOADMORE = 100; var /** @type {?} */ SETTIMEOUT_FADEOUT_REMOVE_CLASS_SHOW_WRAPPER_ICON_RELOAD = 200; var /** @type {?} */ SETTIMEOUT_ON_SHOW_RELOADER = SETTIMEOUT_FADEOUT_REMOVE_CLASS_SHOW_WRAPPER_ICON_RELOAD; var /** @type {?} */ SETTIMEOUT_FADEOUT_SHOW_LOAD_MORE = SETTIMEOUT_FADEOUT_REMOVE_CLASS_SHOW_WRAPPER_ICON_RELOAD; var /** @type {?} */ SETTIMEOUT_MOUSE_OUT_HOVER_HIDE_RELOAD_ICON = 1000; var /** @type {?} */ SETTIMEOUT_SHOW_ICON_RELOADING_AND_HIDE_RELOAD_ICON = 1000; var /** @type {?} */ SETTIMEOUT_MOUSE_MOVE_HIDE_RELOAD_ICON = 3000; var ScrollLoad = /** @class */ (function (_super) { tslib_1.__extends(ScrollLoad, _super); function ScrollLoad(containerRef, componentFactoryResolver, elementRef) { var _this = _super.call(this) || this; _this.containerRef = containerRef; _this.componentFactoryResolver = componentFactoryResolver; _this.onShowReloader = false; _this.elementRef = elementRef; return _this; } /** * @return {?} */ ScrollLoad.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; 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(function () { _this.checkNoneScrollLoad(); }); }; /** * @return {?} */ ScrollLoad.prototype.ngOnChanges = /** * @return {?} */ function () { 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 {?} */ ScrollLoad.prototype.refreshIconLoaders = /** * @return {?} */ function () { this.iconLoader['iconName'] = this.scrollLoadIcon; this.reloadIconLoader['iconName'] = this.scrollLoadReloadIcon; }; /** * @return {?} */ ScrollLoad.prototype.renderIconLoader = /** * @return {?} */ function () { var /** @type {?} */ factory = this.componentFactoryResolver.resolveComponentFactory(MaterialIconLoader); var /** @type {?} */ componentRef = this.containerRef.createComponent(factory); var /** @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 {?} */ ScrollLoad.prototype.renderReloadIconLoader = /** * @return {?} */ function () { var /** @type {?} */ factory = this.componentFactoryResolver.resolveComponentFactory(MaterialIconLoader); var /** @type {?} */ componentRef = this.containerRef.createComponent(factory); var /** @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 {?} */ ScrollLoad.prototype.initManualReloadEvents = /** * @return {?} */ function () { var _this = this; var /** @type {?} */ manualReload = document.createElement("div"); manualReload.setAttribute("class", 'reloader-manual show-reloader-manual'); $(this.elementRef.nativeElement).append(manualReload); $(manualReload) .mouseout(function () { _this.counter = 0; _this.hideReloadIconTimeout = setTimeout(function () { _this.counter = 0; _this.hideReloadIcon(); }, SETTIMEOUT_MOUSE_MOVE_HIDE_RELOAD_ICON); }) .mousemove(function () { if (_this.onLoading && _this.onReload) { _this.counter++; if (_this.counter === 10) { _this.showReloadIcon(); _this.onShowReloader = true; setTimeout(function () { _this.onShowReloader = false; }, SETTIMEOUT_ON_SHOW_RELOADER); } } }); var /** @type {?} */ iconReload = $(this.elementRef.nativeElement).find(".icon-reloader"); var /** @type {?} */ wrapperIconReload = $(this.elementRef.nativeElement).find(".wrapper-icon-reload"); iconReload.hover(function () { if (!_this.onShowReloader) { clearTimeout(_this.hideReloadIconTimeout); wrapperIconReload.append("<span class='below-reload'>" + _this.scrollLoadReloadLabel + "</span>"); } }, function () { wrapperIconReload.find(".below-reload").remove(); _this.hideReloadIconTimeout = setTimeout(function () { _this.counter = 0; _this.hideReloadIcon(); }, SETTIMEOUT_MOUSE_OUT_HOVER_HIDE_RELOAD_ICON); }); $(this.elementRef.nativeElement).scroll(function () { _this.hideReloadIcon(); }); }; /** * @return {?} */ ScrollLoad.prototype.initScrollEvents = /** * @return {?} */ function () { var _this = this; $(this.elementRef.nativeElement).scroll(function () { var /** @type {?} */ ele = _this.elementRef.nativeElement; var /** @type {?} */ scrollHeight = ele.scrollHeight; var /** @type {?} */ clientHeight = ele.clientHeight; var /** @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(function () { _this.loadNext().then(function () { _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(function () { _this.reload().then(function () { _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 {?} */ ScrollLoad.prototype.showReloadIcon = /** * @return {?} */ function () { var _this = this; $(this.elementRef.nativeElement).find(".wrapper-icon-reload").show(); $(this.elementRef.nativeElement).find(".wrapper-icon-reload").addClass('show-wrapper-icon-reload'); var /** @type {?} */ loade2 = $(this.elementRef.nativeElement).find(".icon-reloader"); loade2.click(function () { _this.callDelayEvents(); if (!_this.scrollLoadReloadAuto && _this.onLoading && _this.onReload) { _this.onReload = false; _this.reload().then(function () { _this.checkNoneScrollLoad(true); }); } }); }; /** * @return {?} */ ScrollLoad.prototype.hideReloadIcon = /** * @return {?} */ function () { var _this = this; return new Promise(function (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 {?} */ ScrollLoad.prototype.showLoadIcon = /** * @return {?} */ function () { $(this.elementRef.nativeElement).find(".icon-loading-next").show(); }; /** * @return {?} */ ScrollLoad.prototype.hideLoadIcon = /** * @return {?} */ function () { $(this.elementRef.nativeElement).find(".icon-loading-next").fadeOut(SETTIMEOUT_FADEOUT_REMOVE_CLASS_SHOW_WRAPPER_ICON_RELOAD); }; /** * @return {?} */ ScrollLoad.prototype.showLoadMore = /** * @return {?} */ function () { var _this = this; var /** @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(function () { _this.callDelayEvents(); if (_this.onLoading && _this.onReload) { _this.onLoading = false; _this.hideLoadMore(); _this.showLoadIcon(); setTimeout(function () { _this.loadNext().then(function () { _this.checkNoneScrollLoad(); }); }, SETTIMEOUT_LOAD_NEXT_RELOAD_AND_SHOW_HIDE_LOADMORE); } }); }; /** * @return {?} */ ScrollLoad.prototype.hideLoadMore = /** * @return {?} */ function () { $(this.elementRef.nativeElement).find(".loadMore").fadeOut(SETTIMEOUT_HIDE_LOAD_MORE, function () { $(this).remove(); }); }; /** * @return {?} */ ScrollLoad.prototype.callDelayEvents = /** * @return {?} */ function () { var /** @type {?} */ curTime = Date.now(); if (curTime - this.lastScrollTime <= /*delay*/ /*delay*/ this.scrollLoadDelay) { // Do nothing within delay. return; } this.lastScrollTime = curTime; }; /** * @return {?} */ ScrollLoad.prototype.doScrollTopReLoad = /** * @return {?} */ function () { if (this.scrollLoadFunc === null || typeof this.scrollLoadFunc !== 'function') { return Promise.resolve(0); } var /** @type {?} */ resultProm = null; try { this.reset(true); var /** @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 {?} */ ScrollLoad.prototype.doScrollLoad = /** * @return {?} */ function () { if (this.scrollLoadFunc === null || typeof this.scrollLoadFunc !== 'function') { return Promise.resolve(0); } var /** @type {?} */ resultProm = null; try { var /** @type {?} */ result = void 0; 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 {?} */ ScrollLoad.prototype.reset = /** * @param {?=} reload * @return {?} */ function (reload) { var _this = this; return new Promise(function (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); } var /** @type {?} */ ele = $(_this.elementRef.nativeElement); if (ele.children.length !== 0) { var /** @type {?} */ loadMore = ele.find(".loadMore"); if (loadMore.length > 0) { _this.hideLoadMore(); } } if (!_this.scrollLoadAuto) { _this.showLoadMore(); } resolve(); } catch (/** @type {?} */ err) { reject(err); } }); }; /** * @return {?} */ ScrollLoad.prototype.reload = /** * @return {?} */ function () { var _this = this; $(this.elementRef.nativeElement).find(".icon-reloader").hide(); $(this.elementRef.nativeElement).find(".icon-reloading").show(); return this.doScrollTopReLoad().then(function (result) { var /** @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(function () { $(_this.elementRef.nativeElement).find(".icon-reloading").hide(); _this.hideReloadIcon().then(function () { $(_this.elementRef.nativeElement).find(".icon-reloader").show(); }); }, SETTIMEOUT_SHOW_ICON_RELOADING_AND_HIDE_RELOAD_ICON); _this.cursor += rowCount; return result; }); }; /** * @return {?} */ ScrollLoad.prototype.loadNext = /** * @return {?} */ function () { var _this = this; if (this.scrollLoadAuto) { if (this.completeInformation) { this.hideLoadMore(); } } else { this.hideLoadMore(); } return this.doScrollLoad().then(function (result) { var /** @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(function () { _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(function () { _this.showLoadMore(); }, SETTIMEOUT_FADEOUT_SHOW_LOAD_MORE); } _this.cursor += rowCount; return result; }); }; /** * @param {?=} reload * @return {?} */ ScrollLoad.prototype.checkNoneScrollLoad = /** * @param {?=} reload * @return {?} */ function (reload) { var _this = this; setTimeout(function () { if (_this.scrollLoadAuto && !_this.completeInformation) { _this.completeInformation = true; _this.showLoadMore(); var /** @type {?} */ ele = _this.elementRef.nativeElement; var /** @type {?} */ scrollHeight = ele.scrollHeight; var /** @type {?} */ clientHeight = ele.clientHeight; var /** @type {?} */ loadMore = $(_this.elementRef.nativeElement).find(".loadMore"); if (reload && _this.cursor < _this.scrollLoadInitCount) { for (var /** @type {?} */ index = 0; index < loadMore.length; index++) { loadMore[index].innerHTML = _this.scrollLoadCompleteLabel; } } else { for (var /** @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 = function () { return [ { 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); return ScrollLoad; }(AbstractI18NApplicable)); export { ScrollLoad }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nyb2xsTG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmUvU2Nyb2xsTG9hZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDOUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixFQUFFLGdDQUFnQyxFQUFFLGtDQUFrQyxFQUFFLHdCQUF3QixFQUFFLCtCQUErQixFQUFFLG1DQUFtQyxFQUFFLG9EQUFvRCxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOVcscUJBQU0sSUFBSSxHQUFXLGFBQWEsQ0FBQztBQUNuQyxxQkFBTSx5QkFBeUIsR0FBVyxFQUFFLENBQUM7QUFDN0MscUJBQU0saUNBQWlDLEdBQVcsRUFBRSxDQUFDO0FBQ3JELHFCQUFNLGtEQUFrRCxHQUFXLEdBQUcsQ0FBQztBQUN2RSxxQkFBTSx3REFBd0QsR0FBVyxHQUFHLENBQUM7QUFDN0UscUJBQU0sMkJBQTJCLEdBQVcsd0RBQXdELENBQUM7QUFDckcscUJBQU0saUNBQWlDLEdBQVcsd0RBQXdELENBQUM7QUFDM0cscUJBQU0sMkNBQTJDLEdBQVcsSUFBSSxDQUFDO0FBQ2pFLHFCQUFNLG1EQUFtRCxHQUFXLElBQUksQ0FBQztBQUN6RSxxQkFBTSxzQ0FBc0Ms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