Sha256: 65855d28cb9dbc18dd280eb51eff5fe08ded3642b575b0bf9678c62307d34267
Contents?: true
Size: 1.67 KB
Versions: 3
Compression:
Stored size: 1.67 KB
Contents
mumuki.ModalCarrousel = (() => { class MuModalCarrousel { constructor(containerSelector, onShow = () => {}) { this.$container = $(containerSelector); this.onShow = onShow; } show() { this.onShow(); this._showFirstSlide(); } nextSlide() { this._clickButton('next'); } prevSlide() { this._clickButton('prev'); } _activeSlide() { return this.$container.find('.active'); } _clickButton(prevOrNext) { this._activeSlide().removeClass('active')[prevOrNext]().addClass('active'); this.showNextOrCloseButton(); this._hidePreviousButtonIfFirstSlide(); } showNextOrCloseButton() { const $next = $('.mu-kids-modal-button.mu-next'); const $close = $('.mu-kids-modal-button.mu-close'); const $footer = $('.modal-footer'); const isLastChild = this._activeSlide().is(':last-child'); this._addClassIf($next, 'hidden', () => isLastChild); this._addClassIf($close, 'hidden', () => !isLastChild); this._addClassIf($footer, 'hidden', () => !isLastChild); } _hidePreviousButtonIfFirstSlide() { const $prev = $('.mu-kids-modal-button.mu-previous'); this._addClassIf($prev, 'hidden', () => this._activeSlide().is(':first-child')) } _showFirstSlide() { this.$container.children().each((i, el) => this._addClassIf($(el), 'active', () => i === 0)); this.showNextOrCloseButton(); this._hidePreviousButtonIfFirstSlide(); } _addClassIf(element, clazz, criteria) { if (criteria()) { element.addClass(clazz); } else { element.removeClass(clazz); } } } return MuModalCarrousel; })();
Version data entries
3 entries across 3 versions & 1 rubygems