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>

213 lines (212 loc) 37.4 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 _warning = _interopRequireDefault(require("../_util/warning")); var _configProvider = require("../config-provider"); var _button = _interopRequireDefault(require("../button")); var _input = _interopRequireDefault(require("../input")); require("./style"); var _excluded = ["align", "className", "current", "defaultCurrent", "disabled", "hideWhenSinglePage", "onChange", "pageSize", "showButtonJumper", "showInputJumper", "size", "theme", "total"]; 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 noop = function noop() {}; var prefix = "adui-pagination"; var Pagination = function Pagination(_ref) { var align = _ref.align, className = _ref.className, currentProp = _ref.current, defaultCurrent = _ref.defaultCurrent, disabled = _ref.disabled, hideWhenSinglePage = _ref.hideWhenSinglePage, onChange = _ref.onChange, pageSize = _ref.pageSize, showButtonJumper = _ref.showButtonJumper, showInputJumper = _ref.showInputJumper, sizeProp = _ref.size, theme = _ref.theme, total = _ref.total, otherProps = _objectWithoutProperties(_ref, _excluded); var _useState = (0, _react.useState)((currentProp !== null ? currentProp : defaultCurrent) || 1), _useState2 = _slicedToArray(_useState, 2), current = _useState2[0], setCurrent = _useState2[1]; var _useState3 = (0, _react.useState)(""), _useState4 = _slicedToArray(_useState3, 2), inputValue = _useState4[0], setInputValue = _useState4[1]; if (currentProp !== null && currentProp !== undefined && current !== currentProp) { setCurrent(currentProp); } var _useContext = (0, _react.useContext)(_configProvider.ConfigContext), sizeContext = _useContext.size; var size = (0, _configProvider.getComputedSize)(sizeProp, sizeContext); var classSet = (0, _classnames["default"])(className, "".concat(prefix, "-base"), "".concat(prefix, "-").concat(size), _defineProperty({}, "".concat(prefix, "-").concat(align), align)); (0, _warning["default"])(Number.isInteger(current), "Pagination", "current 值需要是正整数"); (0, _warning["default"])(!(current < 1 || current > Math.ceil((total || 0) / (pageSize || 10)) && current !== 1), "Pagination", "current \u9700\u8981\u65F6\u5728\u6B63\u786E\u8303\u56F4\u5185\u7684\u6B63\u6574\u6570\uFF0Ctotal: ".concat(total, "\uFF0CpageSize\uFF1A").concat(pageSize)); var pageNumber = 1; if (total && pageSize) { pageNumber = Math.max(Math.ceil(total / pageSize), 1); } var prevDisabled = current === 1; var nextDisabled = current === pageNumber; if (pageNumber === 1 && hideWhenSinglePage) { return null; } var handleJump = function handleJump(type) { var newPage; switch (type) { case "first": newPage = 1; break; case "prev": newPage = current - 1; break; case "next": newPage = current + 1; break; case "last": if (total && pageSize) { newPage = Math.max(Math.ceil(total / pageSize), 1); } break; default: } if (newPage && pageSize) { if (currentProp === null) { setCurrent(newPage); } if (onChange) { onChange(newPage, pageSize); } } }; var handleInputJump = function handleInputJump() { var parsevalue = parseInt(inputValue, 10); if (isNaN(parsevalue)) { return; } var value = Math.max(parsevalue, 1); if (total && pageSize) { value = Math.min(value, Math.max(Math.ceil(total / pageSize), 1)); } if (currentProp === null) { setCurrent(value); } if (onChange) { onChange(value, pageSize); } }; return _react["default"].createElement("div", _extends({ className: classSet, "data-current": current }, otherProps), showButtonJumper && _react["default"].createElement(_button["default"], { disabled: disabled, style: { marginRight: "8px" }, leftIcon: "arrow-left-first", size: size, theme: theme, onClick: function onClick() { if (!prevDisabled) handleJump("first"); } }), _react["default"].createElement(_button["default"], { disabled: disabled, leftIcon: "arrow-left", size: size, theme: theme, onClick: function onClick() { if (!prevDisabled) handleJump("prev"); } }), _react["default"].createElement("span", { className: "".concat(prefix, "-text") }, current, " / ", pageNumber), _react["default"].createElement(_button["default"], { disabled: disabled, leftIcon: "arrow-right", size: size, theme: theme, onClick: function onClick() { if (!nextDisabled) handleJump("next"); } }), showButtonJumper && _react["default"].createElement(_button["default"], { disabled: disabled, style: { marginLeft: "8px" }, leftIcon: "arrow-right-last", size: size, theme: theme, onClick: function onClick() { if (!nextDisabled) handleJump("last"); } }), showInputJumper && [_react["default"].createElement(_input["default"], { disabled: disabled, key: 0, className: "".concat(prefix, "-input"), placeholder: "\u9875\u7801", size: size, theme: theme, onChange: function onChange(e) { return setInputValue(e.target.value); }, onPressEnter: handleInputJump }), _react["default"].createElement(_button["default"], { disabled: disabled, key: 1, size: size, theme: theme, onClick: handleInputJump }, "\u8DF3\u8F6C")]); }; Pagination.displayName = "Pagination"; Pagination.propTypes = { align: _propTypes["default"].oneOf(["left", "center", "right"]), className: _propTypes["default"].string, current: _propTypes["default"].number, defaultCurrent: _propTypes["default"].number, disabled: _propTypes["default"].bool, hideWhenSinglePage: _propTypes["default"].bool, onChange: _propTypes["default"].func, pageSize: _propTypes["default"].number, showButtonJumper: _propTypes["default"].bool, showInputJumper: _propTypes["default"].bool, size: _propTypes["default"].oneOf(["mini", "small", "medium", "large"]), theme: _propTypes["default"].oneOf([null, "light"]), total: _propTypes["default"].number }; Pagination.defaultProps = { align: undefined, className: undefined, current: null, defaultCurrent: 1, disabled: false, hideWhenSinglePage: true, onChange: noop, pageSize: 10, showButtonJumper: false, showInputJumper: false, size: "small", theme: null, total: 0 }; var _default = exports["default"] = Pagination; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jbGFzc25hbWVzIiwiX3dhcm5pbmciLCJfY29uZmlnUHJvdmlkZXIiLCJfYnV0dG9uIiwiX2lucHV0IiwiX2V4Y2x1ZGVkIiwiZSIsIl9fZXNNb2R1bGUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJXZWFrTWFwIiwiciIsInQiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXBwbHkiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibCIsIml0ZXJhdG9yIiwiZiIsIm8iLCJuZXh0IiwiZG9uZSIsInB1c2giLCJpc0FycmF5IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzIiwiaW5jbHVkZXMiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIm5vb3AiLCJwcmVmaXgiLCJQYWdpbmF0aW9uIiwiX3JlZiIsImFsaWduIiwiY2xhc3NOYW1lIiwiY3VycmVudFByb3AiLCJjdXJyZW50IiwiZGVmYXVsdEN1cnJlbnQiLCJkaXNhYmxlZCIsImhpZGVXaGVuU2luZ2xlUGFnZSIsIm9uQ2hhbmdlIiwicGFnZVNpemUiLCJzaG93QnV0dG9uSnVtcGVyIiwic2hvd0lucHV0SnVtcGVyIiwic2l6ZVByb3AiLCJzaXplIiwidGhlbWUiLCJ0b3RhbCIsIm90aGVyUHJvcHMiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJzZXRDdXJyZW50IiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpbnB1dFZhbHVlIiwic2V0SW5wdXRWYWx1ZSIsInVuZGVmaW5lZCIsIl91c2VDb250ZXh0IiwidXNlQ29udGV4dCIsIkNvbmZpZ0NvbnRleHQiLCJzaXplQ29udGV4dCIsImdldENvbXB1dGVkU2l6ZSIsImNsYXNzU2V0IiwiY2xhc3NOYW1lcyIsImNvbmNhdCIsIndhcm5pbmciLCJpc0ludGVnZXIiLCJNYXRoIiwiY2VpbCIsInBhZ2VOdW1iZXIiLCJtYXgiLCJwcmV2RGlzYWJsZWQiLCJuZXh0RGlzYWJsZWQiLCJoYW5kbGVKdW1wIiwidHlwZSIsIm5ld1BhZ2UiLCJoYW5kbGVJbnB1dEp1bXAiLCJwYXJzZXZhbHVlIiwicGFyc2VJbnQiLCJpc05hTiIsIm1pbiIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIm1hcmdpblJpZ2h0IiwibGVmdEljb24iLCJvbkNsaWNrIiwibWFyZ2luTGVmdCIsImtleSIsInBsYWNlaG9sZGVyIiwidGFyZ2V0Iiwib25QcmVzc0VudGVyIiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvbmVPZiIsInN0cmluZyIsIm51bWJlciIsImJvb2wiLCJmdW5jIiwiZGVmYXVsdFByb3BzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vY29tcG9uZW50cy9wYWdpbmF0aW9uL1BhZ2luYXRpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCB3YXJuaW5nIGZyb20gXCIuLi9fdXRpbC93YXJuaW5nXCJcbmltcG9ydCB7IENvbmZpZ0NvbnRleHQsIGdldENvbXB1dGVkU2l6ZSB9IGZyb20gXCIuLi9jb25maWctcHJvdmlkZXJcIlxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vYnV0dG9uXCJcbmltcG9ydCBJbnB1dCBmcm9tIFwiLi4vaW5wdXRcIlxuaW1wb3J0IFwiLi9zdHlsZVwiXG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fVxuY29uc3QgcHJlZml4ID0gXCJhZHVpLXBhZ2luYXRpb25cIlxuXG5leHBvcnQgaW50ZXJmYWNlIElQYWdpbmF0aW9uUHJvcHMge1xuICBba2V5OiBzdHJpbmddOiBhbnlcbiAgLyoqXG4gICAqIOWvuem9kOaWueW8j1xuICAgKi9cbiAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCIgfCBcInJpZ2h0XCJcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiDlvZPliY3pobXmlbBcbiAgICovXG4gIGN1cnJlbnQ/OiBudW1iZXIgfCBudWxsXG4gIC8qKlxuICAgKiDpu5jorqTnmoTlvZPliY3pobXmlbBcbiAgICovXG4gIGRlZmF1bHRDdXJyZW50PzogbnVtYmVyXG4gIC8qKlxuICAgKiDmmK/lkKbnpoHnlKhcbiAgICovXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAvKipcbiAgICog5Y+q5pyJ5LiA6aG15pe2IHJldHVybiBudWxsXG4gICAqL1xuICBoaWRlV2hlblNpbmdsZVBhZ2U/OiBib29sZWFuXG4gIC8qKlxuICAgKiDlvZPliY3pobXlj5jljJbml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25DaGFuZ2U/OiAobmV3UGFnZTogbnVtYmVyLCBwYWdlU2l6ZT86IG51bWJlcikgPT4gdm9pZFxuICAvKipcbiAgICog6K6+572u5q+P6aG15p2h5pWw77yM6buY6K6kIDEwIOadoVxuICAgKi9cbiAgcGFnZVNpemU/OiBudW1iZXJcbiAgLyoqXG4gICAqIOaYr+WQpuaYvuekuummlumhteWwvumhtei3s+i9rOaMiemSrlxuICAgKi9cbiAgc2hvd0J1dHRvbkp1bXBlcj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIOaYr+WQpuaYvuekuui3s+i9rOi+k+WFpeahhlxuICAgKi9cbiAgc2hvd0lucHV0SnVtcGVyPzogYm9vbGVhblxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplPzogXCJtaW5pXCIgfCBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiXG4gIC8qKlxuICAgKiDorr7nva7kuLvpophcbiAgICovXG4gIHRoZW1lPzogbnVsbCB8IFwibGlnaHRcIlxuICAvKipcbiAgICog5pWw5o2u5oC75pWwXG4gICAqL1xuICB0b3RhbD86IG51bWJlclxufVxuXG4vKipcbiAqIOWIhumhteWZqOeUqOS6juWwhuWkp+mHj+WGheWuueS7peWIhumhteW9ouW8j+mXtOmalO+8jOWIh+aNoumAieaLqeafpeeci+OAglxuICovXG5jb25zdCBQYWdpbmF0aW9uOiBSZWFjdC5GQzxJUGFnaW5hdGlvblByb3BzPiA9ICh7XG4gIGFsaWduLFxuICBjbGFzc05hbWUsXG4gIGN1cnJlbnQ6IGN1cnJlbnRQcm9wLFxuICBkZWZhdWx0Q3VycmVudCxcbiAgZGlzYWJsZWQsXG4gIGhpZGVXaGVuU2luZ2xlUGFnZSxcbiAgb25DaGFuZ2UsXG4gIHBhZ2VTaXplLFxuICBzaG93QnV0dG9uSnVtcGVyLFxuICBzaG93SW5wdXRKdW1wZXIsXG4gIHNpemU6IHNpemVQcm9wLFxuICB0aGVtZSxcbiAgdG90YWwsXG4gIC4uLm90aGVyUHJvcHNcbn06IElQYWdpbmF0aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgW2N1cnJlbnQsIHNldEN1cnJlbnRdID0gdXNlU3RhdGU8bnVtYmVyPihcbiAgICAoY3VycmVudFByb3AgIT09IG51bGwgPyBjdXJyZW50UHJvcCA6IGRlZmF1bHRDdXJyZW50KSB8fCAxXG4gIClcbiAgY29uc3QgW2lucHV0VmFsdWUsIHNldElucHV0VmFsdWVdID0gdXNlU3RhdGUoXCJcIilcblxuICAvLyDnm7jlvZPkuo7nlJ/lkb3lkajmnJ8gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXG4gIGlmIChcbiAgICBjdXJyZW50UHJvcCAhPT0gbnVsbCAmJlxuICAgIGN1cnJlbnRQcm9wICE9PSB1bmRlZmluZWQgJiZcbiAgICBjdXJyZW50ICE9PSBjdXJyZW50UHJvcFxuICApIHtcbiAgICBzZXRDdXJyZW50KGN1cnJlbnRQcm9wKVxuICB9XG5cbiAgY29uc3QgeyBzaXplOiBzaXplQ29udGV4dCB9ID0gdXNlQ29udGV4dChDb25maWdDb250ZXh0KVxuICBjb25zdCBzaXplID0gZ2V0Q29tcHV0ZWRTaXplKHNpemVQcm9wLCBzaXplQ29udGV4dClcblxuICBjb25zdCBjbGFzc1NldCA9IGNsYXNzTmFtZXMoXG4gICAgY2xhc3NOYW1lLFxuICAgIGAke3ByZWZpeH0tYmFzZWAsXG4gICAgYCR7cHJlZml4fS0ke3NpemV9YCxcbiAgICB7XG4gICAgICBbYCR7cHJlZml4fS0ke2FsaWdufWBdOiBhbGlnbixcbiAgICB9XG4gIClcblxuICB3YXJuaW5nKE51bWJlci5pc0ludGVnZXIoY3VycmVudCksIFwiUGFnaW5hdGlvblwiLCBcImN1cnJlbnQg5YC86ZyA6KaB5piv5q2j5pW05pWwXCIpXG5cbiAgd2FybmluZyhcbiAgICAhKFxuICAgICAgY3VycmVudCA8IDEgfHxcbiAgICAgIChjdXJyZW50ID4gTWF0aC5jZWlsKCh0b3RhbCB8fCAwKSAvIChwYWdlU2l6ZSB8fCAxMCkpICYmIGN1cnJlbnQgIT09IDEpXG4gICAgKSxcbiAgICBcIlBhZ2luYXRpb25cIixcbiAgICBgY3VycmVudCDpnIDopoHml7blnKjmraPnoa7ojIPlm7TlhoXnmoTmraPmlbTmlbDvvIx0b3RhbDogJHt0b3RhbH3vvIxwYWdlU2l6Ze+8miR7cGFnZVNpemV9YFxuICApXG5cbiAgbGV0IHBhZ2VOdW1iZXIgPSAxXG4gIGlmICh0b3RhbCAmJiBwYWdlU2l6ZSkge1xuICAgIHBhZ2VOdW1iZXIgPSBNYXRoLm1heChNYXRoLmNlaWwodG90YWwgLyBwYWdlU2l6ZSksIDEpXG4gIH1cbiAgY29uc3QgcHJldkRpc2FibGVkID0gY3VycmVudCA9PT0gMVxuICBjb25zdCBuZXh0RGlzYWJsZWQgPSBjdXJyZW50ID09PSBwYWdlTnVtYmVyXG5cbiAgaWYgKHBhZ2VOdW1iZXIgPT09IDEgJiYgaGlkZVdoZW5TaW5nbGVQYWdlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUp1bXAgPSAodHlwZTogc3RyaW5nKSA9PiB7XG4gICAgbGV0IG5ld1BhZ2VcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgXCJmaXJzdFwiOlxuICAgICAgICBuZXdQYWdlID0gMVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcInByZXZcIjpcbiAgICAgICAgbmV3UGFnZSA9IGN1cnJlbnQgLSAxXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dFwiOlxuICAgICAgICBuZXdQYWdlID0gY3VycmVudCArIDFcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJsYXN0XCI6XG4gICAgICAgIGlmICh0b3RhbCAmJiBwYWdlU2l6ZSkge1xuICAgICAgICAgIG5ld1BhZ2UgPSBNYXRoLm1heChNYXRoLmNlaWwodG90YWwgLyBwYWdlU2l6ZSksIDEpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuXG4gICAgaWYgKG5ld1BhZ2UgJiYgcGFnZVNpemUpIHtcbiAgICAgIGlmIChjdXJyZW50UHJvcCA9PT0gbnVsbCkge1xuICAgICAgICBzZXRDdXJyZW50KG5ld1BhZ2UpXG4gICAgICB9XG4gICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgb25DaGFuZ2UobmV3UGFnZSwgcGFnZVNpemUpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlSW5wdXRKdW1wID0gKCkgPT4ge1xuICAgIGNvbnN0IHBhcnNldmFsdWUgPSBwYXJzZUludChpbnB1dFZhbHVlLCAxMClcbiAgICBpZiAoaXNOYU4ocGFyc2V2YWx1ZSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBsZXQgdmFsdWUgPSBNYXRoLm1heChwYXJzZXZhbHVlLCAxKVxuICAgIGlmICh0b3RhbCAmJiBwYWdlU2l6ZSkge1xuICAgICAgdmFsdWUgPSBNYXRoLm1pbih2YWx1ZSwgTWF0aC5tYXgoTWF0aC5jZWlsKHRvdGFsIC8gcGFnZVNpemUpLCAxKSlcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRQcm9wID09PSBudWxsKSB7XG4gICAgICBzZXRDdXJyZW50KHZhbHVlKVxuICAgIH1cbiAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgIG9uQ2hhbmdlKHZhbHVlLCBwYWdlU2l6ZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc1NldH0gZGF0YS1jdXJyZW50PXtjdXJyZW50fSB7Li4ub3RoZXJQcm9wc30+XG4gICAgICB7c2hvd0J1dHRvbkp1bXBlciAmJiAoXG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc3R5bGU9e3sgbWFyZ2luUmlnaHQ6IFwiOHB4XCIgfX1cbiAgICAgICAgICBsZWZ0SWNvbj1cImFycm93LWxlZnQtZmlyc3RcIlxuICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgdGhlbWU9e3RoZW1lfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghcHJldkRpc2FibGVkKSBoYW5kbGVKdW1wKFwiZmlyc3RcIilcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIDxCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBsZWZ0SWNvbj1cImFycm93LWxlZnRcIlxuICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBpZiAoIXByZXZEaXNhYmxlZCkgaGFuZGxlSnVtcChcInByZXZcIilcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake3ByZWZpeH0tdGV4dGB9PlxuICAgICAgICB7Y3VycmVudH0gLyB7cGFnZU51bWJlcn1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBsZWZ0SWNvbj1cImFycm93LXJpZ2h0XCJcbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgdGhlbWU9e3RoZW1lfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaWYgKCFuZXh0RGlzYWJsZWQpIGhhbmRsZUp1bXAoXCJuZXh0XCIpXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICAge3Nob3dCdXR0b25KdW1wZXIgJiYgKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IFwiOHB4XCIgfX1cbiAgICAgICAgICBsZWZ0SWNvbj1cImFycm93LXJpZ2h0LWxhc3RcIlxuICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgdGhlbWU9e3RoZW1lfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghbmV4dERpc2FibGVkKSBoYW5kbGVKdW1wKFwibGFzdFwiKVxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge3Nob3dJbnB1dEp1bXBlciAmJiBbXG4gICAgICAgIDxJbnB1dFxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBrZXk9ezB9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWlucHV0YH1cbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIumhteeggVwiXG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgICAgICAgICAgIHNldElucHV0VmFsdWUoZS50YXJnZXQudmFsdWUpXG4gICAgICAgICAgfVxuICAgICAgICAgIG9uUHJlc3NFbnRlcj17aGFuZGxlSW5wdXRKdW1wfVxuICAgICAgICAvPixcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBrZXk9ezF9XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgb25DbGljaz17aGFuZGxlSW5wdXRKdW1wfVxuICAgICAgICA+XG4gICAgICAgICAg6Lez6L2sXG4gICAgICAgIDwvQnV0dG9uPixcbiAgICAgIF19XG4gICAgPC9kaXY+XG4gIClcbn1cblxuUGFnaW5hdGlvbi5kaXNwbGF5TmFtZSA9IFwiUGFnaW5hdGlvblwiXG5cblBhZ2luYXRpb24ucHJvcFR5cGVzID0ge1xuICAvKipcbiAgICog5a+56b2Q5pa55byPXG4gICAqL1xuICBhbGlnbjogUHJvcFR5cGVzLm9uZU9mKFtcImxlZnRcIiwgXCJjZW50ZXJcIiwgXCJyaWdodFwiXSksXG4gIC8qKlxuICAgKiDpmYTliqDnsbvlkI1cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqXG4gICAqIOW9k+WJjemhteaVsFxuICAgKi9cbiAgY3VycmVudDogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqXG4gICAqIOm7mOiupOeahOW9k+WJjemhteaVsFxuICAgKi9cbiAgZGVmYXVsdEN1cnJlbnQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIC8qKlxuICAgKiDmmK/lkKbnpoHnlKhcbiAgICovXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqXG4gICAqIOWPquacieS4gOmhteaXtiByZXR1cm4gbnVsbFxuICAgKi9cbiAgaGlkZVdoZW5TaW5nbGVQYWdlOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqXG4gICAqIOW9k+WJjemhteWPmOWMluaXtueahCBoYW5kbGVyXG4gICAqL1xuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKlxuICAgKiDorr7nva7mr4/pobXmnaHmlbDvvIzpu5jorqQgMTAg5p2hXG4gICAqL1xuICBwYWdlU2l6ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqXG4gICAqIOaYr+WQpuaYvuekuummlumhteWwvumhtei3s+i9rOaMiemSrlxuICAgKi9cbiAgc2hvd0J1dHRvbkp1bXBlcjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiDmmK/lkKbmmL7npLrot7PovazovpPlhaXmoYZcbiAgICovXG4gIHNob3dJbnB1dEp1bXBlcjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiDorr7nva7lsLrlr7hcbiAgICovXG4gIHNpemU6IFByb3BUeXBlcy5vbmVPZihbXCJtaW5pXCIsIFwic21hbGxcIiwgXCJtZWRpdW1cIiwgXCJsYXJnZVwiXSksXG4gIC8qKlxuICAgKiDorr7nva7kuLvpophcbiAgICovXG4gIHRoZW1lOiBQcm9wVHlwZXMub25lT2YoW251bGwsIFwibGlnaHRcIl0pLFxuICAvKipcbiAgICog5pWw5o2u5oC75pWwXG4gICAqL1xuICB0b3RhbDogUHJvcFR5cGVzLm51bWJlcixcbn1cblxuUGFnaW5hdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGFsaWduOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICBjdXJyZW50OiBudWxsLFxuICBkZWZhdWx0Q3VycmVudDogMSxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBoaWRlV2hlblNpbmdsZVBhZ2U6IHRydWUsXG4gIG9uQ2hhbmdlOiBub29wLFxuICBwYWdlU2l6ZTogMTAsXG4gIHNob3dCdXR0b25KdW1wZXI6IGZhbHNlLFxuICBzaG93SW5wdXRKdW1wZXI6IGZhbHNlLFxuICBzaXplOiBcInNtYWxsXCIsXG4gIHRoZW1lOiBudWxsLFxuICB0b3RhbDogMCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFnaW5hdGlvblxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0FBLE9BQUE7QUFBZ0IsSUFBQVEsU0FBQTtBQUFBLFNBQUFOLHVCQUFBTyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBRSx5QkFBQUYsQ0FBQSw2QkFBQUcsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRCx3QkFBQSxZQUFBQSx5QkFBQUYsQ0FBQSxXQUFBQSxDQUFBLEdBQUFLLENBQUEsR0FBQUQsQ0FBQSxLQUFBSixDQUFBO0FBQUEsU0FBQVYs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