UNPKG

react-insta-stories

Version:
1,404 lines (1,325 loc) 85.7 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react")); else if(typeof define === 'function' && define.amd) define("Stories", ["React"], factory); else if(typeof exports === 'object') exports["Stories"] = factory(require("react")); else root["Stories"] = factory(root["React"]); })(this, (__WEBPACK_EXTERNAL_MODULE__639__) => { return /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ 931: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(639); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); var _excluded = ["styles"]; function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (_ref) { var _ref$styles = _ref.styles, styles = _ref$styles === void 0 ? {} : _ref$styles, props = _objectWithoutProperties(_ref, _excluded); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", _extends({ width: "44", height: "44", xmlns: "http://www.w3.org/2000/svg", stroke: "#fff" }, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("g", { fill: "none", fillRule: "evenodd", strokeWidth: "2" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("circle", { cx: "22", cy: "22", r: "1" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("animate", { attributeName: "r", begin: "0s", dur: "1.8s", values: "1; 20", calcMode: "spline", keyTimes: "0; 1", keySplines: "0.165, 0.84, 0.44, 1", repeatCount: "indefinite" }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("animate", { attributeName: "stroke-opacity", begin: "0s", dur: "1.8s", values: "1; 0", calcMode: "spline", keyTimes: "0; 1", keySplines: "0.3, 0.61, 0.355, 1", repeatCount: "indefinite" })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("circle", { cx: "22", cy: "22", r: "1" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("animate", { attributeName: "r", begin: "-0.9s", dur: "1.8s", values: "1; 20", calcMode: "spline", keyTimes: "0; 1", keySplines: "0.165, 0.84, 0.44, 1", repeatCount: "indefinite" }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("animate", { attributeName: "stroke-opacity", begin: "-0.9s", dur: "1.8s", values: "1; 0", calcMode: "spline", keyTimes: "0; 1", keySplines: "0.3, 0.61, 0.355, 1", repeatCount: "indefinite" })))); }); /***/ }), /***/ 120: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { 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 = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }); var __importStar = this && this.__importStar || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var react_1 = __importStar(__webpack_require__(639)); var Global_1 = __importDefault(__webpack_require__(267)); var Stories_1 = __importDefault(__webpack_require__(486)); var Progress_1 = __importDefault(__webpack_require__(552)); var Story_1 = __importDefault(__webpack_require__(832)); var ProgressArray_1 = __importDefault(__webpack_require__(913)); var use_is_mounted_1 = __importDefault(__webpack_require__(342)); var usePreLoader_1 = __webpack_require__(402); function default_1() { var _ref = (0, react_1.useState)(0), _ref2 = _slicedToArray(_ref, 2), currentId = _ref2[0], setCurrentId = _ref2[1]; var _ref3 = (0, react_1.useState)(true), _ref4 = _slicedToArray(_ref3, 2), pause = _ref4[0], setPause = _ref4[1]; var _ref5 = (0, react_1.useState)(true), _ref6 = _slicedToArray(_ref5, 2), bufferAction = _ref6[0], setBufferAction = _ref6[1]; var _ref7 = (0, react_1.useState)(0), _ref8 = _slicedToArray(_ref7, 2), videoDuration = _ref8[0], setVideoDuration = _ref8[1]; var isMounted = (0, use_is_mounted_1["default"])(); var mousedownId = (0, react_1.useRef)(); var _ref9 = (0, react_1.useContext)(Global_1["default"]), width = _ref9.width, height = _ref9.height, loop = _ref9.loop, currentIndex = _ref9.currentIndex, isPaused = _ref9.isPaused, keyboardNavigation = _ref9.keyboardNavigation, preventDefault = _ref9.preventDefault, _ref9$storyContainerS = _ref9.storyContainerStyles, storyContainerStyles = _ref9$storyContainerS === void 0 ? {} : _ref9$storyContainerS, onAllStoriesEnd = _ref9.onAllStoriesEnd, onPrevious = _ref9.onPrevious, onNext = _ref9.onNext, preloadCount = _ref9.preloadCount; var _ref10 = (0, react_1.useContext)(Stories_1["default"]), stories = _ref10.stories; (0, usePreLoader_1.usePreLoader)(stories, currentId, preloadCount); (0, react_1.useEffect)(function () { if (typeof currentIndex === "number") { if (currentIndex >= 0 && currentIndex < stories.length) { setCurrentIdWrapper(function () { return currentIndex; }); } else { console.error("Index out of bounds. Current index was set to value more than the length of stories array.", currentIndex); } } }, [currentIndex]); (0, react_1.useEffect)(function () { if (typeof isPaused === "boolean") { setPause(isPaused); } }, [isPaused]); (0, react_1.useEffect)(function () { var isClient = typeof window !== "undefined" && window.document; if (isClient && typeof keyboardNavigation === "boolean" && keyboardNavigation) { document.addEventListener("keydown", handleKeyDown); return function () { document.removeEventListener("keydown", handleKeyDown); }; } }, [keyboardNavigation]); var handleKeyDown = function handleKeyDown(e) { if (e.key === "ArrowLeft") { previous(); } else if (e.key === "ArrowRight") { next({ isSkippedByUser: true }); } }; var toggleState = function toggleState(action, bufferAction) { setPause(action === "pause"); setBufferAction(!!bufferAction); }; var setCurrentIdWrapper = function setCurrentIdWrapper(callback) { setCurrentId(callback); toggleState("pause", true); }; var previous = function previous() { if (onPrevious != undefined) { onPrevious(); } setCurrentIdWrapper(function (prev) { return prev > 0 ? prev - 1 : prev; }); }; var next = function next(options) { if (onNext != undefined && (options === null || options === void 0 ? void 0 : options.isSkippedByUser)) { onNext(); } // Check if component is mounted - for issue #130 (https://github.com/mohitk05/react-insta-stories/issues/130) if (isMounted()) { if (loop) { updateNextStoryIdForLoop(); } else { updateNextStoryId(); } } }; var updateNextStoryIdForLoop = function updateNextStoryIdForLoop() { setCurrentIdWrapper(function (prev) { if (prev >= stories.length - 1) { onAllStoriesEnd && onAllStoriesEnd(currentId, stories); } return (prev + 1) % stories.length; }); }; var updateNextStoryId = function updateNextStoryId() { setCurrentIdWrapper(function (prev) { if (prev < stories.length - 1) return prev + 1; onAllStoriesEnd && onAllStoriesEnd(currentId, stories); return prev; }); }; var debouncePause = function debouncePause(e) { e.preventDefault(); mousedownId.current = setTimeout(function () { toggleState("pause"); }, 200); }; var mouseUp = function mouseUp(type) { return function (e) { e.preventDefault(); mousedownId.current && clearTimeout(mousedownId.current); if (pause) { toggleState("play"); } else { type === "next" ? next({ isSkippedByUser: true }) : previous(); } }; }; var getVideoDuration = function getVideoDuration(duration) { setVideoDuration(duration * 1000); }; return react_1["default"].createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.container), storyContainerStyles), { width: width, height: height }) }, react_1["default"].createElement(Progress_1["default"].Provider, { value: { bufferAction: bufferAction, videoDuration: videoDuration, currentId: currentId, pause: pause, next: next } }, react_1["default"].createElement(ProgressArray_1["default"], null)), react_1["default"].createElement(Story_1["default"], { action: toggleState, bufferAction: bufferAction, playState: pause, story: stories[currentId], getVideoDuration: getVideoDuration }), !preventDefault && react_1["default"].createElement("div", { style: styles.overlay }, react_1["default"].createElement("div", { style: { width: "50%", zIndex: 999 }, onTouchStart: debouncePause, onTouchEnd: mouseUp("previous"), onMouseDown: debouncePause, onMouseUp: mouseUp("previous") }), react_1["default"].createElement("div", { style: { width: "50%", zIndex: 999 }, onTouchStart: debouncePause, onTouchEnd: mouseUp("next"), onMouseDown: debouncePause, onMouseUp: mouseUp("next") }))); } exports["default"] = default_1; var styles = { container: { display: "flex", flexDirection: "column", background: "#111", position: "relative", WebkitUserSelect: 'none' }, overlay: { position: "absolute", height: "inherit", width: "inherit", display: "flex" } }; /***/ }), /***/ 463: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var react_1 = __importDefault(__webpack_require__(639)); var Header = function Header(_ref) { var profileImage = _ref.profileImage, heading = _ref.heading, subheading = _ref.subheading; return react_1["default"].createElement("div", { style: styles.main }, profileImage && react_1["default"].createElement("img", { style: styles.img, src: profileImage }), react_1["default"].createElement("span", { style: styles.text }, react_1["default"].createElement("p", { style: styles.heading }, heading), react_1["default"].createElement("p", { style: styles.subheading }, subheading))); }; var styles = { main: { display: "flex", alignItems: "center" }, img: { width: 40, height: 40, borderRadius: 40, marginRight: 10, filter: "drop-shadow(0 0px 2px rgba(0, 0, 0, 0.5))", border: "2px solid rgba(255, 255, 255, 0.8)" }, text: { display: "flex", flexDirection: "column", filter: "drop-shadow(0 0px 3px rgba(0, 0, 0, 0.9))" }, heading: { fontSize: "1rem", color: "rgba(255, 255, 255, 0.9)", margin: 0, marginBottom: 2 }, subheading: { fontSize: "0.6rem", color: "rgba(255, 255, 255, 0.8)", margin: 0 } }; exports["default"] = Header; /***/ }), /***/ 911: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }); var __importStar = this && this.__importStar || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var react_1 = __importStar(__webpack_require__(639)); var ProgressWrapper_1 = __importDefault(__webpack_require__(424)); var Global_1 = __importDefault(__webpack_require__(267)); var Progress_1 = __importDefault(__webpack_require__(552)); exports["default"] = function (props) { var _ref = (0, react_1.useContext)(Global_1["default"]), progressStyles = _ref.progressStyles; var _ref2 = (0, react_1.useContext)(Progress_1["default"]), bufferAction = _ref2.bufferAction, pause = _ref2.pause; var getProgressStyle = function getProgressStyle(_ref3) { var active = _ref3.active; switch (active) { case 2: return { width: '100%' }; case 1: return { transform: "scaleX(".concat(props.count / 100, ")") }; case 0: return { width: 0 }; default: return { width: 0 }; } }; var width = props.width, active = props.active; return react_1["default"].createElement(ProgressWrapper_1["default"], { width: width, pause: pause, bufferAction: bufferAction }, react_1["default"].createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.inner), progressStyles), getProgressStyle({ active: active })) })); }; var styles = { inner: { background: '#fff', height: '100%', maxWidth: '100%', borderRadius: 2, transformOrigin: 'center left', WebkitBackfaceVisibility: 'hidden', MozBackfaceVisibility: 'hidden', msBackfaceVisibility: 'hidden', backfaceVisibility: 'hidden', WebkitPerspective: 1000, MozPerspective: 1000, msPerspective: 1000, perspective: 1000 } }; /***/ }), /***/ 913: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { 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 = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }); var __importStar = this && this.__importStar || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var react_1 = __importStar(__webpack_require__(639)); var Progress_1 = __importDefault(__webpack_require__(911)); var Progress_2 = __importDefault(__webpack_require__(552)); var Global_1 = __importDefault(__webpack_require__(267)); var Stories_1 = __importDefault(__webpack_require__(486)); var time_1 = __webpack_require__(335); exports["default"] = function () { var _ref = (0, react_1.useState)(0), _ref2 = _slicedToArray(_ref, 2), count = _ref2[0], setCount = _ref2[1]; var lastTime = (0, react_1.useRef)(); var _ref3 = (0, react_1.useContext)(Progress_2["default"]), currentId = _ref3.currentId, next = _ref3.next, videoDuration = _ref3.videoDuration, pause = _ref3.pause, bufferAction = _ref3.bufferAction; var _ref4 = (0, react_1.useContext)(Global_1["default"]), defaultInterval = _ref4.defaultInterval, onStoryEnd = _ref4.onStoryEnd, onStoryStart = _ref4.onStoryStart, progressContainerStyles = _ref4.progressContainerStyles; var _ref5 = (0, react_1.useContext)(Stories_1["default"]), stories = _ref5.stories; (0, react_1.useEffect)(function () { setCount(0); }, [currentId, stories]); (0, react_1.useEffect)(function () { if (!pause) { animationFrameId.current = requestAnimationFrame(incrementCount); lastTime.current = (0, time_1.timestamp)(); } return function () { cancelAnimationFrame(animationFrameId.current); }; }, [currentId, pause]); var animationFrameId = (0, react_1.useRef)(); var countCopy = count; var incrementCount = function incrementCount() { if (countCopy === 0) storyStartCallback(); if (lastTime.current == undefined) lastTime.current = (0, time_1.timestamp)(); var t = (0, time_1.timestamp)(); var dt = t - lastTime.current; lastTime.current = t; setCount(function (count) { var interval = getCurrentInterval(); countCopy = count + dt * 100 / interval; return countCopy; }); if (countCopy < 100) { animationFrameId.current = requestAnimationFrame(incrementCount); } else { storyEndCallback(); cancelAnimationFrame(animationFrameId.current); next(); } }; var storyStartCallback = function storyStartCallback() { onStoryStart && onStoryStart(currentId, stories[currentId]); }; var storyEndCallback = function storyEndCallback() { onStoryEnd && onStoryEnd(currentId, stories[currentId]); }; var getCurrentInterval = function getCurrentInterval() { if (stories[currentId].type === "video") return videoDuration; if (typeof stories[currentId].duration === "number") return stories[currentId].duration; return defaultInterval; }; var opacityStyles = { opacity: pause && !bufferAction ? 0 : 1 }; return react_1["default"].createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.progressArr), progressContainerStyles), opacityStyles) }, stories.map(function (_, i) { return react_1["default"].createElement(Progress_1["default"], { key: i, count: count, width: 1 / stories.length, active: i === currentId ? 1 : i < currentId ? 2 : 0 }); })); }; var styles = { progressArr: { display: "flex", justifyContent: "center", maxWidth: "100%", flexWrap: "nowrap", position: "absolute", width: "98%", padding: 5, paddingTop: 7, alignSelf: "center", zIndex: 1001, filter: "drop-shadow(0 1px 8px #222)", transition: "opacity 400ms ease-in-out" } }; /***/ }), /***/ 424: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }); var __importStar = this && this.__importStar || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var react_1 = __importStar(__webpack_require__(639)); var Global_1 = __importDefault(__webpack_require__(267)); var ProgressWrapper = function ProgressWrapper(props) { var _ref = (0, react_1.useContext)(Global_1["default"]), progressWrapperStyles = _ref.progressWrapperStyles; return react_1["default"].createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.progress), progressWrapperStyles), getProgressWrapperStyle(props)) }, props.children); }; var getProgressWrapperStyle = function getProgressWrapperStyle(_ref2) { var width = _ref2.width; return { width: "".concat(width * 100, "%") }; }; var styles = { progress: { height: 2, maxWidth: '100%', background: '#555', margin: 2, borderRadius: 2, WebkitBackfaceVisibility: 'hidden', MozBackfaceVisibility: 'hidden', msBackfaceVisibility: 'hidden', backfaceVisibility: 'hidden' } }; exports["default"] = ProgressWrapper; /***/ }), /***/ 771: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }); var __importStar = this && this.__importStar || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var react_1 = __importStar(__webpack_require__(639)); var Global_1 = __importDefault(__webpack_require__(267)); function seeMore(props) { var SeeMoreContent = props.seeMoreContent; var CustomCollapsed = props.customCollapsed; var _ref = (0, react_1.useContext)(Global_1["default"]), keyboardNavigation = _ref.keyboardNavigation; (0, react_1.useEffect)(function () { var isClient = typeof window !== 'undefined' && window.document; if (isClient && typeof keyboardNavigation === 'boolean' && keyboardNavigation) { document.addEventListener("keydown", handleKeyDown); return function () { document.removeEventListener("keydown", handleKeyDown); }; } }, [keyboardNavigation]); var handleKeyDown = function handleKeyDown(e) { if (e.key === 'ArrowUp') { e.preventDefault(); props.toggleMore(true); } else if (e.key === 'ArrowDown' || e.key === 'Escape') { e.preventDefault(); props.toggleMore(false); } }; return props.showContent ? react_1["default"].createElement("div", { style: styles.seeMoreExpanded }, react_1["default"].createElement(SeeMoreContent, { close: function close() { return props.toggleMore(false); } })) : CustomCollapsed ? react_1["default"].createElement(CustomCollapsed, { action: props.action, toggleMore: props.toggleMore }) : react_1["default"].createElement("div", { style: styles.seeMore, onClick: function onClick(e) { e.preventDefault(); e.stopPropagation(); props.toggleMore(true); } }, react_1["default"].createElement("span", { style: styles.seeMoreIcon }, "\u2303"), react_1["default"].createElement("span", { style: styles.seeMoreText }, "See more")); } exports["default"] = seeMore; var styles = { seeMore: { height: "10vh", background: "linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2))", display: "flex", flexDirection: "column", width: "100%", alignItems: "center", justifyContent: "flex-end", bottom: 0 }, seeMoreExpanded: { position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', boxSizing: 'border-box', zIndex: 99999 }, seeMoreText: { color: "white", textAlign: "center", letterSpacing: "0.1em", marginBottom: "2.2vh", textTransform: "capitalize", opacity: "1", fontSize: "0.8em", transition: "opacity 300ms ease-in-out" }, seeMoreIcon: { color: "white", textAlign: "center", letterSpacing: "0.2em", marginBottom: "0.4vh", opacity: "1", filter: "drop-shadow(0 0 5px black)", textTransform: "capitalize", transition: "opacity 300ms ease-in-out" }, seeMoreClose: { position: "absolute", filter: "drop-shadow(0 3px 2px #ccc)", right: "0.5rem", top: "0.5rem", fontSize: "1.5rem", opacity: "0.7", padding: "1rem" } }; /***/ }), /***/ 353: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var react_1 = __importDefault(__webpack_require__(639)); var puff_svg_1 = __importDefault(__webpack_require__(931)); var Spinner = function Spinner() { return react_1["default"].createElement(puff_svg_1["default"], null); }; exports["default"] = Spinner; /***/ }), /***/ 832: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }); var __importStar = this && this.__importStar || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var react_1 = __importStar(__webpack_require__(639)); var Global_1 = __importDefault(__webpack_require__(267)); var Story = function Story(props) { var globalContext = (0, react_1.useContext)(Global_1["default"]); var width = globalContext.width, height = globalContext.height, loader = globalContext.loader, header = globalContext.header, storyStyles = globalContext.storyStyles, _globalContext$storyI = globalContext.storyInnerContainerStyles, storyInnerContainerStyles = _globalContext$storyI === void 0 ? {} : _globalContext$storyI; var rendererMessageHandler = function rendererMessageHandler(type, data) { switch (type) { case "UPDATE_VIDEO_DURATION": props.getVideoDuration(data.duration); return { ack: "OK" }; } }; var getStoryContent = function getStoryContent() { var InnerContent = props.story.content; var config = { width: width, height: height, loader: loader, header: header, storyStyles: storyStyles }; return react_1["default"].createElement(InnerContent, { action: props.action, isPaused: props.playState, story: props.story, config: config, messageHandler: rendererMessageHandler }); }; return react_1["default"].createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.story), storyInnerContainerStyles), { width: width, height: height }) }, getStoryContent()); }; var styles = { story: { display: "flex", position: "relative", overflow: "hidden", alignItems: "center" }, storyContent: { width: "auto", maxWidth: "100%", maxHeight: "100%", margin: "auto" } }; exports["default"] = Story; /***/ }), /***/ 267: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.initialContext = void 0; var react_1 = __importDefault(__webpack_require__(639)); exports.initialContext = { defaultInterval: 4000, width: 360, height: 640 }; var GlobalContext = react_1["default"].createContext(exports.initialContext); exports["default"] = GlobalContext; /***/ }), /***/ 552: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var react_1 = __importDefault(__webpack_require__(639)); exports["default"] = react_1["default"].createContext({ currentId: 0, videoDuration: 0, bufferAction: false, pause: false, next: function next() {} }); /***/ }), /***/ 486: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.initialContext = void 0; var react_1 = __importDefault(__webpack_require__(639)); exports.initialContext = { stories: [] }; var StoriesContext = react_1["default"].createContext(exports.initialContext); exports["default"] = StoriesContext; /***/ }), /***/ 370: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { 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); } 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 = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }); var __importStar = this && this.__importStar || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __rest = this && this.__rest || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.WithSeeMore = exports.WithHeader = void 0; var react_1 = __importStar(__webpack_require__(639)); var Container_1 = __importDefault(__webpack_require__(120)); var Global_1 = __importDefault(__webpack_require__(267)); var Stories_1 = __importDefault(__webpack_require__(486)); var renderers_1 = __webpack_require__(371); var index_1 = __webpack_require__(942); var withHeader_1 = __importDefault(__webpack_require__(803)); var withSeeMore_1 = __importDefault(__webpack_require__(763)); var ReactInstaStories = function ReactInstaStories(_a) { var _a$width = _a.width, width = _a$width === void 0 ? 360 : _a$width, _a$height = _a.height, height = _a$height === void 0 ? 640 : _a$height, _a$defaultInterval = _a.defaultInterval, defaultInterval = _a$defaultInterval === void 0 ? 4000 : _a$defaultInterval, _a$preloadCount = _a.preloadCount, preloadCount = _a$preloadCount === void 0 ? 1 : _a$preloadCount, restProps = __rest(_a, ["width", "height", "defaultInterval", "preloadCount"]); var renderers = restProps.renderers ? restProps.renderers.concat(index_1.renderers) : index_1.renderers; var context = { width: width, height: height, loader: restProps.loader, header: restProps.header, storyContainerStyles: restProps.storyContainerStyles, storyInnerContainerStyles: restProps.storyInnerContainerStyles, storyStyles: restProps.storyStyles, progressContainerStyles: restProps.progressContainerStyles, progressWrapperStyles: restProps.progressWrapperStyles, progressStyles: restProps.progressStyles, loop: restProps.loop, defaultInterval: defaultInterval, isPaused: restProps.isPaused, currentIndex: restProps.currentIndex, onStoryStart: restProps.onStoryStart, onStoryEnd: restProps.onStoryEnd, onAllStoriesEnd: restProps.onAllStoriesEnd, onNext: restProps.onNext, onPrevious: restProps.onPrevious, keyboardNavigation: restProps.keyboardNavigation, preventDefault: restProps.preventDefault, preloadCount: preloadCount }; var _ref = (0, react_1.useState)({ stories: generateStories(restProps.stories, renderers) }), _ref2 = _slicedToArray(_ref, 2), stories = _ref2[0], setStories = _ref2[1]; (0, react_1.useEffect)(function () { setStories({ stories: generateStories(restProps.stories, renderers) }); }, [restProps.stories, restProps.renderers]); return react_1["default"].createElement(Global_1["default"].Provider, { value: context }, react_1["default"].createElement(Stories_1["default"].Provider, { value: stories }, react_1["default"].createElement(Container_1["default"], null))); }; var generateStories = function generateStories(stories, renderers) { return stories.map(function (s) { var story = {}; if (typeof s === 'string') { story.url = s; story.type = 'image'; } else if (_typeof(s) === 'object') { story = Object.assign(story, s); } var renderer = (0, renderers_1.getRenderer)(story, renderers); story.originalContent = story.content; story.content = renderer; return story; }); }; exports.WithHeader = withHeader_1["default"]; exports.WithSeeMore = withSeeMore_1["default"]; exports["default"] = ReactInstaStories; /***/ }), /***/ 350: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }); var __importStar = this && this.__importStar || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.tester = exports.renderer = void 0; var React = __importStar(__webpack_require__(639)); var renderer = function renderer(props) { React.useEffect(function () { props.action('play'); }, [props.story]); var Content = props.story.originalContent; return React.createElement(Content, Object.assign({}, props)); }; exports.renderer = renderer; var tester = function tester(story) { return { condition: !!story.content, priority: 2 }; }; exports.tester = tester; exports["default"] = { renderer: exports.renderer, tester: exports.tester }; /***/ }), /***/ 248: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }); var __importStar = this && this.__importStar || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.tester = exports.renderer = void 0; var React = __importStar(__webpack_require__(639)); var renderer = function renderer(_ref) { var story = _ref.story, action = _ref.action; React.useEffect(function () { action("play"); }, [story]); return React.createElement("div", { style: styles.storyContent }, React.createElement("p", { style: styles.text }, "This story could not be loaded.")); }; exports.renderer = renderer; var styles = { storyContent: { width: "100%", maxHeight: "100%", margin: "auto" }, text: { textAlign: "center", color: "white", width: "90%", margin: "auto" } }; var tester = function tester() { return { condition: true, priority: 1 }; }; exports.tester = tester; exports["default"] = { renderer: exports.renderer, tester: exports.tester }; /***/ }), /***/ 209: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { 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 = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { Object.defineProperty(o, "default", {