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>
203 lines (160 loc) • 27 kB
JavaScript
;
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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 _Context = require("./Context");
var _Group = _interopRequireDefault(require("./Group"));
var _icon = _interopRequireDefault(require("../icon"));
var _popover = _interopRequireDefault(require("../popover"));
var _configProvider = require("../config-provider");
var _useActive2 = require("../_util/hooks/use-active");
require("./style");
var _excluded = ["checked", "children", "className", "disabled", "helper", "helperIcon", "helperProps", "indeterminate", "onChange", "onClick", "onMouseDown", "size", "value"];
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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; }
var prefix = "adui-checkbox";
var Checkbox = (0, _react.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,
indeterminate = _ref.indeterminate,
onChange = _ref.onChange,
onClick = _ref.onClick,
onMouseDown = _ref.onMouseDown,
sizeProp = _ref.size,
value = _ref.value,
otherProps = _objectWithoutProperties(_ref, _excluded);
var _useState = (0, _react.useState)(!!checkedProp),
_useState2 = _slicedToArray(_useState, 2),
checked = _useState2[0],
setChecked = _useState2[1];
var _useContext = (0, _react.useContext)(_Context.GroupContext),
disabledContext = _useContext.disabled,
handleGroupValueChange = _useContext.handleGroupValueChange,
sizeContext = _useContext.size,
valueContext = _useContext.value;
var _useContext2 = (0, _react.useContext)(_configProvider.ConfigContext),
sizeConfig = _useContext2.size;
var labelRef = (0, _react.useRef)(null);
var ref = refProp || labelRef;
var _useActive = (0, _useActive2.useActive)({
ref: ref
}),
handleMouseDown = _useActive.handleMouseDown;
if (checkedProp !== null && checked !== !!checkedProp) {
setChecked(!!checkedProp);
}
var size = (0, _configProvider.getComputedSize)(sizeProp, sizeContext, sizeConfig);
var valueComputed = value !== null ? value : children === null || children === void 0 ? void 0 : children.toString();
var classSet = (0, _classnames["default"])(className, "".concat(prefix, "-base"), "".concat(prefix, "-").concat(size), (_classNames = {}, _defineProperty(_classNames, "".concat(prefix, "-checked"), indeterminate || (valueContext ? valueComputed !== null && valueComputed !== undefined && valueContext.includes(valueComputed) : checked)), _defineProperty(_classNames, "".concat(prefix, "-noChildren"), !children), _defineProperty(_classNames, "".concat(prefix, "-disabled"), disabledContext || disabled), _defineProperty(_classNames, "".concat(prefix, "-indeterminate"), indeterminate), _classNames));
var popover = helper ? _react["default"].createElement("span", {
role: "none",
onClick: function onClick(e) {
e.stopPropagation();
}
}, _react["default"].createElement(_popover["default"], _extends({
alignEdge: false,
popup: helper
}, helperProps), _react["default"].createElement(_icon["default"], {
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 !== null && valueComputed !== undefined) {
handleGroupValueChange(valueComputed);
} else {
if (checkedProp === null) {
setChecked(!checked);
}
if (onChange) {
onChange(!checked);
}
}
};
var handleKeyDown = function handleKeyDown(e) {
if (e.key === "Enter") {
handleClick(e);
}
};
var handleLabelMouseDown = function handleLabelMouseDown(e) {
if (onMouseDown) {
onMouseDown(e);
}
handleMouseDown();
};
return _react["default"].createElement("label", _extends({
"aria-checked": checked,
className: classSet,
onClick: handleClick,
onKeyDown: handleKeyDown,
ref: ref,
role: "checkbox",
onMouseDown: handleLabelMouseDown
}, otherProps), _react["default"].createElement("span", {
className: "".concat(prefix, "-indicator")
}, _react["default"].createElement("i", {
className: "".concat(prefix, "-indicator-inner")
})), !!children && _react["default"].createElement("span", null, children), popover);
});
Checkbox.Group = _Group["default"];
Checkbox.displayName = "Checkbox";
Checkbox.propTypes = {
checked: _propTypes["default"].oneOf([null, true, false]),
children: _propTypes["default"].node,
className: _propTypes["default"].string,
disabled: _propTypes["default"].bool,
helper: _propTypes["default"].node,
helperIcon: _propTypes["default"].any,
helperProps: _propTypes["default"].object,
indeterminate: _propTypes["default"].bool,
onChange: _propTypes["default"].func,
onClick: _propTypes["default"].func,
size: _propTypes["default"].oneOf(["mini", "small", "medium", "large"]),
value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].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
};
var _default = Checkbox;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcmVmaXgiLCJDaGVja2JveCIsImZvcndhcmRSZWYiLCJyZWZQcm9wIiwiY2hlY2tlZFByb3AiLCJjaGVja2VkIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsImhlbHBlciIsImhlbHBlckljb24iLCJoZWxwZXJQcm9wcyIsImluZGV0ZXJtaW5hdGUiLCJvbkNoYW5nZSIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsInNpemVQcm9wIiwic2l6ZSIsInZhbHVlIiwib3RoZXJQcm9wcyIsInVzZVN0YXRlIiwic2V0Q2hlY2tlZCIsInVzZUNvbnRleHQiLCJHcm91cENvbnRleHQiLCJkaXNhYmxlZENvbnRleHQiLCJoYW5kbGVHcm91cFZhbHVlQ2hhbmdlIiwic2l6ZUNvbnRleHQiLCJ2YWx1ZUNvbnRleHQiLCJDb25maWdDb250ZXh0Iiwic2l6ZUNvbmZpZyIsImxhYmVsUmVmIiwidXNlUmVmIiwicmVmIiwidXNlQWN0aXZlIiwiaGFuZGxlTW91c2VEb3duIiwiZ2V0Q29tcHV0ZWRTaXplIiwidmFsdWVDb21wdXRlZCIsInRvU3RyaW5nIiwiY2xhc3NTZXQiLCJjbGFzc05hbWVzIiwidW5kZWZpbmVkIiwiaW5jbHVkZXMiLCJwb3BvdmVyIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZUNsaWNrIiwiaGFuZGxlS2V5RG93biIsImtleSIsImhhbmRsZUxhYmVsTW91c2VEb3duIiwiR3JvdXAiLCJkaXNwbGF5TmFtZSIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9uZU9mIiwibm9kZSIsInN0cmluZyIsImJvb2wiLCJhbnkiLCJvYmplY3QiLCJmdW5jIiwib25lT2ZUeXBlIiwibnVtYmVyIiwiZGVmYXVsdFByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vY29tcG9uZW50cy9jaGVja2JveC9DaGVja2JveC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tbm9uaW50ZXJhY3RpdmUtZWxlbWVudC10by1pbnRlcmFjdGl2ZS1yb2xlICovXG5pbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlQ29udGV4dCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCB7IEdyb3VwQ29udGV4dCB9IGZyb20gXCIuL0NvbnRleHRcIlxuaW1wb3J0IEdyb3VwIGZyb20gXCIuL0dyb3VwXCJcbmltcG9ydCBJY29uLCB7IEljb25OYW1lcyB9IGZyb20gXCIuLi9pY29uXCJcbmltcG9ydCBQb3BvdmVyLCB7IElQb3BvdmVyUHJvcHMgfSBmcm9tIFwiLi4vcG9wb3ZlclwiXG5pbXBvcnQgeyBDb25maWdDb250ZXh0LCBnZXRDb21wdXRlZFNpemUgfSBmcm9tIFwiLi4vY29uZmlnLXByb3ZpZGVyXCJcbmltcG9ydCB7IHVzZUFjdGl2ZSB9IGZyb20gXCIuLi9fdXRpbC9ob29rcy91c2UtYWN0aXZlXCJcbmltcG9ydCBcIi4vc3R5bGVcIlxuXG5jb25zdCBwcmVmaXggPSBcImFkdWktY2hlY2tib3hcIlxuZXhwb3J0IGludGVyZmFjZSBJQ2hlY2tib3hQcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICAvKipcbiAgICog5piv5ZCm6YCJ5LitXG4gICAqL1xuICBjaGVja2VkPzogbnVsbCB8IGJvb2xlYW5cbiAgLyoqXG4gICAqIOWtkOiKgueCuVxuICAgKi9cbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiDmmK/lkKbnpoHnlKhcbiAgICovXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAvKipcbiAgICog5Yqg5YWl6Zeu5Y+35rCU5rOh5o+Q56S65YaF5a65XG4gICAqL1xuICBoZWxwZXI/OiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIOiHquWumuS5iemXruWPt+awlOazoeeahCBJY29uXG4gICAqL1xuICBoZWxwZXJJY29uPzogSWNvbk5hbWVzXG4gIC8qKlxuICAgKiDpl67lj7fmsJTms6Hmj5DnpLrnmoQgcHJvcHPvvIzkvJrlsIbmraTlr7nosaHpg73kvKDpgJLnu5kgPFBvcG92ZXIgLz5cbiAgICovXG4gIGhlbHBlclByb3BzPzogSVBvcG92ZXJQcm9wc1xuICAvKipcbiAgICog6K6+572uIGluZGV0ZXJtaW5hdGUg54q25oCB77yM6LSf6LSj5LiU5LuF5LuF6LSf6LSj5qC35byP5o6n5Yi277yM6K+35Zyo5a6e546w5YWo6YCJ5pWI5p6c5pe25L2/55SoXG4gICAqL1xuICBpbmRldGVybWluYXRlPzogYm9vbGVhblxuICAvKipcbiAgICog6YCJ5Lit5oCB5Y+R55Sf5Y+Y5YyW5pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2hhbmdlPzogKChjaGVja2VkOiBib29sZWFuKSA9PiB2b2lkKSB8IG51bGxcbiAgLyoqXG4gICAqIOeCueWHu+aXtueahCBoYW5kbGVyXG4gICAqL1xuICBvbkNsaWNrPzpcbiAgICB8ICgoXG4gICAgICAgIGU6XG4gICAgICAgICAgfCBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICAgICAgfCBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICApID0+IHZvaWQpXG4gICAgfCBudWxsXG4gIC8qKlxuICAgKiBvbk1vdXNlRG93biDml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25Nb3VzZURvd24/OiAoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MTGFiZWxFbGVtZW50PikgPT4gdm9pZFxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplPzogXCJtaW5pXCIgfCBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiXG4gIC8qKlxuICAgKiDlgLzvvIzlj6rlnKjkvb/nlKggQ2hlY2tib3guR3JvdXAg5pe25Lya6K+75Y+W5L2/55SoXG4gICAqL1xuICB2YWx1ZT86IG51bGwgfCBSZWFjdC5SZWFjdFRleHRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hlY2tib3hcbiAgZXh0ZW5kcyBSZWFjdC5Gb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50PFxuICAgIElDaGVja2JveFByb3BzICYgUmVhY3QuUmVmQXR0cmlidXRlczxIVE1MTGFiZWxFbGVtZW50PlxuICA+IHtcbiAgR3JvdXA6IHR5cGVvZiBHcm91cFxufVxuXG4vKipcbiAqIOWLvumAieaPkOS+m+eUqOaIt+WcqOWkmuS4qumAiemhueS4re+8jOWvuemAiemhueeahOWGheWuuei/m+ihjOWNleaIluWkmuS4qumAieaLqeOAglxuICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBDaGVja2JveDogSUNoZWNrYm94ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoZWNrZWQ6IGNoZWNrZWRQcm9wLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBjbGFzc05hbWUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGhlbHBlcixcbiAgICAgIGhlbHBlckljb24sXG4gICAgICBoZWxwZXJQcm9wcyxcbiAgICAgIGluZGV0ZXJtaW5hdGUsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBvbk1vdXNlRG93bixcbiAgICAgIHNpemU6IHNpemVQcm9wLFxuICAgICAgdmFsdWUsXG4gICAgICAuLi5vdGhlclByb3BzXG4gICAgfTogSUNoZWNrYm94UHJvcHMsXG4gICAgcmVmUHJvcFxuICApID0+IHtcbiAgICBjb25zdCBbY2hlY2tlZCwgc2V0Q2hlY2tlZF0gPSB1c2VTdGF0ZSghIWNoZWNrZWRQcm9wKVxuICAgIGNvbnN0IHtcbiAgICAgIGRpc2FibGVkOiBkaXNhYmxlZENvbnRleHQsXG4gICAgICBoYW5kbGVHcm91cFZhbHVlQ2hhbmdlLFxuICAgICAgc2l6ZTogc2l6ZUNvbnRleHQsXG4gICAgICB2YWx1ZTogdmFsdWVDb250ZXh0LFxuICAgIH0gPSB1c2VDb250ZXh0KEdyb3VwQ29udGV4dClcbiAgICBjb25zdCB7IHNpemU6IHNpemVDb25maWcgfSA9IHVzZUNvbnRleHQoQ29uZmlnQ29udGV4dClcbiAgICBjb25zdCBsYWJlbFJlZiA9IHVzZVJlZjxIVE1MTGFiZWxFbGVtZW50PihudWxsKVxuICAgIGNvbnN0IHJlZiA9IHJlZlByb3AgfHwgbGFiZWxSZWZcbiAgICBjb25zdCB7IGhhbmRsZU1vdXNlRG93biB9ID0gdXNlQWN0aXZlKHsgcmVmIH0pXG5cbiAgICAvLyDnm7jlvZPkuo7nlJ/lkb3lkajmnJ8gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXG4gICAgaWYgKGNoZWNrZWRQcm9wICE9PSBudWxsICYmIGNoZWNrZWQgIT09ICEhY2hlY2tlZFByb3ApIHtcbiAgICAgIHNldENoZWNrZWQoISFjaGVja2VkUHJvcClcbiAgICB9XG5cbiAgICBjb25zdCBzaXplID0gZ2V0Q29tcHV0ZWRTaXplKHNpemVQcm9wLCBzaXplQ29udGV4dCwgc2l6ZUNvbmZpZylcblxuICAgIGNvbnN0IHZhbHVlQ29tcHV0ZWQgPSB2YWx1ZSAhPT0gbnVsbCA/IHZhbHVlIDogY2hpbGRyZW4/LnRvU3RyaW5nKClcblxuICAgIC8qKlxuICAgICAqIOW9k+aciSBjb250ZXh0IGNvbnRleHQg5pe277yM5L2/55SoIHZhbHVl77yaXG4gICAgICog5aaC5p6c5a2Y5ZyoIHZhbHVlIHByb3DvvIzliJnnm7TmjqXkvb/nlKggdmFsdWXvvJtcbiAgICAgKiDlpoLmnpzkuI3lrZjlnKjvvIzlsLEgc3RyaW5nIOWMliBjaGlsZHJlbiDkvZzkuLogdmFsdWXjgIJcbiAgICAgKi9cbiAgICBjb25zdCBjbGFzc1NldCA9IGNsYXNzTmFtZXMoXG4gICAgICBjbGFzc05hbWUsXG4gICAgICBgJHtwcmVmaXh9LWJhc2VgLFxuICAgICAgYCR7cHJlZml4fS0ke3NpemV9YCxcbiAgICAgIHtcbiAgICAgICAgW2Ake3ByZWZpeH0tY2hlY2tlZGBdOlxuICAgICAgICAgIGluZGV0ZXJtaW5hdGUgfHxcbiAgICAgICAgICAodmFsdWVDb250ZXh0XG4gICAgICAgICAgICA/IHZhbHVlQ29tcHV0ZWQgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgdmFsdWVDb21wdXRlZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgIHZhbHVlQ29udGV4dC5pbmNsdWRlcyh2YWx1ZUNvbXB1dGVkKVxuICAgICAgICAgICAgOiBjaGVja2VkKSxcbiAgICAgICAgW2Ake3ByZWZpeH0tbm9DaGlsZHJlbmBdOiAhY2hpbGRyZW4sXG4gICAgICAgIFtgJHtwcmVmaXh9LWRpc2FibGVkYF06IGRpc2FibGVkQ29udGV4dCB8fCBkaXNhYmxlZCxcbiAgICAgICAgW2Ake3ByZWZpeH0taW5kZXRlcm1pbmF0ZWBdOiBpbmRldGVybWluYXRlLFxuICAgICAgfVxuICAgIClcblxuICAgIGNvbnN0IHBvcG92ZXIgPSBoZWxwZXIgPyAoXG4gICAgICA8c3BhblxuICAgICAgICByb2xlPVwibm9uZVwiXG4gICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8UG9wb3ZlciBhbGlnbkVkZ2U9e2ZhbHNlfSBwb3B1cD17aGVscGVyfSB7Li4uaGVscGVyUHJvcHN9PlxuICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICBpY29uPXtoZWxwZXJJY29uIHx8IFwiaGVscC1jaXJjbGVcIn1cbiAgICAgICAgICAgIGNvbG9yPVwidmFyKC0tZ3JheS02MDApXCJcbiAgICAgICAgICAgIGludGVyYWN0aXZlXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake3ByZWZpeH0taGVscGVyYH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1BvcG92ZXI+XG4gICAgICA8L3NwYW4+XG4gICAgKSA6IG51bGxcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKFxuICAgICAgZTpcbiAgICAgICAgfCBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICAgIHwgUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MTGFiZWxFbGVtZW50PlxuICAgICkgPT4ge1xuICAgICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgICAgb25DbGljayhlKVxuICAgICAgfVxuICAgICAgaWYgKGRpc2FibGVkIHx8IGRpc2FibGVkQ29udGV4dCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgaGFuZGxlR3JvdXBWYWx1ZUNoYW5nZSAmJlxuICAgICAgICB2YWx1ZUNvbXB1dGVkICE9PSBudWxsICYmXG4gICAgICAgIHZhbHVlQ29tcHV0ZWQgIT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIGhhbmRsZUdyb3VwVmFsdWVDaGFuZ2UodmFsdWVDb21wdXRlZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjaGVja2VkUHJvcCA9PT0gbnVsbCkge1xuICAgICAgICAgIHNldENoZWNrZWQoIWNoZWNrZWQpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICAgICAgb25DaGFuZ2UoIWNoZWNrZWQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTExhYmVsRWxlbWVudD4pID0+IHtcbiAgICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiKSB7XG4gICAgICAgIGhhbmRsZUNsaWNrKGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlTGFiZWxNb3VzZURvd24gPSAoXG4gICAgICBlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxMYWJlbEVsZW1lbnQsIE1vdXNlRXZlbnQ+XG4gICAgKSA9PiB7XG4gICAgICBpZiAob25Nb3VzZURvd24pIHtcbiAgICAgICAgb25Nb3VzZURvd24oZSlcbiAgICAgIH1cbiAgICAgIGhhbmRsZU1vdXNlRG93bigpXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsYWJlbFxuICAgICAgICBhcmlhLWNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NTZXR9XG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICByb2xlPVwiY2hlY2tib3hcIlxuICAgICAgICBvbk1vdXNlRG93bj17aGFuZGxlTGFiZWxNb3VzZURvd259XG4gICAgICAgIHsuLi5vdGhlclByb3BzfVxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake3ByZWZpeH0taW5kaWNhdG9yYH0+XG4gICAgICAgICAgPGkgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWluZGljYXRvci1pbm5lcmB9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgeyEhY2hpbGRyZW4gJiYgPHNwYW4+e2NoaWxkcmVufTwvc3Bhbj59XG4gICAgICAgIHtwb3BvdmVyfVxuICAgICAgPC9sYWJlbD5cbiAgICApXG4gIH1cbilcblxuQ2hlY2tib3guR3JvdXAgPSBHcm91cFxuXG5DaGVja2JveC5kaXNwbGF5TmFtZSA9IFwiQ2hlY2tib3hcIlxuXG5DaGVja2JveC5wcm9wVHlwZXMgPSB7XG4gIC8qKlxuICAgKiDmmK/lkKbpgInkuK1cbiAgICovXG4gIGNoZWNrZWQ6IFByb3BUeXBlcy5vbmVPZihbbnVsbCwgdHJ1ZSwgZmFsc2VdKSxcbiAgLyoqXG4gICAqIOWtkOiKgueCuVxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICAvKipcbiAgICog6ZmE5Yqg57G75ZCNXG4gICAqL1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKlxuICAgKiDmmK/lkKbnpoHnlKhcbiAgICovXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqXG4gICAqIOWKoOWFpemXruWPt+awlOazoeaPkOekuuWGheWuuVxuICAgKi9cbiAgaGVscGVyOiBQcm9wVHlwZXMubm9kZSxcbiAgLyoqXG4gICAqIOiHquWumuS5iemXruWPt+awlOazoeeahCBJY29uXG4gICAqL1xuICBoZWxwZXJJY29uOiBQcm9wVHlwZXMuYW55LFxuICAvKipcbiAgICog6Zeu5Y+35rCU5rOh5o+Q56S655qEIHByb3Bz77yM5Lya5bCG5q2k5a+56LGh6YO95Lyg6YCS57uZIDxQb3BvdmVyIC8+XG4gICAqL1xuICBoZWxwZXJQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqXG4gICAqIOiuvue9riBpbmRldGVybWluYXRlIOeKtuaAge+8jOi0n+i0o+S4lOS7heS7hei0n+i0o+agt+W8j+aOp+WItu+8jOivt+WcqOWunueOsOWFqOmAieaViOaenOaXtuS9v+eUqFxuICAgKi9cbiAgaW5kZXRlcm1pbmF0ZTogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiDpgInkuK3mgIHlj5HnlJ/lj5jljJbml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKipcbiAgICog54K55Ye75pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplOiBQcm9wVHlwZXMub25lT2YoW1wibWluaVwiLCBcInNtYWxsXCIsIFwibWVkaXVtXCIsIFwibGFyZ2VcIl0pLFxuICAvKipcbiAgICog5YC877yM5Y+q5Zyo5L2/55SoIENoZWNrYm94Lkdyb3VwIOaXtuS8muivu+WPluS9v+eUqFxuICAgKi9cbiAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbn1cblxuQ2hlY2tib3guZGVmYXVsdFByb3BzID0ge1xuICBjaGVja2VkOiBudWxsLFxuICBjaGlsZHJlbjogXCJcIixcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgaGVscGVyOiBudWxsLFxuICBoZWxwZXJJY29uOiBcImhlbHAtY2lyY2xlXCIsXG4gIGhlbHBlclByb3BzOiB7fSxcbiAgaW5kZXRlcm1pbmF0ZTogZmFsc2UsXG4gIG9uQ2hhbmdlOiBudWxsLFxuICBvbkNsaWNrOiBudWxsLFxuICBzaXplOiBcInNtYWxsXCIsXG4gIHZhbHVlOiBudWxsLFxufVxuXG5leHBvcnQgZGVmYXVsdCBDaGVja2JveFxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsTUFBTSxHQUFHLGVBQWY7QUEwRUEsSUFBTUMsUUFBbUIsR0FBRyxJQUFBQyxpQkFBQSxFQUMxQixnQkFpQkVDLE9BakJGLEVBa0JLO0VBQUE7O0VBQUEsSUFoQlFDLFdBZ0JSLFFBaEJEQyxPQWdCQztFQUFBLElBZkRDLFFBZUMsUUFmREEsUUFlQztFQUFBLElBZERDLFNBY0MsUUFkREEsU0FjQztFQUFBLElBYkRDLFFBYUMsUUFiREEsUUFhQztFQUFBLElBWkRDLE1BWUMsUUFaREEsTUFZQztFQUFBLElBWERDLFVBV0MsUUFYREEsVUFXQztFQUFBLElBVkRDLFdBVUMsUUFWREEsV0FVQztFQUFBLElBVERDLGFBU0MsUUFUREEsYUFTQztFQUFBLElBUkRDLFFBUUMsUUFSREEsUUFRQztFQUFBLElBUERDLE9BT0MsUUFQREEsT0FPQztFQUFBLElBTkRDLFdBTUMsUUFOREEsV0FNQztFQUFBLElBTEtDLFFBS0wsUUFMREMsSUFLQztFQUFBLElBSkRDLEtBSUMsUUFKREEsS0FJQztFQUFBLElBSEVDLFVBR0Y7O0VBQ0gsZ0JBQThCLElBQUFDLGVBQUEsRUFBUyxDQUFDLENBQUNoQixXQUFYLENBQTlCO0VBQUE7RUFBQSxJQUFP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