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>

166 lines (165 loc) 34.5 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _icon = _interopRequireDefault(require("../icon")); var _iconIntents = _interopRequireDefault(require("./iconIntents")); var _configProvider = require("../config-provider"); require("./style"); var _excluded = ["afterClose", "className", "closable", "closeText", "defaultExpanded", "expandContent", "expanded", "icon", "intent", "onClose", "onExpandChange", "size", "text", "title", "theme"]; function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } var prefix = "adui-alert"; var Alert = function Alert(_ref) { var afterClose = _ref.afterClose, className = _ref.className, closable = _ref.closable, closeText = _ref.closeText, defaultExpanded = _ref.defaultExpanded, expandContent = _ref.expandContent, expandedProp = _ref.expanded, icon = _ref.icon, intent = _ref.intent, onClose = _ref.onClose, onExpandChange = _ref.onExpandChange, size = _ref.size, text = _ref.text, title = _ref.title, theme = _ref.theme, otherProps = _objectWithoutProperties(_ref, _excluded); var ref = (0, _react.useRef)(null); var _useState = (0, _react.useState)(expandedProp !== null && expandedProp !== undefined ? expandedProp : !!defaultExpanded), _useState2 = _slicedToArray(_useState, 2), expanded = _useState2[0], setExpanded = _useState2[1]; var _useState3 = (0, _react.useState)(false), _useState4 = _slicedToArray(_useState3, 2), closing = _useState4[0], setClosing = _useState4[1]; if (expandedProp !== null && expandedProp !== undefined && expanded !== expandedProp) { setExpanded(expandedProp); } var _useContext = (0, _react.useContext)(_configProvider.ConfigContext), sizeContext = _useContext.size; var computedSize = (0, _configProvider.getComputedSize)(size, sizeContext); var handleClose = function handleClose() { if (onClose) { onClose(); } if (ref.current) { ref.current.style.height = "".concat(ref.current.offsetHeight, "px"); setTimeout(function () { if (ref.current) { ref.current.style.marginTop = "0"; ref.current.style.marginBottom = "0"; ref.current.style.paddingTop = "0"; ref.current.style.paddingBottom = "0"; ref.current.style.height = "0"; ref.current.style.opacity = "0"; } setTimeout(function () { setClosing(true); if (afterClose) { afterClose(); } }, 300); }, 0); } }; var handleExpand = function handleExpand() { if (expandedProp === null) { setExpanded(!expanded); } if (onExpandChange) { onExpandChange(!expanded); } }; var classSet = (0, _classnames["default"])(className, "".concat(prefix, "-base"), "".concat(prefix, "-").concat(intent), "".concat(prefix, "-").concat(computedSize), _defineProperty({}, "".concat(prefix, "-").concat(theme), theme)); if (closing) { return null; } return _react["default"].createElement("div", _extends({ ref: ref, className: classSet }, otherProps), _react["default"].createElement("div", { className: "".concat(prefix, "-inner") }, icon !== null && _react["default"].createElement(_icon["default"], { icon: icon || _iconIntents["default"][intent || "normal"], size: computedSize === "mini" ? 18 : 20, className: "".concat(prefix, "-icon") }), _react["default"].createElement("div", { className: "".concat(prefix, "-text") }, !!title && _react["default"].createElement("div", { className: "".concat(prefix, "-title") }, title), _react["default"].createElement("div", null, text), !!expandContent && expanded && _react["default"].createElement("div", { className: "".concat(prefix, "-expandContent") }, " ", expandContent, " ")), closable && _react["default"].createElement("div", { className: (0, _classnames["default"])("".concat(prefix, "-close"), _defineProperty({}, "".concat(prefix, "-close_text"), !!closeText)) }, closeText ? _react["default"].createElement("div", { className: "".concat(prefix, "-closeText"), onClick: handleClose, role: "none" }, closeText) : _react["default"].createElement(_icon["default"], { className: "".concat(prefix, "-closeIcon"), icon: "cancel", onClick: handleClose })), !!expandContent && _react["default"].createElement("div", { className: "".concat(prefix, "-expand"), onClick: handleExpand, role: "none" }, expanded ? "收起" : "展开"))); }; Alert.displayName = "Alert"; Alert.propTypes = { afterClose: _propTypes["default"].func, className: _propTypes["default"].string, closable: _propTypes["default"].bool, closeText: _propTypes["default"].node, defaultExpanded: _propTypes["default"].bool, expandContent: _propTypes["default"].node, expanded: _propTypes["default"].bool, icon: _propTypes["default"].any, intent: _propTypes["default"].oneOf(["normal", "primary", "success", "info", "warning", "danger"]), onClose: _propTypes["default"].func, onExpandChange: _propTypes["default"].func, size: _propTypes["default"].oneOf(["mini", "small", "medium"]), text: _propTypes["default"].node.isRequired, theme: _propTypes["default"].oneOf([null, "light"]), title: _propTypes["default"].node }; Alert.defaultProps = { afterClose: function afterClose() {}, className: undefined, closable: false, closeText: null, defaultExpanded: null, expandContent: null, expanded: null, icon: undefined, intent: "normal", onClose: function onClose() {}, onExpandChange: function onExpandChange() {}, size: "small", theme: null, title: null }; var _default = exports["default"] = Alert; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jbGFzc25hbWVzIiwiX2ljb24iLCJfaWNvbkludGVudHMiLCJfY29uZmlnUHJvdmlkZXIiLCJfZXhjbHVkZWQiLCJlIiwiX19lc01vZHVsZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIldlYWtNYXAiLCJyIiwidCIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsIiwiaXRlcmF0b3IiLCJmIiwibyIsIm5leHQiLCJkb25lIiwicHVzaCIsImlzQXJyYXkiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInMiLCJpbmNsdWRlcyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwicHJlZml4IiwiQWxlcnQiLCJfcmVmIiwiYWZ0ZXJDbG9zZSIsImNsYXNzTmFtZSIsImNsb3NhYmxlIiwiY2xvc2VUZXh0IiwiZGVmYXVsdEV4cGFuZGVkIiwiZXhwYW5kQ29udGVudCIsImV4cGFuZGVkUHJvcCIsImV4cGFuZGVkIiwiaWNvbiIsImludGVudCIsIm9uQ2xvc2UiLCJvbkV4cGFuZENoYW5nZSIsInNpemUiLCJ0ZXh0IiwidGl0bGUiLCJ0aGVtZSIsIm90aGVyUHJvcHMiLCJyZWYiLCJ1c2VSZWYiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsInVuZGVmaW5lZCIsIl91c2VTdGF0ZTIiLCJzZXRFeHBhbmRlZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiY2xvc2luZyIsInNldENsb3NpbmciLCJfdXNlQ29udGV4dCIsInVzZUNvbnRleHQiLCJDb25maWdDb250ZXh0Iiwic2l6ZUNvbnRleHQiLCJjb21wdXRlZFNpemUiLCJnZXRDb21wdXRlZFNpemUiLCJoYW5kbGVDbG9zZSIsImN1cnJlbnQiLCJzdHlsZSIsImhlaWdodCIsImNvbmNhdCIsIm9mZnNldEhlaWdodCIsInNldFRpbWVvdXQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSIsIm9wYWNpdHkiLCJoYW5kbGVFeHBhbmQiLCJjbGFzc1NldCIsImNsYXNzTmFtZXMiLCJjcmVhdGVFbGVtZW50IiwiSUNPTl9JTlRFTlRTIiwib25DbGljayIsInJvbGUiLCJkaXNwbGF5TmFtZSIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImZ1bmMiLCJzdHJpbmciLCJib29sIiwibm9kZSIsImFueSIsIm9uZU9mIiwiaXNSZXF1aXJlZCIsImRlZmF1bHRQcm9wcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvYWxlcnQvQWxlcnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IEljb24sIHsgSWNvbk5hbWVzIH0gZnJvbSBcIi4uL2ljb25cIlxuaW1wb3J0IElDT05fSU5URU5UUyBmcm9tIFwiLi9pY29uSW50ZW50c1wiXG5pbXBvcnQgeyBDb25maWdDb250ZXh0LCBnZXRDb21wdXRlZFNpemUgfSBmcm9tIFwiLi4vY29uZmlnLXByb3ZpZGVyXCJcbmltcG9ydCBcIi4vc3R5bGVcIlxuXG5jb25zdCBwcmVmaXggPSBcImFkdWktYWxlcnRcIlxuXG5leHBvcnQgaW50ZXJmYWNlIElBbGVydFByb3BzIHtcbiAgW2tleTogc3RyaW5nXTogYW55XG4gIC8qKlxuICAgKiDlhbPpl63lkI7nmoQgaGFuZGxlcu+8jOWPguaVsCBub2RlXG4gICAqL1xuICBhZnRlckNsb3NlPzogKCkgPT4gdm9pZFxuICAvKipcbiAgICog6ZmE5Yqg57G75ZCNXG4gICAqL1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIOaYr+WQpuWPr+WFs+mXrVxuICAgKi9cbiAgY2xvc2FibGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiDlhbPpl63mloflrZdcbiAgICovXG4gIGNsb3NlVGV4dD86IFJlYWN0LlJlYWN0Tm9kZVxuICAvKipcbiAgICog5piv5ZCm5bGV5byA77yM5YaF6YOo6amx5YqoXG4gICAqL1xuICBkZWZhdWx0RXhwYW5kZWQ/OiBib29sZWFuIHwgbnVsbFxuICAvKipcbiAgICog5bGV5byA5YaF5a65XG4gICAqL1xuICBleHBhbmRDb250ZW50PzogUmVhY3QuUmVhY3ROb2RlXG4gIC8qKlxuICAgKiDmmK/lkKblsZXlvIDvvIzlpJbpg6jmjqfliLZcbiAgICovXG4gIGV4cGFuZGVkPzogYm9vbGVhbiB8IG51bGxcbiAgLyoqXG4gICAqIOiuvue9ruWbvuagh1xuICAgKi9cbiAgaWNvbj86IEljb25OYW1lcyB8IG51bGxcbiAgLyoqXG4gICAqIOiuvue9ruexu+Wei1xuICAgKi9cbiAgaW50ZW50PzogXCJub3JtYWxcIiB8IFwicHJpbWFyeVwiIHwgXCJzdWNjZXNzXCIgfCBcImluZm9cIiB8IFwid2FybmluZ1wiIHwgXCJkYW5nZXJcIlxuICAvKipcbiAgICog5YWz6Zet5pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIC8qKlxuICAgKiDlsZXlvIDnirbmgIHlj5jljJbml7bnmoQgaGFuZGxlcu+8jOWPguaVsOS4uiBib29sXG4gICAqL1xuICBvbkV4cGFuZENoYW5nZT86IChleHBhbmRlZDogYm9vbGVhbikgPT4gdm9pZFxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplPzogXCJtaW5pXCIgfCBcInNtYWxsXCIgfCBcIm1lZGl1bVwiXG4gIC8qKlxuICAgKiDmj5DphpLlhoXlrrlcbiAgICovXG4gIHRleHQ6IFJlYWN0LlJlYWN0Tm9kZVxuICAvKipcbiAgICog6K6+572u5Li76aKYXG4gICAqL1xuICB0aGVtZT86IG51bGwgfCBcImxpZ2h0XCJcbiAgLyoqXG4gICAqIOaPkOmGkuagh+mimFxuICAgKi9cbiAgdGl0bGU/OiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuLyoqXG4gKiDmj5DphpLmmK/lhoXlrrnnmoTluLjmgIHjgIHljbPml7bmgKfmj5DnpLrvvIzlsZXnpLrpnIDopoHnlKjmiLfljbPml7blhbPms6jnmoTkv6Hmga/jgIJcbiAqIOS4juWvueivneahhiBEaWFsb2cg5oiW5rCU5rOh5o+Q56S6IFBvcG92ZXIg5LiN5ZCM77yM5o+Q6YaSIEFsZXJ0IOmAmuW4uOW4uOmpu+WcqOmhtemdouS4re+8jOS4jumhtemdouWGheWuueacieabtOW8uueahOWFs+iBlOaAp+OAglxuICovXG5jb25zdCBBbGVydDogUmVhY3QuRkM8SUFsZXJ0UHJvcHM+ID0gKHtcbiAgYWZ0ZXJDbG9zZSxcbiAgY2xhc3NOYW1lLFxuICBjbG9zYWJsZSxcbiAgY2xvc2VUZXh0LFxuICBkZWZhdWx0RXhwYW5kZWQsXG4gIGV4cGFuZENvbnRlbnQsXG4gIGV4cGFuZGVkOiBleHBhbmRlZFByb3AsXG4gIGljb24sXG4gIGludGVudCxcbiAgb25DbG9zZSxcbiAgb25FeHBhbmRDaGFuZ2UsXG4gIHNpemUsXG4gIHRleHQsXG4gIHRpdGxlLFxuICB0aGVtZSxcbiAgLi4ub3RoZXJQcm9wc1xufTogSUFsZXJ0UHJvcHMpID0+IHtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IHVzZVN0YXRlKFxuICAgIGV4cGFuZGVkUHJvcCAhPT0gbnVsbCAmJiBleHBhbmRlZFByb3AgIT09IHVuZGVmaW5lZFxuICAgICAgPyBleHBhbmRlZFByb3BcbiAgICAgIDogISFkZWZhdWx0RXhwYW5kZWRcbiAgKVxuICBjb25zdCBbY2xvc2luZywgc2V0Q2xvc2luZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICAvLyDnm7jlvZPkuo7nlJ/lkb3lkajmnJ8gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXG4gIGlmIChcbiAgICBleHBhbmRlZFByb3AgIT09IG51bGwgJiZcbiAgICBleHBhbmRlZFByb3AgIT09IHVuZGVmaW5lZCAmJlxuICAgIGV4cGFuZGVkICE9PSBleHBhbmRlZFByb3BcbiAgKSB7XG4gICAgc2V0RXhwYW5kZWQoZXhwYW5kZWRQcm9wKVxuICB9XG5cbiAgY29uc3QgeyBzaXplOiBzaXplQ29udGV4dCB9ID0gdXNlQ29udGV4dChDb25maWdDb250ZXh0KVxuICBjb25zdCBjb21wdXRlZFNpemUgPSBnZXRDb21wdXRlZFNpemUoc2l6ZSwgc2l6ZUNvbnRleHQpXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAoKSA9PiB7XG4gICAgaWYgKG9uQ2xvc2UpIHtcbiAgICAgIG9uQ2xvc2UoKVxuICAgIH1cblxuICAgIGlmIChyZWYuY3VycmVudCkge1xuICAgICAgcmVmLmN1cnJlbnQuc3R5bGUuaGVpZ2h0ID0gYCR7cmVmLmN1cnJlbnQub2Zmc2V0SGVpZ2h0fXB4YFxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgcmVmLmN1cnJlbnQuc3R5bGUubWFyZ2luVG9wID0gXCIwXCJcbiAgICAgICAgICByZWYuY3VycmVudC5zdHlsZS5tYXJnaW5Cb3R0b20gPSBcIjBcIlxuICAgICAgICAgIHJlZi5jdXJyZW50LnN0eWxlLnBhZGRpbmdUb3AgPSBcIjBcIlxuICAgICAgICAgIHJlZi5jdXJyZW50LnN0eWxlLnBhZGRpbmdCb3R0b20gPSBcIjBcIlxuICAgICAgICAgIHJlZi5jdXJyZW50LnN0eWxlLmhlaWdodCA9IFwiMFwiXG4gICAgICAgICAgcmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9IFwiMFwiXG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgc2V0Q2xvc2luZyh0cnVlKVxuICAgICAgICAgIGlmIChhZnRlckNsb3NlKSB7XG4gICAgICAgICAgICBhZnRlckNsb3NlKClcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMClcbiAgICAgIH0sIDApXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRXhwYW5kID0gKCkgPT4ge1xuICAgIGlmIChleHBhbmRlZFByb3AgPT09IG51bGwpIHtcbiAgICAgIHNldEV4cGFuZGVkKCFleHBhbmRlZClcbiAgICB9XG4gICAgaWYgKG9uRXhwYW5kQ2hhbmdlKSB7XG4gICAgICBvbkV4cGFuZENoYW5nZSghZXhwYW5kZWQpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2xhc3NTZXQgPSBjbGFzc05hbWVzKFxuICAgIGNsYXNzTmFtZSxcbiAgICBgJHtwcmVmaXh9LWJhc2VgLFxuICAgIGAke3ByZWZpeH0tJHtpbnRlbnR9YCxcbiAgICBgJHtwcmVmaXh9LSR7Y29tcHV0ZWRTaXplfWAsXG4gICAge1xuICAgICAgW2Ake3ByZWZpeH0tJHt0aGVtZX1gXTogdGhlbWUsXG4gICAgfVxuICApXG5cbiAgaWYgKGNsb3NpbmcpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17cmVmfSBjbGFzc05hbWU9e2NsYXNzU2V0fSB7Li4ub3RoZXJQcm9wc30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7cHJlZml4fS1pbm5lcmB9PlxuICAgICAgICB7aWNvbiAhPT0gbnVsbCAmJiAoXG4gICAgICAgICAgPEljb25cbiAgICAgICAgICAgIGljb249e2ljb24gfHwgSUNPTl9JTlRFTlRTW2ludGVudCB8fCBcIm5vcm1hbFwiXX1cbiAgICAgICAgICAgIHNpemU9e2NvbXB1dGVkU2l6ZSA9PT0gXCJtaW5pXCIgPyAxOCA6IDIwfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWljb25gfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LXRleHRgfT5cbiAgICAgICAgICB7ISF0aXRsZSAmJiA8ZGl2IGNsYXNzTmFtZT17YCR7cHJlZml4fS10aXRsZWB9Pnt0aXRsZX08L2Rpdj59XG4gICAgICAgICAgPGRpdj57dGV4dH08L2Rpdj5cbiAgICAgICAgICB7ISFleHBhbmRDb250ZW50ICYmIGV4cGFuZGVkICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWV4cGFuZENvbnRlbnRgfT4ge2V4cGFuZENvbnRlbnR9IDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7Y2xvc2FibGUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhgJHtwcmVmaXh9LWNsb3NlYCwge1xuICAgICAgICAgICAgICBbYCR7cHJlZml4fS1jbG9zZV90ZXh0YF06ICEhY2xvc2VUZXh0LFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Nsb3NlVGV4dCA/IChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7cHJlZml4fS1jbG9zZVRleHRgfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsb3NlfVxuICAgICAgICAgICAgICAgIHJvbGU9XCJub25lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjbG9zZVRleHR9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake3ByZWZpeH0tY2xvc2VJY29uYH1cbiAgICAgICAgICAgICAgICBpY29uPVwiY2FuY2VsXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHshIWV4cGFuZENvbnRlbnQgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7cHJlZml4fS1leHBhbmRgfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5kfVxuICAgICAgICAgICAgcm9sZT1cIm5vbmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtleHBhbmRlZCA/IFwi5pS26LW3XCIgOiBcIuWxleW8gFwifVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuQWxlcnQuZGlzcGxheU5hbWUgPSBcIkFsZXJ0XCJcblxuQWxlcnQucHJvcFR5cGVzID0ge1xuICAvKipcbiAgICog5YWz6Zet5ZCO55qEIGhhbmRsZXLvvIzlj4LmlbAgbm9kZVxuICAgKi9cbiAgYWZ0ZXJDbG9zZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKlxuICAgKiDpmYTliqDnsbvlkI1cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqXG4gICAqIOaYr+WQpuWPr+WFs+mXrVxuICAgKi9cbiAgY2xvc2FibGU6IFByb3BUeXBlcy5ib29sLFxuICAvKipcbiAgICog5YWz6Zet5paH5a2XXG4gICAqL1xuICBjbG9zZVRleHQ6IFByb3BUeXBlcy5ub2RlLFxuICAvKipcbiAgICog5piv5ZCm5bGV5byA77yM5YaF6YOo6amx5YqoXG4gICAqL1xuICBkZWZhdWx0RXhwYW5kZWQ6IFByb3BUeXBlcy5ib29sLFxuICAvKipcbiAgICog5bGV5byA5YaF5a65XG4gICAqL1xuICBleHBhbmRDb250ZW50OiBQcm9wVHlwZXMubm9kZSxcbiAgLyoqXG4gICAqIOaYr+WQpuWxleW8gO+8jOWklumDqOaOp+WItlxuICAgKi9cbiAgZXhwYW5kZWQ6IFByb3BUeXBlcy5ib29sLFxuICAvKipcbiAgICog6K6+572u5Zu+5qCHXG4gICAqL1xuICBpY29uOiBQcm9wVHlwZXMuYW55LFxuICAvKipcbiAgICog6K6+572u57G75Z6LXG4gICAqL1xuICBpbnRlbnQ6IFByb3BUeXBlcy5vbmVPZihbXG4gICAgXCJub3JtYWxcIixcbiAgICBcInByaW1hcnlcIixcbiAgICBcInN1Y2Nlc3NcIixcbiAgICBcImluZm9cIixcbiAgICBcIndhcm5pbmdcIixcbiAgICBcImRhbmdlclwiLFxuICBdKSxcbiAgLyoqXG4gICAqIOWFs+mXreaXtueahCBoYW5kbGVy77yM5Y+C5pWwIG5vZGVcbiAgICovXG4gIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKipcbiAgICog5bGV5byA54q25oCB5Y+Y5YyW5pe255qEIGhhbmRsZXLvvIzlj4LmlbDkuLogYm9vbFxuICAgKi9cbiAgb25FeHBhbmRDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplOiBQcm9wVHlwZXMub25lT2YoW1wibWluaVwiLCBcInNtYWxsXCIsIFwibWVkaXVtXCJdKSxcbiAgLyoqXG4gICAqIOaPkOmGkuWGheWuuVxuICAgKi9cbiAgdGV4dDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgLyoqXG4gICAqIOiuvue9ruS4u+mimFxuICAgKi9cbiAgdGhlbWU6IFByb3BUeXBlcy5vbmVPZihbbnVsbCwgXCJsaWdodFwiXSksXG4gIC8qKlxuICAgKiDmj5DphpLmoIfpophcbiAgICovXG4gIHRpdGxlOiBQcm9wVHlwZXMubm9kZSxcbn1cblxuQWxlcnQuZGVmYXVsdFByb3BzID0ge1xuICBhZnRlckNsb3NlOiAoKSA9PiB7fSxcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIGNsb3NhYmxlOiBmYWxzZSxcbiAgY2xvc2VUZXh0OiBudWxsLFxuICBkZWZhdWx0RXhwYW5kZWQ6IG51bGwsXG4gIGV4cGFuZENvbnRlbnQ6IG51bGwsXG4gIGV4cGFuZGVkOiBudWxsLFxuICBpY29uOiB1bmRlZmluZWQsXG4gIGludGVudDogXCJub3JtYWxcIixcbiAgb25DbG9zZTogKCkgPT4ge30sXG4gIG9uRXhwYW5kQ2hhbmdlOiAoKSA9PiB7fSxcbiAgc2l6ZTogXCJzbWFsbFwiLFxuICB0aGVtZTogbnVsbCxcbiAgdGl0bGU6IG51bGwsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFsZXJ0XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxlQUFBLEdBQUFOLE9BQUE7QUFDQUEsT0FBQTtBQUFnQixJ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