react-carousel-query
Version:
A infinite carousel component made with react that handles the pagination for you.
706 lines (532 loc) • 24.9 kB
JavaScript
"use strict";
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
require("core-js/modules/es.symbol.iterator.js");
require("core-js/modules/es.array.slice.js");
require("core-js/modules/es.array.from.js");
require("core-js/modules/es.regexp.exec.js");
require("core-js/modules/es.weak-map.js");
require("core-js/modules/es.object.get-own-property-descriptor.js");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.start = exports.overridePresets = exports.makeStatsFromError = exports.getConfig = exports.executor = exports.corePresets = exports.build = exports.bail = exports.WEBPACK_VERSION = void 0;
require("regenerator-runtime/runtime.js");
require("core-js/modules/es.object.to-string.js");
require("core-js/modules/es.promise.js");
require("core-js/modules/es.symbol.js");
require("core-js/modules/es.symbol.description.js");
require("core-js/modules/es.symbol.async-iterator.js");
require("core-js/modules/es.array.iterator.js");
require("core-js/modules/es.string.iterator.js");
require("core-js/modules/web.dom-collections.iterator.js");
require("core-js/modules/es.function.name.js");
require("core-js/modules/web.dom-collections.for-each.js");
require("core-js/modules/es.object.assign.js");
var _webpack = _interopRequireWildcard(require("webpack"));
var _webpackDevMiddleware = _interopRequireDefault(require("webpack-dev-middleware"));
var _nodeLogger = require("@storybook/node-logger");
var _coreCommon = require("@storybook/core-common");
var _findUp = _interopRequireDefault(require("find-up"));
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _express = _interopRequireDefault(require("express"));
var _managerConfig = require("./manager-config");
var _managerCache = require("./utils/manager-cache");
var _prebuiltManager = require("./utils/prebuilt-manager");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
function _awaitAsyncGenerator(value) { return new _AwaitValue(value); }
function _wrapAsyncGenerator(fn) { return function () { return new _AsyncGenerator(fn.apply(this, arguments)); }; }
function _AsyncGenerator(gen) { var front, back; function send(key, arg) { return new Promise(function (resolve, reject) { var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null }; if (back) { back = back.next = request; } else { front = back = request; resume(key, arg); } }); } function resume(key, arg) { try { var result = gen[key](arg); var value = result.value; var wrappedAwait = value instanceof _AwaitValue; Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { if (wrappedAwait) { resume(key === "return" ? "return" : "next", arg); return; } settle(result.done ? "return" : "normal", arg); }, function (err) { resume("throw", err); }); } catch (err) { settle("throw", err); } } function settle(type, value) { switch (type) { case "return": front.resolve({ value: value, done: true }); break; case "throw": front.reject(value); break; default: front.resolve({ value: value, done: false }); break; } front = front.next; if (front) { resume(front.key, front.arg); } else { back = null; } } this._invoke = send; if (typeof gen.return !== "function") { this.return = undefined; } }
_AsyncGenerator.prototype[typeof Symbol === "function" && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; };
_AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };
_AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); };
_AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); };
function _AwaitValue(value) { this.wrapped = value; }
var compilation;
var reject;
var WEBPACK_VERSION = '4';
exports.WEBPACK_VERSION = WEBPACK_VERSION;
var getConfig = _managerConfig.getManagerWebpackConfig;
exports.getConfig = getConfig;
var makeStatsFromError = function makeStatsFromError(err) {
return {
hasErrors: function hasErrors() {
return true;
},
hasWarnings: function hasWarnings() {
return false;
},
toJson: function toJson() {
return {
warnings: [],
errors: [err]
};
}
};
};
exports.makeStatsFromError = makeStatsFromError;
var executor = {
get: function () {
var _get = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(options) {
var _yield$options$preset;
var version, webpackInstance;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return options.presets.apply('webpackVersion');
case 2:
_context.t0 = _context.sent;
if (_context.t0) {
_context.next = 5;
break;
}
_context.t0 = WEBPACK_VERSION;
case 5:
version = _context.t0;
_context.next = 8;
return options.presets.apply('webpackInstance');
case 8:
_context.t3 = _yield$options$preset = _context.sent;
_context.t2 = _context.t3 === null;
if (_context.t2) {
_context.next = 12;
break;
}
_context.t2 = _yield$options$preset === void 0;
case 12:
if (!_context.t2) {
_context.next = 16;
break;
}
_context.t4 = void 0;
_context.next = 17;
break;
case 16:
_context.t4 = _yield$options$preset.default;
case 17:
_context.t1 = _context.t4;
if (_context.t1) {
_context.next = 20;
break;
}
_context.t1 = _webpack.default;
case 20:
webpackInstance = _context.t1;
(0, _coreCommon.checkWebpackVersion)({
version: version
}, WEBPACK_VERSION, "manager-webpack".concat(WEBPACK_VERSION));
return _context.abrupt("return", webpackInstance);
case 23:
case "end":
return _context.stop();
}
}
}, _callee);
}));
function get(_x3) {
return _get.apply(this, arguments);
}
return get;
}()
};
exports.executor = executor;
var asyncIterator;
var bail = /*#__PURE__*/function () {
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
if (!asyncIterator) {
_context2.next = 8;
break;
}
_context2.prev = 1;
_context2.next = 4;
return asyncIterator.throw(new Error());
case 4:
_context2.next = 8;
break;
case 6:
_context2.prev = 6;
_context2.t0 = _context2["catch"](1);
case 8:
if (reject) {
reject();
} // we wait for the compiler to finish it's work, so it's command-line output doesn't interfere
return _context2.abrupt("return", new Promise(function (res, rej) {
if (process && compilation) {
try {
compilation.close(function () {
return res();
});
_nodeLogger.logger.warn('Force closed manager build');
} catch (err) {
_nodeLogger.logger.warn('Unable to close manager build!');
res();
}
} else {
res();
}
}));
case 10:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[1, 6]]);
}));
return function bail() {
return _ref.apply(this, arguments);
};
}();
/**
* This function is a generator so that we can abort it mid process
* in case of failure coming from other processes e.g. preview builder
*
* I am sorry for making you read about generators today :')
*/
exports.bail = bail;
var starter = /*#__PURE__*/function () {
var _starterGeneratorFn = _wrapAsyncGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(_ref2) {
var _config$output;
var startTime, options, router, prebuiltDir, config, packageFile, _yield$_awaitAsyncGen, storybookVersion, cacheKey, _yield$_awaitAsyncGen2, _yield$_awaitAsyncGen3, useCache, hasOutput, webpackInstance, compiler, err, _yield$_awaitAsyncGen4, handler, modulesCount, middlewareOptions, stats;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
startTime = _ref2.startTime, options = _ref2.options, router = _ref2.router;
_context3.next = 3;
return _awaitAsyncGenerator((0, _prebuiltManager.getPrebuiltDir)(options));
case 3:
prebuiltDir = _context3.sent;
if (!(prebuiltDir && options.managerCache && !options.smokeTest)) {
_context3.next = 8;
break;
}
_nodeLogger.logger.info('=> Using prebuilt manager');
router.use('/', _express.default.static(prebuiltDir));
return _context3.abrupt("return");
case 8:
_context3.next = 10;
return;
case 10:
_context3.next = 12;
return _awaitAsyncGenerator(getConfig(options));
case 12:
config = _context3.sent;
_context3.next = 15;
return;
case 15:
if (!options.cache) {
_context3.next = 54;
break;
}
_context3.next = 18;
return _awaitAsyncGenerator((0, _findUp.default)('package.json', {
cwd: __dirname
}));
case 18:
packageFile = _context3.sent;
_context3.next = 21;
return;
case 21:
_context3.next = 23;
return _awaitAsyncGenerator(_fsExtra.default.readJSON(packageFile));
case 23:
_yield$_awaitAsyncGen = _context3.sent;
storybookVersion = _yield$_awaitAsyncGen.version;
_context3.next = 27;
return;
case 27:
cacheKey = "managerConfig-webpack".concat(WEBPACK_VERSION, "@").concat(storybookVersion);
if (!options.managerCache) {
_context3.next = 44;
break;
}
_context3.next = 31;
return _awaitAsyncGenerator(Promise.all([// useManagerCache sets the cache, so it must run even if outputDir doesn't exist yet,
// otherwise the 2nd run won't be able to use the manager built on the 1st run.
(0, _managerCache.useManagerCache)(cacheKey, options, config), _fsExtra.default.pathExists(options.outputDir)]));
case 31:
_yield$_awaitAsyncGen2 = _context3.sent;
_yield$_awaitAsyncGen3 = _slicedToArray(_yield$_awaitAsyncGen2, 2);
useCache = _yield$_awaitAsyncGen3[0];
hasOutput = _yield$_awaitAsyncGen3[1];
_context3.next = 37;
return;
case 37:
if (!(useCache && hasOutput && !options.smokeTest)) {
_context3.next = 42;
break;
}
_nodeLogger.logger.line(1); // force starting new line
_nodeLogger.logger.info('=> Using cached manager');
router.use('/', _express.default.static(options.outputDir));
return _context3.abrupt("return");
case 42:
_context3.next = 54;
break;
case 44:
_context3.t0 = !options.smokeTest;
if (!_context3.t0) {
_context3.next = 49;
break;
}
_context3.next = 48;
return _awaitAsyncGenerator((0, _managerCache.clearManagerCache)(cacheKey, options));
case 48:
_context3.t0 = _context3.sent;
case 49:
if (!_context3.t0) {
_context3.next = 54;
break;
}
_context3.next = 52;
return;
case 52:
_nodeLogger.logger.line(1); // force starting new line
_nodeLogger.logger.info('=> Cleared cached manager config');
case 54:
_context3.next = 56;
return _awaitAsyncGenerator(executor.get(options));
case 56:
webpackInstance = _context3.sent;
_context3.next = 59;
return;
case 59:
compiler = webpackInstance(config);
if (compiler) {
_context3.next = 64;
break;
}
err = "".concat(config.name, ": missing webpack compiler at runtime!");
_nodeLogger.logger.error(err); // eslint-disable-next-line consistent-return
return _context3.abrupt("return", {
bail: bail,
totalTime: process.hrtime(startTime),
stats: makeStatsFromError(err)
});
case 64:
_context3.next = 66;
return _awaitAsyncGenerator((0, _coreCommon.useProgressReporting)(router, startTime, options));
case 66:
_yield$_awaitAsyncGen4 = _context3.sent;
handler = _yield$_awaitAsyncGen4.handler;
modulesCount = _yield$_awaitAsyncGen4.modulesCount;
_context3.next = 71;
return;
case 71:
new _webpack.ProgressPlugin({
handler: handler,
modulesCount: modulesCount
}).apply(compiler);
middlewareOptions = {
publicPath: (_config$output = config.output) === null || _config$output === void 0 ? void 0 : _config$output.publicPath,
writeToDisk: true,
watchOptions: config.watchOptions || {}
};
compilation = (0, _webpackDevMiddleware.default)(compiler, middlewareOptions);
router.use(compilation);
_context3.next = 77;
return _awaitAsyncGenerator(new Promise(function (ready, stop) {
compilation.waitUntilValid(ready);
reject = stop;
}));
case 77:
stats = _context3.sent;
_context3.next = 80;
return;
case 80:
if (stats) {
_context3.next = 82;
break;
}
throw new Error('no stats after building manager');
case 82:
return _context3.abrupt("return", {
bail: bail,
stats: stats,
totalTime: process.hrtime(startTime)
});
case 83:
case "end":
return _context3.stop();
}
}
}, _callee3);
}));
function starterGeneratorFn(_x) {
return _starterGeneratorFn.apply(this, arguments);
}
return starterGeneratorFn;
}();
var start = /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(options) {
var result;
return regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
asyncIterator = starter(options);
case 1:
_context4.next = 3;
return asyncIterator.next();
case 3:
result = _context4.sent;
case 4:
if (!result.done) {
_context4.next = 1;
break;
}
case 5:
return _context4.abrupt("return", result.value);
case 6:
case "end":
return _context4.stop();
}
}
}, _callee4);
}));
return function start(_x4) {
return _ref3.apply(this, arguments);
};
}();
/**
* This function is a generator so that we can abort it mid process
* in case of failure coming from other processes e.g. preview builder
*
* I am sorry for making you read about generators today :')
*/
exports.start = start;
var builder = /*#__PURE__*/function () {
var _builderGeneratorFn = _wrapAsyncGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(_ref4) {
var startTime, options, webpackInstance, config, statsOptions, compiler, err;
return regeneratorRuntime.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
startTime = _ref4.startTime, options = _ref4.options;
_nodeLogger.logger.info('=> Compiling manager..');
_context5.next = 4;
return _awaitAsyncGenerator(executor.get(options));
case 4:
webpackInstance = _context5.sent;
_context5.next = 7;
return;
case 7:
_context5.next = 9;
return _awaitAsyncGenerator(getConfig(options));
case 9:
config = _context5.sent;
_context5.next = 12;
return;
case 12:
statsOptions = typeof config.stats === 'boolean' ? 'minimal' : config.stats;
compiler = webpackInstance(config);
if (compiler) {
_context5.next = 18;
break;
}
err = "".concat(config.name, ": missing webpack compiler at runtime!");
_nodeLogger.logger.error(err);
return _context5.abrupt("return", Promise.resolve(makeStatsFromError(err)));
case 18:
_context5.next = 20;
return;
case 20:
return _context5.abrupt("return", new Promise(function (succeed, fail) {
compiler.run(function (error, stats) {
if (error || !stats || stats.hasErrors()) {
_nodeLogger.logger.error('=> Failed to build the manager');
if (error) {
_nodeLogger.logger.error(error.message);
}
if (stats && (stats.hasErrors() || stats.hasWarnings())) {
var _stats$toJson = stats.toJson(statsOptions),
warnings = _stats$toJson.warnings,
errors = _stats$toJson.errors;
errors.forEach(function (e) {
return _nodeLogger.logger.error(e);
});
warnings.forEach(function (e) {
return _nodeLogger.logger.error(e);
});
}
process.exitCode = 1;
fail(error || stats);
} else {
var _statsData$warnings;
_nodeLogger.logger.trace({
message: '=> Manager built',
time: process.hrtime(startTime)
});
var statsData = stats.toJson(typeof statsOptions === 'string' ? statsOptions : Object.assign({}, statsOptions, {
warnings: true
}));
statsData === null || statsData === void 0 ? void 0 : (_statsData$warnings = statsData.warnings) === null || _statsData$warnings === void 0 ? void 0 : _statsData$warnings.forEach(function (e) {
return _nodeLogger.logger.warn(e);
});
succeed(stats);
}
});
}));
case 21:
case "end":
return _context5.stop();
}
}
}, _callee5);
}));
function builderGeneratorFn(_x2) {
return _builderGeneratorFn.apply(this, arguments);
}
return builderGeneratorFn;
}();
var build = /*#__PURE__*/function () {
var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(options) {
var result;
return regeneratorRuntime.wrap(function _callee6$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
asyncIterator = builder(options);
case 1:
_context6.next = 3;
return asyncIterator.next();
case 3:
result = _context6.sent;
case 4:
if (!result.done) {
_context6.next = 1;
break;
}
case 5:
return _context6.abrupt("return", result.value);
case 6:
case "end":
return _context6.stop();
}
}
}, _callee6);
}));
return function build(_x5) {
return _ref5.apply(this, arguments);
};
}();
exports.build = build;
var corePresets = [require.resolve('./presets/manager-preset')];
exports.corePresets = corePresets;
var overridePresets = [];
exports.overridePresets = overridePresets;