ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
65 lines • 8.54 kB
JavaScript
/**
* 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
*/
export class NzCarouselBaseStrategy {
constructor(carouselComponent, cdr, renderer, platform, options) {
this.cdr = cdr;
this.renderer = renderer;
this.platform = platform;
this.options = options;
this.carouselComponent = carouselComponent;
}
get maxIndex() {
return this.length - 1;
}
get firstEl() {
return this.contents[0].el;
}
get lastEl() {
return this.contents[this.maxIndex].el;
}
/**
* Initialize dragging sequences.
*
* @param contents
*/
withCarouselContents(contents) {
const carousel = this.carouselComponent;
this.slickListEl = carousel.slickListEl;
this.slickTrackEl = carousel.slickTrackEl;
this.contents = (contents === null || contents === void 0 ? void 0 : contents.toArray()) || [];
this.length = this.contents.length;
if (this.platform.isBrowser) {
const rect = carousel.el.getBoundingClientRect();
this.unitWidth = rect.width;
this.unitHeight = rect.height;
}
else {
// Since we cannot call getBoundingClientRect in server, we just hide all items except for the first one.
contents === null || contents === void 0 ? void 0 : contents.forEach((content, index) => {
if (index === 0) {
this.renderer.setStyle(content.el, 'width', '100%');
}
else {
this.renderer.setStyle(content.el, 'display', 'none');
}
});
}
}
/**
* When user drag the carousel component.
*
* @optional
*/
dragging(_vector) { }
/**
* Destroy a scroll strategy.
*/
dispose() { }
getFromToInBoundary(f, t) {
const length = this.maxIndex + 1;
return { from: (f + length) % length, to: (t + length) % length };
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY2Fyb3VzZWwvc3RyYXRlZ2llcy9iYXNlLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQVdILE1BQU0sT0FBZ0Isc0JBQXNCO0lBc0IxQyxZQUNFLGlCQUE4QyxFQUNwQyxHQUFzQixFQUN0QixRQUFtQixFQUNuQixRQUFrQixFQUNsQixPQUFXO1FBSFgsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQUk7UUFFckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7SUFwQkQsSUFBYyxRQUFRO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWMsT0FBTztRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFjLE1BQU07UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQVlEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxRQUFzRDtRQUN6RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWtCLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLE9BQU8sRUFBRSxLQUFJLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRW5DLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDL0I7YUFBTTtZQUNMLHlHQUF5RztZQUN6RyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNuQyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7aUJBQ3JEO3FCQUFNO29CQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2lCQUN2RDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBT0Q7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxPQUFzQixJQUFTLENBQUM7SUFFekM7O09BRUc7SUFDSCxPQUFPLEtBQVUsQ0FBQztJQUVSLG1CQUFtQixDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgUXVlcnlMaXN0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgTnpDYXJvdXNlbENvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuLi9jYXJvdXNlbC1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGcm9tVG9JbnRlcmZhY2UsIE56Q2Fyb3VzZWxDb21wb25lbnRBc1NvdXJjZSwgUG9pbnRlclZlY3RvciB9IGZyb20gJy4uL3R5cGluZ3MnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTnpDYXJvdXNlbEJhc2VTdHJhdGVneTxUID0gTnpTYWZlQW55PiB7XG4gIC8vIFByb3BlcnRpZXMgdGhhdCBzdHJhdGVnaWVzIG1heSB3YW50IHRvIHVzZS5cbiAgcHJvdGVjdGVkIGNhcm91c2VsQ29tcG9uZW50OiBOekNhcm91c2VsQ29tcG9uZW50QXNTb3VyY2UgfCBudWxsO1xuICBwcm90ZWN0ZWQgY29udGVudHMhOiBOekNhcm91c2VsQ29udGVudERpcmVjdGl2ZVtdO1xuICBwcm90ZWN0ZWQgc2xpY2tMaXN0RWwhOiBIVE1MRWxlbWVudDtcbiAgcHJvdGVjdGVkIHNsaWNrVHJhY2tFbCE6IEhUTUxFbGVtZW50O1xuICBwcm90ZWN0ZWQgbGVuZ3RoITogbnVtYmVyO1xuICBwcm90ZWN0ZWQgdW5pdFdpZHRoITogbnVtYmVyO1xuICBwcm90ZWN0ZWQgdW5pdEhlaWdodCE6IG51bWJlcjtcblxuICBwcm90ZWN0ZWQgZ2V0IG1heEluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubGVuZ3RoIC0gMTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZmlyc3RFbCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudHNbMF0uZWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGxhc3RFbCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudHNbdGhpcy5tYXhJbmRleF0uZWw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBjYXJvdXNlbENvbXBvbmVudDogTnpDYXJvdXNlbENvbXBvbmVudEFzU291cmNlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM/OiBUXG4gICkge1xuICAgIHRoaXMuY2Fyb3VzZWxDb21wb25lbnQgPSBjYXJvdXNlbENvbXBvbmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGRyYWdnaW5nIHNlcXVlbmNlcy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnRzXG4gICAqL1xuICB3aXRoQ2Fyb3VzZWxDb250ZW50cyhjb250ZW50czogUXVlcnlMaXN0PE56Q2Fyb3VzZWxDb250ZW50RGlyZWN0aXZlPiB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBjYXJvdXNlbCA9IHRoaXMuY2Fyb3VzZWxDb21wb25lbnQhO1xuICAgIHRoaXMuc2xpY2tMaXN0RWwgPSBjYXJvdXNlbC5zbGlja0xpc3RFbDtcbiAgICB0aGlzLnNsaWNrVHJhY2tFbCA9IGNhcm91c2VsLnNsaWNrVHJhY2tFbDtcbiAgICB0aGlzLmNvbnRlbnRzID0gY29udGVudHM/LnRvQXJyYXkoKSB8fCBbXTtcbiAgICB0aGlzLmxlbmd0aCA9IHRoaXMuY29udGVudHMubGVuZ3RoO1xuXG4gICAgaWYgKHRoaXMucGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICBjb25zdCByZWN0ID0gY2Fyb3VzZWwuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLnVuaXRXaWR0aCA9IHJlY3Qud2lkdGg7XG4gICAgICB0aGlzLnVuaXRIZWlnaHQgPSByZWN0LmhlaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2luY2Ugd2UgY2Fubm90IGNhbGwgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGluIHNlcnZlciwgd2UganVzdCBoaWRlIGFsbCBpdGVtcyBleGNlcHQgZm9yIHRoZSBmaXJzdCBvbmUuXG4gICAgICBjb250ZW50cz8uZm9yRWFjaCgoY29udGVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjb250ZW50LmVsLCAnd2lkdGgnLCAnMTAwJScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY29udGVudC5lbCwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciB0cmFuc2l0aW9uLlxuICAgKi9cbiAgYWJzdHJhY3Qgc3dpdGNoKF9mOiBudW1iZXIsIF90OiBudW1iZXIpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBXaGVuIHVzZXIgZHJhZyB0aGUgY2Fyb3VzZWwgY29tcG9uZW50LlxuICAgKlxuICAgKiBAb3B0aW9uYWxcbiAgICovXG4gIGRyYWdnaW5nKF92ZWN0b3I6IFBvaW50ZXJWZWN0b3IpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3kgYSBzY3JvbGwgc3RyYXRlZ3kuXG4gICAqL1xuICBkaXNwb3NlKCk6IHZvaWQge31cblxuICBwcm90ZWN0ZWQgZ2V0RnJvbVRvSW5Cb3VuZGFyeShmOiBudW1iZXIsIHQ6IG51bWJlcik6IEZyb21Ub0ludGVyZmFjZSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5tYXhJbmRleCArIDE7XG4gICAgcmV0dXJuIHsgZnJvbTogKGYgKyBsZW5ndGgpICUgbGVuZ3RoLCB0bzogKHQgKyBsZW5ndGgpICUgbGVuZ3RoIH07XG4gIH1cbn1cbiJdfQ==