UNPKG

react-film

Version:

React component for showing carousel just like a film strip

275 lines (251 loc) 26 kB
"use strict"; require("core-js/modules/es.object.keys.js"); require("core-js/modules/es.symbol.js"); require("core-js/modules/es.array.filter.js"); require("core-js/modules/es.object.get-own-property-descriptor.js"); require("core-js/modules/es.array.for-each.js"); require("core-js/modules/web.dom-collections.for-each.js"); require("core-js/modules/es.object.get-own-property-descriptors.js"); require("core-js/modules/es.object.define-properties.js"); require("core-js/modules/es.object.define-property.js"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = createBasicStyleSet; require("core-js/modules/es.array.join.js"); require("core-js/modules/es.array.map.js"); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _patchStyleOptions = _interopRequireDefault(require("./patchStyleOptions")); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var createDotsStyle = function createDotsStyle(_ref) { var dotBoxSize = _ref.dotBoxSize; return { '& .react-film__dots': { alignItems: 'center', bottom: 0, display: 'flex', height: dotBoxSize, justifyContent: 'center', listStyleType: 'none', margin: 0, padding: 0, width: '100%' } }; }; var createDotStyle = function createDotStyle(_ref2) { var cursor = _ref2.cursor, dotBoxSize = _ref2.dotBoxSize, dotSize = _ref2.dotSize; return { '& .react-film__dot': { alignItems: 'center', display: 'flex', height: dotBoxSize, justifyContent: 'center', position: 'relative', width: dotBoxSize, '& .react-film__dot__input': _objectSpread(_objectSpread({}, cursor ? { cursor: cursor } : {}), {}, { height: '100%', left: 0, margin: 0, opacity: 0, position: 'absolute', top: 0, touchAction: 'none', userSelect: 'none', width: '100%' }), '& .react-film__dot__handle': { background: 'rgba(0, 0, 0, .2)', borderRadius: dotSize / 2, height: dotSize, width: dotSize }, '&:hover .react-film__dot__handle, & .react-film__dot__input:focus + .react-film__dot__handle': { background: 'rgba(0, 0, 0, .4)' }, '& .react-film__dot__input:active + .react-film__dot__handle': { background: 'rgba(0, 0, 0, .8)' }, '& .react-film__dot__input:checked:not(:active) + .react-film__dot__handle': { background: 'rgba(0, 0, 0, .6)' } } }; }; var createFlipperStyle = function createFlipperStyle(_ref3) { var cursor = _ref3.cursor, flipperBoxWidth = _ref3.flipperBoxWidth, flipperSize = _ref3.flipperSize; return { '& .react-film__flipper': _objectSpread(_objectSpread({}, cursor ? { cursor: cursor } : {}), {}, { background: 'Transparent', border: 0, height: '100%', outline: 0, overflow: 'hidden', position: 'absolute', top: 0, touchAction: 'none', userSelect: 'none', width: flipperBoxWidth, zIndex: 1, '&.react-film__flipper--left': { left: 0, '& .react-film__flipper__slider': { left: 0 } }, '&.react-film__flipper--right': { right: 0, '& .react-film__flipper__slider': { right: 0 } }, '& .react-film__flipper__slider': { alignItems: 'center', display: 'flex', height: '100%', justifyContent: 'center', position: 'absolute', top: 0, width: '100%' }, '& .react-film__flipper__body': { backgroundColor: 'rgba(0, 0, 0, .6)', borderRadius: '50%', color: 'rgba(255, 255, 255, .6)', fontFamily: ['Consolas', 'monospace'].map(function (font) { return "'".concat(font, "'"); }).join(', '), fontSize: 16, height: flipperSize, lineHeight: "".concat(flipperSize, "px"), overflow: 'hidden', position: 'relative', transitionDuration: '100ms', transitionProperty: 'background-color', width: flipperSize }, '&:hover, &:focus': { '& .react-film__flipper__body': { backgroundColor: 'rgba(0, 0, 0, .8)', color: 'rgba(255, 255, 255, .8)', transitionDuration: 0 } }, '&:active .react-film__flipper__body': { backgroundColor: 'Black', color: 'White', transitionDuration: 0 } }) }; }; var createFilmstripStyle = function createFilmstripStyle() { return { '& .react-film__filmstrip': { MsOverflowStyle: 'none', overflowX: 'scroll', overflowY: 'hidden', overscrollBehaviorX: 'contain', position: 'relative', touchAction: 'manipulation', zIndex: 0, '&::-webkit-scrollbar': { display: 'none' }, '& .react-film__filmstrip__list': { display: 'flex', listStyleType: 'none', margin: 0, padding: 0 } } }; }; var createScrollBarStyle = function createScrollBarStyle(_ref4) { var autoHide = _ref4.autoHide, scrollBarHeight = _ref4.scrollBarHeight, scrollBarMargin = _ref4.scrollBarMargin; return { '& .react-film__scroll-bar': { bottom: autoHide ? -30 : 0, boxSizing: 'border-box', padding: scrollBarMargin, position: 'absolute', transitionDelay: '1s', transitionDuration: '300ms', transitionProperty: 'bottom', width: '100%', '& .react-film__scroll-bar__handle': { backdropFilter: 'blur(4px)', background: 'rgba(255, 255, 255, .4)', borderRadius: scrollBarHeight / 2, height: scrollBarHeight } } }; }; var createRootStyle = function createRootStyle(_ref5) { var autoHide = _ref5.autoHide, autoHideFlipperOnEdge = _ref5.autoHideFlipperOnEdge, flipperBoxWidth = _ref5.flipperBoxWidth, flipperSize = _ref5.flipperSize; return { '& .react-film__main': _objectSpread({ overflow: 'hidden', position: 'relative' }, autoHide ? { '&:hover, &.react-film__main--scrolling': { '& .react-film__main__slider': { transitionDelay: '0s', '&.react-film__main__slider--bottom': { bottom: 0 }, '&.react-film__main__slider--left': (0, _defineProperty2["default"])({}, autoHideFlipperOnEdge ? '&:not(.react-film__main__slider--hide)' : '&', { left: 0 }), '&.react-film__main__slider--right': (0, _defineProperty2["default"])({}, autoHideFlipperOnEdge ? '&:not(.react-film__main__slider--hide)' : '&', { right: 0 }) } }, '& .react-film__main__overlay:focus .react-film__main__slider:not(.react-film__main__slider--hide)': { transitionDelay: '0s', '&.react-film__main__slider--left': { left: 0 }, '&.react-film__main__slider--right': { right: 0 } }, '& .react-film__main__slider': { transitionDelay: '1s', transitionDuration: '300ms', '&.react-film__main__slider--left': { left: (flipperBoxWidth + flipperSize) / -2, transitionProperty: 'left' }, '&.react-film__main__slider--right': { right: (flipperBoxWidth + flipperSize) / -2, transitionProperty: 'right' } } } : {}) }; }; function createBasicStyleSet(styleOptions) { styleOptions = (0, _patchStyleOptions["default"])(styleOptions); return { root: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, createDotsStyle(styleOptions)), createDotStyle(styleOptions)), createFilmstripStyle(styleOptions)), createFlipperStyle(styleOptions)), createRootStyle(styleOptions)), createScrollBarStyle(styleOptions)) }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVCYXNpY1N0eWxlU2V0LmpzIl0sIm5hbWVzIjpbImNyZWF0ZURvdHNTdHlsZSIsImRvdEJveFNpemUiLCJhbGlnbkl0ZW1zIiwiYm90dG9tIiwiZGlzcGxheSIsImhlaWdodCIsImp1c3RpZnlDb250ZW50IiwibGlzdFN0eWxlVHlwZSIsIm1hcmdpbiIsInBhZGRpbmciLCJ3aWR0aCIsImNyZWF0ZURvdFN0eWxlIiwiY3Vyc29yIiwiZG90U2l6ZSIsInBvc2l0aW9uIiwibGVmdCIsIm9wYWNpdHkiLCJ0b3AiLCJ0b3VjaEFjdGlvbiIsInVzZXJTZWxlY3QiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyUmFkaXVzIiwiY3JlYXRlRmxpcHBlclN0eWxlIiwiZmxpcHBlckJveFdpZHRoIiwiZmxpcHBlclNpemUiLCJib3JkZXIiLCJvdXRsaW5lIiwib3ZlcmZsb3ciLCJ6SW5kZXgiLCJyaWdodCIsImJhY2tncm91bmRDb2xvciIsImNvbG9yIiwiZm9udEZhbWlseSIsIm1hcCIsImZvbnQiLCJqb2luIiwiZm9udFNpemUiLCJsaW5lSGVpZ2h0IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwidHJhbnNpdGlvblByb3BlcnR5IiwiY3JlYXRlRmlsbXN0cmlwU3R5bGUiLCJNc092ZXJmbG93U3R5bGUiLCJvdmVyZmxvd1giLCJvdmVyZmxvd1kiLCJvdmVyc2Nyb2xsQmVoYXZpb3JYIiwiY3JlYXRlU2Nyb2xsQmFyU3R5bGUiLCJhdXRvSGlkZSIsInNjcm9sbEJhckhlaWdodCIsInNjcm9sbEJhck1hcmdpbiIsImJveFNpemluZyIsInRyYW5zaXRpb25EZWxheSIsImJhY2tkcm9wRmlsdGVyIiwiY3JlYXRlUm9vdFN0eWxlIiwiYXV0b0hpZGVGbGlwcGVyT25FZGdlIiwiY3JlYXRlQmFzaWNTdHlsZVNldCIsInN0eWxlT3B0aW9ucyIsInJvb3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOzs7Ozs7QUFFQSxJ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OiBcIm9mZlwiICovXG5cbmltcG9ydCBwYXRjaFN0eWxlT3B0aW9ucyBmcm9tICcuL3BhdGNoU3R5bGVPcHRpb25zJztcblxuY29uc3QgY3JlYXRlRG90c1N0eWxlID0gKHsgZG90Qm94U2l6ZSB9KSA9PiAoe1xuICAnJiAucmVhY3QtZmlsbV9fZG90cyc6IHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3R0b206IDAsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGhlaWdodDogZG90Qm94U2l6ZSxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIG1hcmdpbjogMCxcbiAgICBwYWRkaW5nOiAwLFxuICAgIHdpZHRoOiAnMTAwJSdcbiAgfVxufSk7XG5cbmNvbnN0IGNyZWF0ZURvdFN0eWxlID0gKHsgY3Vyc29yLCBkb3RCb3hTaXplLCBkb3RTaXplIH0pID0+ICh7XG4gICcmIC5yZWFjdC1maWxtX19kb3QnOiB7XG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGhlaWdodDogZG90Qm94U2l6ZSxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6IGRvdEJveFNpemUsXG5cbiAgICAnJiAucmVhY3QtZmlsbV9fZG90X19pbnB1dCc6IHtcbiAgICAgIC4uLihjdXJzb3IgPyB7IGN1cnNvciB9IDoge30pLFxuXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICBtYXJnaW46IDAsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICB0b3A6IDAsXG4gICAgICB0b3VjaEFjdGlvbjogJ25vbmUnLFxuICAgICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgICAgd2lkdGg6ICcxMDAlJ1xuICAgIH0sXG5cbiAgICAnJiAucmVhY3QtZmlsbV9fZG90X19oYW5kbGUnOiB7XG4gICAgICBiYWNrZ3JvdW5kOiAncmdiYSgwLCAwLCAwLCAuMiknLFxuICAgICAgYm9yZGVyUmFkaXVzOiBkb3RTaXplIC8gMixcbiAgICAgIGhlaWdodDogZG90U2l6ZSxcbiAgICAgIHdpZHRoOiBkb3RTaXplXG4gICAgfSxcblxuICAgICcmOmhvdmVyIC5yZWFjdC1maWxtX19kb3RfX2hhbmRsZSwgJiAucmVhY3QtZmlsbV9fZG90X19pbnB1dDpmb2N1cyArIC5yZWFjdC1maWxtX19kb3RfX2hhbmRsZSc6IHtcbiAgICAgIGJhY2tncm91bmQ6ICdyZ2JhKDAsIDAsIDAsIC40KSdcbiAgICB9LFxuXG4gICAgJyYgLnJlYWN0LWZpbG1fX2RvdF9faW5wdXQ6YWN0aXZlICsgLnJlYWN0LWZpbG1fX2RvdF9faGFuZGxlJzoge1xuICAgICAgYmFja2dyb3VuZDogJ3JnYmEoMCwgMCwgMCwgLjgpJ1xuICAgIH0sXG5cbiAgICAnJiAucmVhY3QtZmlsbV9fZG90X19pbnB1dDpjaGVja2VkOm5vdCg6YWN0aXZlKSArIC5yZWFjdC1maWxtX19kb3RfX2hhbmRsZSc6IHtcbiAgICAgIGJhY2tncm91bmQ6ICdyZ2JhKDAsIDAsIDAsIC42KSdcbiAgICB9XG4gIH1cbn0pO1xuXG5jb25zdCBjcmVhdGVGbGlwcGVyU3R5bGUgPSAoeyBjdXJzb3IsIGZsaXBwZXJCb3hXaWR0aCwgZmxpcHBlclNpemUgfSkgPT4gKHtcbiAgJyYgLnJlYWN0LWZpbG1fX2ZsaXBwZXInOiB7XG4gICAgLi4uKGN1cnNvciA/IHsgY3Vyc29yIH0gOiB7fSksXG5cbiAgICBiYWNrZ3JvdW5kOiAnVHJhbnNwYXJlbnQnLFxuICAgIGJvcmRlcjogMCxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICBvdXRsaW5lOiAwLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0b3A6IDAsXG4gICAgdG91Y2hBY3Rpb246ICdub25lJyxcbiAgICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gICAgd2lkdGg6IGZsaXBwZXJCb3hXaWR0aCxcbiAgICB6SW5kZXg6IDEsXG5cbiAgICAnJi5yZWFjdC1maWxtX19mbGlwcGVyLS1sZWZ0Jzoge1xuICAgICAgbGVmdDogMCxcblxuICAgICAgJyYgLnJlYWN0LWZpbG1fX2ZsaXBwZXJfX3NsaWRlcic6IHtcbiAgICAgICAgbGVmdDogMFxuICAgICAgfVxuICAgIH0sXG5cbiAgICAnJi5yZWFjdC1maWxtX19mbGlwcGVyLS1yaWdodCc6IHtcbiAgICAgIHJpZ2h0OiAwLFxuXG4gICAgICAnJiAucmVhY3QtZmlsbV9fZmxpcHBlcl9fc2xpZGVyJzoge1xuICAgICAgICByaWdodDogMFxuICAgICAgfVxuICAgIH0sXG5cbiAgICAnJiAucmVhY3QtZmlsbV9fZmxpcHBlcl9fc2xpZGVyJzoge1xuICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgdG9wOiAwLFxuICAgICAgd2lkdGg6ICcxMDAlJ1xuICAgIH0sXG5cbiAgICAnJiAucmVhY3QtZmlsbV9fZmxpcHBlcl9fYm9keSc6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgLjYpJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzUwJScsXG4gICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgLjYpJyxcbiAgICAgIGZvbnRGYW1pbHk6IFsnQ29uc29sYXMnLCAnbW9ub3NwYWNlJ10ubWFwKGZvbnQgPT4gYCcke2ZvbnR9J2ApLmpvaW4oJywgJyksXG4gICAgICBmb250U2l6ZTogMTYsXG4gICAgICBoZWlnaHQ6IGZsaXBwZXJTaXplLFxuICAgICAgbGluZUhlaWdodDogYCR7ZmxpcHBlclNpemV9cHhgLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICB0cmFuc2l0aW9uRHVyYXRpb246ICcxMDBtcycsXG4gICAgICB0cmFuc2l0aW9uUHJvcGVydHk6ICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgICAgIHdpZHRoOiBmbGlwcGVyU2l6ZVxuICAgIH0sXG5cbiAgICAnJjpob3ZlciwgJjpmb2N1cyc6IHtcbiAgICAgICcmIC5yZWFjdC1maWxtX19mbGlwcGVyX19ib2R5Jzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIC44KScsXG4gICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAuOCknLFxuICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IDBcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgJyY6YWN0aXZlIC5yZWFjdC1maWxtX19mbGlwcGVyX19ib2R5Jzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiAnQmxhY2snLFxuICAgICAgY29sb3I6ICdXaGl0ZScsXG4gICAgICB0cmFuc2l0aW9uRHVyYXRpb246IDBcbiAgICB9XG4gIH1cbn0pO1xuXG5jb25zdCBjcmVhdGVGaWxtc3RyaXBTdHlsZSA9ICgpID0+ICh7XG4gICcmIC5yZWFjdC1maWxtX19maWxtc3RyaXAnOiB7XG4gICAgTXNPdmVyZmxvd1N0eWxlOiAnbm9uZScsXG4gICAgb3ZlcmZsb3dYOiAnc2Nyb2xsJyxcbiAgICBvdmVyZmxvd1k6ICdoaWRkZW4nLFxuICAgIG92ZXJzY3JvbGxCZWhhdmlvclg6ICdjb250YWluJyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB0b3VjaEFjdGlvbjogJ21hbmlwdWxhdGlvbicsXG4gICAgekluZGV4OiAwLFxuXG4gICAgJyY6Oi13ZWJraXQtc2Nyb2xsYmFyJzoge1xuICAgICAgZGlzcGxheTogJ25vbmUnXG4gICAgfSxcblxuICAgICcmIC5yZWFjdC1maWxtX19maWxtc3RyaXBfX2xpc3QnOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgICBtYXJnaW46IDAsXG4gICAgICBwYWRkaW5nOiAwXG4gICAgfVxuICB9XG59KTtcblxuY29uc3QgY3JlYXRlU2Nyb2xsQmFyU3R5bGUgPSAoeyBhdXRvSGlkZSwgc2Nyb2xsQmFySGVpZ2h0LCBzY3JvbGxCYXJNYXJnaW4gfSkgPT4gKHtcbiAgJyYgLnJlYWN0LWZpbG1fX3Njcm9sbC1iYXInOiB7XG4gICAgYm90dG9tOiBhdXRvSGlkZSA/IC0zMCA6IDAsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgcGFkZGluZzogc2Nyb2xsQmFyTWFyZ2luLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRyYW5zaXRpb25EZWxheTogJzFzJyxcbiAgICB0cmFuc2l0aW9uRHVyYXRpb246ICczMDBtcycsXG4gICAgdHJhbnNpdGlvblByb3BlcnR5OiAnYm90dG9tJyxcbiAgICB3aWR0aDogJzEwMCUnLFxuXG4gICAgJyYgLnJlYWN0LWZpbG1fX3Njcm9sbC1iYXJfX2hhbmRsZSc6IHtcbiAgICAgIGJhY2tkcm9wRmlsdGVyOiAnYmx1cig0cHgpJyxcbiAgICAgIGJhY2tncm91bmQ6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIC40KScsXG4gICAgICBib3JkZXJSYWRpdXM6IHNjcm9sbEJhckhlaWdodCAvIDIsXG4gICAgICBoZWlnaHQ6IHNjcm9sbEJhckhlaWdodFxuICAgIH1cbiAgfVxufSk7XG5cbmNvbnN0IGNyZWF0ZVJvb3RTdHlsZSA9ICh7IGF1dG9IaWRlLCBhdXRvSGlkZUZsaXBwZXJPbkVkZ2UsIGZsaXBwZXJCb3hXaWR0aCwgZmxpcHBlclNpemUgfSkgPT4gKHtcbiAgJyYgLnJlYWN0LWZpbG1fX21haW4nOiB7XG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuXG4gICAgLi4uKGF1dG9IaWRlXG4gICAgICA/IHtcbiAgICAgICAgICAnJjpob3ZlciwgJi5yZWFjdC1maWxtX19tYWluLS1zY3JvbGxpbmcnOiB7XG4gICAgICAgICAgICAnJiAucmVhY3QtZmlsbV9fbWFpbl9fc2xpZGVyJzoge1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uRGVsYXk6ICcwcycsXG5cbiAgICAgICAgICAgICAgJyYucmVhY3QtZmlsbV9fbWFpbl9fc2xpZGVyLS1ib3R0b20nOiB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwXG4gICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgJyYucmVhY3QtZmlsbV9fbWFpbl9fc2xpZGVyLS1sZWZ0Jzoge1xuICAgICAgICAgICAgICAgIFthdXRvSGlkZUZsaXBwZXJPbkVkZ2UgPyAnJjpub3QoLnJlYWN0LWZpbG1fX21haW5fX3NsaWRlci0taGlkZSknIDogJyYnXToge1xuICAgICAgICAgICAgICAgICAgbGVmdDogMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAnJi5yZWFjdC1maWxtX19tYWluX19zbGlkZXItLXJpZ2h0Jzoge1xuICAgICAgICAgICAgICAgIFthdXRvSGlkZUZsaXBwZXJPbkVkZ2UgPyAnJjpub3QoLnJlYWN0LWZpbG1fX21haW5fX3NsaWRlci0taGlkZSknIDogJyYnXToge1xuICAgICAgICAgICAgICAgICAgcmlnaHQ6IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgJyYgLnJlYWN0LWZpbG1fX21haW5fX292ZXJsYXk6Zm9jdXMgLnJlYWN0LWZpbG1fX21haW5fX3NsaWRlcjpub3QoLnJlYWN0LWZpbG1fX21haW5fX3NsaWRlci0taGlkZSknOiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uRGVsYXk6ICcwcycsXG5cbiAgICAgICAgICAgICcmLnJlYWN0LWZpbG1fX21haW5fX3NsaWRlci0tbGVmdCc6IHtcbiAgICAgICAgICAgICAgbGVmdDogMFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgJyYucmVhY3QtZmlsbV9fbWFpbl9fc2xpZGVyLS1yaWdodCc6IHtcbiAgICAgICAgICAgICAgcmlnaHQ6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgJyYgLnJlYWN0LWZpbG1fX21haW5fX3NsaWRlcic6IHtcbiAgICAgICAgICAgIHRyYW5zaXRpb25EZWxheTogJzFzJyxcbiAgICAgICAgICAgIHRyYW5zaXRpb25EdXJhdGlvbjogJzMwMG1zJyxcblxuICAgICAgICAgICAgJyYucmVhY3QtZmlsbV9fbWFpbl9fc2xpZGVyLS1sZWZ0Jzoge1xuICAgICAgICAgICAgICBsZWZ0OiAoZmxpcHBlckJveFdpZHRoICsgZmxpcHBlclNpemUpIC8gLTIsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25Qcm9wZXJ0eTogJ2xlZnQnXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAnJi5yZWFjdC1maWxtX19tYWluX19zbGlkZXItLXJpZ2h0Jzoge1xuICAgICAgICAgICAgICByaWdodDogKGZsaXBwZXJCb3hXaWR0aCArIGZsaXBwZXJTaXplKSAvIC0yLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uUHJvcGVydHk6ICdyaWdodCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDoge30pXG4gIH1cbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCYXNpY1N0eWxlU2V0KHN0eWxlT3B0aW9ucykge1xuICBzdHlsZU9wdGlvbnMgPSBwYXRjaFN0eWxlT3B0aW9ucyhzdHlsZU9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgcm9vdDoge1xuICAgICAgLi4uY3JlYXRlRG90c1N0eWxlKHN0eWxlT3B0aW9ucyksXG4gICAgICAuLi5jcmVhdGVEb3RTdHlsZShzdHlsZU9wdGlvbnMpLFxuICAgICAgLi4uY3JlYXRlRmlsbXN0cmlwU3R5bGUoc3R5bGVPcHRpb25zKSxcbiAgICAgIC4uLmNyZWF0ZUZsaXBwZXJTdHlsZShzdHlsZU9wdGlvbnMpLFxuICAgICAgLi4uY3JlYXRlUm9vdFN0eWxlKHN0eWxlT3B0aW9ucyksXG4gICAgICAuLi5jcmVhdGVTY3JvbGxCYXJTdHlsZShzdHlsZU9wdGlvbnMpXG4gICAgfVxuICB9O1xufVxuIl19