Repository URL to install this package:
|
Version:
1.1.21 ▾
|
"use strict";
// only adds async
const getSize = require("./get-size");
module.exports = Cell;
function Cell(elem, parent) {
this.element = elem;
this.parent = parent;
this.create();
}
Cell.flickTheBean = Flickity => {
Flickity.Cell = Cell;
};
var proto = Cell.prototype;
proto.create = function () {
this.element.style.position = 'absolute';
this.x = 0;
this.shift = 0;
};
proto.destroy = function () {
// reset style
this.element.style.position = '';
var side = this.parent.originSide;
this.element.style[side] = '';
};
proto.getSize = function () {
this.size = getSize(this.element);
};
proto.setPosition = function (x) {
this.x = x;
this.updateTarget();
this.renderPosition(x);
}; // setDefaultTarget v1 method, backwards compatibility, remove in v3
proto.updateTarget = proto.setDefaultTarget = function () {
var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';
this.target = this.x + this.size[marginProperty] + this.size.width * this.parent.cellAlign;
};
proto.renderPosition = function (x) {
// render position of cell with in slider
var side = this.parent.originSide;
this.element.style[side] = this.parent.getPositionValue(x);
};
/**
* @param {Integer} factor - 0, 1, or -1
**/
proto.wrapShift = function (shift) {
this.shift = shift;
this.renderPosition(this.x + this.parent.slideableWidth * shift);
};
proto.remove = function () {
this.element.parentNode.removeChild(this.element);
};