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>
139 lines • 24.4 kB
JavaScript
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); }
var _excluded = ["checked", "children", "className", "disabled", "helper", "helperIcon", "helperProps", "indeterminate", "onChange", "onClick", "size", "value"];
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; }
import React, { forwardRef, useContext, useState } from "react";
import PropTypes from "prop-types";
import classNames from "classnames";
import { GroupContext } from "./Context";
import Group from "./Group";
import Icon from "../icon";
import Popover from "../popover";
import { ConfigContext, getComputedSize } from "../config-provider";
import "./style";
var prefix = "adui-channels-checkbox";
var Checkbox = forwardRef(function (_ref, ref) {
var checkedProp = _ref.checked,
children = _ref.children,
className = _ref.className,
disabled = _ref.disabled,
helper = _ref.helper,
helperIcon = _ref.helperIcon,
helperProps = _ref.helperProps,
indeterminate = _ref.indeterminate,
onChange = _ref.onChange,
onClick = _ref.onClick,
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 _useContext2 = useContext(ConfigContext),
sizeConfig = _useContext2.size;
if (checkedProp !== null && checked !== checkedProp) {
setChecked(!!checkedProp);
}
var size = getComputedSize(sizeProp, sizeContext, sizeConfig);
var valueComputed = value !== null ? value : children === null || children === void 0 ? void 0 : children.toString();
var classSet = classNames(className, "".concat(prefix, "-base"), "".concat(prefix, "-").concat(size), _defineProperty(_defineProperty(_defineProperty({}, "".concat(prefix, "-checked"), indeterminate || (valueContext ? valueComputed && valueContext.includes(valueComputed) : checked)), "".concat(prefix, "-noChildren"), !children), "".concat(prefix, "-disabled"), disabledContext || disabled));
var popover = helper ? 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 handleClick = function handleClick(e) {
if (onClick) {
onClick(e);
}
if (disabled || disabledContext) {
return;
}
if (handleGroupValueChange && valueComputed) {
handleGroupValueChange(valueComputed);
} else {
if (checkedProp === null) {
setChecked(!checked);
}
if (onChange) {
onChange(!checked);
}
}
};
var handleKeyDown = function handleKeyDown(e) {
if (e.key === "Enter") {
handleClick(e);
}
};
return React.createElement("label", _extends({
"aria-checked": checked,
className: classSet,
onClick: handleClick,
onKeyDown: handleKeyDown,
ref: ref,
role: "checkbox"
}, otherProps), React.createElement("span", {
className: "".concat(prefix, "-indicator")
}, React.createElement("svg", {
width: "11",
height: "8",
viewBox: "0 0 11 8"
}, React.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M4.38909 6.86396C3.99856 7.25449 3.3654 7.25449 2.97487 6.86396L0.5 4.38909L1.20711 3.68198L3.68198 6.15685L9.33883 0.5L10.0459 1.20711L4.38909 6.86396Z",
strokeLinejoin: "round"
}))), !!children && React.createElement("span", null, children), popover);
});
Checkbox.Group = Group;
Checkbox.displayName = "Checkbox";
Checkbox.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,
indeterminate: PropTypes.bool,
onChange: PropTypes.func,
onClick: PropTypes.func,
size: PropTypes.oneOf(["mini", "small", "medium", "large"]),
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
};
Checkbox.defaultProps = {
checked: null,
children: "",
className: undefined,
disabled: false,
helper: null,
helperIcon: "help-circle",
helperProps: {},
indeterminate: false,
onChange: null,
onClick: null,
size: "small",
value: null
};
export default Checkbox;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZvcndhcmRSZWYiLCJ1c2VDb250ZXh0IiwidXNlU3RhdGUiLCJQcm9wVHlwZXMiLCJjbGFzc05hbWVzIiwiR3JvdXBDb250ZXh0IiwiR3JvdXAiLCJJY29uIiwiUG9wb3ZlciIsIkNvbmZpZ0NvbnRleHQiLCJnZXRDb21wdXRlZFNpemUiLCJwcmVmaXgiLCJDaGVja2JveCIsIl9yZWYiLCJyZWYiLCJjaGVja2VkUHJvcCIsImNoZWNrZWQiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiaGVscGVyIiwiaGVscGVySWNvbiIsImhlbHBlclByb3BzIiwiaW5kZXRlcm1pbmF0ZSIsIm9uQ2hhbmdlIiwib25DbGljayIsInNpemVQcm9wIiwic2l6ZSIsInZhbHVlIiwib3RoZXJQcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldENoZWNrZWQiLCJfdXNlQ29udGV4dCIsImRpc2FibGVkQ29udGV4dCIsImhhbmRsZUdyb3VwVmFsdWVDaGFuZ2UiLCJzaXplQ29udGV4dCIsInZhbHVlQ29udGV4dCIsIl91c2VDb250ZXh0MiIsInNpemVDb25maWciLCJ2YWx1ZUNvbXB1dGVkIiwidG9TdHJpbmciLCJjbGFzc1NldCIsImNvbmNhdCIsIl9kZWZpbmVQcm9wZXJ0eSIsImluY2x1ZGVzIiwicG9wb3ZlciIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsImFsaWduRWRnZSIsInBvcHVwIiwiaWNvbiIsImNvbG9yIiwiaW50ZXJhY3RpdmUiLCJoYW5kbGVDbGljayIsImUiLCJoYW5kbGVLZXlEb3duIiwia2V5Iiwib25LZXlEb3duIiwicm9sZSIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGxSdWxlIiwiY2xpcFJ1bGUiLCJkIiwic3Ryb2tlTGluZWpvaW4iLCJkaXNwbGF5TmFtZSIsInByb3BUeXBlcyIsIm9uZU9mIiwibm9kZSIsInN0cmluZyIsImJvb2wiLCJhbnkiLCJvYmplY3QiLCJmdW5jIiwib25lT2ZUeXBlIiwibnVtYmVyIiwiZGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vY29tcG9uZW50cy9jaGFubmVscy1jaGVja2JveC9DaGVja2JveC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tbm9uaW50ZXJhY3RpdmUtZWxlbWVudC10by1pbnRlcmFjdGl2ZS1yb2xlICovXG5pbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgeyBHcm91cENvbnRleHQgfSBmcm9tIFwiLi9Db250ZXh0XCJcbmltcG9ydCBHcm91cCBmcm9tIFwiLi9Hcm91cFwiXG5pbXBvcnQgSWNvbiwgeyBJY29uTmFtZXMgfSBmcm9tIFwiLi4vaWNvblwiXG5pbXBvcnQgUG9wb3ZlciwgeyBJUG9wb3ZlclByb3BzIH0gZnJvbSBcIi4uL3BvcG92ZXJcIlxuaW1wb3J0IHsgQ29uZmlnQ29udGV4dCwgZ2V0Q29tcHV0ZWRTaXplIH0gZnJvbSBcIi4uL2NvbmZpZy1wcm92aWRlclwiXG5pbXBvcnQgXCIuL3N0eWxlXCJcblxuY29uc3QgcHJlZml4ID0gXCJhZHVpLWNoYW5uZWxzLWNoZWNrYm94XCJcblxuZXhwb3J0IGludGVyZmFjZSBJQ2hlY2tib3hQcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICAvKipcbiAgICog5piv5ZCm6YCJ5LitXG4gICAqL1xuICBjaGVja2VkPzogbnVsbCB8IGJvb2xlYW5cbiAgLyoqXG4gICAqIOWtkOiKgueCuVxuICAgKi9cbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiDmmK/lkKbnpoHnlKhcbiAgICovXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAvKipcbiAgICog5Yqg5YWl6Zeu5Y+35rCU5rOh5o+Q56S65YaF5a65XG4gICAqL1xuICBoZWxwZXI/OiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIOiHquWumuS5iemXruWPt+awlOazoeeahCBJY29uXG4gICAqL1xuICBoZWxwZXJJY29uPzogSWNvbk5hbWVzXG4gIC8qKlxuICAgKiDpl67lj7fmsJTms6Hmj5DnpLrnmoQgcHJvcHPvvIzkvJrlsIbmraTlr7nosaHpg73kvKDpgJLnu5kgPFBvcG92ZXIgLz5cbiAgICovXG4gIGhlbHBlclByb3BzPzogSVBvcG92ZXJQcm9wc1xuICAvKipcbiAgICog6K6+572uIGluZGV0ZXJtaW5hdGUg54q25oCB77yM6LSf6LSj5LiU5LuF5LuF6LSf6LSj5qC35byP5o6n5Yi277yM6K+35Zyo5a6e546w5YWo6YCJ5pWI5p6c5pe25L2/55SoXG4gICAqL1xuICBpbmRldGVybWluYXRlPzogYm9vbGVhblxuICAvKipcbiAgICog6YCJ5Lit5oCB5Y+R55Sf5Y+Y5YyW5pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2hhbmdlPzogKChjaGVja2VkOiBib29sZWFuKSA9PiB2b2lkKSB8IG51bGxcbiAgLyoqXG4gICAqIOeCueWHu+aXtueahCBoYW5kbGVyXG4gICAqL1xuICBvbkNsaWNrPzpcbiAgICB8ICgoXG4gICAgICAgIGU6XG4gICAgICAgICAgfCBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICAgICAgfCBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICApID0+IHZvaWQpXG4gICAgfCBudWxsXG4gIC8qKlxuICAgKiDorr7nva7lsLrlr7hcbiAgICovXG4gIHNpemU/OiBcIm1pbmlcIiB8IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCJcbiAgLyoqXG4gICAqIOWAvO+8jOWPquWcqOS9v+eUqCBDaGVja2JveC5Hcm91cCDml7bkvJror7vlj5bkvb/nlKhcbiAgICovXG4gIHZhbHVlPzogbnVsbCB8IFJlYWN0LlJlYWN0VGV4dFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDaGVja2JveFxuICBleHRlbmRzIFJlYWN0LkZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8XG4gICAgSUNoZWNrYm94UHJvcHMgJiBSZWFjdC5SZWZBdHRyaWJ1dGVzPEhUTUxMYWJlbEVsZW1lbnQ+XG4gID4ge1xuICBHcm91cDogdHlwZW9mIEdyb3VwXG59XG5cbi8qKlxuICog5Yu+6YCJ5o+Q5L6b55So5oi35Zyo5aSa5Liq6YCJ6aG55Lit77yM5a+56YCJ6aG555qE5YaF5a656L+b6KGM5Y2V5oiW5aSa5Liq6YCJ5oup44CCXG4gKi9cbi8vIEB0cy1pZ25vcmVcbmNvbnN0IENoZWNrYm94OiBJQ2hlY2tib3ggPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgY2hlY2tlZDogY2hlY2tlZFByb3AsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgaGVscGVyLFxuICAgICAgaGVscGVySWNvbixcbiAgICAgIGhlbHBlclByb3BzLFxuICAgICAgaW5kZXRlcm1pbmF0ZSxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25DbGljayxcbiAgICAgIHNpemU6IHNpemVQcm9wLFxuICAgICAgdmFsdWUsXG4gICAgICAuLi5vdGhlclByb3BzXG4gICAgfTogSUNoZWNrYm94UHJvcHMsXG4gICAgcmVmXG4gICkgPT4ge1xuICAgIGNvbnN0IFtjaGVja2VkLCBzZXRDaGVja2VkXSA9IHVzZVN0YXRlKCEhY2hlY2tlZFByb3ApXG4gICAgY29uc3Qge1xuICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkQ29udGV4dCxcbiAgICAgIGhhbmRsZUdyb3VwVmFsdWVDaGFuZ2UsXG4gICAgICBzaXplOiBzaXplQ29udGV4dCxcbiAgICAgIHZhbHVlOiB2YWx1ZUNvbnRleHQsXG4gICAgfSA9IHVzZUNvbnRleHQoR3JvdXBDb250ZXh0KVxuICAgIGNvbnN0IHsgc2l6ZTogc2l6ZUNvbmZpZyB9ID0gdXNlQ29udGV4dChDb25maWdDb250ZXh0KVxuXG4gICAgLy8g55u45b2T5LqO55Sf5ZG95ZGo5pyfIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1xuICAgIGlmIChjaGVja2VkUHJvcCAhPT0gbnVsbCAmJiBjaGVja2VkICE9PSBjaGVja2VkUHJvcCkge1xuICAgICAgc2V0Q2hlY2tlZCghIWNoZWNrZWRQcm9wKVxuICAgIH1cblxuICAgIGNvbnN0IHNpemUgPSBnZXRDb21wdXRlZFNpemUoc2l6ZVByb3AsIHNpemVDb250ZXh0LCBzaXplQ29uZmlnKVxuXG4gICAgY29uc3QgdmFsdWVDb21wdXRlZCA9IHZhbHVlICE9PSBudWxsID8gdmFsdWUgOiBjaGlsZHJlbj8udG9TdHJpbmcoKVxuXG4gICAgLyoqXG4gICAgICog5b2T5pyJIGNvbnRleHQgY29udGV4dCDml7bvvIzkvb/nlKggdmFsdWXvvJpcbiAgICAgKiDlpoLmnpzlrZjlnKggdmFsdWUgcHJvcO+8jOWImeebtOaOpeS9v+eUqCB2YWx1Ze+8m1xuICAgICAqIOWmguaenOS4jeWtmOWcqO+8jOWwsSBzdHJpbmcg5YyWIGNoaWxkcmVuIOS9nOS4uiB2YWx1ZeOAglxuICAgICAqL1xuICAgIGNvbnN0IGNsYXNzU2V0ID0gY2xhc3NOYW1lcyhcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGAke3ByZWZpeH0tYmFzZWAsXG4gICAgICBgJHtwcmVmaXh9LSR7c2l6ZX1gLFxuICAgICAge1xuICAgICAgICBbYCR7cHJlZml4fS1jaGVja2VkYF06XG4gICAgICAgICAgaW5kZXRlcm1pbmF0ZSB8fFxuICAgICAgICAgICh2YWx1ZUNvbnRleHRcbiAgICAgICAgICAgID8gdmFsdWVDb21wdXRlZCAmJiB2YWx1ZUNvbnRleHQuaW5jbHVkZXModmFsdWVDb21wdXRlZClcbiAgICAgICAgICAgIDogY2hlY2tlZCksXG4gICAgICAgIFtgJHtwcmVmaXh9LW5vQ2hpbGRyZW5gXTogIWNoaWxkcmVuLFxuICAgICAgICBbYCR7cHJlZml4fS1kaXNhYmxlZGBdOiBkaXNhYmxlZENvbnRleHQgfHwgZGlzYWJsZWQsXG4gICAgICB9XG4gICAgKVxuXG4gICAgY29uc3QgcG9wb3ZlciA9IGhlbHBlciA/IChcbiAgICAgIDxQb3BvdmVyIGFsaWduRWRnZT17ZmFsc2V9IHBvcHVwPXtoZWxwZXJ9IHsuLi5oZWxwZXJQcm9wc30+XG4gICAgICAgIDxJY29uXG4gICAgICAgICAgaWNvbj17aGVscGVySWNvbiB8fCBcImhlbHAtY2lyY2xlXCJ9XG4gICAgICAgICAgY29sb3I9XCJ2YXIoLS1ncmF5LTYwMClcIlxuICAgICAgICAgIGludGVyYWN0aXZlXG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWhlbHBlcmB9XG4gICAgICAgIC8+XG4gICAgICA8L1BvcG92ZXI+XG4gICAgKSA6IG51bGxcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKFxuICAgICAgZTpcbiAgICAgICAgfCBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICAgIHwgUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MTGFiZWxFbGVtZW50PlxuICAgICkgPT4ge1xuICAgICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgICAgb25DbGljayhlKVxuICAgICAgfVxuICAgICAgaWYgKGRpc2FibGVkIHx8IGRpc2FibGVkQ29udGV4dCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChoYW5kbGVHcm91cFZhbHVlQ2hhbmdlICYmIHZhbHVlQ29tcHV0ZWQpIHtcbiAgICAgICAgaGFuZGxlR3JvdXBWYWx1ZUNoYW5nZSh2YWx1ZUNvbXB1dGVkKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGNoZWNrZWRQcm9wID09PSBudWxsKSB7XG4gICAgICAgICAgc2V0Q2hlY2tlZCghY2hlY2tlZClcbiAgICAgICAgfVxuICAgICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgICBvbkNoYW5nZSghY2hlY2tlZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MTGFiZWxFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgaGFuZGxlQ2xpY2soZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGxhYmVsXG4gICAgICAgIGFyaWEtY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc1NldH1cbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHJvbGU9XCJjaGVja2JveFwiXG4gICAgICAgIHsuLi5vdGhlclByb3BzfVxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake3ByZWZpeH0taW5kaWNhdG9yYH0+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjExXCIgaGVpZ2h0PVwiOFwiIHZpZXdCb3g9XCIwIDAgMTEgOFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgY2xpcFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgZD1cIk00LjM4OTA5IDYuODYzOTZDMy45OTg1NiA3LjI1NDQ5IDMuMzY1NCA3LjI1NDQ5IDIuOTc0ODcgNi44NjM5NkwwLjUgNC4zODkwOUwxLjIwNzExIDMuNjgxOThMMy42ODE5OCA2LjE1Njg1TDkuMzM4ODMgMC41TDEwLjA0NTkgMS4yMDcxMUw0LjM4OTA5IDYuODYzOTZaXCJcbiAgICAgICAgICAgICAgLy8gZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgLy8gZmlsbE9wYWNpdHk9XCIwLjlcIlxuICAgICAgICAgICAgICAvLyBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7ISFjaGlsZHJlbiAmJiA8c3Bhbj57Y2hpbGRyZW59PC9zcGFuPn1cbiAgICAgICAge3BvcG92ZXJ9XG4gICAgICA8L2xhYmVsPlxuICAgIClcbiAgfVxuKVxuXG5DaGVja2JveC5Hcm91cCA9IEdyb3VwXG5cbkNoZWNrYm94LmRpc3BsYXlOYW1lID0gXCJDaGVja2JveFwiXG5cbkNoZWNrYm94LnByb3BUeXBlcyA9IHtcbiAgLyoqXG4gICAqIOaYr+WQpumAieS4rVxuICAgKi9cbiAgY2hlY2tlZDogUHJvcFR5cGVzLm9uZU9mKFtudWxsLCB0cnVlLCBmYWxzZV0pLFxuICAvKipcbiAgICog5a2Q6IqC54K5XG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIC8qKlxuICAgKiDpmYTliqDnsbvlkI1cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqXG4gICAqIOaYr+WQpuemgeeUqFxuICAgKi9cbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAvKipcbiAgICog5Yqg5YWl6Zeu5Y+35rCU5rOh5o+Q56S65YaF5a65XG4gICAqL1xuICBoZWxwZXI6IFByb3BUeXBlcy5ub2RlLFxuICAvKipcbiAgICog6Ieq5a6a5LmJ6Zeu5Y+35rCU5rOh55qEIEljb25cbiAgICovXG4gIGhlbHBlckljb246IFByb3BUeXBlcy5hbnksXG4gIC8qKlxuICAgKiDpl67lj7fmsJTms6Hmj5DnpLrnmoQgcHJvcHPvvIzkvJrlsIbmraTlr7nosaHpg73kvKDpgJLnu5kgPFBvcG92ZXIgLz5cbiAgICovXG4gIGhlbHBlclByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKipcbiAgICog6K6+572uIGluZGV0ZXJtaW5hdGUg54q25oCB77yM6LSf6LSj5LiU5LuF5LuF6LSf6LSj5qC35byP5o6n5Yi277yM6K+35Zyo5a6e546w5YWo6YCJ5pWI5p6c5pe25L2/55SoXG4gICAqL1xuICBpbmRldGVybWluYXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqXG4gICAqIOmAieS4reaAgeWPkeeUn+WPmOWMluaXtueahCBoYW5kbGVyXG4gICAqL1xuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKlxuICAgKiDngrnlh7vml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKlxuICAgKiDorr7nva7lsLrlr7hcbiAgICovXG4gIHNpemU6IFByb3BUeXBlcy5vbmVPZihbXCJtaW5pXCIsIFwic21hbGxcIiwgXCJtZWRpdW1cIiwgXCJsYXJnZVwiXSksXG4gIC8qKlxuICAgKiDlgLzvvIzlj6rlnKjkvb/nlKggQ2hlY2tib3guR3JvdXAg5pe25Lya6K+75Y+W5L2/55SoXG4gICAqL1xuICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxufVxuXG5DaGVja2JveC5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoZWNrZWQ6IG51bGwsXG4gIGNoaWxkcmVuOiBcIlwiLFxuICBjbGFzc05hbWU6IHVuZGVmaW5lZCxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBoZWxwZXI6IG51bGwsXG4gIGhlbHBlckljb246IFwiaGVscC1jaXJjbGVcIixcbiAgaGVscGVyUHJvcHM6IHt9LFxuICBpbmRldGVybWluYXRlOiBmYWxzZSxcbiAgb25DaGFuZ2U6IG51bGwsXG4gIG9uQ2xpY2s6IG51bGwsXG4gIHNpemU6IFwic21hbGxcIixcbiAgdmFsdWU6IG51bGwsXG59XG5cbmV4cG9ydCBk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