UNPKG

react-film

Version:

React component for showing carousel just like a film strip

62 lines (41 loc) 6.09 kB
"use strict"; require("core-js/modules/es.array.iterator.js"); require("core-js/modules/es.object.to-string.js"); require("core-js/modules/es.string.iterator.js"); require("core-js/modules/es.weak-map.js"); require("core-js/modules/web.dom-collections.iterator.js"); require("core-js/modules/es.object.define-property.js"); require("core-js/modules/es.object.get-own-property-descriptor.js"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = computeScrollLeft; var browser = _interopRequireWildcard(require("./browser")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function computeScrollLeft(dir, scrollable, itemContainer, index) { var rtl = dir === 'rtl'; if (itemContainer && scrollable) { var items = itemContainer.children; // This will enumerate <li> inside <FilmStrip> var item = items[Math.max(0, Math.min(items.length - 1, index))]; if (item) { if (scrollable.offsetWidth === scrollable.scrollWidth) { return 0; } // eslint-disable-next-line no-magic-numbers var result = item.offsetLeft + (item.offsetWidth - scrollable.offsetWidth) / 2; if (rtl) { result = Math.min(result, 0); result = Math.max(result, scrollable.offsetWidth - scrollable.scrollWidth); } else { result = Math.max(result, 0); result = Math.min(result, scrollable.scrollWidth - scrollable.offsetWidth); } if (rtl && (browser.edgeUWP || browser.internetExplorer)) { result = -result; } return result; } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wdXRlU2Nyb2xsTGVmdC5qcyJdLCJuYW1lcyI6WyJjb21wdXRlU2Nyb2xsTGVmdCIsImRpciIsInNjcm9sbGFibGUiLCJpdGVtQ29udGFpbmVyIiwiaW5kZXgiLCJydGwiLCJpdGVtcyIsImNoaWxkcmVuIiwiaXRlbSIsIk1hdGgiLCJtYXgiLCJtaW4iLCJsZW5ndGgiLCJvZmZzZXRXaWR0aCIsInNjcm9sbFdpZHRoIiwicmVzdWx0Iiwib2Zmc2V0TGVmdCIsImJyb3dzZXIiLCJlZGdlVVdQIiwiaW50ZXJuZXRFeHBsb3JlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7O0FBRWUsU0FBU0EsaUJBQVQsQ0FBMkJDLEdBQTNCLEVBQWdDQyxVQUFoQyxFQUE0Q0MsYUFBNUMsRUFBMkRDLEtBQTNELEVBQWtFO0FBQy9FLE1BQU1DLEdBQUcsR0FBR0osR0FBRyxLQUFLLEtBQXBCOztBQUVBLE1BQUlFLGFBQWEsSUFBSUQsVUFBckIsRUFBaUM7QUFDL0IsUUFBTUksS0FBSyxHQUFHSCxhQUFhLENBQUNJLFFBQTVCLENBRCtCLENBQ087O0FBQ3RDLFFBQU1DLElBQUksR0FBR0YsS0FBSyxDQUFDRyxJQUFJLENBQUNDLEdBQUwsQ0FBUyxDQUFULEVBQVlELElBQUksQ0FBQ0UsR0FBTCxDQUFTTCxLQUFLLENBQUNNLE1BQU4sR0FBZSxDQUF4QixFQUEyQlIsS0FBM0IsQ0FBWixDQUFELENBQWxCOztBQUVBLFFBQUlJLElBQUosRUFBVTtBQUNSLFVBQUlOLFVBQVUsQ0FBQ1csV0FBWCxLQUEyQlgsVUFBVSxDQUFDWSxXQUExQyxFQUF1RDtBQUNyRCxlQUFPLENBQVA7QUFDRCxPQUhPLENBS1I7OztBQUNBLFVBQUlDLE1BQU0sR0FBR1AsSUFBSSxDQUFDUSxVQUFMLEdBQWtCLENBQUNSLElBQUksQ0FBQ0ssV0FBTCxHQUFtQlgsVUFBVSxDQUFDVyxXQUEvQixJQUE4QyxDQUE3RTs7QUFFQSxVQUFJUixHQUFKLEVBQVM7QUFDUFUsUUFBQUEsTUFBTSxHQUFHTixJQUFJLENBQUNFLEdBQUwsQ0FBU0ksTUFBVCxFQUFpQixDQUFqQixDQUFUO0FBQ0FBLFFBQUFBLE1BQU0sR0FBR04sSUFBSSxDQUFDQyxHQUFMLENBQVNLLE1BQVQsRUFBaUJiLFVBQVUsQ0FBQ1csV0FBWCxHQUF5QlgsVUFBVSxDQUFDWSxXQUFyRCxDQUFUO0FBQ0QsT0FIRCxNQUdPO0FBQ0xDLFFBQUFBLE1BQU0sR0FBR04sSUFBSSxDQUFDQyxHQUFMLENBQVNLLE1BQVQsRUFBaUIsQ0FBakIsQ0FBVDtBQUNBQSxRQUFBQSxNQUFNLEdBQUdOLElBQUksQ0FBQ0UsR0FBTCxDQUFTSSxNQUFULEVBQWlCYixVQUFVLENBQUNZLFdBQVgsR0FBeUJaLFVBQVUsQ0FBQ1csV0FBckQsQ0FBVDtBQUNEOztBQUVELFVBQUlSLEdBQUcsS0FBS1ksT0FBTyxDQUFDQyxPQUFSLElBQW1CRCxPQUFPLENBQUNFLGdCQUFoQyxDQUFQLEVBQTBEO0FBQ3hESixRQUFBQSxNQUFNLEdBQUcsQ0FBQ0EsTUFBVjtBQUNEOztBQUVELGFBQU9BLE1BQVA7QUFDRDtBQUNGO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBicm93c2VyIGZyb20gJy4vYnJvd3Nlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXB1dGVTY3JvbGxMZWZ0KGRpciwgc2Nyb2xsYWJsZSwgaXRlbUNvbnRhaW5lciwgaW5kZXgpIHtcbiAgY29uc3QgcnRsID0gZGlyID09PSAncnRsJztcblxuICBpZiAoaXRlbUNvbnRhaW5lciAmJiBzY3JvbGxhYmxlKSB7XG4gICAgY29uc3QgaXRlbXMgPSBpdGVtQ29udGFpbmVyLmNoaWxkcmVuOyAvLyBUaGlzIHdpbGwgZW51bWVyYXRlIDxsaT4gaW5zaWRlIDxGaWxtU3RyaXA+XG4gICAgY29uc3QgaXRlbSA9IGl0ZW1zW01hdGgubWF4KDAsIE1hdGgubWluKGl0ZW1zLmxlbmd0aCAtIDEsIGluZGV4KSldO1xuXG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGlmIChzY3JvbGxhYmxlLm9mZnNldFdpZHRoID09PSBzY3JvbGxhYmxlLnNjcm9sbFdpZHRoKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgICAgbGV0IHJlc3VsdCA9IGl0ZW0ub2Zmc2V0TGVmdCArIChpdGVtLm9mZnNldFdpZHRoIC0gc2Nyb2xsYWJsZS5vZmZzZXRXaWR0aCkgLyAyO1xuXG4gICAgICBpZiAocnRsKSB7XG4gICAgICAgIHJlc3VsdCA9IE1hdGgubWluKHJlc3VsdCwgMCk7XG4gICAgICAgIHJlc3VsdCA9IE1hdGgubWF4KHJlc3VsdCwgc2Nyb2xsYWJsZS5vZmZzZXRXaWR0aCAtIHNjcm9sbGFibGUuc2Nyb2xsV2lkdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gTWF0aC5tYXgocmVzdWx0LCAwKTtcbiAgICAgICAgcmVzdWx0ID0gTWF0aC5taW4ocmVzdWx0LCBzY3JvbGxhYmxlLnNjcm9sbFdpZHRoIC0gc2Nyb2xsYWJsZS5vZmZzZXRXaWR0aCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChydGwgJiYgKGJyb3dzZXIuZWRnZVVXUCB8fCBicm93c2VyLmludGVybmV0RXhwbG9yZXIpKSB7XG4gICAgICAgIHJlc3VsdCA9IC1yZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG59XG4iXX0=