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>

231 lines (191 loc) 27.1 kB
var _excluded = ["align", "className", "current", "defaultCurrent", "disabled", "hideWhenSinglePage", "onChange", "pageSize", "showButtonJumper", "showInputJumper", "size", "theme", "total"]; 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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return 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 = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } 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; } import React, { useContext, useState } from "react"; import PropTypes from "prop-types"; import classNames from "classnames"; import warning from "../_util/warning"; import { ConfigContext, getComputedSize } from "../config-provider"; import Button from "../button"; import "./style"; var noop = function noop() {}; var prefix = "adui-channels-pagination"; var Pagination = function Pagination(_ref) { var _classNames; 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 = useState((currentProp !== null ? currentProp : defaultCurrent) || 1), _useState2 = _slicedToArray(_useState, 2), current = _useState2[0], setCurrent = _useState2[1]; var _useState3 = useState(""), _useState4 = _slicedToArray(_useState3, 2), inputValue = _useState4[0], setInputValue = _useState4[1]; if (currentProp !== null && currentProp !== undefined && current !== currentProp) { setCurrent(currentProp); } var _useContext = useContext(ConfigContext), sizeContext = _useContext.size; var size = getComputedSize(sizeProp, sizeContext); var classSet = classNames(className, "".concat(prefix, "-base"), "".concat(prefix, "-").concat(size), (_classNames = {}, _defineProperty(_classNames, "".concat(prefix, "-").concat(align), align), _defineProperty(_classNames, "".concat(prefix, "-disabled"), disabled), _classNames)); warning(Number.isInteger(current), "Pagination", "current 值需要是正整数"); warning(!(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.createElement("div", _extends({ className: classSet, "data-current": current }, otherProps), showButtonJumper && React.createElement(Button, { disabled: disabled, style: { marginRight: "8px" }, leftIcon: "arrow-left-first", size: size, theme: theme, onClick: function onClick() { if (!prevDisabled) handleJump("first"); } }), React.createElement("div", { className: "".concat(prefix, "-btn ").concat(prefix, "-btn-left"), role: "none", onClick: function onClick() { if (!prevDisabled) handleJump("prev"); } }), React.createElement("span", { className: "".concat(prefix, "-text") }, current, " / ", pageNumber), React.createElement("div", { className: "".concat(prefix, "-btn ").concat(prefix, "-btn-right"), role: "none", onClick: function onClick() { if (!nextDisabled) handleJump("next"); } }), showButtonJumper && React.createElement(Button, { disabled: disabled, style: { marginLeft: "8px" }, leftIcon: "arrow-right-last", size: size, theme: theme, onClick: function onClick() { if (!nextDisabled) handleJump("last"); } }), showInputJumper && [React.createElement("input", { key: 0, className: "".concat(prefix, "-input"), onChange: function onChange(e) { return setInputValue(e.target.value); } }), React.createElement("div", { role: "none", className: "".concat(prefix, "-input-btn"), key: 1, onClick: handleInputJump }, "\u8DF3\u8F6C")]); }; Pagination.displayName = "Pagination"; Pagination.propTypes = { align: PropTypes.oneOf(["left", "center", "right"]), className: PropTypes.string, current: PropTypes.number, defaultCurrent: PropTypes.number, disabled: PropTypes.bool, hideWhenSinglePage: PropTypes.bool, onChange: PropTypes.func, pageSize: PropTypes.number, showButtonJumper: PropTypes.bool, showInputJumper: PropTypes.bool, size: PropTypes.oneOf(["mini", "small", "medium", "large"]), theme: PropTypes.oneOf([null, "light"]), total: PropTypes.number }; Pagination.defaultProps = { align: undefined, className: undefined, current: null, defaultCurrent: 1, disabled: false, hideWhenSinglePage: true, onChange: noop, pageSize: 10, showButtonJumper: false, showInputJumper: true, size: "small", theme: null, total: 0 }; export default Pagination; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsIlByb3BUeXBlcyIsImNsYXNzTmFtZXMiLCJ3YXJuaW5nIiwiQ29uZmlnQ29udGV4dCIsImdldENvbXB1dGVkU2l6ZSIsIkJ1dHRvbiIsIm5vb3AiLCJwcmVmaXgiLCJQYWdpbmF0aW9uIiwiYWxpZ24iLCJjbGFzc05hbWUiLCJjdXJyZW50UHJvcCIsImN1cnJlbnQiLCJkZWZhdWx0Q3VycmVudCIsImRpc2FibGVkIiwiaGlkZVdoZW5TaW5nbGVQYWdlIiwib25DaGFuZ2UiLCJwYWdlU2l6ZSIsInNob3dCdXR0b25KdW1wZXIiLCJzaG93SW5wdXRKdW1wZXIiLCJzaXplUHJvcCIsInNpemUiLCJ0aGVtZSIsInRvdGFsIiwib3RoZXJQcm9wcyIsInNldEN1cnJlbnQiLCJpbnB1dFZhbHVlIiwic2V0SW5wdXRWYWx1ZSIsInVuZGVmaW5lZCIsInNpemVDb250ZXh0IiwiY2xhc3NTZXQiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJNYXRoIiwiY2VpbCIsInBhZ2VOdW1iZXIiLCJtYXgiLCJwcmV2RGlzYWJsZWQiLCJuZXh0RGlzYWJsZWQiLCJoYW5kbGVKdW1wIiwidHlwZSIsIm5ld1BhZ2UiLCJoYW5kbGVJbnB1dEp1bXAiLCJwYXJzZXZhbHVlIiwicGFyc2VJbnQiLCJpc05hTiIsInZhbHVlIiwibWluIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5MZWZ0IiwiZSIsInRhcmdldCIsImRpc3BsYXlOYW1lIiwicHJvcFR5cGVzIiwib25lT2YiLCJzdHJpbmciLCJudW1iZXIiLCJib29sIiwiZnVuYyIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvY2hhbm5lbHMtcGFnaW5hdGlvbi9QYWdpbmF0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgd2FybmluZyBmcm9tIFwiLi4vX3V0aWwvd2FybmluZ1wiXG5pbXBvcnQgeyBDb25maWdDb250ZXh0LCBnZXRDb21wdXRlZFNpemUgfSBmcm9tIFwiLi4vY29uZmlnLXByb3ZpZGVyXCJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uL2J1dHRvblwiXG5pbXBvcnQgXCIuL3N0eWxlXCJcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5jb25zdCBwcmVmaXggPSBcImFkdWktY2hhbm5lbHMtcGFnaW5hdGlvblwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBhZ2luYXRpb25Qcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICAvKipcbiAgICog5a+56b2Q5pa55byPXG4gICAqL1xuICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIiB8IFwicmlnaHRcIlxuICAvKipcbiAgICog6ZmE5Yqg57G75ZCNXG4gICAqL1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIOW9k+WJjemhteaVsFxuICAgKi9cbiAgY3VycmVudD86IG51bWJlciB8IG51bGxcbiAgLyoqXG4gICAqIOm7mOiupOeahOW9k+WJjemhteaVsFxuICAgKi9cbiAgZGVmYXVsdEN1cnJlbnQ/OiBudW1iZXJcbiAgLyoqXG4gICAqIOaYr+WQpuemgeeUqFxuICAgKi9cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiDlj6rmnInkuIDpobXml7YgcmV0dXJuIG51bGxcbiAgICovXG4gIGhpZGVXaGVuU2luZ2xlUGFnZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIOW9k+WJjemhteWPmOWMluaXtueahCBoYW5kbGVyXG4gICAqL1xuICBvbkNoYW5nZT86IChuZXdQYWdlOiBudW1iZXIsIHBhZ2VTaXplPzogbnVtYmVyKSA9PiB2b2lkXG4gIC8qKlxuICAgKiDorr7nva7mr4/pobXmnaHmlbDvvIzpu5jorqQgMTAg5p2hXG4gICAqL1xuICBwYWdlU2l6ZT86IG51bWJlclxuICAvKipcbiAgICog5piv5ZCm5pi+56S66aaW6aG15bC+6aG16Lez6L2s5oyJ6ZKuXG4gICAqL1xuICBzaG93QnV0dG9uSnVtcGVyPzogYm9vbGVhblxuICAvKipcbiAgICog5piv5ZCm5pi+56S66Lez6L2s6L6T5YWl5qGGXG4gICAqL1xuICBzaG93SW5wdXRKdW1wZXI/OiBib29sZWFuXG4gIC8qKlxuICAgKiDorr7nva7lsLrlr7hcbiAgICovXG4gIHNpemU/OiBcIm1pbmlcIiB8IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCJcbiAgLyoqXG4gICAqIOiuvue9ruS4u+mimFxuICAgKi9cbiAgdGhlbWU/OiBudWxsIHwgXCJsaWdodFwiXG4gIC8qKlxuICAgKiDmlbDmja7mgLvmlbBcbiAgICovXG4gIHRvdGFsPzogbnVtYmVyXG59XG5cbi8qKlxuICog5YiG6aG15Zmo55So5LqO5bCG5aSn6YeP5YaF5a655Lul5YiG6aG15b2i5byP6Ze06ZqU77yM5YiH5o2i6YCJ5oup5p+l55yL44CCXG4gKi9cbmNvbnN0IFBhZ2luYXRpb246IFJlYWN0LkZDPElQYWdpbmF0aW9uUHJvcHM+ID0gKHtcbiAgYWxpZ24sXG4gIGNsYXNzTmFtZSxcbiAgY3VycmVudDogY3VycmVudFByb3AsXG4gIGRlZmF1bHRDdXJyZW50LFxuICBkaXNhYmxlZCxcbiAgaGlkZVdoZW5TaW5nbGVQYWdlLFxuICBvbkNoYW5nZSxcbiAgcGFnZVNpemUsXG4gIHNob3dCdXR0b25KdW1wZXIsXG4gIHNob3dJbnB1dEp1bXBlcixcbiAgc2l6ZTogc2l6ZVByb3AsXG4gIHRoZW1lLFxuICB0b3RhbCxcbiAgLi4ub3RoZXJQcm9wc1xufTogSVBhZ2luYXRpb25Qcm9wcykgPT4ge1xuICBjb25zdCBbY3VycmVudCwgc2V0Q3VycmVudF0gPSB1c2VTdGF0ZTxudW1iZXI+KFxuICAgIChjdXJyZW50UHJvcCAhPT0gbnVsbCA/IGN1cnJlbnRQcm9wIDogZGVmYXVsdEN1cnJlbnQpIHx8IDFcbiAgKVxuICBjb25zdCBbaW5wdXRWYWx1ZSwgc2V0SW5wdXRWYWx1ZV0gPSB1c2VTdGF0ZShcIlwiKVxuXG4gIC8vIOebuOW9k+S6jueUn+WRveWRqOacnyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcbiAgaWYgKFxuICAgIGN1cnJlbnRQcm9wICE9PSBudWxsICYmXG4gICAgY3VycmVudFByb3AgIT09IHVuZGVmaW5lZCAmJlxuICAgIGN1cnJlbnQgIT09IGN1cnJlbnRQcm9wXG4gICkge1xuICAgIHNldEN1cnJlbnQoY3VycmVudFByb3ApXG4gIH1cblxuICBjb25zdCB7IHNpemU6IHNpemVDb250ZXh0IH0gPSB1c2VDb250ZXh0KENvbmZpZ0NvbnRleHQpXG4gIGNvbnN0IHNpemUgPSBnZXRDb21wdXRlZFNpemUoc2l6ZVByb3AsIHNpemVDb250ZXh0KVxuXG4gIGNvbnN0IGNsYXNzU2V0ID0gY2xhc3NOYW1lcyhcbiAgICBjbGFzc05hbWUsXG4gICAgYCR7cHJlZml4fS1iYXNlYCxcbiAgICBgJHtwcmVmaXh9LSR7c2l6ZX1gLFxuICAgIHtcbiAgICAgIFtgJHtwcmVmaXh9LSR7YWxpZ259YF06IGFsaWduLFxuICAgICAgW2Ake3ByZWZpeH0tZGlzYWJsZWRgXTogZGlzYWJsZWQsXG4gICAgfVxuICApXG5cbiAgd2FybmluZyhOdW1iZXIuaXNJbnRlZ2VyKGN1cnJlbnQpLCBcIlBhZ2luYXRpb25cIiwgXCJjdXJyZW50IOWAvOmcgOimgeaYr+ato+aVtOaVsFwiKVxuXG4gIHdhcm5pbmcoXG4gICAgIShcbiAgICAgIGN1cnJlbnQgPCAxIHx8XG4gICAgICAoY3VycmVudCA+IE1hdGguY2VpbCgodG90YWwgfHwgMCkgLyAocGFnZVNpemUgfHwgMTApKSAmJiBjdXJyZW50ICE9PSAxKVxuICAgICksXG4gICAgXCJQYWdpbmF0aW9uXCIsXG4gICAgYGN1cnJlbnQg6ZyA6KaB5pe25Zyo5q2j56Gu6IyD5Zu05YaF55qE5q2j5pW05pWw77yMdG90YWw6ICR7dG90YWx977yMcGFnZVNpemXvvJoke3BhZ2VTaXplfWBcbiAgKVxuXG4gIGxldCBwYWdlTnVtYmVyID0gMVxuICBpZiAodG90YWwgJiYgcGFnZVNpemUpIHtcbiAgICBwYWdlTnVtYmVyID0gTWF0aC5tYXgoTWF0aC5jZWlsKHRvdGFsIC8gcGFnZVNpemUpLCAxKVxuICB9XG4gIGNvbnN0IHByZXZEaXNhYmxlZCA9IGN1cnJlbnQgPT09IDFcbiAgY29uc3QgbmV4dERpc2FibGVkID0gY3VycmVudCA9PT0gcGFnZU51bWJlclxuXG4gIGlmIChwYWdlTnVtYmVyID09PSAxICYmIGhpZGVXaGVuU2luZ2xlUGFnZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBoYW5kbGVKdW1wID0gKHR5cGU6IHN0cmluZykgPT4ge1xuICAgIGxldCBuZXdQYWdlXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwiZmlyc3RcIjpcbiAgICAgICAgbmV3UGFnZSA9IDFcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJwcmV2XCI6XG4gICAgICAgIG5ld1BhZ2UgPSBjdXJyZW50IC0gMVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcIm5leHRcIjpcbiAgICAgICAgbmV3UGFnZSA9IGN1cnJlbnQgKyAxXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibGFzdFwiOlxuICAgICAgICBpZiAodG90YWwgJiYgcGFnZVNpemUpIHtcbiAgICAgICAgICBuZXdQYWdlID0gTWF0aC5tYXgoTWF0aC5jZWlsKHRvdGFsIC8gcGFnZVNpemUpLCAxKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgIH1cblxuICAgIGlmIChuZXdQYWdlICYmIHBhZ2VTaXplKSB7XG4gICAgICBpZiAoY3VycmVudFByb3AgPT09IG51bGwpIHtcbiAgICAgICAgc2V0Q3VycmVudChuZXdQYWdlKVxuICAgICAgfVxuICAgICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICAgIG9uQ2hhbmdlKG5ld1BhZ2UsIHBhZ2VTaXplKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUlucHV0SnVtcCA9ICgpID0+IHtcbiAgICBjb25zdCBwYXJzZXZhbHVlID0gcGFyc2VJbnQoaW5wdXRWYWx1ZSwgMTApXG4gICAgaWYgKGlzTmFOKHBhcnNldmFsdWUpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgbGV0IHZhbHVlID0gTWF0aC5tYXgocGFyc2V2YWx1ZSwgMSlcbiAgICBpZiAodG90YWwgJiYgcGFnZVNpemUpIHtcbiAgICAgIHZhbHVlID0gTWF0aC5taW4odmFsdWUsIE1hdGgubWF4KE1hdGguY2VpbCh0b3RhbCAvIHBhZ2VTaXplKSwgMSkpXG4gICAgfVxuICAgIGlmIChjdXJyZW50UHJvcCA9PT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudCh2YWx1ZSlcbiAgICB9XG4gICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICBvbkNoYW5nZSh2YWx1ZSwgcGFnZVNpemUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NTZXR9IGRhdGEtY3VycmVudD17Y3VycmVudH0gey4uLm90aGVyUHJvcHN9PlxuICAgICAge3Nob3dCdXR0b25KdW1wZXIgJiYgKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblJpZ2h0OiBcIjhweFwiIH19XG4gICAgICAgICAgbGVmdEljb249XCJhcnJvdy1sZWZ0LWZpcnN0XCJcbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIHRoZW1lPXt0aGVtZX1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXByZXZEaXNhYmxlZCkgaGFuZGxlSnVtcChcImZpcnN0XCIpXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCR7cHJlZml4fS1idG4gJHtwcmVmaXh9LWJ0bi1sZWZ0YH1cbiAgICAgICAgcm9sZT1cIm5vbmVcIlxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaWYgKCFwcmV2RGlzYWJsZWQpIGhhbmRsZUp1bXAoXCJwcmV2XCIpXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtwcmVmaXh9LXRleHRgfT5cbiAgICAgICAge2N1cnJlbnR9IC8ge3BhZ2VOdW1iZXJ9XG4gICAgICA8L3NwYW4+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCR7cHJlZml4fS1idG4gJHtwcmVmaXh9LWJ0bi1yaWdodGB9XG4gICAgICAgIHJvbGU9XCJub25lXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGlmICghbmV4dERpc2FibGVkKSBoYW5kbGVKdW1wKFwibmV4dFwiKVxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICAgIHtzaG93QnV0dG9uSnVtcGVyICYmIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiBcIjhweFwiIH19XG4gICAgICAgICAgbGVmdEljb249XCJhcnJvdy1yaWdodC1sYXN0XCJcbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIHRoZW1lPXt0aGVtZX1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW5leHREaXNhYmxlZCkgaGFuZGxlSnVtcChcImxhc3RcIilcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtzaG93SW5wdXRKdW1wZXIgJiYgW1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBrZXk9ezB9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWlucHV0YH1cbiAgICAgICAgICBvbkNoYW5nZT17KGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgc2V0SW5wdXRWYWx1ZShlLnRhcmdldC52YWx1ZSlcbiAgICAgICAgICB9XG4gICAgICAgIC8+LFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcm9sZT1cIm5vbmVcIlxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7cHJlZml4fS1pbnB1dC1idG5gfVxuICAgICAgICAgIGtleT17MX1cbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVJbnB1dEp1bXB9XG4gICAgICAgID5cbiAgICAgICAgICDot7PovaxcbiAgICAgICAgPC9kaXY+LFxuICAgICAgXX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5QYWdpbmF0aW9uLmRpc3BsYXlOYW1lID0gXCJQYWdpbmF0aW9uXCJcblxuUGFnaW5hdGlvbi5wcm9wVHlwZXMgPSB7XG4gIC8qKlxuICAgKiDlr7npvZDmlrnlvI9cbiAgICovXG4gIGFsaWduOiBQcm9wVHlwZXMub25lT2YoW1wibGVmdFwiLCBcImNlbnRlclwiLCBcInJpZ2h0XCJdKSxcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKipcbiAgICog5b2T5YmN6aG15pWwXG4gICAqL1xuICBjdXJyZW50OiBQcm9wVHlwZXMubnVtYmVyLFxuICAvKipcbiAgICog6buY6K6k55qE5b2T5YmN6aG15pWwXG4gICAqL1xuICBkZWZhdWx0Q3VycmVudDogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqXG4gICAqIOaYr+WQpuemgeeUqFxuICAgKi9cbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAvKipcbiAgICog5Y+q5pyJ5LiA6aG15pe2IHJldHVybiBudWxsXG4gICAqL1xuICBoaWRlV2hlblNpbmdsZVBhZ2U6IFByb3BUeXBlcy5ib29sLFxuICAvKipcbiAgICog5b2T5YmN6aG15Y+Y5YyW5pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqXG4gICAqIOiuvue9ruavj+mhteadoeaVsO+8jOm7mOiupCAxMCDmnaFcbiAgICovXG4gIHBhZ2VTaXplOiBQcm9wVHlwZXMubnVtYmVyLFxuICAvKipcbiAgICog5piv5ZCm5pi+56S66aaW6aG15bC+6aG16Lez6L2s5oyJ6ZKuXG4gICAqL1xuICBzaG93QnV0dG9uSnVtcGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqXG4gICAqIOaYr+WQpuaYvuekuui3s+i9rOi+k+WFpeahhlxuICAgKi9cbiAgc2hvd0lucHV0SnVtcGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqXG4gICAqIOiuvue9ruWwuuWvuFxuICAgKi9cbiAgc2l6ZTogUHJvcFR5cGVzLm9uZU9mKFtcIm1pbmlcIiwgXCJzbWFsbFwiLCBcIm1lZGl1bVwiLCBcImxhcmdlXCJdKSxcbiAgLyoqXG4gICAqIOiuvue9ruS4u+mimFxuICAgKi9cbiAgdGhlbWU6IFByb3BUeXBlcy5vbmVPZihbbnVsbCwgXCJsaWdodFwiXSksXG4gIC8qKlxuICAgKiDmlbDmja7mgLvmlbBcbiAgICovXG4gIHRvdGFsOiBQcm9wVHlwZXMubnVtYmVyLFxufVxuXG5QYWdpbmF0aW9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWxpZ246IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIGN1cnJlbnQ6IG51bGwsXG4gIGRlZmF1bHRDdXJyZW50OiAxLFxuICBkaXNhYmxlZDogZmFsc2UsXG4gIGhpZGVXaGVuU2luZ2xlUGFnZTogdHJ1ZSxcbiAgb25DaGFuZ2U6IG5vb3AsXG4gIHBhZ2VTaXplOiAxMCxcbiAgc2hvd0J1dHRvbkp1bXBlcjogZmFsc2UsXG4gIHNob3dJbnB1dEp1bXBlcjogdHJ1ZSxcbiAgc2l6ZTogXCJzbWFsbFwiLFxuICB0aGVtZTogbnVsbCxcbiAgdG90YWw6IDAsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFBhZ2luYXRpb25cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7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