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>

451 lines (377 loc) 75 kB
"use strict"; 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 _react2 = _interopRequireDefault(require("cleave.js/react")); var _warning = _interopRequireDefault(require("../_util/warning")); var _configProvider = require("../config-provider"); var _Textarea = _interopRequireDefault(require("./Textarea")); require("./style"); var _excluded = ["autoComplete", "autoFocus", "className", "cleaveOptions", "contentJustify", "countHanzi", "defaultValue", "disabled", "id", "inputClassName", "inputStyle", "intent", "leftElement", "limit", "name", "onBlur", "onChange", "onFocus", "onKeyDown", "onPressEnter", "placeholder", "required", "rightElement", "size", "style", "theme", "type", "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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 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 _regeneratorRuntime() { "use strict"; _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 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-input"; var Input = (0, _react.forwardRef)(function (_ref, ref) { var _cleaveRef$current, _classNames, _classNames2, _classNames3; var autoComplete = _ref.autoComplete, autoFocus = _ref.autoFocus, className = _ref.className, cleaveOptions = _ref.cleaveOptions, contentJustify = _ref.contentJustify, countHanzi = _ref.countHanzi, defaultValue = _ref.defaultValue, disabled = _ref.disabled, id = _ref.id, inputClassName = _ref.inputClassName, inputStyle = _ref.inputStyle, intent = _ref.intent, leftElement = _ref.leftElement, limit = _ref.limit, name = _ref.name, onBlur = _ref.onBlur, onChange = _ref.onChange, onFocus = _ref.onFocus, onKeyDown = _ref.onKeyDown, onPressEnter = _ref.onPressEnter, placeholder = _ref.placeholder, required = _ref.required, rightElement = _ref.rightElement, sizeProp = _ref.size, style = _ref.style, theme = _ref.theme, type = _ref.type, value = _ref.value, otherProps = _objectWithoutProperties(_ref, _excluded); var _useState = (0, _react.useState)(null), _useState2 = _slicedToArray(_useState, 2), leftElementWidth = _useState2[0], setLeftElementWidth = _useState2[1]; var _useState3 = (0, _react.useState)(null), _useState4 = _slicedToArray(_useState3, 2), rightElementWidth = _useState4[0], setRightElementWidth = _useState4[1]; var inputRef = (0, _react.useRef)(null); var wrapperElementRef = (0, _react.useRef)(null); var leftElementRef = (0, _react.useRef)(null); var rightElementRef = (0, _react.useRef)(null); var justifyElementRef = (0, _react.useRef)(null); var cleaveRef = (0, _react.useRef)(null); var inputElement = (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) || (cleaveRef === null || cleaveRef === void 0 ? void 0 : (_cleaveRef$current = cleaveRef.current) === null || _cleaveRef$current === void 0 ? void 0 : _cleaveRef$current.element); var _useContext = (0, _react.useContext)(_configProvider.ConfigContext), sizeContext = _useContext.size; var size = (0, _configProvider.getComputedSize)(sizeProp, sizeContext); var syncCleave = function syncCleave() { if (cleaveRef !== null && cleaveRef !== void 0 && cleaveRef.current) { var _cleaveRef$current2 = cleaveRef.current, element = _cleaveRef$current2.element, state = _cleaveRef$current2.state, properties = _cleaveRef$current2.properties; var lastInputValue = cleaveRef.current.lastInputValue; if (lastInputValue !== value) { lastInputValue = value; } if (state.value !== value) { state.value = value; } if (properties.result !== value) { properties.result = value; } if (element && element.value !== value && value) { var pos = element.selectionStart; element.value = value; Promise.resolve().then(function () { element.setSelectionRange(pos, pos); }); } } }; var handleChange = function handleChange(e) { if (!disabled && onChange) { var val = e.target.value.replace(/\u0008|\u0009|\u000A|\u000B|\u000C|\u000D|\u00A0|\u2028|\u2029|\uFEFF/g, ""); onChange(e, val); } }; var handleKeyDown = function handleKeyDown(e) { if (e.key === "Enter" && onPressEnter) { onPressEnter(e); } if (onKeyDown) { onKeyDown(e); } }; var handleBlur = function handleBlur(e) { syncCleave(); if (onBlur) { onBlur(e); } }; var handleFocus = function handleFocus(e) { if (onFocus) { onFocus(e); } }; var handleAttachedElementClick = function handleAttachedElementClick(position) { if (position === "left" && leftElement && leftElement.type && leftElement.type.name === "Icon") { inputElement.focus(); inputElement.select(); } if (position === "right" && rightElement && rightElement.type && rightElement.type.name === "Icon") { inputElement.focus(); inputElement.select(); } }; var fixControlledValue = function fixControlledValue(val) { if (typeof val === "undefined" || val === null) { return ""; } return val; }; var updateElementsWidth = function () { var _ref2 = _asyncToGenerator(_regeneratorRuntime().mark(function _callee() { var clientWidth, _clientWidth, scrollWidth; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return new Promise(function (resolve) { return setTimeout(resolve, 0); }); case 2: if (leftElementRef !== null && leftElementRef !== void 0 && leftElementRef.current) { clientWidth = leftElementRef.current.clientWidth; if (Math.abs(clientWidth - (leftElementWidth || 0)) > 2) { setLeftElementWidth(clientWidth); } } else if (leftElementWidth) { setLeftElementWidth(null); } if (rightElementRef !== null && rightElementRef !== void 0 && rightElementRef.current) { _clientWidth = rightElementRef.current.clientWidth; if (Math.abs(_clientWidth - (rightElementWidth || 0)) > 2) { setRightElementWidth(_clientWidth); } } else if (rightElementWidth) { setRightElementWidth(null); } if (justifyElementRef !== null && justifyElementRef !== void 0 && justifyElementRef.current) { scrollWidth = justifyElementRef.current.scrollWidth; if (wrapperElementRef.current && Math.ceil(scrollWidth) !== wrapperElementRef.current.clientWidth) { wrapperElementRef.current.style.width = "".concat(Math.ceil(scrollWidth), "px"); } } case 5: case "end": return _context.stop(); } } }, _callee); })); return function updateElementsWidth() { return _ref2.apply(this, arguments); }; }(); var getFormatStrLeng = function getFormatStrLeng(str) { var len = str.length; var realLength = 0; var charCode = -1; for (var i = 0; i < len; i += 1) { charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <= 128) { realLength += 0.5; } else { realLength += 1; } } return Math.ceil(realLength); }; (0, _react.useLayoutEffect)(function () { updateElementsWidth(); syncCleave(); }); (0, _react.useImperativeHandle)(ref, function () { var _cleaveRef$current3; var realRef = (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) || (cleaveRef === null || cleaveRef === void 0 ? void 0 : (_cleaveRef$current3 = cleaveRef.current) === null || _cleaveRef$current3 === void 0 ? void 0 : _cleaveRef$current3.element); return { cleave: cleaveRef === null || cleaveRef === void 0 ? void 0 : cleaveRef.current, input: realRef, leftElement: leftElementRef === null || leftElementRef === void 0 ? void 0 : leftElementRef.current, rightElement: rightElementRef === null || rightElementRef === void 0 ? void 0 : rightElementRef.current, updateElementsWidth: updateElementsWidth, handleChange: handleChange, handleKeyDown: handleKeyDown, handleBlur: handleBlur, handleFocus: handleFocus, handleAttachedElementClick: handleAttachedElementClick, focus: function focus() { return realRef.focus(); }, blur: function blur() { return realRef.blur(); } }; }); var inputProps = { autoComplete: autoComplete, autoFocus: autoFocus, className: (0, _classnames["default"])("".concat(prefix, "-base"), inputClassName), disabled: disabled, id: id, name: name, onBlur: handleBlur, onChange: handleChange, onFocus: handleFocus, onKeyDown: handleKeyDown, placeholder: placeholder, ref: inputRef, required: required, style: _objectSpread({ paddingLeft: leftElementWidth ? "".concat(leftElementWidth, "px") : undefined, paddingRight: rightElementWidth ? "".concat(rightElementWidth, "px") : undefined }, inputStyle), type: type }; var cleaveInputProps = _objectSpread({}, inputProps); if (value !== null) { inputProps.value = fixControlledValue(value); } else { inputProps.defaultValue = fixControlledValue(defaultValue); } cleaveInputProps.value = value || defaultValue || ""; var input = !cleaveOptions || Object.keys(cleaveOptions).length === 0 ? _react["default"].createElement("input", inputProps) : _react["default"].createElement(_react2["default"], _extends({ options: cleaveOptions }, cleaveInputProps, { ref: cleaveRef })); var length; if (limit) { (0, _warning["default"])(!rightElement, "Input", "不允许同时使用 prop `limit` 与 prop `rightElement`"); if (value) { length = countHanzi ? getFormatStrLeng(value) : value.length; } else { (0, _warning["default"])(value !== null, "Input", "如果要使用 limit Prop,必须从外部控制 value。"); length = 0; } } if (contentJustify) { (0, _warning["default"])(value !== null, "Input", "如果使用 contentJusfity Prop,必须从外部控制 value。"); } var classSet = (0, _classnames["default"])(className, "".concat(prefix, "-wrapper"), "".concat(prefix, "-").concat(size), (_classNames = {}, _defineProperty(_classNames, "".concat(prefix, "-").concat(theme), theme), _defineProperty(_classNames, "".concat(prefix, "-disabled"), disabled), _defineProperty(_classNames, "".concat(prefix, "-limited"), limit), _defineProperty(_classNames, "".concat(prefix, "-limited_digit-over-2"), limit && limit.toString().length > 2), _defineProperty(_classNames, "".concat(prefix, "-normal"), intent === "normal"), _defineProperty(_classNames, "".concat(prefix, "-primary"), intent === "primary"), _defineProperty(_classNames, "".concat(prefix, "-success"), intent === "success"), _defineProperty(_classNames, "".concat(prefix, "-warning"), intent === "warning"), _defineProperty(_classNames, "".concat(prefix, "-danger"), intent === "danger" || length && limit && length > limit), _classNames)); var leftType = leftElement && leftElement.type ? leftElement.type.type : ""; var rightType = rightElement && rightElement.type ? rightElement.type.type : ""; return _react["default"].createElement("div", _extends({ ref: wrapperElementRef, className: classSet, style: style }, otherProps), !!leftElement && _react["default"].createElement("div", { ref: leftElementRef, onClick: function onClick() { return handleAttachedElementClick("left"); }, role: "none", className: (0, _classnames["default"])("".concat(prefix, "-left"), (_classNames2 = {}, _defineProperty(_classNames2, "".concat(prefix, "-left_button"), leftType === "Button"), _defineProperty(_classNames2, "".concat(prefix, "-left_icon"), leftType === "Icon"), _defineProperty(_classNames2, "".concat(prefix, "-left_select"), leftType === "Select"), _classNames2)) }, leftElement), input, !!rightElement && _react["default"].createElement("div", { ref: rightElementRef, onClick: function onClick() { return handleAttachedElementClick("right"); }, role: "none", className: (0, _classnames["default"])("".concat(prefix, "-right"), (_classNames3 = {}, _defineProperty(_classNames3, "".concat(prefix, "-right_button"), rightType === "Button"), _defineProperty(_classNames3, "".concat(prefix, "-right_icon"), rightType === "Icon"), _defineProperty(_classNames3, "".concat(prefix, "-right_select"), rightType === "Select"), _classNames3)) }, rightElement), limit && _react["default"].createElement("div", { className: "".concat(prefix, "-limit") }, _react["default"].createElement("span", null, "".concat(length, "/").concat(limit))), contentJustify && _react["default"].createElement("div", { className: "".concat(prefix, "-justify"), ref: justifyElementRef, style: { paddingLeft: leftElementWidth ? "".concat(leftElementWidth, "px") : undefined, paddingRight: rightElementWidth ? "".concat(rightElementWidth, "px") : undefined, minWidth: style === null || style === void 0 ? void 0 : style.minWidth } }, fixControlledValue(value))); }); Input.Textarea = _Textarea["default"]; Input.displayName = "Input"; Input.propTypes = { autoComplete: _propTypes["default"].oneOf(["on", "off"]), autoFocus: _propTypes["default"].bool, className: _propTypes["default"].string, cleaveOptions: _propTypes["default"].object, contentJustify: _propTypes["default"].bool, countHanzi: _propTypes["default"].bool, defaultValue: _propTypes["default"].string, disabled: _propTypes["default"].bool, id: _propTypes["default"].string, inputClassName: _propTypes["default"].string, inputStyle: _propTypes["default"].object, intent: _propTypes["default"].oneOf(["normal", "primary", "success", "warning", "danger"]), leftElement: _propTypes["default"].any, limit: _propTypes["default"].number, name: _propTypes["default"].string, onBlur: _propTypes["default"].func, onChange: _propTypes["default"].func, onFocus: _propTypes["default"].func, onKeyDown: _propTypes["default"].func, onPressEnter: _propTypes["default"].func, placeholder: _propTypes["default"].string, required: _propTypes["default"].bool, rightElement: _propTypes["default"].any, size: _propTypes["default"].oneOf(["mini", "small", "medium", "large"]), style: _propTypes["default"].object, theme: _propTypes["default"].oneOf([null, "light"]), type: _propTypes["default"].string, value: _propTypes["default"].string }; Input.defaultProps = { autoComplete: "off", autoFocus: false, className: undefined, cleaveOptions: {}, contentJustify: false, countHanzi: true, defaultValue: null, disabled: false, id: null, intent: "normal", inputClassName: undefined, inputStyle: {}, leftElement: undefined, limit: null, name: null, onBlur: function onBlur() {}, onChange: function onChange() {}, onFocus: function onFocus() {}, onKeyDown: function onKeyDown() {}, onPressEnter: function onPressEnter() {}, placeholder: "请输入", required: false, rightElement: undefined, size: "small", style: {}, theme: null, type: null, value: null }; var _default = Input; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcmVmaXgiLCJJbnB1dCIsImZvcndhcmRSZWYiLCJyZWYiLCJhdXRvQ29tcGxldGUiLCJhdXRvRm9jdXMiLCJjbGFzc05hbWUiLCJjbGVhdmVPcHRpb25zIiwiY29udGVudEp1c3RpZnkiLCJjb3VudEhhbnppIiwiZGVmYXVsdFZhbHVlIiwiZGlzYWJsZWQiLCJpZCIsImlucHV0Q2xhc3NOYW1lIiwiaW5wdXRTdHlsZSIsImludGVudCIsImxlZnRFbGVtZW50IiwibGltaXQiLCJuYW1lIiwib25CbHVyIiwib25DaGFuZ2UiLCJvbkZvY3VzIiwib25LZXlEb3duIiwib25QcmVzc0VudGVyIiwicGxhY2Vob2xkZXIiLCJyZXF1aXJlZCIsInJpZ2h0RWxlbWVudCIsInNpemVQcm9wIiwic2l6ZSIsInN0eWxlIiwidGhlbWUiLCJ0eXBlIiwidmFsdWUiLCJvdGhlclByb3BzIiwidXNlU3RhdGUiLCJsZWZ0RWxlbWVudFdpZHRoIiwic2V0TGVmdEVsZW1lbnRXaWR0aCIsInJpZ2h0RWxlbWVudFdpZHRoIiwic2V0UmlnaHRFbGVtZW50V2lkdGgiLCJpbnB1dFJlZiIsInVzZVJlZiIsIndyYXBwZXJFbGVtZW50UmVmIiwibGVmdEVsZW1lbnRSZWYiLCJyaWdodEVsZW1lbnRSZWYiLCJqdXN0aWZ5RWxlbWVudFJlZiIsImNsZWF2ZVJlZiIsImlucHV0RWxlbWVudCIsImN1cnJlbnQiLCJlbGVtZW50IiwidXNlQ29udGV4dCIsIkNvbmZpZ0NvbnRleHQiLCJzaXplQ29udGV4dCIsImdldENvbXB1dGVkU2l6ZSIsInN5bmNDbGVhdmUiLCJzdGF0ZSIsInByb3BlcnRpZXMiLCJsYXN0SW5wdXRWYWx1ZSIsInJlc3VsdCIsInBvcyIsInNlbGVjdGlvblN0YXJ0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJoYW5kbGVDaGFuZ2UiLCJlIiwidmFsIiwidGFyZ2V0IiwicmVwbGFjZSIsImhhbmRsZUtleURvd24iLCJrZXkiLCJoYW5kbGVCbHVyIiwiaGFuZGxlRm9jdXMiLCJoYW5kbGVBdHRhY2hlZEVsZW1lbnRDbGljayIsInBvc2l0aW9uIiwiZm9jdXMiLCJzZWxlY3QiLCJmaXhDb250cm9sbGVkVmFsdWUiLCJ1cGRhdGVFbGVtZW50c1dpZHRoIiwic2V0VGltZW91dCIsImNsaWVudFdpZHRoIiwiTWF0aCIsImFicyIsInNjcm9sbFdpZHRoIiwiY2VpbCIsIndpZHRoIiwiZ2V0Rm9ybWF0U3RyTGVuZyIsInN0ciIsImxlbiIsImxlbmd0aCIsInJlYWxMZW5ndGgiLCJjaGFyQ29kZSIsImkiLCJjaGFyQ29kZUF0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsInJlYWxSZWYiLCJjbGVhdmUiLCJpbnB1dCIsImJsdXIiLCJpbnB1dFByb3BzIiwiY2xhc3NOYW1lcyIsInBhZGRpbmdMZWZ0IiwidW5kZWZpbmVkIiwicGFkZGluZ1JpZ2h0IiwiY2xlYXZlSW5wdXRQcm9wcyIsIk9iamVjdCIsImtleXMiLCJ3YXJuaW5nIiwiY2xhc3NTZXQiLCJ0b1N0cmluZyIsImxlZnRUeXBlIiwicmlnaHRUeXBlIiwibWluV2lkdGgiLCJUZXh0YXJlYSIsImRpc3BsYXlOYW1lIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib25lT2YiLCJib29sIiwic3RyaW5nIiwib2JqZWN0IiwiYW55IiwibnVtYmVyIiwiZnVuYyIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvaW5wdXQvSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDb250ZXh0LFxuICB1c2VJbXBlcmF0aXZlSGFuZGxlLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxuICB1c2VMYXlvdXRFZmZlY3QsXG59IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBDbGVhdmUgZnJvbSBcImNsZWF2ZS5qcy9yZWFjdFwiXG5pbXBvcnQgd2FybmluZyBmcm9tIFwiLi4vX3V0aWwvd2FybmluZ1wiXG5pbXBvcnQgeyBDb25maWdDb250ZXh0LCBnZXRDb21wdXRlZFNpemUgfSBmcm9tIFwiLi4vY29uZmlnLXByb3ZpZGVyXCJcbmltcG9ydCBUZXh0YXJlYSBmcm9tIFwiLi9UZXh0YXJlYVwiXG5pbXBvcnQgXCIuL3N0eWxlXCJcblxuY29uc3QgcHJlZml4ID0gXCJhZHVpLWlucHV0XCJcblxuZXhwb3J0IGludGVyZmFjZSBJSW5wdXRQcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICAvKipcbiAgICogaW5wdXQg5qCH562+5Y6f55Sf5bGe5oCnIC0gYXV0b0NvbXBsZXRlXG4gICAqL1xuICBhdXRvQ29tcGxldGU/OiBcIm9uXCIgfCBcIm9mZlwiXG4gIC8qKlxuICAgKiBpbnB1dCDmoIfnrb7ljp/nlJ/lsZ7mgKcgLSBhdXRvRm9jdXNcbiAgICovXG4gIGF1dG9Gb2N1cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiDlrp7njrDmiYvmnLrlj7fjgIHml6XmnJ/jgIHmlbDlrZflj4roh6rlrprkuYnmoLzlvI/vvIzlj6/mn6XnnItb56S65L6LXShodHRwOi8vd3hhZC5kZXNpZ24vYWR1aS9jb21wb25lbnRzL2lucHV0KeOAglxuICAgKi9cbiAgY2xlYXZlT3B0aW9ucz86IG9iamVjdFxuICAvKipcbiAgICog5a695bqm5piv5ZCm5LiO5YaF5a655a695bqm5a+56b2QXG4gICAqL1xuICBjb250ZW50SnVzdGlmeT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIOaYr+WQpuaMieeFp+S4gOS4quaxieWtl+eulyAyIOWtl+aVsOeahOaWueW8j+mZkOWItumVv+W6plxuICAgKi9cbiAgY291bnRIYW56aT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIOm7mOiupOWAvCAtIOWGhemDqOmpseWKqFxuICAgKi9cbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nIHwgbnVsbFxuICAvKipcbiAgICog5piv5ZCm56aB55SoXG4gICAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIOS9nOeUqOWIsCBpbnB1dCDlhYPntKDnmoTnsbvlkI1cbiAgICovXG4gIGlucHV0Q2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiDkvZznlKjliLAgaW5wdXQg5YWD57Sg55qE5qC35byPXG4gICAqL1xuICBpbnB1dFN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllc1xuICAvKipcbiAgICog6L6T5YWl5qGG55qEIGlkXG4gICAqL1xuICBpZD86IHN0cmluZyB8IG51bGxcbiAgLyoqXG4gICAqIOexu+Wei1xuICAgKi9cbiAgaW50ZW50PzogXCJub3JtYWxcIiB8IFwicHJpbWFyeVwiIHwgXCJzdWNjZXNzXCIgfCBcIndhcm5pbmdcIiB8IFwiZGFuZ2VyXCJcbiAgLyoqXG4gICAqIOWJjee9ruWFg+e0oFxuICAgKi9cbiAgbGVmdEVsZW1lbnQ/OiBKU1guRWxlbWVudFxuICAvKipcbiAgICog6ZmQ5Yi26ZW/5bqmXG4gICAqL1xuICBsaW1pdD86IG51bWJlciB8IG51bGxcbiAgLyoqXG4gICAqIGlucHV0IOagh+etvuWOn+eUn+WxnuaApyAtIG5hbWVcbiAgICovXG4gIG5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKlxuICAgKiBibHVyIOaXtueahCBoYW5kbGVyXG4gICAqL1xuICBvbkJsdXI/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZFxuICAvKipcbiAgICog5YC85pS55Y+Y5pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2hhbmdlPzogKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+LCB2YWx1ZT86IHN0cmluZykgPT4gdm9pZFxuICAvKipcbiAgICogZm9jdXMg5pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZFxuICAvKipcbiAgICoga2V5ZG93biDml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25LZXlEb3duPzogKGU6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIGVudGVyIOaXtueahCBoYW5kbGVyXG4gICAqL1xuICBvblByZXNzRW50ZXI/OiAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZFxuICAvKipcbiAgICogcGxhY2Vob2xkZXJcbiAgICovXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKlxuICAgKiBpbnB1dCDmoIfnrb7ljp/nlJ/lsZ7mgKcgLSByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiDlkI7nva7lhYPntKBcbiAgICovXG4gIHJpZ2h0RWxlbWVudD86IEpTWC5FbGVtZW50XG4gIC8qKlxuICAgKiDorr7nva7lsLrlr7hcbiAgICovXG4gIHNpemU/OiBcIm1pbmlcIiB8IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCJcbiAgLyoqXG4gICAqIOmZhOWKoOagt+W8j1xuICAgKi9cbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzXG4gIC8qKlxuICAgKiDorr7nva7kuLvpophcbiAgICovXG4gIHRoZW1lPzogbnVsbCB8IFwibGlnaHRcIlxuICAvKipcbiAgICogaW5wdXQg5qCH562+5Y6f55Sf5bGe5oCnIC0gdHlwZVxuICAgKi9cbiAgdHlwZT86IHN0cmluZyB8IG51bGxcbiAgLyoqXG4gICAqIOWAvCAtIOWklumDqOaOp+WItlxuICAgKi9cbiAgdmFsdWU/OiBzdHJpbmcgfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUlucHV0UmVmIHtcbiAgY2xlYXZlOiBhbnlcbiAgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnRcbiAgbGVmdEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50IHwgbnVsbFxuICByaWdodEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50IHwgbnVsbFxuICB1cGRhdGVFbGVtZW50c1dpZHRoOiAoKSA9PiB2b2lkXG4gIGhhbmRsZUNoYW5nZTogKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkXG4gIGhhbmRsZUtleURvd246IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkXG4gIGhhbmRsZUJsdXI6IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkXG4gIGhhbmRsZUZvY3VzOiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZFxuICBoYW5kbGVBdHRhY2hlZEVsZW1lbnRDbGljazogKHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIikgPT4gdm9pZFxuICBmb2N1czogKCkgPT4gdm9pZFxuICBibHVyOiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUlucHV0XG4gIGV4dGVuZHMgUmVhY3QuRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxcbiAgICBJSW5wdXRQcm9wcyAmIFJlYWN0LlJlZkF0dHJpYnV0ZXM8SUlucHV0UmVmPlxuICA+IHtcbiAgVGV4dGFyZWE6IHR5cGVvZiBUZXh0YXJlYVxufVxuXG4vKipcbiAqIOi+k+WFpeahhueUqOS6juaWh+acrOi+k+WFpeeahOWMuuWfn++8jOWPr+e7k+WQiOWbvuagh+OAgeaMiemSruOAgemAieaLqeWZqOetiee7hOS7tuS9v+eUqOOAglxuICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBJbnB1dDogSUlucHV0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGF1dG9Db21wbGV0ZSxcbiAgICAgIGF1dG9Gb2N1cyxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNsZWF2ZU9wdGlvbnMsXG4gICAgICBjb250ZW50SnVzdGlmeSxcbiAgICAgIGNvdW50SGFuemksXG4gICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGlkLFxuICAgICAgaW5wdXRDbGFzc05hbWUsXG4gICAgICBpbnB1dFN0eWxlLFxuICAgICAgaW50ZW50LFxuICAgICAgbGVmdEVsZW1lbnQsXG4gICAgICBsaW1pdCxcbiAgICAgIG5hbWUsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbktleURvd24sXG4gICAgICBvblByZXNzRW50ZXIsXG4gICAgICBwbGFjZWhvbGRlcixcbiAgICAgIHJlcXVpcmVkLFxuICAgICAgcmlnaHRFbGVtZW50LFxuICAgICAgc2l6ZTogc2l6ZVByb3AsXG4gICAgICBzdHlsZSxcbiAgICAgIHRoZW1lLFxuICAgICAgdHlwZSxcbiAgICAgIHZhbHVlLFxuICAgICAgLi4ub3RoZXJQcm9wc1xuICAgIH06IElJbnB1dFByb3BzLFxuICAgIHJlZlxuICApID0+IHtcbiAgICBjb25zdCBbbGVmdEVsZW1lbnRXaWR0aCwgc2V0TGVmdEVsZW1lbnRXaWR0aF0gPSB1c2VTdGF0ZTxudWxsIHwgbnVtYmVyPihcbiAgICAgIG51bGxcbiAgICApXG4gICAgY29uc3QgW3JpZ2h0RWxlbWVudFdpZHRoLCBzZXRSaWdodEVsZW1lbnRXaWR0aF0gPSB1c2VTdGF0ZTxudWxsIHwgbnVtYmVyPihcbiAgICAgIG51bGxcbiAgICApXG4gICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8YW55PihudWxsKVxuICAgIGNvbnN0IHdyYXBwZXJFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIGNvbnN0IGxlZnRFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIGNvbnN0IHJpZ2h0RWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICBjb25zdCBqdXN0aWZ5RWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICBjb25zdCBjbGVhdmVSZWYgPSB1c2VSZWY8YW55PihudWxsKVxuXG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXRSZWY/LmN1cnJlbnQgfHwgY2xlYXZlUmVmPy5jdXJyZW50Py5lbGVtZW50XG5cbiAgICBjb25zdCB7IHNpemU6IHNpemVDb250ZXh0IH0gPSB1c2VDb250ZXh0KENvbmZpZ0NvbnRleHQpXG5cbiAgICBjb25zdCBzaXplID0gZ2V0Q29tcHV0ZWRTaXplKHNpemVQcm9wLCBzaXplQ29udGV4dClcblxuICAgIGNvbnN0IHN5bmNDbGVhdmUgPSAoKSA9PiB7XG4gICAgICAvKipcbiAgICAgICAqIOS/ruWkjSBjbGVhdmUuMS40LjcgYnVnOlxuICAgICAgICovXG4gICAgICBpZiAoY2xlYXZlUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IHsgZWxlbWVudCwgc3RhdGUsIHByb3BlcnRpZXMgfSA9IGNsZWF2ZVJlZi5jdXJyZW50XG4gICAgICAgIGxldCB7IGxhc3RJbnB1dFZhbHVlIH0gPSBjbGVhdmVSZWYuY3VycmVudFxuICAgICAgICBpZiAobGFzdElucHV0VmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgbGFzdElucHV0VmFsdWUgPSB2YWx1ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICBzdGF0ZS52YWx1ZSA9IHZhbHVlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BlcnRpZXMucmVzdWx0ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIHByb3BlcnRpZXMucmVzdWx0ID0gdmFsdWVcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LnZhbHVlICE9PSB2YWx1ZSAmJiB2YWx1ZSkge1xuICAgICAgICAgIC8vIOS/neWtmOWFieagh+S9jee9ruetieWQjue7reaBouWkjVxuICAgICAgICAgIGNvbnN0IHBvcyA9IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnRcblxuICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB2YWx1ZVxuXG4gICAgICAgICAgLy8g566A5Y2V562J5b6F5LiA5LiqbWljcm90YXNr77yM5ZCm5YiZ5peg5rOV6K6+572u5YWJ5qCH5L2N572uXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgICAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL2NvcmUtanMvaW50ZXJuYWxzL21pY3JvdGFzay5qcyNMTDQ2QzYxLUw0NkM2MVxuICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcylcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoIWRpc2FibGVkICYmIG9uQ2hhbmdlKSB7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnRyb2wtcmVnZXgsIG1heC1sZW4gKi9cbiAgICAgICAgLy8gMDggQmFja3NwYWNlLCAwOSBUYWIsIDBBIOaNouihjOespiwgMEIg5Z6C55u05Yi26KGo56ymLCAwQyDmjaLpobUsIDBEIOWbnui9piwgQTAg5LiN6Ze05pat56m65qC8LFxuICAgICAgICAvLyAyMDI4LzIwMjkg5YiG6ZqU56ymLCBGRWZmIOWtl+iKgumhuuW6j+agh+iusOOAglxuICAgICAgICBjb25zdCB2YWwgPSBlLnRhcmdldC52YWx1ZS5yZXBsYWNlKFxuICAgICAgICAgIC9cXHUwMDA4fFxcdTAwMDl8XFx1MDAwQXxcXHUwMDBCfFxcdTAwMEN8XFx1MDAwRHxcXHUwMEEwfFxcdTIwMjh8XFx1MjAyOXxcXHVGRUZGL2csXG4gICAgICAgICAgXCJcIlxuICAgICAgICApXG4gICAgICAgIG9uQ2hhbmdlKGUsIHZhbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiICYmIG9uUHJlc3NFbnRlcikge1xuICAgICAgICBvblByZXNzRW50ZXIoZSlcbiAgICAgIH1cbiAgICAgIGlmIChvbktleURvd24pIHtcbiAgICAgICAgb25LZXlEb3duKGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlQmx1ciA9IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBzeW5jQ2xlYXZlKClcbiAgICAgIGlmIChvbkJsdXIpIHtcbiAgICAgICAgb25CbHVyKGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlRm9jdXMgPSAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKG9uRm9jdXMpIHtcbiAgICAgICAgb25Gb2N1cyhlKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUF0dGFjaGVkRWxlbWVudENsaWNrID0gKHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBwb3NpdGlvbiA9PT0gXCJsZWZ0XCIgJiZcbiAgICAgICAgbGVmdEVsZW1lbnQgJiZcbiAgICAgICAgbGVmdEVsZW1lbnQudHlwZSAmJlxuICAgICAgICBsZWZ0RWxlbWVudC50eXBlLm5hbWUgPT09IFwiSWNvblwiXG4gICAgICApIHtcbiAgICAgICAgaW5wdXRFbGVtZW50LmZvY3VzKClcbiAgICAgICAgaW5wdXRFbGVtZW50LnNlbGVjdCgpXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHBvc2l0aW9uID09PSBcInJpZ2h0XCIgJiZcbiAgICAgICAgcmlnaHRFbGVtZW50ICYmXG4gICAgICAgIHJpZ2h0RWxlbWVudC50eXBlICYmXG4gICAgICAgIHJpZ2h0RWxlbWVudC50eXBlLm5hbWUgPT09IFwiSWNvblwiXG4gICAgICApIHtcbiAgICAgICAgaW5wdXRFbGVtZW50LmZvY3VzKClcbiAgICAgICAgaW5wdXRFbGVtZW50LnNlbGVjdCgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZml4Q29udHJvbGxlZFZhbHVlID0gKHZhbD86IHN0cmluZyB8IG51bGwpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInVuZGVmaW5lZFwiIHx8IHZhbCA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gXCJcIlxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbFxuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZUVsZW1lbnRzV2lkdGggPSBhc3luYyAoKSA9PiB7XG4gICAgICAvKipcbiAgICAgICAqIOi/meS4quaWueazleS8muWcqCBkaWRVcGRhdGUg5ZKMIGRpZE1vdW50IOaXtuWOuyBzZXRTdGF0ZVxuICAgICAgICog5LiA5a6a6KaB6YG/5YWN6YCg5oiQ5b6q546v44CCXG4gICAgICAgKi9cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDApKVxuICAgICAgaWYgKGxlZnRFbGVtZW50UmVmPy5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50V2lkdGggfSA9IGxlZnRFbGVtZW50UmVmLmN1cnJlbnRcbiAgICAgICAgLy8g6Ziy5q2i5b6q546vXG4gICAgICAgIGlmIChNYXRoLmFicyhjbGllbnRXaWR0aCAtIChsZWZ0RWxlbWVudFdpZHRoIHx8IDApKSA+IDIpIHtcbiAgICAgICAgICBzZXRMZWZ0RWxlbWVudFdpZHRoKGNsaWVudFdpZHRoKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGxlZnRFbGVtZW50V2lkdGgpIHtcbiAgICAgICAgc2V0TGVmdEVsZW1lbnRXaWR0aChudWxsKVxuICAgICAgfVxuXG4gICAgICBpZiAocmlnaHRFbGVtZW50UmVmPy5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50V2lkdGggfSA9IHJpZ2h0RWxlbWVudFJlZi5jdXJyZW50XG5cbiAgICAgICAgLy8g6Ziy5q2i5b6q546vXG4gICAgICAgIGlmIChNYXRoLmFicyhjbGllbnRXaWR0aCAtIChyaWdodEVsZW1lbnRXaWR0aCB8fCAwKSkgPiAyKSB7XG4gICAgICAgICAgc2V0UmlnaHRFbGVtZW50V2lkdGgoY2xpZW50V2lkdGgpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocmlnaHRFbGVtZW50V2lkdGgpIHtcbiAgICAgICAgc2V0UmlnaHRFbGVtZW50V2lkdGgobnVsbClcbiAgICAgIH1cblxuICAgICAgaWYgKGp1c3RpZnlFbGVtZW50UmVmPy5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IHsgc2Nyb2xsV2lkdGggfSA9IGp1c3RpZnlFbGVtZW50UmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHdyYXBwZXJFbGVtZW50UmVmLmN1cnJlbnQgJiZcbiAgICAgICAgICBNYXRoLmNlaWwoc2Nyb2xsV2lkdGgpICE9PSB3cmFwcGVyRWxlbWVudFJlZi5jdXJyZW50LmNsaWVudFdpZHRoXG4gICAgICAgICkge1xuICAgICAgICAgIHdyYXBwZXJFbGVtZW50UmVmLmN1cnJlbnQuc3R5bGUud2lkdGggPSBgJHtNYXRoLmNlaWwoc2Nyb2xsV2lkdGgpfXB4YFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0Rm9ybWF0U3RyTGVuZyA9IChzdHI6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgbGVuID0gc3RyLmxlbmd0aFxuICAgICAgbGV0IHJlYWxMZW5ndGggPSAwXG4gICAgICBsZXQgY2hhckNvZGUgPSAtMVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkgKz0gMSkge1xuICAgICAgICBjaGFyQ29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgICAgIGlmIChjaGFyQ29kZSA+PSAwICYmIGNoYXJDb2RlIDw9IDEyOCkge1xuICAgICAgICAgIHJlYWxMZW5ndGggKz0gMC41XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVhbExlbmd0aCArPSAxXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBNYXRoLmNlaWwocmVhbExlbmd0aClcbiAgICB9XG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgdXBkYXRlRWxlbWVudHNXaWR0aCgpXG4gICAgICBzeW5jQ2xlYXZlKClcbiAgICB9KVxuXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlYWxSZWYgPSBpbnB1dFJlZj8uY3VycmVudCB8fCBjbGVhdmVSZWY/LmN1cnJlbnQ/LmVsZW1lbnRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNsZWF2ZTogY2xlYXZlUmVmPy5jdXJyZW50LFxuICAgICAgICBpbnB1dDogcmVhbFJlZixcbiAgICAgICAgbGVmdEVsZW1lbnQ6IGxlZnRFbGVtZW50UmVmPy5jdXJyZW50LFxuICAgICAgICByaWdodEVsZW1lbnQ6IHJpZ2h0RWxlbWVudFJlZj8uY3VycmVudCxcbiAgICAgICAgdXBkYXRlRWxlbWVudHNXaWR0aCxcbiAgICAgICAgaGFuZGxlQ2hhbmdlLFxuICAgICAgICBoYW5kbGVLZXlEb3duLFxuICAgICAgICBoYW5kbGVCbHVyLFxuICAgICAgICBoYW5kbGVGb2N1cyxcbiAgICAgICAgaGFuZGxlQXR0YWNoZWRFbGVtZW50Q2xpY2ssXG4gICAgICAgIGZvY3VzOiAoKSA9PiByZWFsUmVmLmZvY3VzKCksXG4gICAgICAgIGJsdXI6ICgpID0+IHJlYWxSZWYuYmx1cigpLFxuICAgICAgfVxuICAgIH0pXG5cbiAgICBjb25zdCBpbnB1dFByb3BzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgYXV0b0NvbXBsZXRlLFxuICAgICAgYXV0b0ZvY3VzLFxuICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGAke3ByZWZpeH0tYmFzZWAsIGlucHV0Q2xhc3NOYW1lKSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgaWQsXG4gICAgICBuYW1lLFxuICAgICAgb25CbHVyOiBoYW5kbGVCbHVyLFxuICAgICAgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSxcbiAgICAgIG9uRm9jdXM6IGhhbmRsZUZvY3VzLFxuICAgICAgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICByZWY6IGlucHV0UmVmLFxuICAgICAgcmVxdWlyZWQsXG4gICAgICBzdHlsZToge1xuICAgICAgICBwYWRkaW5nTGVmdDogbGVmdEVsZW1lbnRXaWR0aCA/IGAke2xlZnRFbGVtZW50V2lkdGh9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICBwYWRkaW5nUmlnaHQ6IHJpZ2h0RWxlbWVudFdpZHRoID8gYCR7cmlnaHRFbGVtZW50V2lkdGh9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICAuLi5pbnB1dFN0eWxlLFxuICAgICAgfSxcbiAgICAgIHR5cGUsXG4gICAgfVxuXG4gICAgY29uc3QgY2xlYXZlSW5wdXRQcm9wcyA9IHsgLi4uaW5wdXRQcm9wcyB9XG5cbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGlucHV0UHJvcHMudmFsdWUgPSBmaXhDb250cm9sbGVkVmFsdWUodmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0UHJvcHMuZGVmYXVsdFZhbHVlID0gZml4Q29ud