ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1,245 lines (1,234 loc) • 40.3 kB
JavaScript
import { Platform, PlatformModule } from '@angular/cdk/platform';
import { CommonModule } from '@angular/common';
import { Directive, ElementRef, Renderer2, InjectionToken, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Optional, Inject, ContentChildren, ViewChild, Input, Output, NgModule } from '@angular/core';
import { __extends, __decorate, __metadata } from 'tslib';
import { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';
import { NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';
import { NzResizeService, NzDragService } from 'ng-zorro-antd/core/services';
import { InputBoolean, InputNumber } from 'ng-zorro-antd/core/util';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
/**
* @fileoverview added by tsickle
* Generated from: carousel-content.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzCarouselContentDirective = /** @class */ (function () {
function NzCarouselContentDirective(elementRef, renderer) {
this.renderer = renderer;
this._active = false;
this.el = elementRef.nativeElement;
this.renderer.addClass(elementRef.nativeElement, 'slick-slide');
}
Object.defineProperty(NzCarouselContentDirective.prototype, "isActive", {
get: /**
* @return {?}
*/
function () {
return this._active;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._active = value;
if (this.isActive) {
this.renderer.addClass(this.el, 'slick-active');
}
else {
this.renderer.removeClass(this.el, 'slick-active');
}
},
enumerable: true,
configurable: true
});
NzCarouselContentDirective.decorators = [
{ type: Directive, args: [{
selector: '[nz-carousel-content]',
exportAs: 'nzCarouselContent'
},] }
];
/** @nocollapse */
NzCarouselContentDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
return NzCarouselContentDirective;
}());
if (false) {
/** @type {?} */
NzCarouselContentDirective.prototype.el;
/**
* @type {?}
* @private
*/
NzCarouselContentDirective.prototype._active;
/**
* @type {?}
* @private
*/
NzCarouselContentDirective.prototype.renderer;
}
/**
* @fileoverview added by tsickle
* Generated from: strategies/base-strategy.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @license
* Copyright Alibaba.com All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
/**
* @abstract
*/
var /**
* @abstract
*/
NzCarouselBaseStrategy = /** @class */ (function () {
function NzCarouselBaseStrategy(carouselComponent, cdr, renderer) {
this.cdr = cdr;
this.renderer = renderer;
this.carouselComponent = carouselComponent;
}
Object.defineProperty(NzCarouselBaseStrategy.prototype, "maxIndex", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.length - 1;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzCarouselBaseStrategy.prototype, "firstEl", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.contents[0].el;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzCarouselBaseStrategy.prototype, "lastEl", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.contents[this.maxIndex].el;
},
enumerable: true,
configurable: true
});
/**
* Initialize dragging sequences.
* @param contents
*/
/**
* Initialize dragging sequences.
* @param {?} contents
* @return {?}
*/
NzCarouselBaseStrategy.prototype.withCarouselContents = /**
* Initialize dragging sequences.
* @param {?} contents
* @return {?}
*/
function (contents) {
// TODO: carousel and its contents should be separated.
/** @type {?} */
var carousel = (/** @type {?} */ (this.carouselComponent));
/** @type {?} */
var rect = carousel.el.getBoundingClientRect();
this.slickListEl = carousel.slickListEl;
this.slickTrackEl = carousel.slickTrackEl;
this.unitWidth = rect.width;
this.unitHeight = rect.height;
this.contents = contents ? contents.toArray() : [];
this.length = this.contents.length;
};
/**
* When user drag the carousel component.
* @optional
*/
/**
* When user drag the carousel component.
* \@optional
* @param {?} _vector
* @return {?}
*/
NzCarouselBaseStrategy.prototype.dragging = /**
* When user drag the carousel component.
* \@optional
* @param {?} _vector
* @return {?}
*/
function (_vector) { };
/**
* Destroy a scroll strategy.
*/
/**
* Destroy a scroll strategy.
* @return {?}
*/
NzCarouselBaseStrategy.prototype.dispose = /**
* Destroy a scroll strategy.
* @return {?}
*/
function () { };
/**
* @protected
* @param {?} f
* @param {?} t
* @return {?}
*/
NzCarouselBaseStrategy.prototype.getFromToInBoundary = /**
* @protected
* @param {?} f
* @param {?} t
* @return {?}
*/
function (f, t) {
/** @type {?} */
var length = this.maxIndex + 1;
return { from: (f + length) % length, to: (t + length) % length };
};
return NzCarouselBaseStrategy;
}());
if (false) {
/**
* @type {?}
* @protected
*/
NzCarouselBaseStrategy.prototype.carouselComponent;
/**
* @type {?}
* @protected
*/
NzCarouselBaseStrategy.prototype.contents;
/**
* @type {?}
* @protected
*/
NzCarouselBaseStrategy.prototype.slickListEl;
/**
* @type {?}
* @protected
*/
NzCarouselBaseStrategy.prototype.slickTrackEl;
/**
* @type {?}
* @protected
*/
NzCarouselBaseStrategy.prototype.length;
/**
* @type {?}
* @protected
*/
NzCarouselBaseStrategy.prototype.unitWidth;
/**
* @type {?}
* @protected
*/
NzCarouselBaseStrategy.prototype.unitHeight;
/**
* @type {?}
* @protected
*/
NzCarouselBaseStrategy.prototype.cdr;
/**
* @type {?}
* @protected
*/
NzCarouselBaseStrategy.prototype.renderer;
/**
* Trigger transition.
* @abstract
* @param {?} _f
* @param {?} _t
* @return {?}
*/
NzCarouselBaseStrategy.prototype.switch = function (_f, _t) { };
}
/**
* @fileoverview added by tsickle
* Generated from: strategies/opacity-strategy.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzCarouselOpacityStrategy = /** @class */ (function (_super) {
__extends(NzCarouselOpacityStrategy, _super);
function NzCarouselOpacityStrategy() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* @param {?} contents
* @return {?}
*/
NzCarouselOpacityStrategy.prototype.withCarouselContents = /**
* @param {?} contents
* @return {?}
*/
function (contents) {
var _this = this;
_super.prototype.withCarouselContents.call(this, contents);
if (this.contents) {
this.slickTrackEl.style.width = this.length * this.unitWidth + "px";
this.contents.forEach((/**
* @param {?} content
* @param {?} i
* @return {?}
*/
function (content, i) {
_this.renderer.setStyle(content.el, 'opacity', (/** @type {?} */ (_this.carouselComponent)).activeIndex === i ? '1' : '0');
_this.renderer.setStyle(content.el, 'position', 'relative');
_this.renderer.setStyle(content.el, 'width', _this.unitWidth + "px");
_this.renderer.setStyle(content.el, 'left', -_this.unitWidth * i + "px");
_this.renderer.setStyle(content.el, 'transition', ['opacity 500ms ease 0s', 'visibility 500ms ease 0s']);
}));
}
};
/**
* @param {?} _f
* @param {?} _t
* @return {?}
*/
NzCarouselOpacityStrategy.prototype.switch = /**
* @param {?} _f
* @param {?} _t
* @return {?}
*/
function (_f, _t) {
var _this = this;
var t = this.getFromToInBoundary(_f, _t).to;
/** @type {?} */
var complete$ = new Subject();
this.contents.forEach((/**
* @param {?} content
* @param {?} i
* @return {?}
*/
function (content, i) {
_this.renderer.setStyle(content.el, 'opacity', t === i ? '1' : '0');
}));
setTimeout((/**
* @return {?}
*/
function () {
complete$.next();
complete$.complete();
}), (/** @type {?} */ (this.carouselComponent)).nzTransitionSpeed);
return complete$;
};
/**
* @return {?}
*/
NzCarouselOpacityStrategy.prototype.dispose = /**
* @return {?}
*/
function () {
var _this = this;
this.contents.forEach((/**
* @param {?} content
* @return {?}
*/
function (content) {
_this.renderer.setStyle(content.el, 'transition', null);
}));
_super.prototype.dispose.call(this);
};
return NzCarouselOpacityStrategy;
}(NzCarouselBaseStrategy));
/**
* @fileoverview added by tsickle
* Generated from: strategies/transform-strategy.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzCarouselTransformStrategy = /** @class */ (function (_super) {
__extends(NzCarouselTransformStrategy, _super);
function NzCarouselTransformStrategy() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.isDragging = false;
_this.isTransitioning = false;
return _this;
}
Object.defineProperty(NzCarouselTransformStrategy.prototype, "vertical", {
get: /**
* @private
* @return {?}
*/
function () {
return (/** @type {?} */ (this.carouselComponent)).vertical;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NzCarouselTransformStrategy.prototype.dispose = /**
* @return {?}
*/
function () {
_super.prototype.dispose.call(this);
this.renderer.setStyle(this.slickTrackEl, 'transform', null);
};
/**
* @param {?} contents
* @return {?}
*/
NzCarouselTransformStrategy.prototype.withCarouselContents = /**
* @param {?} contents
* @return {?}
*/
function (contents) {
var _this = this;
_super.prototype.withCarouselContents.call(this, contents);
/** @type {?} */
var carousel = (/** @type {?} */ (this.carouselComponent));
/** @type {?} */
var activeIndex = carousel.activeIndex;
if (this.contents.length) {
this.renderer.setStyle(this.slickListEl, 'height', this.unitHeight + "px");
if (this.vertical) {
this.renderer.setStyle(this.slickTrackEl, 'width', this.unitWidth + "px");
this.renderer.setStyle(this.slickTrackEl, 'height', this.length * this.unitHeight + "px");
this.renderer.setStyle(this.slickTrackEl, 'transform', "translate3d(0, " + -activeIndex * this.unitHeight + "px, 0)");
}
else {
this.renderer.setStyle(this.slickTrackEl, 'height', this.unitHeight + "px");
this.renderer.setStyle(this.slickTrackEl, 'width', this.length * this.unitWidth + "px");
this.renderer.setStyle(this.slickTrackEl, 'transform', "translate3d(" + -activeIndex * this.unitWidth + "px, 0, 0)");
}
this.contents.forEach((/**
* @param {?} content
* @return {?}
*/
function (content) {
_this.renderer.setStyle(content.el, 'position', 'relative');
_this.renderer.setStyle(content.el, 'width', _this.unitWidth + "px");
_this.renderer.setStyle(content.el, 'height', _this.unitHeight + "px");
}));
}
};
/**
* @param {?} _f
* @param {?} _t
* @return {?}
*/
NzCarouselTransformStrategy.prototype.switch = /**
* @param {?} _f
* @param {?} _t
* @return {?}
*/
function (_f, _t) {
var _this = this;
var t = this.getFromToInBoundary(_f, _t).to;
/** @type {?} */
var complete$ = new Subject();
this.renderer.setStyle(this.slickTrackEl, 'transition', "transform " + (/** @type {?} */ (this.carouselComponent)).nzTransitionSpeed + "ms ease");
if (this.vertical) {
this.verticalTransform(_f, _t);
}
else {
this.horizontalTransform(_f, _t);
}
this.isTransitioning = true;
this.isDragging = false;
setTimeout((/**
* @return {?}
*/
function () {
_this.renderer.setStyle(_this.slickTrackEl, 'transition', null);
_this.contents.forEach((/**
* @param {?} content
* @return {?}
*/
function (content) {
_this.renderer.setStyle(content.el, _this.vertical ? 'top' : 'left', null);
}));
if (_this.vertical) {
_this.renderer.setStyle(_this.slickTrackEl, 'transform', "translate3d(0, " + -t * _this.unitHeight + "px, 0)");
}
else {
_this.renderer.setStyle(_this.slickTrackEl, 'transform', "translate3d(" + -t * _this.unitWidth + "px, 0, 0)");
}
_this.isTransitioning = false;
complete$.next();
complete$.complete();
}), (/** @type {?} */ (this.carouselComponent)).nzTransitionSpeed);
return complete$.asObservable();
};
/**
* @param {?} _vector
* @return {?}
*/
NzCarouselTransformStrategy.prototype.dragging = /**
* @param {?} _vector
* @return {?}
*/
function (_vector) {
if (this.isTransitioning) {
return;
}
/** @type {?} */
var activeIndex = (/** @type {?} */ (this.carouselComponent)).activeIndex;
if ((/** @type {?} */ (this.carouselComponent)).vertical) {
if (!this.isDragging && this.length > 2) {
if (activeIndex === this.maxIndex) {
this.prepareVerticalContext(true);
}
else if (activeIndex === 0) {
this.prepareVerticalContext(false);
}
}
this.renderer.setStyle(this.slickTrackEl, 'transform', "translate3d(0, " + (-activeIndex * this.unitHeight + _vector.x) + "px, 0)");
}
else {
if (!this.isDragging && this.length > 2) {
if (activeIndex === this.maxIndex) {
this.prepareHorizontalContext(true);
}
else if (activeIndex === 0) {
this.prepareHorizontalContext(false);
}
}
this.renderer.setStyle(this.slickTrackEl, 'transform', "translate3d(" + (-activeIndex * this.unitWidth + _vector.x) + "px, 0, 0)");
}
this.isDragging = true;
};
/**
* @private
* @param {?} _f
* @param {?} _t
* @return {?}
*/
NzCarouselTransformStrategy.prototype.verticalTransform = /**
* @private
* @param {?} _f
* @param {?} _t
* @return {?}
*/
function (_f, _t) {
var _a = this.getFromToInBoundary(_f, _t), f = _a.from, t = _a.to;
/** @type {?} */
var needToAdjust = this.length > 2 && _t !== t;
if (needToAdjust) {
this.prepareVerticalContext(t < f);
this.renderer.setStyle(this.slickTrackEl, 'transform', "translate3d(0, " + -_t * this.unitHeight + "px, 0)");
}
else {
this.renderer.setStyle(this.slickTrackEl, 'transform', "translate3d(0, " + -t * this.unitHeight + "px, 0");
}
};
/**
* @private
* @param {?} _f
* @param {?} _t
* @return {?}
*/
NzCarouselTransformStrategy.prototype.horizontalTransform = /**
* @private
* @param {?} _f
* @param {?} _t
* @return {?}
*/
function (_f, _t) {
var _a = this.getFromToInBoundary(_f, _t), f = _a.from, t = _a.to;
/** @type {?} */
var needToAdjust = this.length > 2 && _t !== t;
if (needToAdjust) {
this.prepareHorizontalContext(t < f);
this.renderer.setStyle(this.slickTrackEl, 'transform', "translate3d(" + -_t * this.unitWidth + "px, 0, 0)");
}
else {
this.renderer.setStyle(this.slickTrackEl, 'transform', "translate3d(" + -t * this.unitWidth + "px, 0, 0");
}
};
/**
* @private
* @param {?} lastToFirst
* @return {?}
*/
NzCarouselTransformStrategy.prototype.prepareVerticalContext = /**
* @private
* @param {?} lastToFirst
* @return {?}
*/
function (lastToFirst) {
if (lastToFirst) {
this.renderer.setStyle(this.firstEl, 'top', this.length * this.unitHeight + "px");
this.renderer.setStyle(this.lastEl, 'top', null);
}
else {
this.renderer.setStyle(this.firstEl, 'top', null);
this.renderer.setStyle(this.lastEl, 'top', -this.unitHeight * this.length + "px");
}
};
/**
* @private
* @param {?} lastToFirst
* @return {?}
*/
NzCarouselTransformStrategy.prototype.prepareHorizontalContext = /**
* @private
* @param {?} lastToFirst
* @return {?}
*/
function (lastToFirst) {
if (lastToFirst) {
this.renderer.setStyle(this.firstEl, 'left', this.length * this.unitWidth + "px");
this.renderer.setStyle(this.lastEl, 'left', null);
}
else {
this.renderer.setStyle(this.firstEl, 'left', null);
this.renderer.setStyle(this.lastEl, 'left', -this.unitWidth * this.length + "px");
}
};
return NzCarouselTransformStrategy;
}(NzCarouselBaseStrategy));
if (false) {
/**
* @type {?}
* @private
*/
NzCarouselTransformStrategy.prototype.isDragging;
/**
* @type {?}
* @private
*/
NzCarouselTransformStrategy.prototype.isTransitioning;
}
/**
* @fileoverview added by tsickle
* Generated from: typings.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
function NzCarouselComponentAsSource() { }
if (false) {
/** @type {?} */
NzCarouselComponentAsSource.prototype.carouselContents;
/** @type {?} */
NzCarouselComponentAsSource.prototype.el;
/** @type {?} */
NzCarouselComponentAsSource.prototype.nzTransitionSpeed;
/** @type {?} */
NzCarouselComponentAsSource.prototype.vertical;
/** @type {?} */
NzCarouselComponentAsSource.prototype.slickListEl;
/** @type {?} */
NzCarouselComponentAsSource.prototype.slickTrackEl;
/** @type {?} */
NzCarouselComponentAsSource.prototype.activeIndex;
}
/**
* @record
*/
function NzCarouselStrategyRegistryItem() { }
if (false) {
/** @type {?} */
NzCarouselStrategyRegistryItem.prototype.name;
/** @type {?} */
NzCarouselStrategyRegistryItem.prototype.strategy;
}
/** @type {?} */
var NZ_CAROUSEL_CUSTOM_STRATEGIES = new InjectionToken('nz-carousel-custom-strategies');
/**
* @record
*/
function PointerVector() { }
if (false) {
/** @type {?} */
PointerVector.prototype.x;
/** @type {?} */
PointerVector.prototype.y;
}
/**
* @record
*/
function FromToInterface() { }
if (false) {
/** @type {?} */
FromToInterface.prototype.from;
/** @type {?} */
FromToInterface.prototype.to;
}
/**
* @fileoverview added by tsickle
* Generated from: carousel.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
var NZ_CONFIG_COMPONENT_NAME = 'carousel';
var NzCarouselComponent = /** @class */ (function () {
function NzCarouselComponent(elementRef, nzConfigService, renderer, cdr, platform, resizeService, nzDragService, customStrategies) {
var _this = this;
this.nzConfigService = nzConfigService;
this.renderer = renderer;
this.cdr = cdr;
this.platform = platform;
this.resizeService = resizeService;
this.nzDragService = nzDragService;
this.customStrategies = customStrategies;
this.nzTransitionSpeed = 500;
this.nzBeforeChange = new EventEmitter();
this.nzAfterChange = new EventEmitter();
this.activeIndex = 0;
this.vertical = false;
this.destroy$ = new Subject();
this.gestureRect = null;
this.pointerDelta = null;
this.isTransiting = false;
this.isDragging = false;
/**
* Drag carousel.
*/
this.pointerDown = (/**
* @param {?} event
* @return {?}
*/
function (event) {
if (!_this.isDragging && !_this.isTransiting && _this.nzEnableSwipe) {
_this.clearScheduledTransition();
_this.gestureRect = _this.slickListEl.getBoundingClientRect();
_this.nzDragService.requestDraggingSequence(event).subscribe((/**
* @param {?} delta
* @return {?}
*/
function (delta) {
_this.pointerDelta = delta;
_this.isDragging = true;
_this.strategy.dragging(_this.pointerDelta);
}), (/**
* @return {?}
*/
function () { }), (/**
* @return {?}
*/
function () {
if (_this.nzEnableSwipe && _this.isDragging) {
/** @type {?} */
var xDelta = _this.pointerDelta ? _this.pointerDelta.x : 0;
// Switch to another slide if delta is bigger than third of the width.
if (Math.abs(xDelta) > (/** @type {?} */ (_this.gestureRect)).width / 3) {
_this.goTo(xDelta > 0 ? _this.activeIndex - 1 : _this.activeIndex + 1);
}
else {
_this.goTo(_this.activeIndex);
}
_this.gestureRect = null;
_this.pointerDelta = null;
}
_this.isDragging = false;
}));
}
});
this.renderer.addClass(elementRef.nativeElement, 'ant-carousel');
this.el = elementRef.nativeElement;
}
Object.defineProperty(NzCarouselComponent.prototype, "nzDotPosition", {
get: /**
* @return {?}
*/
function () {
return this._dotPosition;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._dotPosition = value;
if (value === 'left' || value === 'right') {
this.vertical = true;
}
else {
this.vertical = false;
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NzCarouselComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
this.markContentActive(0);
};
/**
* @return {?}
*/
NzCarouselComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
var _this = this;
if (!this.platform.isBrowser) {
return;
}
this.slickListEl = this.slickList.nativeElement;
this.slickTrackEl = this.slickTrack.nativeElement;
this.carouselContents.changes.pipe(takeUntil(this.destroy$)).subscribe((/**
* @return {?}
*/
function () {
_this.markContentActive(0);
_this.syncStrategy();
}));
this.resizeService
.subscribe()
.pipe(takeUntil(this.destroy$))
.subscribe((/**
* @return {?}
*/
function () {
_this.syncStrategy();
}));
this.switchStrategy();
this.markContentActive(0);
this.syncStrategy();
// If embedded in an entry component, it may do initial render at a inappropriate time.
// ngZone.onStable won't do this trick
Promise.resolve().then((/**
* @return {?}
*/
function () {
_this.syncStrategy();
}));
};
/**
* @param {?} changes
* @return {?}
*/
NzCarouselComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var nzEffect = changes.nzEffect, nzDotPosition = changes.nzDotPosition;
if (nzEffect && !nzEffect.isFirstChange()) {
this.switchStrategy();
this.markContentActive(0);
this.syncStrategy();
}
if (nzDotPosition && !nzDotPosition.isFirstChange()) {
this.switchStrategy();
this.markContentActive(0);
this.syncStrategy();
}
if (!this.nzAutoPlay || !this.nzAutoPlaySpeed) {
this.clearScheduledTransition();
}
else {
this.scheduleNextTransition();
}
};
/**
* @return {?}
*/
NzCarouselComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.clearScheduledTransition();
if (this.strategy) {
this.strategy.dispose();
}
this.destroy$.next();
this.destroy$.complete();
};
/**
* @param {?} e
* @return {?}
*/
NzCarouselComponent.prototype.onKeyDown = /**
* @param {?} e
* @return {?}
*/
function (e) {
if (e.keyCode === LEFT_ARROW) {
e.preventDefault();
this.pre();
}
else if (e.keyCode === RIGHT_ARROW) {
this.next();
e.preventDefault();
}
};
/**
* @return {?}
*/
NzCarouselComponent.prototype.next = /**
* @return {?}
*/
function () {
this.goTo(this.activeIndex + 1);
};
/**
* @return {?}
*/
NzCarouselComponent.prototype.pre = /**
* @return {?}
*/
function () {
this.goTo(this.activeIndex - 1);
};
/**
* @param {?} index
* @return {?}
*/
NzCarouselComponent.prototype.goTo = /**
* @param {?} index
* @return {?}
*/
function (index) {
var _this = this;
if (this.carouselContents && this.carouselContents.length && !this.isTransiting) {
/** @type {?} */
var length_1 = this.carouselContents.length;
/** @type {?} */
var from = this.activeIndex;
/** @type {?} */
var to = (index + length_1) % length_1;
this.isTransiting = true;
this.nzBeforeChange.emit({ from: from, to: to });
this.strategy.switch(this.activeIndex, index).subscribe((/**
* @return {?}
*/
function () {
_this.scheduleNextTransition();
_this.nzAfterChange.emit(index);
_this.isTransiting = false;
}));
this.markContentActive(to);
this.cdr.markForCheck();
}
};
/**
* @private
* @return {?}
*/
NzCarouselComponent.prototype.switchStrategy = /**
* @private
* @return {?}
*/
function () {
var _this = this;
if (this.strategy) {
this.strategy.dispose();
}
// Load custom strategies first.
/** @type {?} */
var customStrategy = this.customStrategies ? this.customStrategies.find((/**
* @param {?} s
* @return {?}
*/
function (s) { return s.name === _this.nzEffect; })) : null;
if (customStrategy) {
this.strategy = new ((/** @type {?} */ (customStrategy.strategy)))(this, this.cdr, this.renderer);
return;
}
this.strategy =
this.nzEffect === 'scrollx'
? new NzCarouselTransformStrategy(this, this.cdr, this.renderer)
: new NzCarouselOpacityStrategy(this, this.cdr, this.renderer);
};
/**
* @private
* @return {?}
*/
NzCarouselComponent.prototype.scheduleNextTransition = /**
* @private
* @return {?}
*/
function () {
var _this = this;
this.clearScheduledTransition();
if (this.nzAutoPlay && this.nzAutoPlaySpeed > 0 && this.platform.isBrowser) {
this.transitionInProgress = setTimeout((/**
* @return {?}
*/
function () {
_this.goTo(_this.activeIndex + 1);
}), this.nzAutoPlaySpeed);
}
};
/**
* @private
* @return {?}
*/
NzCarouselComponent.prototype.clearScheduledTransition = /**
* @private
* @return {?}
*/
function () {
if (this.transitionInProgress) {
clearTimeout(this.transitionInProgress);
this.transitionInProgress = null;
}
};
/**
* @private
* @param {?} index
* @return {?}
*/
NzCarouselComponent.prototype.markContentActive = /**
* @private
* @param {?} index
* @return {?}
*/
function (index) {
this.activeIndex = index;
if (this.carouselContents) {
this.carouselContents.forEach((/**
* @param {?} slide
* @param {?} i
* @return {?}
*/
function (slide, i) {
slide.isActive = index === i;
}));
}
this.cdr.markForCheck();
};
/**
* @private
* @return {?}
*/
NzCarouselComponent.prototype.syncStrategy = /**
* @private
* @return {?}
*/
function () {
if (this.strategy) {
this.strategy.withCarouselContents(this.carouselContents);
}
};
NzCarouselComponent.decorators = [
{ type: Component, args: [{
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
selector: 'nz-carousel',
exportAs: 'nzCarousel',
preserveWhitespaces: false,
template: "\n <div class=\"slick-initialized slick-slider\" [class.slick-vertical]=\"nzDotPosition === 'left' || nzDotPosition === 'right'\">\n <div\n #slickList\n class=\"slick-list\"\n tabindex=\"-1\"\n (keydown)=\"onKeyDown($event)\"\n (mousedown)=\"pointerDown($event)\"\n (touchstart)=\"pointerDown($event)\"\n >\n <!-- Render carousel items. -->\n <div class=\"slick-track\" #slickTrack>\n <ng-content></ng-content>\n </div>\n </div>\n <!-- Render dots. -->\n <ul\n class=\"slick-dots\"\n *ngIf=\"nzDots\"\n [class.slick-dots-top]=\"nzDotPosition === 'top'\"\n [class.slick-dots-bottom]=\"nzDotPosition === 'bottom'\"\n [class.slick-dots-left]=\"nzDotPosition === 'left'\"\n [class.slick-dots-right]=\"nzDotPosition === 'right'\"\n >\n <li *ngFor=\"let content of carouselContents; let i = index\" [class.slick-active]=\"content.isActive\" (click)=\"goTo(i)\">\n <ng-template [ngTemplateOutlet]=\"nzDotRender || renderDotTemplate\" [ngTemplateOutletContext]=\"{ $implicit: i }\"> </ng-template>\n </li>\n </ul>\n </div>\n\n <ng-template #renderDotTemplate let-index>\n <button>{{ index + 1 }}</button>\n </ng-template>\n ",
host: {
'[class.ant-carousel-vertical]': 'vertical'
}
}] }
];
/** @nocollapse */
NzCarouselComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: NzConfigService },
{ type: Renderer2 },
{ type: ChangeDetectorRef },
{ type: Platform },
{ type: NzResizeService },
{ type: NzDragService },
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [NZ_CAROUSEL_CUSTOM_STRATEGIES,] }] }
]; };
NzCarouselComponent.propDecorators = {
carouselContents: [{ type: ContentChildren, args: [NzCarouselContentDirective,] }],
slickList: [{ type: ViewChild, args: ['slickList', { static: false },] }],
slickTrack: [{ type: ViewChild, args: ['slickTrack', { static: false },] }],
nzDotRender: [{ type: Input }],
nzEffect: [{ type: Input }],
nzEnableSwipe: [{ type: Input }],
nzDots: [{ type: Input }],
nzAutoPlay: [{ type: Input }],
nzAutoPlaySpeed: [{ type: Input }],
nzTransitionSpeed: [{ type: Input }],
nzDotPosition: [{ type: Input }],
nzBeforeChange: [{ type: Output }],
nzAfterChange: [{ type: Output }]
};
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, 'scrollx'),
__metadata("design:type", String)
], NzCarouselComponent.prototype, "nzEffect", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, true), InputBoolean(),
__metadata("design:type", Boolean)
], NzCarouselComponent.prototype, "nzEnableSwipe", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, true), InputBoolean(),
__metadata("design:type", Boolean)
], NzCarouselComponent.prototype, "nzDots", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, false), InputBoolean(),
__metadata("design:type", Boolean)
], NzCarouselComponent.prototype, "nzAutoPlay", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, 3000), InputNumber(),
__metadata("design:type", Number)
], NzCarouselComponent.prototype, "nzAutoPlaySpeed", void 0);
__decorate([
InputNumber(),
__metadata("design:type", Object)
], NzCarouselComponent.prototype, "nzTransitionSpeed", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, 'bottom'),
__metadata("design:type", String),
__metadata("design:paramtypes", [String])
], NzCarouselComponent.prototype, "nzDotPosition", null);
return NzCarouselComponent;
}());
if (false) {
/** @type {?} */
NzCarouselComponent.ngAcceptInputType_nzEnableSwipe;
/** @type {?} */
NzCarouselComponent.ngAcceptInputType_nzDots;
/** @type {?} */
NzCarouselComponent.ngAcceptInputType_nzAutoPlay;
/** @type {?} */
NzCarouselComponent.ngAcceptInputType_nzAutoPlaySpeed;
/** @type {?} */
NzCarouselComponent.ngAcceptInputType_nzTransitionSpeed;
/** @type {?} */
NzCarouselComponent.prototype.carouselContents;
/** @type {?} */
NzCarouselComponent.prototype.slickList;
/** @type {?} */
NzCarouselComponent.prototype.slickTrack;
/** @type {?} */
NzCarouselComponent.prototype.nzDotRender;
/** @type {?} */
NzCarouselComponent.prototype.nzEffect;
/** @type {?} */
NzCarouselComponent.prototype.nzEnableSwipe;
/** @type {?} */
NzCarouselComponent.prototype.nzDots;
/** @type {?} */
NzCarouselComponent.prototype.nzAutoPlay;
/** @type {?} */
NzCarouselComponent.prototype.nzAutoPlaySpeed;
/** @type {?} */
NzCarouselComponent.prototype.nzTransitionSpeed;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype._dotPosition;
/** @type {?} */
NzCarouselComponent.prototype.nzBeforeChange;
/** @type {?} */
NzCarouselComponent.prototype.nzAfterChange;
/** @type {?} */
NzCarouselComponent.prototype.activeIndex;
/** @type {?} */
NzCarouselComponent.prototype.el;
/** @type {?} */
NzCarouselComponent.prototype.slickListEl;
/** @type {?} */
NzCarouselComponent.prototype.slickTrackEl;
/** @type {?} */
NzCarouselComponent.prototype.strategy;
/** @type {?} */
NzCarouselComponent.prototype.vertical;
/** @type {?} */
NzCarouselComponent.prototype.transitionInProgress;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.destroy$;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.gestureRect;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.pointerDelta;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.isTransiting;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.isDragging;
/**
* Drag carousel.
* @type {?}
*/
NzCarouselComponent.prototype.pointerDown;
/** @type {?} */
NzCarouselComponent.prototype.nzConfigService;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.renderer;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.cdr;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.platform;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.resizeService;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.nzDragService;
/**
* @type {?}
* @private
*/
NzCarouselComponent.prototype.customStrategies;
}
/**
* @fileoverview added by tsickle
* Generated from: carousel.module.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzCarouselModule = /** @class */ (function () {
function NzCarouselModule() {
}
NzCarouselModule.decorators = [
{ type: NgModule, args: [{
declarations: [NzCarouselComponent, NzCarouselContentDirective],
exports: [NzCarouselComponent, NzCarouselContentDirective],
imports: [CommonModule, PlatformModule]
},] }
];
return NzCarouselModule;
}());
/**
* @fileoverview added by tsickle
* Generated from: public-api.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* Generated from: ng-zorro-antd-carousel.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { NZ_CAROUSEL_CUSTOM_STRATEGIES, NzCarouselBaseStrategy, NzCarouselComponent, NzCarouselContentDirective, NzCarouselModule };
//# sourceMappingURL=ng-zorro-antd-carousel.js.map