Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"use strict";

// const Flickity = require('./flickity')
// Flickity.Slide = Slide
// module.exports = Slide
function Slide(parent) {
  this.parent = parent;
  this.isOriginLeft = parent.originSide == 'left';
  this.cells = [];
  this.outerWidth = 0;
  this.height = 0;
}

var proto = Slide.prototype;

proto.addCell = function (cell) {
  this.cells.push(cell);
  this.outerWidth += cell.size.outerWidth;
  this.height = Math.max(cell.size.outerHeight, this.height); // first cell stuff

  if (this.cells.length == 1) {
    this.x = cell.x; // x comes from first cell

    var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';
    this.firstMargin = cell.size[beginMargin];
  }
};

proto.updateTarget = function () {
  var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';
  var lastCell = this.getLastCell();
  var lastMargin = lastCell ? lastCell.size[endMargin] : 0;
  var slideWidth = this.outerWidth - (this.firstMargin + lastMargin);
  this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;
};

proto.getLastCell = function () {
  return this.cells[this.cells.length - 1];
};

proto.select = function () {
  this.changeSelectedClass('add');
};

proto.unselect = function () {
  this.changeSelectedClass('remove');
};

proto.changeSelectedClass = function (method) {
  this.cells.forEach(function (cell) {
    cell.element.classList[method]('is-selected');
  });
};

proto.getCellElements = function () {
  return this.cells.map(function (cell) {
    return cell.element;
  });
};

module.exports = Slide;

Slide.flickTheBean = Flickity => {
  Flickity.Slide = Slide;
};