UNPKG

adui

Version:

<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>

197 lines (167 loc) 25.5 kB
"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); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var React = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _rcAnimate = _interopRequireDefault(require("rc-animate")); var _excluded = ["afterLeave", "animation", "appear", "children", "duration", "onLeave", "transition"]; 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 _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; } var noop = function noop() {}; var MOTION_DURATION_BASE = 200; var transitionNames = { slide: "slide-up", zoom: "zoom-motion", zoomHorizontal: "zoom-motion-horizontal" }; var Motion = function Motion(_ref) { var afterLeave = _ref.afterLeave, animation = _ref.animation, _appear = _ref.appear, children = _ref.children, duration = _ref.duration, onLeave = _ref.onLeave, transition = _ref.transition, othersProps = _objectWithoutProperties(_ref, _excluded); var dur = duration !== null && duration !== undefined ? duration : MOTION_DURATION_BASE; var transitionName = transition && transitionNames[transition]; var getNodeStyle = function getNodeStyle(node, styleName) { return getComputedStyle(node).getPropertyValue(styleName); }; var setNodeStyle = function setNodeStyle(node) { if (node) { if (transitionName && transitionName.includes("horizontal")) { node.style.marginRight = "0"; node.style.marginLeft = "0"; node.style.paddingRight = "0"; node.style.paddingLeft = "0"; node.style.width = "0"; } else { node.style.marginTop = "0"; node.style.marginBottom = "0"; node.style.paddingTop = "0"; node.style.paddingBottom = "0"; node.style.height = "0"; } } }; var getEnterAnimation = function getEnterAnimation(node, done) { var width = "".concat(node.getBoundingClientRect().width, "px"); var height = "".concat(node.getBoundingClientRect().height, "px"); var paddingTop = getNodeStyle(node, "padding-top"); var paddingRight = getNodeStyle(node, "padding-right"); var paddingBottom = getNodeStyle(node, "padding-bottom"); var paddingLeft = getNodeStyle(node, "padding-left"); if (transitionName && transitionName.includes("slide")) { node.style.opacity = "1"; } if (transitionName && transitionName.includes("horizontal")) { node.style.width = "0"; node.style.paddingRight = "0"; node.style.paddingLeft = "0"; } else { node.style.height = "0"; node.style.paddingTop = "0"; node.style.paddingBottom = "0"; } node.style.overflow = "hidden"; node.style.setProperty("animation-duration", "".concat(dur, "ms"), "important"); node.classList.add("".concat(transitionName, "-enter"), "".concat(transitionName, "-enter-active")); setTimeout(function () { if (transitionName && transitionName.includes("horizontal")) { node.style.transition = "all ".concat(dur, "ms var(--ease-in-out)"); node.style.width = width; node.style.paddingRight = paddingRight; node.style.paddingLeft = paddingLeft; } else { node.style.transition = "all ".concat(dur, "ms var(--ease-in-out)"); node.style.height = height; node.style.paddingTop = paddingTop; node.style.paddingBottom = paddingBottom; } }, 10); var promise = new Promise(function (resolve) { return setTimeout(resolve, dur); }); promise.then(function () { node.classList.remove("".concat(transitionName, "-enter"), "".concat(transitionName, "-enter-active")); if (transitionName && transitionName.includes("horizontal")) { node.style.width = ""; } else { node.style.height = ""; } node.style.overflow = ""; return done(); }); }; return React.createElement(_rcAnimate["default"], _extends({ animation: animation || { appear: function appear(node, done) { if (_appear) { getEnterAnimation(node, done); } return done(); }, enter: function enter(node, done) { getEnterAnimation(node, done); }, leave: function leave(node, done) { if (onLeave) { onLeave(node); } if (transitionName && transitionName.includes("horizontal")) { var width = "".concat(node.getBoundingClientRect().width, "px"); node.style.width = width; } else { var height = "".concat(node.getBoundingClientRect().height, "px"); node.style.height = height; } node.style.setProperty("animation-duration", "".concat(dur, "ms"), "important"); node.style.overflow = "hidden"; node.classList.remove("".concat(transitionName, "-enter"), "".concat(transitionName, "-enter-active")); node.classList.add("".concat(transitionName, "-leave"), "".concat(transitionName, "-leave-active")); setTimeout(function () { node.style.transition = "all ".concat(dur, "ms var(--ease-in-out)"); setNodeStyle(node); }, 10); var promise = new Promise(function (resolve) { return setTimeout(resolve, dur); }); promise.then(function () { if (afterLeave) { afterLeave(node); } return done(); }); } } }, othersProps), children); }; Motion.propTypes = { afterLeave: _propTypes["default"].func, animation: _propTypes["default"].object, appear: _propTypes["default"].bool, children: _propTypes["default"].node, duration: _propTypes["default"].number, onLeave: _propTypes["default"].func, transition: _propTypes["default"].oneOf(["slide", "zoom", "zoomHorizontal"]) }; Motion.defaultProps = { afterLeave: noop, animation: undefined, appear: false, children: null, duration: undefined, onLeave: noop, transition: "zoom" }; var _default = Motion; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub29wIiwiTU9USU9OX0RVUkFUSU9OX0JBU0UiLCJ0cmFuc2l0aW9uTmFtZXMiLCJzbGlkZSIsInpvb20iLCJ6b29tSG9yaXpvbnRhbCIsIk1vdGlvbiIsImFmdGVyTGVhdmUiLCJhbmltYXRpb24iLCJhcHBlYXIiLCJjaGlsZHJlbiIsImR1cmF0aW9uIiwib25MZWF2ZSIsInRyYW5zaXRpb24iLCJvdGhlcnNQcm9wcyIsImR1ciIsInVuZGVmaW5lZCIsInRyYW5zaXRpb25OYW1lIiwiZ2V0Tm9kZVN0eWxlIiwibm9kZSIsInN0eWxlTmFtZSIsImdldENvbXB1dGVkU3R5bGUiLCJnZXRQcm9wZXJ0eVZhbHVlIiwic2V0Tm9kZVN0eWxlIiwiaW5jbHVkZXMiLCJzdHlsZSIsIm1hcmdpblJpZ2h0IiwibWFyZ2luTGVmdCIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdMZWZ0Iiwid2lkdGgiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSIsImhlaWdodCIsImdldEVudGVyQW5pbWF0aW9uIiwiZG9uZSIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIm9wYWNpdHkiLCJvdmVyZmxvdyIsInNldFByb3BlcnR5IiwiY2xhc3NMaXN0IiwiYWRkIiwic2V0VGltZW91dCIsInByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJyZW1vdmUiLCJlbnRlciIsImxlYXZlIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiZnVuYyIsIm9iamVjdCIsImJvb2wiLCJudW1iZXIiLCJvbmVPZiIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvbW90aW9uL01vdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEFuaW1hdGUgZnJvbSBcInJjLWFuaW1hdGVcIlxuXG5jb25zdCBub29wID0gKCkgPT4ge31cbmNvbnN0IE1PVElPTl9EVVJBVElPTl9CQVNFID0gMjAwXG5jb25zdCB0cmFuc2l0aW9uTmFtZXMgPSB7XG4gIHNsaWRlOiBcInNsaWRlLXVwXCIsXG4gIHpvb206IFwiem9vbS1tb3Rpb25cIixcbiAgem9vbUhvcml6b250YWw6IFwiem9vbS1tb3Rpb24taG9yaXpvbnRhbFwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb3Rpb25Qcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICAvKipcbiAgICogZG9tIOenu+mZpOWQjueahCBoYW5kbGVyXG4gICAqL1xuICBhZnRlckxlYXZlPzogKG5vZGU6IEhUTUxFbGVtZW50KSA9PiB2b2lkXG4gIC8qKlxuICAgKiDlj6/oh6rlrprkuYkgYW5pbWF0aW9uIOeahCBhcHBlYXIsIGVudGVyLCBsZWF2ZVxuICAgKi9cbiAgYW5pbWF0aW9uPzogb2JqZWN0XG4gIC8qKlxuICAgKiDov5vlhaXliqjnlLvmmK/lkKbkvZznlKjkuo4gYXBwZWFyIOmYtuautVxuICAgKi9cbiAgYXBwZWFyPzogYm9vbGVhblxuICAvKipcbiAgICog5a2Q5YWD57SgXG4gICAqL1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICAvKipcbiAgICogTW90aW9uIOWMheijueWxgueahOWFg+e0oOagh+etvlxuICAgKi9cbiAgY29tcG9uZW50Pzogc3RyaW5nXG4gIC8qKlxuICAgKiDliqjmlYjmjIHnu63ml7bpl7TvvIzljZXkvY0gbXNcbiAgICovXG4gIGR1cmF0aW9uPzogbnVtYmVyXG4gIC8qKlxuICAgKiBkb20g5byA5aeL56e76Zmk55qEIGhhbmRsZXJcbiAgICovXG4gIG9uTGVhdmU/OiAobm9kZTogSFRNTEVsZW1lbnQpID0+IHZvaWRcbiAgLyoqXG4gICAqIOWKqOaViOW9ouW8j1xuICAgKi9cbiAgdHJhbnNpdGlvbj86IFwic2xpZGVcIiB8IFwiem9vbVwiIHwgXCJ6b29tSG9yaXpvbnRhbFwiXG59XG5cbmNvbnN0IE1vdGlvbjogUmVhY3QuRkM8SU1vdGlvblByb3BzPiA9ICh7XG4gIGFmdGVyTGVhdmUsXG4gIGFuaW1hdGlvbixcbiAgYXBwZWFyLFxuICBjaGlsZHJlbixcbiAgZHVyYXRpb24sXG4gIG9uTGVhdmUsXG4gIHRyYW5zaXRpb24sXG4gIC4uLm90aGVyc1Byb3BzXG59OiBJTW90aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgZHVyID1cbiAgICBkdXJhdGlvbiAhPT0gbnVsbCAmJiBkdXJhdGlvbiAhPT0gdW5kZWZpbmVkXG4gICAgICA/IGR1cmF0aW9uXG4gICAgICA6IE1PVElPTl9EVVJBVElPTl9CQVNFXG4gIGNvbnN0IHRyYW5zaXRpb25OYW1lID0gdHJhbnNpdGlvbiAmJiB0cmFuc2l0aW9uTmFtZXNbdHJhbnNpdGlvbl1cblxuICBjb25zdCBnZXROb2RlU3R5bGUgPSAobm9kZTogSFRNTEVsZW1lbnQsIHN0eWxlTmFtZTogc3RyaW5nKSA9PlxuICAgIGdldENvbXB1dGVkU3R5bGUobm9kZSkuZ2V0UHJvcGVydHlWYWx1ZShzdHlsZU5hbWUpXG5cbiAgY29uc3Qgc2V0Tm9kZVN0eWxlID0gKG5vZGU6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGlmICh0cmFuc2l0aW9uTmFtZSAmJiB0cmFuc2l0aW9uTmFtZS5pbmNsdWRlcyhcImhvcml6b250YWxcIikpIHtcbiAgICAgICAgbm9kZS5zdHlsZS5tYXJnaW5SaWdodCA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUubWFyZ2luTGVmdCA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1JpZ2h0ID0gXCIwXCJcbiAgICAgICAgbm9kZS5zdHlsZS5wYWRkaW5nTGVmdCA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUud2lkdGggPSBcIjBcIlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5zdHlsZS5tYXJnaW5Ub3AgPSBcIjBcIlxuICAgICAgICBub2RlLnN0eWxlLm1hcmdpbkJvdHRvbSA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1RvcCA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ0JvdHRvbSA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUuaGVpZ2h0ID0gXCIwXCJcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBnZXRFbnRlckFuaW1hdGlvbiA9IChub2RlOiBIVE1MRWxlbWVudCwgZG9uZTogKCkgPT4gdm9pZCkgPT4ge1xuICAgIGNvbnN0IHdpZHRoID0gYCR7bm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGBcbiAgICBjb25zdCBoZWlnaHQgPSBgJHtub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH1weGBcbiAgICBjb25zdCBwYWRkaW5nVG9wID0gZ2V0Tm9kZVN0eWxlKG5vZGUsIFwicGFkZGluZy10b3BcIilcbiAgICBjb25zdCBwYWRkaW5nUmlnaHQgPSBnZXROb2RlU3R5bGUobm9kZSwgXCJwYWRkaW5nLXJpZ2h0XCIpXG4gICAgY29uc3QgcGFkZGluZ0JvdHRvbSA9IGdldE5vZGVTdHlsZShub2RlLCBcInBhZGRpbmctYm90dG9tXCIpXG4gICAgY29uc3QgcGFkZGluZ0xlZnQgPSBnZXROb2RlU3R5bGUobm9kZSwgXCJwYWRkaW5nLWxlZnRcIilcblxuICAgIGlmICh0cmFuc2l0aW9uTmFtZSAmJiB0cmFuc2l0aW9uTmFtZS5pbmNsdWRlcyhcInNsaWRlXCIpKSB7XG4gICAgICBub2RlLnN0eWxlLm9wYWNpdHkgPSBcIjFcIlxuICAgIH1cblxuICAgIGlmICh0cmFuc2l0aW9uTmFtZSAmJiB0cmFuc2l0aW9uTmFtZS5pbmNsdWRlcyhcImhvcml6b250YWxcIikpIHtcbiAgICAgIG5vZGUuc3R5bGUud2lkdGggPSBcIjBcIlxuICAgICAgbm9kZS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBcIjBcIlxuICAgICAgbm9kZS5zdHlsZS5wYWRkaW5nTGVmdCA9IFwiMFwiXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuc3R5bGUuaGVpZ2h0ID0gXCIwXCJcbiAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1RvcCA9IFwiMFwiXG4gICAgICBub2RlLnN0eWxlLnBhZGRpbmdCb3R0b20gPSBcIjBcIlxuICAgIH1cblxuICAgIG5vZGUuc3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiXG4gICAgbm9kZS5zdHlsZS5zZXRQcm9wZXJ0eShcImFuaW1hdGlvbi1kdXJhdGlvblwiLCBgJHtkdXJ9bXNgLCBcImltcG9ydGFudFwiKVxuICAgIG5vZGUuY2xhc3NMaXN0LmFkZChcbiAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlcmAsXG4gICAgICBgJHt0cmFuc2l0aW9uTmFtZX0tZW50ZXItYWN0aXZlYFxuICAgIClcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRyYW5zaXRpb25OYW1lICYmIHRyYW5zaXRpb25OYW1lLmluY2x1ZGVzKFwiaG9yaXpvbnRhbFwiKSkge1xuICAgICAgICBub2RlLnN0eWxlLnRyYW5zaXRpb24gPSBgYWxsICR7ZHVyfW1zIHZhcigtLWVhc2UtaW4tb3V0KWBcbiAgICAgICAgbm9kZS5zdHlsZS53aWR0aCA9IHdpZHRoXG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1JpZ2h0ID0gcGFkZGluZ1JpZ2h0XG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ0xlZnQgPSBwYWRkaW5nTGVmdFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5zdHlsZS50cmFuc2l0aW9uID0gYGFsbCAke2R1cn1tcyB2YXIoLS1lYXNlLWluLW91dClgXG4gICAgICAgIG5vZGUuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0XG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1RvcCA9IHBhZGRpbmdUb3BcbiAgICAgICAgbm9kZS5zdHlsZS5wYWRkaW5nQm90dG9tID0gcGFkZGluZ0JvdHRvbVxuICAgICAgfVxuICAgIH0sIDEwKVxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkdXIpKVxuICAgIHByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICBub2RlLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlcmAsXG4gICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlci1hY3RpdmVgXG4gICAgICApXG4gICAgICBpZiAodHJhbnNpdGlvbk5hbWUgJiYgdHJhbnNpdGlvbk5hbWUuaW5jbHVkZXMoXCJob3Jpem9udGFsXCIpKSB7XG4gICAgICAgIG5vZGUuc3R5bGUud2lkdGggPSBcIlwiXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLnN0eWxlLmhlaWdodCA9IFwiXCJcbiAgICAgIH1cbiAgICAgIG5vZGUuc3R5bGUub3ZlcmZsb3cgPSBcIlwiXG4gICAgICByZXR1cm4gZG9uZSgpXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEFuaW1hdGVcbiAgICAgIGFuaW1hdGlvbj17XG4gICAgICAgIGFuaW1hdGlvbiB8fCB7XG4gICAgICAgICAgYXBwZWFyKG5vZGU6IEhUTUxFbGVtZW50LCBkb25lOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgICAgICBpZiAoYXBwZWFyKSB7XG4gICAgICAgICAgICAgIGdldEVudGVyQW5pbWF0aW9uKG5vZGUsIGRvbmUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZG9uZSgpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbnRlcihub2RlOiBIVE1MRWxlbWVudCwgZG9uZTogKCkgPT4gdm9pZCkge1xuICAgICAgICAgICAgZ2V0RW50ZXJBbmltYXRpb24obm9kZSwgZG9uZSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxlYXZlKG5vZGU6IEhUTUxFbGVtZW50LCBkb25lOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgICAgICBpZiAob25MZWF2ZSkge1xuICAgICAgICAgICAgICBvbkxlYXZlKG5vZGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHJhbnNpdGlvbk5hbWUgJiYgdHJhbnNpdGlvbk5hbWUuaW5jbHVkZXMoXCJob3Jpem9udGFsXCIpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gYCR7bm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGBcbiAgICAgICAgICAgICAgbm9kZS5zdHlsZS53aWR0aCA9IHdpZHRoXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBgJHtub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH1weGBcbiAgICAgICAgICAgICAgbm9kZS5zdHlsZS5oZWlnaHQgPSBoZWlnaHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGUuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAgIFwiYW5pbWF0aW9uLWR1cmF0aW9uXCIsXG4gICAgICAgICAgICAgIGAke2R1cn1tc2AsXG4gICAgICAgICAgICAgIFwiaW1wb3J0YW50XCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIG5vZGUuc3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiXG4gICAgICAgICAgICBub2RlLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlcmAsXG4gICAgICAgICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlci1hY3RpdmVgXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBub2RlLmNsYXNzTGlzdC5hZGQoXG4gICAgICAgICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1sZWF2ZWAsXG4gICAgICAgICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1sZWF2ZS1hY3RpdmVgXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgbm9kZS5zdHlsZS50cmFuc2l0aW9uID0gYGFsbCAke2R1cn1tcyB2YXIoLS1lYXNlLWluLW91dClgXG4gICAgICAgICAgICAgIHNldE5vZGVTdHlsZShub2RlKVxuICAgICAgICAgICAgfSwgMTApXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZHVyKSlcbiAgICAgICAgICAgIHByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChhZnRlckxlYXZlKSB7XG4gICAgICAgICAgICAgICAgYWZ0ZXJMZWF2ZShub2RlKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBkb25lKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgey4uLm90aGVyc1Byb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FuaW1hdGU+XG4gIClcbn1cblxuTW90aW9uLnByb3BUeXBlcyA9IHtcbiAgYWZ0ZXJMZWF2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGFuaW1hdGlvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgYXBwZWFyOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBkdXJhdGlvbjogUHJvcFR5cGVzLm51bWJlcixcbiAgb25MZWF2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIHRyYW5zaXRpb246IFByb3BUeXBlcy5vbmVPZihbXCJzbGlkZVwiLCBcInpvb21cIiwgXCJ6b29tSG9yaXpvbnRhbFwiXSksXG59XG5cbk1vdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGFmdGVyTGVhdmU6IG5vb3AsXG4gIGFuaW1hdGlvbjogdW5kZWZpbmVkLFxuICBhcHBlYXI6IGZhbHNlLFxuICBjaGlsZHJlbjogbnVsbCxcbiAgZHVyYXRpb246IHVuZGVmaW5lZCxcbiAgb25MZWF2ZTogbm9vcCxcbiAgdHJhbnNpdGlvbjogXCJ6b29tXCIsXG59XG5c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