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>
173 lines (145 loc) • 24.2 kB
JavaScript
var _excluded = ["checked", "children", "className", "disabled", "helper", "helperIcon", "helperProps", "onChange", "onClick", "onMouseDown", "size", "value"];
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 _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 _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, { forwardRef, useContext, useRef, useState } from "react";
import PropTypes from "prop-types";
import classNames from "classnames";
import { GroupContext } from "./Context";
import { ConfigContext, getComputedSize } from "../config-provider";
import Group from "./Group";
import Icon from "../icon";
import Popover from "../popover";
import { useActive } from "../_util/hooks/use-active";
import "./style";
var prefix = "adui-radio";
var Radio = forwardRef(function (_ref, refProp) {
var _classNames;
var checkedProp = _ref.checked,
children = _ref.children,
className = _ref.className,
disabled = _ref.disabled,
helper = _ref.helper,
helperIcon = _ref.helperIcon,
helperProps = _ref.helperProps,
onChange = _ref.onChange,
onClick = _ref.onClick,
onMouseDown = _ref.onMouseDown,
sizeProp = _ref.size,
value = _ref.value,
otherProps = _objectWithoutProperties(_ref, _excluded);
var _useState = useState(!!checkedProp),
_useState2 = _slicedToArray(_useState, 2),
checked = _useState2[0],
setChecked = _useState2[1];
var _useContext = useContext(GroupContext),
disabledContext = _useContext.disabled,
handleGroupValueChange = _useContext.handleGroupValueChange,
sizeContext = _useContext.size,
valueContext = _useContext.value;
var labelRef = useRef(null);
var ref = refProp || labelRef;
var _useActive = useActive({
ref: ref
}),
handleMouseDown = _useActive.handleMouseDown;
if (checkedProp !== null && checked !== !!checkedProp) {
setChecked(!!checkedProp);
}
var _useContext2 = useContext(ConfigContext),
sizeConfig = _useContext2.size;
var size = getComputedSize(sizeProp, sizeContext, sizeConfig);
var popover = helper ? React.createElement("span", {
role: "none",
onClick: function onClick(e) {
e.stopPropagation();
}
}, React.createElement(Popover, _extends({
alignEdge: false,
popup: helper
}, helperProps), React.createElement(Icon, {
icon: helperIcon || "help-circle",
color: "var(--gray-600)",
interactive: true,
className: "".concat(prefix, "-helper")
}))) : null;
var classSet = classNames(className, "".concat(prefix, "-base"), "".concat(prefix, "-").concat(size), (_classNames = {}, _defineProperty(_classNames, "".concat(prefix, "-checked"), valueContext !== null && valueContext !== undefined ? valueContext === (value === null ? children === null || children === void 0 ? void 0 : children.toString() : value) : checked), _defineProperty(_classNames, "".concat(prefix, "-noChildren"), !children), _defineProperty(_classNames, "".concat(prefix, "-disabled"), disabledContext || disabled), _classNames));
var handleClick = function handleClick(e) {
if (onClick) {
onClick(e);
}
var computedValue = value === null ? children === null || children === void 0 ? void 0 : children.toString() : value;
if ((valueContext !== null ? valueContext === computedValue : checked) || disabled || disabledContext) {
return;
}
if (handleGroupValueChange) {
handleGroupValueChange(computedValue === undefined ? "" : computedValue);
} else {
if (checkedProp === null) {
setChecked(true);
}
if (onChange) {
onChange(true);
}
}
};
var handleKeyDown = function handleKeyDown(e) {
if (e.key === "Enter") {
handleClick(e);
}
};
var handleLabelMouseDown = function handleLabelMouseDown(e) {
if (onMouseDown) {
onMouseDown(e);
}
handleMouseDown();
};
return React.createElement("label", _extends({
"aria-checked": checked,
className: classSet,
onClick: handleClick,
onKeyDown: handleKeyDown,
ref: ref,
role: "radio",
onMouseDown: handleLabelMouseDown
}, otherProps), React.createElement("span", {
className: "".concat(prefix, "-indicator")
}), !!children && React.createElement("span", null, children), popover);
});
Radio.Group = Group;
Radio.displayName = "Radio";
Radio.propTypes = {
checked: PropTypes.oneOf([null, true, false]),
children: PropTypes.node,
className: PropTypes.string,
disabled: PropTypes.bool,
helper: PropTypes.node,
helperIcon: PropTypes.any,
helperProps: PropTypes.object,
onChange: PropTypes.func,
onClick: PropTypes.func,
size: PropTypes.oneOf(["mini", "small", "medium", "large"]),
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
};
Radio.defaultProps = {
checked: null,
children: "",
className: undefined,
disabled: false,
helper: null,
helperIcon: "help-circle",
helperProps: {},
onChange: null,
onClick: null,
size: "small",
value: null
};
export default Radio;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZvcndhcmRSZWYiLCJ1c2VDb250ZXh0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJQcm9wVHlwZXMiLCJjbGFzc05hbWVzIiwiR3JvdXBDb250ZXh0IiwiQ29uZmlnQ29udGV4dCIsImdldENvbXB1dGVkU2l6ZSIsIkdyb3VwIiwiSWNvbiIsIlBvcG92ZXIiLCJ1c2VBY3RpdmUiLCJwcmVmaXgiLCJSYWRpbyIsInJlZlByb3AiLCJjaGVja2VkUHJvcCIsImNoZWNrZWQiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiaGVscGVyIiwiaGVscGVySWNvbiIsImhlbHBlclByb3BzIiwib25DaGFuZ2UiLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJzaXplUHJvcCIsInNpemUiLCJ2YWx1ZSIsIm90aGVyUHJvcHMiLCJzZXRDaGVja2VkIiwiZGlzYWJsZWRDb250ZXh0IiwiaGFuZGxlR3JvdXBWYWx1ZUNoYW5nZSIsInNpemVDb250ZXh0IiwidmFsdWVDb250ZXh0IiwibGFiZWxSZWYiLCJyZWYiLCJoYW5kbGVNb3VzZURvd24iLCJzaXplQ29uZmlnIiwicG9wb3ZlciIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJjbGFzc1NldCIsInVuZGVmaW5lZCIsInRvU3RyaW5nIiwiaGFuZGxlQ2xpY2siLCJjb21wdXRlZFZhbHVlIiwiaGFuZGxlS2V5RG93biIsImtleSIsImhhbmRsZUxhYmVsTW91c2VEb3duIiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJvbmVPZiIsIm5vZGUiLCJzdHJpbmciLCJib29sIiwiYW55Iiwib2JqZWN0IiwiZnVuYyIsIm9uZU9mVHlwZSIsIm51bWJlciIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvcmFkaW8vUmFkaW8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLW5vbmludGVyYWN0aXZlLWVsZW1lbnQtdG8taW50ZXJhY3RpdmUtcm9sZSAqL1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZUNvbnRleHQsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgeyBHcm91cENvbnRleHQgfSBmcm9tIFwiLi9Db250ZXh0XCJcbmltcG9ydCB7IENvbmZpZ0NvbnRleHQsIGdldENvbXB1dGVkU2l6ZSB9IGZyb20gXCIuLi9jb25maWctcHJvdmlkZXJcIlxuaW1wb3J0IEdyb3VwIGZyb20gXCIuL0dyb3VwXCJcbmltcG9ydCBJY29uLCB7IEljb25OYW1lcyB9IGZyb20gXCIuLi9pY29uXCJcbmltcG9ydCBQb3BvdmVyLCB7IElQb3BvdmVyUHJvcHMgfSBmcm9tIFwiLi4vcG9wb3ZlclwiXG5pbXBvcnQgeyB1c2VBY3RpdmUgfSBmcm9tIFwiLi4vX3V0aWwvaG9va3MvdXNlLWFjdGl2ZVwiXG5pbXBvcnQgXCIuL3N0eWxlXCJcblxuY29uc3QgcHJlZml4ID0gXCJhZHVpLXJhZGlvXCJcblxuZXhwb3J0IGludGVyZmFjZSBJUmFkaW9Qcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICAvKipcbiAgICog5piv5ZCm6YCJ5LitXG4gICAqL1xuICBjaGVja2VkPzogbnVsbCB8IGJvb2xlYW5cbiAgLyoqXG4gICAqIOWtkOiKgueCuVxuICAgKi9cbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiDmmK/lkKbnpoHnlKhcbiAgICovXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAvKipcbiAgICog5Yqg5YWl6Zeu5Y+35rCU5rOh5o+Q56S65YaF5a65XG4gICAqL1xuICBoZWxwZXI/OiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIOiHquWumuS5iemXruWPt+awlOazoeeahCBJY29uXG4gICAqL1xuICBoZWxwZXJJY29uPzogSWNvbk5hbWVzXG4gIC8qKlxuICAgKiDpl67lj7fmsJTms6Hmj5DnpLrnmoQgcHJvcHPvvIzkvJrlsIbmraTlr7nosaHpg73kvKDpgJLnu5kgPFBvcG92ZXIgLz5cbiAgICovXG4gIGhlbHBlclByb3BzPzogSVBvcG92ZXJQcm9wc1xuICAvKipcbiAgICog6YCJ5Lit5oCB5Y+R55Sf5Y+Y5YyW5pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2hhbmdlPzogKChjaGVja2VkOiBib29sZWFuKSA9PiB2b2lkKSB8IG51bGxcbiAgLyoqXG4gICAqIOeCueWHu+aXtueahCBoYW5kbGVyXG4gICAqL1xuICBvbkNsaWNrPzpcbiAgICB8ICgoXG4gICAgICAgIGU6XG4gICAgICAgICAgfCBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICAgICAgfCBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICApID0+IHZvaWQpXG4gICAgfCBudWxsXG4gIC8qKlxuICAgKiBvbk1vdXNlRG93biDml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25Nb3VzZURvd24/OiAoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MTGFiZWxFbGVtZW50PikgPT4gdm9pZFxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplPzogXCJtaW5pXCIgfCBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiXG4gIC8qKlxuICAgKiDlgLzvvIzlj6rlnKjkvb/nlKggUmFkaW8uR3JvdXAg5pe25Lya6K+75Y+W5L2/55SoXG4gICAqL1xuICB2YWx1ZT86IG51bGwgfCBSZWFjdC5SZWFjdFRleHRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmFkaW9cbiAgZXh0ZW5kcyBSZWFjdC5Gb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50PFxuICAgIElSYWRpb1Byb3BzICYgUmVhY3QuUmVmQXR0cmlidXRlczxIVE1MTGFiZWxFbGVtZW50PlxuICA+IHtcbiAgR3JvdXA6IHR5cGVvZiBHcm91cFxufVxuXG4vKipcbiAqIOWNlemAieaPkOS+m+e7meeUqOaIt+WcqOS6kuaWpeeahOWkmuS4qumAiemhueS4re+8jOWvuemAiemhueWGheWuuei/m+ihjOWNleS4qumAieaLqeOAglxuICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBSYWRpbzogSVJhZGlvID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoZWNrZWQ6IGNoZWNrZWRQcm9wLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBjbGFzc05hbWUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGhlbHBlcixcbiAgICAgIGhlbHBlckljb24sXG4gICAgICBoZWxwZXJQcm9wcyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25DbGljayxcbiAgICAgIG9uTW91c2VEb3duLFxuICAgICAgc2l6ZTogc2l6ZVByb3AsXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLm90aGVyUHJvcHNcbiAgICB9OiBJUmFkaW9Qcm9wcyxcbiAgICByZWZQcm9wXG4gICkgPT4ge1xuICAgIGNvbnN0IFtjaGVja2VkLCBzZXRDaGVja2VkXSA9IHVzZVN0YXRlKCEhY2hlY2tlZFByb3ApXG4gICAgY29uc3Qge1xuICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkQ29udGV4dCxcbiAgICAgIGhhbmRsZUdyb3VwVmFsdWVDaGFuZ2UsXG4gICAgICBzaXplOiBzaXplQ29udGV4dCxcbiAgICAgIHZhbHVlOiB2YWx1ZUNvbnRleHQsXG4gICAgfSA9IHVzZUNvbnRleHQoR3JvdXBDb250ZXh0KVxuICAgIGNvbnN0IGxhYmVsUmVmID0gdXNlUmVmPEhUTUxMYWJlbEVsZW1lbnQ+KG51bGwpXG4gICAgY29uc3QgcmVmID0gcmVmUHJvcCB8fCBsYWJlbFJlZlxuICAgIGNvbnN0IHsgaGFuZGxlTW91c2VEb3duIH0gPSB1c2VBY3RpdmUoeyByZWYgfSlcblxuICAgIC8vIOebuOW9k+S6jueUn+WRveWRqOacnyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcbiAgICBpZiAoY2hlY2tlZFByb3AgIT09IG51bGwgJiYgY2hlY2tlZCAhPT0gISFjaGVja2VkUHJvcCkge1xuICAgICAgc2V0Q2hlY2tlZCghIWNoZWNrZWRQcm9wKVxuICAgIH1cblxuICAgIGNvbnN0IHsgc2l6ZTogc2l6ZUNvbmZpZyB9ID0gdXNlQ29udGV4dChDb25maWdDb250ZXh0KVxuXG4gICAgY29uc3Qgc2l6ZSA9IGdldENvbXB1dGVkU2l6ZShzaXplUHJvcCwgc2l6ZUNvbnRleHQsIHNpemVDb25maWcpXG5cbiAgICBjb25zdCBwb3BvdmVyID0gaGVscGVyID8gKFxuICAgICAgPHNwYW5cbiAgICAgICAgcm9sZT1cIm5vbmVcIlxuICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFBvcG92ZXIgYWxpZ25FZGdlPXtmYWxzZX0gcG9wdXA9e2hlbHBlcn0gey4uLmhlbHBlclByb3BzfT5cbiAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgaWNvbj17aGVscGVySWNvbiB8fCBcImhlbHAtY2lyY2xlXCJ9XG4gICAgICAgICAgICBjb2xvcj1cInZhcigtLWdyYXktNjAwKVwiXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWhlbHBlcmB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgPC9zcGFuPlxuICAgICkgOiBudWxsXG5cbiAgICAvKipcbiAgICAgKiDlvZPmnIkgcmFkaW9Hcm91cCBjb250ZXh0IOaXtu+8jOS9v+eUqCB2YWx1Ze+8mlxuICAgICAqIOWmguaenOWtmOWcqCB2YWx1ZSBwcm9w77yM5YiZ55u05o6l5L2/55SoIHZhbHVl77ybXG4gICAgICog5aaC5p6c5LiN5a2Y5Zyo77yM5bCxIHN0cmluZyDljJYgY2hpbGRyZW4g5L2c5Li6IHZhbHVl44CCXG4gICAgICovXG4gICAgY29uc3QgY2xhc3NTZXQgPSBjbGFzc05hbWVzKFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgYCR7cHJlZml4fS1iYXNlYCxcbiAgICAgIGAke3ByZWZpeH0tJHtzaXplfWAsXG4gICAgICB7XG4gICAgICAgIFtgJHtwcmVmaXh9LWNoZWNrZWRgXTpcbiAgICAgICAgICB2YWx1ZUNvbnRleHQgIT09IG51bGwgJiYgdmFsdWVDb250ZXh0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdmFsdWVDb250ZXh0ID09PSAodmFsdWUgPT09IG51bGwgPyBjaGlsZHJlbj8udG9TdHJpbmcoKSA6IHZhbHVlKVxuICAgICAgICAgICAgOiBjaGVja2VkLFxuICAgICAgICBbYCR7cHJlZml4fS1ub0NoaWxkcmVuYF06ICFjaGlsZHJlbixcbiAgICAgICAgW2Ake3ByZWZpeH0tZGlzYWJsZWRgXTogZGlzYWJsZWRDb250ZXh0IHx8IGRpc2FibGVkLFxuICAgICAgfVxuICAgIClcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKFxuICAgICAgZTpcbiAgICAgICAgfCBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICAgIHwgUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MTGFiZWxFbGVtZW50PlxuICAgICkgPT4ge1xuICAgICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgICAgb25DbGljayhlKVxuICAgICAgfVxuICAgICAgY29uc3QgY29tcHV0ZWRWYWx1ZSA9IHZhbHVlID09PSBudWxsID8gY2hpbGRyZW4/LnRvU3RyaW5nKCkgOiB2YWx1ZVxuICAgICAgLyoqXG4gICAgICAgKiDljZXpgInkuI7lpJrpgInlpITnkIbngrnlh7vnmoTkuI3lkIzlnKjkuo7vvJpcbiAgICAgICAqIOWNlemAiemAieS4reeKtuaAgeaYr+WNlemhueeahO+8jOS4gOaXpumAieS4reS4jeWGjeinpuWPkeS6i+S7tuOAglxuICAgICAgICovXG4gICAgICBpZiAoXG4gICAgICAgICh2YWx1ZUNvbnRleHQgIT09IG51bGwgPyB2YWx1ZUNvbnRleHQgPT09IGNvbXB1dGVkVmFsdWUgOiBjaGVja2VkKSB8fFxuICAgICAgICBkaXNhYmxlZCB8fFxuICAgICAgICBkaXNhYmxlZENvbnRleHRcbiAgICAgICkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChoYW5kbGVHcm91cFZhbHVlQ2hhbmdlKSB7XG4gICAgICAgIGhhbmRsZUdyb3VwVmFsdWVDaGFuZ2UoY29tcHV0ZWRWYWx1ZSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IGNvbXB1dGVkVmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoY2hlY2tlZFByb3AgPT09IG51bGwpIHtcbiAgICAgICAgICBzZXRDaGVja2VkKHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICAgICAgb25DaGFuZ2UodHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MTGFiZWxFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgaGFuZGxlQ2xpY2soZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVMYWJlbE1vdXNlRG93biA9IChcbiAgICAgIGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTExhYmVsRWxlbWVudCwgTW91c2VFdmVudD5cbiAgICApID0+IHtcbiAgICAgIGlmIChvbk1vdXNlRG93bikge1xuICAgICAgICBvbk1vdXNlRG93bihlKVxuICAgICAgfVxuXG4gICAgICBoYW5kbGVNb3VzZURvd24oKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8bGFiZWxcbiAgICAgICAgYXJpYS1jaGVja2VkPXtjaGVja2VkfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzU2V0fVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgICAgb25Nb3VzZURvd249e2hhbmRsZUxhYmVsTW91c2VEb3dufVxuICAgICAgICB7Li4ub3RoZXJQcm9wc31cbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWluZGljYXRvcmB9IC8+XG4gICAgICAgIHshIWNoaWxkcmVuICYmIDxzcGFuPntjaGlsZHJlbn08L3NwYW4+fVxuICAgICAgICB7cG9wb3Zlcn1cbiAgICAgIDwvbGFiZWw+XG4gICAgKVxuICB9XG4pXG5cblJhZGlvLkdyb3VwID0gR3JvdXBcblxuUmFkaW8uZGlzcGxheU5hbWUgPSBcIlJhZGlvXCJcblxuUmFkaW8ucHJvcFR5cGVzID0ge1xuICAvKipcbiAgICog5piv5ZCm6YCJ5LitXG4gICAqL1xuICBjaGVja2VkOiBQcm9wVHlwZXMub25lT2YoW251bGwsIHRydWUsIGZhbHNlXSksXG4gIC8qKlxuICAgKiDlrZDoioLngrlcbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKipcbiAgICog5piv5ZCm56aB55SoXG4gICAqL1xuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiDliqDlhaXpl67lj7fmsJTms6Hmj5DnpLrlhoXlrrlcbiAgICovXG4gIGhlbHBlcjogUHJvcFR5cGVzLm5vZGUsXG4gIC8qKlxuICAgKiDoh6rlrprkuYnpl67lj7fmsJTms6HnmoQgSWNvblxuICAgKi9cbiAgaGVscGVySWNvbjogUHJvcFR5cGVzLmFueSxcbiAgLyoqXG4gICAqIOmXruWPt+awlOazoeaPkOekuueahCBwcm9wc++8jOS8muWwhuatpOWvueixoemDveS8oOmAkue7mSA8UG9wb3ZlciAvPlxuICAgKi9cbiAgaGVscGVyUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKlxuICAgKiDpgInkuK3mgIHlj5HnlJ/lj5jljJbml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKipcbiAgICog54K55Ye75pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplOiBQcm9wVHlwZXMub25lT2YoW1wibWluaVwiLCBcInNtYWxsXCIsIFwibWVkaXVtXCIsIFwibGFyZ2VcIl0pLFxuICAvKipcbiAgICog5YC877yM5Y+q5Zyo5L2/55SoIFJhZGlvLkdyb3VwIOaXtuS8muivu+WPluS9v+eUqFxuICAgKi9cbiAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbn1cblxuUmFkaW8uZGVmYXVsdFByb3BzID0ge1xuICBjaGVja2VkOiBudWxsLFxuICBjaGlsZHJlbjogXCJcIixcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgaGVscGVyOiBudWxsLFxuICBoZWxwZXJJY29uOiBcImhlbHAtY2lyY2xlXCIsXG4gIGhlbHBlclByb3BzOiB7fSxcbiAgb25DaGFuZ2U6IG51bGwsXG4gIG9uQ2xpY2s6IG51bGwsXG4gIHNpemU6IFwic21hbGxcIixcbiAgdmFsdWU6IG51bGwsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFJhZGlvXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxPQUFPQSxLQUFQLElBQWdCQyxVQUFoQixFQUE0QkMsVUFBNUIsRUFBd0NDLE1BQXhDLEVBQWdEQyxRQUFoRCxRQUFnRSxPQUFoRTtBQUNBLE9BQU9DLFNBQVAsTUFBc0IsWUFBdEI7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