UNPKG

@glidejs/glide

Version:

Glide.js is a dependency-free JavaScript ES6 slider and carousel. It’s lightweight, flexible and fast. Designed to slide. No less, no more

89 lines (79 loc) 1.74 kB
import { warn } from '../utils/log' import { exist } from '../utils/dom' import { define } from '../utils/object' import { isString } from '../utils/unit' const TRACK_SELECTOR = '[data-glide-el="track"]' export default function (Glide, Components) { const Html = { /** * Setup slider HTML nodes. * * @param {Glide} glide */ mount () { this.root = Glide.selector this.track = this.root.querySelector(TRACK_SELECTOR) this.slides = Array.prototype.slice.call(this.wrapper.children).filter((slide) => { return !slide.classList.contains(Glide.settings.classes.cloneSlide) }) } } define(Html, 'root', { /** * Gets node of the glide main element. * * @return {Object} */ get () { return Html._r }, /** * Sets node of the glide main element. * * @return {Object} */ set (r) { if (isString(r)) { r = document.querySelector(r) } if (exist(r)) { Html._r = r } else { warn('Root element must be a existing Html node') } } }) define(Html, 'track', { /** * Gets node of the glide track with slides. * * @return {Object} */ get () { return Html._t }, /** * Sets node of the glide track with slides. * * @return {Object} */ set (t) { if (exist(t)) { Html._t = t } else { warn(`Could not find track element. Please use ${TRACK_SELECTOR} attribute.`) } } }) define(Html, 'wrapper', { /** * Gets node of the slides wrapper. * * @return {Object} */ get () { return Html.track.children[0] } }) return Html }