betanet-mini-ui
Version:
为 Taro 而设计的 UI Library
3,153 lines • 95.9 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@tarojs/taro'), require('react'), require('@tarojs/components')) :
typeof define === 'function' && define.amd ? define(['exports', '@tarojs/taro', 'react', '@tarojs/components'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['betanet-mini-ui'] = {}, global.Taro, global.React, global.components));
}(this, (function (exports, Taro, React, components) { 'use strict';
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var Taro__default = /*#__PURE__*/_interopDefaultLegacy(Taro);
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function getDefaultExportFromCjs (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}
function createCommonjsModule(fn, basedir, module) {
return module = {
path: basedir,
exports: {},
require: function (path, base) {
return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);
}
}, fn(module, module.exports), module.exports;
}
function commonjsRequire () {
throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
}
var defineProperty = createCommonjsModule(function (module) {
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;
}
module.exports = _defineProperty;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var objectSpread2 = createCommonjsModule(function (module) {
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) {
symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
}
keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
if (i % 2) {
ownKeys(Object(source), true).forEach(function (key) {
defineProperty(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}
return target;
}
module.exports = _objectSpread2;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var _objectSpread = /*@__PURE__*/getDefaultExportFromCjs(objectSpread2);
var arrayLikeToArray = createCommonjsModule(function (module) {
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;
}
module.exports = _arrayLikeToArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var arrayWithoutHoles = createCommonjsModule(function (module) {
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) return arrayLikeToArray(arr);
}
module.exports = _arrayWithoutHoles;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var iterableToArray = createCommonjsModule(function (module) {
function _iterableToArray(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
module.exports = _iterableToArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var unsupportedIterableToArray = createCommonjsModule(function (module) {
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);
}
module.exports = _unsupportedIterableToArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var nonIterableSpread = createCommonjsModule(function (module) {
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
module.exports = _nonIterableSpread;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var toConsumableArray = createCommonjsModule(function (module) {
function _toConsumableArray(arr) {
return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
}
module.exports = _toConsumableArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var _toConsumableArray = /*@__PURE__*/getDefaultExportFromCjs(toConsumableArray);
/** Used for built-in method references. */
var objectProto = Object.prototype;
/**
* Checks if `value` is likely a prototype object.
*
* @private
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
*/
function isPrototype(value) {
var Ctor = value && value.constructor,
proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
return value === proto;
}
var _isPrototype = isPrototype;
/**
* Creates a unary function that invokes `func` with its argument transformed.
*
* @private
* @param {Function} func The function to wrap.
* @param {Function} transform The argument transform.
* @returns {Function} Returns the new function.
*/
function overArg(func, transform) {
return function(arg) {
return func(transform(arg));
};
}
var _overArg = overArg;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeKeys = _overArg(Object.keys, Object);
var _nativeKeys = nativeKeys;
/** Used for built-in method references. */
var objectProto$1 = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto$1.hasOwnProperty;
/**
* The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
*/
function baseKeys(object) {
if (!_isPrototype(object)) {
return _nativeKeys(object);
}
var result = [];
for (var key in Object(object)) {
if (hasOwnProperty.call(object, key) && key != 'constructor') {
result.push(key);
}
}
return result;
}
var _baseKeys = baseKeys;
/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
var _freeGlobal = freeGlobal;
/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */
var root = _freeGlobal || freeSelf || Function('return this')();
var _root = root;
/** Built-in value references. */
var Symbol$1 = _root.Symbol;
var _Symbol = Symbol$1;
/** Used for built-in method references. */
var objectProto$2 = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty$1 = objectProto$2.hasOwnProperty;
/**
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var nativeObjectToString = objectProto$2.toString;
/** Built-in value references. */
var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;
/**
* A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the raw `toStringTag`.
*/
function getRawTag(value) {
var isOwn = hasOwnProperty$1.call(value, symToStringTag),
tag = value[symToStringTag];
try {
value[symToStringTag] = undefined;
var unmasked = true;
} catch (e) {}
var result = nativeObjectToString.call(value);
if (unmasked) {
if (isOwn) {
value[symToStringTag] = tag;
} else {
delete value[symToStringTag];
}
}
return result;
}
var _getRawTag = getRawTag;
/** Used for built-in method references. */
var objectProto$3 = Object.prototype;
/**
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var nativeObjectToString$1 = objectProto$3.toString;
/**
* Converts `value` to a string using `Object.prototype.toString`.
*
* @private
* @param {*} value The value to convert.
* @returns {string} Returns the converted string.
*/
function objectToString(value) {
return nativeObjectToString$1.call(value);
}
var _objectToString = objectToString;
/** `Object#toString` result references. */
var nullTag = '[object Null]',
undefinedTag = '[object Undefined]';
/** Built-in value references. */
var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;
/**
* The base implementation of `getTag` without fallbacks for buggy environments.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the `toStringTag`.
*/
function baseGetTag(value) {
if (value == null) {
return value === undefined ? undefinedTag : nullTag;
}
return (symToStringTag$1 && symToStringTag$1 in Object(value))
? _getRawTag(value)
: _objectToString(value);
}
var _baseGetTag = baseGetTag;
/**
* Checks if `value` is the
* [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an object, else `false`.
* @example
*
* _.isObject({});
* // => true
*
* _.isObject([1, 2, 3]);
* // => true
*
* _.isObject(_.noop);
* // => true
*
* _.isObject(null);
* // => false
*/
function isObject(value) {
var type = typeof value;
return value != null && (type == 'object' || type == 'function');
}
var isObject_1 = isObject;
/** `Object#toString` result references. */
var asyncTag = '[object AsyncFunction]',
funcTag = '[object Function]',
genTag = '[object GeneratorFunction]',
proxyTag = '[object Proxy]';
/**
* Checks if `value` is classified as a `Function` object.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a function, else `false`.
* @example
*
* _.isFunction(_);
* // => true
*
* _.isFunction(/abc/);
* // => false
*/
function isFunction(value) {
if (!isObject_1(value)) {
return false;
}
// The use of `Object#toString` avoids issues with the `typeof` operator
// in Safari 9 which returns 'object' for typed arrays and other constructors.
var tag = _baseGetTag(value);
return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}
var isFunction_1 = isFunction;
/** Used to detect overreaching core-js shims. */
var coreJsData = _root['__core-js_shared__'];
var _coreJsData = coreJsData;
/** Used to detect methods masquerading as native. */
var maskSrcKey = (function() {
var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || '');
return uid ? ('Symbol(src)_1.' + uid) : '';
}());
/**
* Checks if `func` has its source masked.
*
* @private
* @param {Function} func The function to check.
* @returns {boolean} Returns `true` if `func` is masked, else `false`.
*/
function isMasked(func) {
return !!maskSrcKey && (maskSrcKey in func);
}
var _isMasked = isMasked;
/** Used for built-in method references. */
var funcProto = Function.prototype;
/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;
/**
* Converts `func` to its source code.
*
* @private
* @param {Function} func The function to convert.
* @returns {string} Returns the source code.
*/
function toSource(func) {
if (func != null) {
try {
return funcToString.call(func);
} catch (e) {}
try {
return (func + '');
} catch (e) {}
}
return '';
}
var _toSource = toSource;
/**
* Used to match `RegExp`
* [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
*/
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
/** Used to detect host constructors (Safari). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;
/** Used for built-in method references. */
var funcProto$1 = Function.prototype,
objectProto$4 = Object.prototype;
/** Used to resolve the decompiled source of functions. */
var funcToString$1 = funcProto$1.toString;
/** Used to check objects for own properties. */
var hasOwnProperty$2 = objectProto$4.hasOwnProperty;
/** Used to detect if a method is native. */
var reIsNative = RegExp('^' +
funcToString$1.call(hasOwnProperty$2).replace(reRegExpChar, '\\$&')
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);
/**
* The base implementation of `_.isNative` without bad shim checks.
*
* @private
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a native function,
* else `false`.
*/
function baseIsNative(value) {
if (!isObject_1(value) || _isMasked(value)) {
return false;
}
var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor;
return pattern.test(_toSource(value));
}
var _baseIsNative = baseIsNative;
/**
* Gets the value at `key` of `object`.
*
* @private
* @param {Object} [object] The object to query.
* @param {string} key The key of the property to get.
* @returns {*} Returns the property value.
*/
function getValue(object, key) {
return object == null ? undefined : object[key];
}
var _getValue = getValue;
/**
* Gets the native function at `key` of `object`.
*
* @private
* @param {Object} object The object to query.
* @param {string} key The key of the method to get.
* @returns {*} Returns the function if it's native, else `undefined`.
*/
function getNative(object, key) {
var value = _getValue(object, key);
return _baseIsNative(value) ? value : undefined;
}
var _getNative = getNative;
/* Built-in method references that are verified to be native. */
var DataView = _getNative(_root, 'DataView');
var _DataView = DataView;
/* Built-in method references that are verified to be native. */
var Map = _getNative(_root, 'Map');
var _Map = Map;
/* Built-in method references that are verified to be native. */
var Promise$1 = _getNative(_root, 'Promise');
var _Promise = Promise$1;
/* Built-in method references that are verified to be native. */
var Set$1 = _getNative(_root, 'Set');
var _Set = Set$1;
/* Built-in method references that are verified to be native. */
var WeakMap = _getNative(_root, 'WeakMap');
var _WeakMap = WeakMap;
/** `Object#toString` result references. */
var mapTag = '[object Map]',
objectTag = '[object Object]',
promiseTag = '[object Promise]',
setTag = '[object Set]',
weakMapTag = '[object WeakMap]';
var dataViewTag = '[object DataView]';
/** Used to detect maps, sets, and weakmaps. */
var dataViewCtorString = _toSource(_DataView),
mapCtorString = _toSource(_Map),
promiseCtorString = _toSource(_Promise),
setCtorString = _toSource(_Set),
weakMapCtorString = _toSource(_WeakMap);
/**
* Gets the `toStringTag` of `value`.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the `toStringTag`.
*/
var getTag = _baseGetTag;
// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
if ((_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag) ||
(_Map && getTag(new _Map) != mapTag) ||
(_Promise && getTag(_Promise.resolve()) != promiseTag) ||
(_Set && getTag(new _Set) != setTag) ||
(_WeakMap && getTag(new _WeakMap) != weakMapTag)) {
getTag = function(value) {
var result = _baseGetTag(value),
Ctor = result == objectTag ? value.constructor : undefined,
ctorString = Ctor ? _toSource(Ctor) : '';
if (ctorString) {
switch (ctorString) {
case dataViewCtorString: return dataViewTag;
case mapCtorString: return mapTag;
case promiseCtorString: return promiseTag;
case setCtorString: return setTag;
case weakMapCtorString: return weakMapTag;
}
}
return result;
};
}
var _getTag = getTag;
/**
* Checks if `value` is object-like. A value is object-like if it's not `null`
* and has a `typeof` result of "object".
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
* @example
*
* _.isObjectLike({});
* // => true
*
* _.isObjectLike([1, 2, 3]);
* // => true
*
* _.isObjectLike(_.noop);
* // => false
*
* _.isObjectLike(null);
* // => false
*/
function isObjectLike(value) {
return value != null && typeof value == 'object';
}
var isObjectLike_1 = isObjectLike;
/** `Object#toString` result references. */
var argsTag = '[object Arguments]';
/**
* The base implementation of `_.isArguments`.
*
* @private
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
*/
function baseIsArguments(value) {
return isObjectLike_1(value) && _baseGetTag(value) == argsTag;
}
var _baseIsArguments = baseIsArguments;
/** Used for built-in method references. */
var objectProto$5 = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty$3 = objectProto$5.hasOwnProperty;
/** Built-in value references. */
var propertyIsEnumerable = objectProto$5.propertyIsEnumerable;
/**
* Checks if `value` is likely an `arguments` object.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
* else `false`.
* @example
*
* _.isArguments(function() { return arguments; }());
* // => true
*
* _.isArguments([1, 2, 3]);
* // => false
*/
var isArguments = _baseIsArguments(function() { return arguments; }()) ? _baseIsArguments : function(value) {
return isObjectLike_1(value) && hasOwnProperty$3.call(value, 'callee') &&
!propertyIsEnumerable.call(value, 'callee');
};
var isArguments_1 = isArguments;
/**
* Checks if `value` is classified as an `Array` object.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an array, else `false`.
* @example
*
* _.isArray([1, 2, 3]);
* // => true
*
* _.isArray(document.body.children);
* // => false
*
* _.isArray('abc');
* // => false
*
* _.isArray(_.noop);
* // => false
*/
var isArray = Array.isArray;
var isArray_1 = isArray;
/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;
/**
* Checks if `value` is a valid array-like length.
*
* **Note:** This method is loosely based on
* [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
* @example
*
* _.isLength(3);
* // => true
*
* _.isLength(Number.MIN_VALUE);
* // => false
*
* _.isLength(Infinity);
* // => false
*
* _.isLength('3');
* // => false
*/
function isLength(value) {
return typeof value == 'number' &&
value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
var isLength_1 = isLength;
/**
* Checks if `value` is array-like. A value is considered array-like if it's
* not a function and has a `value.length` that's an integer greater than or
* equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is array-like, else `false`.
* @example
*
* _.isArrayLike([1, 2, 3]);
* // => true
*
* _.isArrayLike(document.body.children);
* // => true
*
* _.isArrayLike('abc');
* // => true
*
* _.isArrayLike(_.noop);
* // => false
*/
function isArrayLike(value) {
return value != null && isLength_1(value.length) && !isFunction_1(value);
}
var isArrayLike_1 = isArrayLike;
/**
* This method returns `false`.
*
* @static
* @memberOf _
* @since 4.13.0
* @category Util
* @returns {boolean} Returns `false`.
* @example
*
* _.times(2, _.stubFalse);
* // => [false, false]
*/
function stubFalse() {
return false;
}
var stubFalse_1 = stubFalse;
var isBuffer_1 = createCommonjsModule(function (module, exports) {
/** Detect free variable `exports`. */
var freeExports = exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
/** Built-in value references. */
var Buffer = moduleExports ? _root.Buffer : undefined;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
/**
* Checks if `value` is a buffer.
*
* @static
* @memberOf _
* @since 4.3.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
* @example
*
* _.isBuffer(new Buffer(2));
* // => true
*
* _.isBuffer(new Uint8Array(2));
* // => false
*/
var isBuffer = nativeIsBuffer || stubFalse_1;
module.exports = isBuffer;
});
/** `Object#toString` result references. */
var argsTag$1 = '[object Arguments]',
arrayTag = '[object Array]',
boolTag = '[object Boolean]',
dateTag = '[object Date]',
errorTag = '[object Error]',
funcTag$1 = '[object Function]',
mapTag$1 = '[object Map]',
numberTag = '[object Number]',
objectTag$1 = '[object Object]',
regexpTag = '[object RegExp]',
setTag$1 = '[object Set]',
stringTag = '[object String]',
weakMapTag$1 = '[object WeakMap]';
var arrayBufferTag = '[object ArrayBuffer]',
dataViewTag$1 = '[object DataView]',
float32Tag = '[object Float32Array]',
float64Tag = '[object Float64Array]',
int8Tag = '[object Int8Array]',
int16Tag = '[object Int16Array]',
int32Tag = '[object Int32Array]',
uint8Tag = '[object Uint8Array]',
uint8ClampedTag = '[object Uint8ClampedArray]',
uint16Tag = '[object Uint16Array]',
uint32Tag = '[object Uint32Array]';
/** Used to identify `toStringTag` values of typed arrays. */
var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
typedArrayTags[uint32Tag] = true;
typedArrayTags[argsTag$1] = typedArrayTags[arrayTag] =
typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] =
typedArrayTags[errorTag] = typedArrayTags[funcTag$1] =
typedArrayTags[mapTag$1] = typedArrayTags[numberTag] =
typedArrayTags[objectTag$1] = typedArrayTags[regexpTag] =
typedArrayTags[setTag$1] = typedArrayTags[stringTag] =
typedArrayTags[weakMapTag$1] = false;
/**
* The base implementation of `_.isTypedArray` without Node.js optimizations.
*
* @private
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
*/
function baseIsTypedArray(value) {
return isObjectLike_1(value) &&
isLength_1(value.length) && !!typedArrayTags[_baseGetTag(value)];
}
var _baseIsTypedArray = baseIsTypedArray;
/**
* The base implementation of `_.unary` without support for storing metadata.
*
* @private
* @param {Function} func The function to cap arguments for.
* @returns {Function} Returns the new capped function.
*/
function baseUnary(func) {
return function(value) {
return func(value);
};
}
var _baseUnary = baseUnary;
var _nodeUtil = createCommonjsModule(function (module, exports) {
/** Detect free variable `exports`. */
var freeExports = exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
/** Detect free variable `process` from Node.js. */
var freeProcess = moduleExports && _freeGlobal.process;
/** Used to access faster Node.js helpers. */
var nodeUtil = (function() {
try {
// Use `util.types` for Node.js 10+.
var types = freeModule && freeModule.require && freeModule.require('util').types;
if (types) {
return types;
}
// Legacy `process.binding('util')` for Node.js < 10.
return freeProcess && freeProcess.binding && freeProcess.binding('util');
} catch (e) {}
}());
module.exports = nodeUtil;
});
/* Node.js helper references. */
var nodeIsTypedArray = _nodeUtil && _nodeUtil.isTypedArray;
/**
* Checks if `value` is classified as a typed array.
*
* @static
* @memberOf _
* @since 3.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
* @example
*
* _.isTypedArray(new Uint8Array);
* // => true
*
* _.isTypedArray([]);
* // => false
*/
var isTypedArray = nodeIsTypedArray ? _baseUnary(nodeIsTypedArray) : _baseIsTypedArray;
var isTypedArray_1 = isTypedArray;
/** `Object#toString` result references. */
var mapTag$2 = '[object Map]',
setTag$2 = '[object Set]';
/** Used for built-in method references. */
var objectProto$6 = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty$4 = objectProto$6.hasOwnProperty;
/**
* Checks if `value` is an empty object, collection, map, or set.
*
* Objects are considered empty if they have no own enumerable string keyed
* properties.
*
* Array-like values such as `arguments` objects, arrays, buffers, strings, or
* jQuery-like collections are considered empty if they have a `length` of `0`.
* Similarly, maps and sets are considered empty if they have a `size` of `0`.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is empty, else `false`.
* @example
*
* _.isEmpty(null);
* // => true
*
* _.isEmpty(true);
* // => true
*
* _.isEmpty(1);
* // => true
*
* _.isEmpty([1, 2, 3]);
* // => false
*
* _.isEmpty({ 'a': 1 });
* // => false
*/
function isEmpty(value) {
if (value == null) {
return true;
}
if (isArrayLike_1(value) &&
(isArray_1(value) || typeof value == 'string' || typeof value.splice == 'function' ||
isBuffer_1(value) || isTypedArray_1(value) || isArguments_1(value))) {
return !value.length;
}
var tag = _getTag(value);
if (tag == mapTag$2 || tag == setTag$2) {
return !value.size;
}
if (_isPrototype(value)) {
return !_baseKeys(value).length;
}
for (var key in value) {
if (hasOwnProperty$4.call(value, key)) {
return false;
}
}
return true;
}
var isEmpty_1 = isEmpty;
/**
* 获取当前环境
*/
var ENV = process.env.TARO_ENV;
var ENV_TYPE;
(function (ENV_TYPE) {
ENV_TYPE["WEAPP"] = "weapp";
ENV_TYPE["WEB"] = "web";
ENV_TYPE["RN"] = "rn";
ENV_TYPE["SWAN"] = "swan";
ENV_TYPE["ALIPAY"] = "alipay";
ENV_TYPE["TT"] = "tt";
ENV_TYPE["QQ"] = "qq";
ENV_TYPE["JD"] = "jd";
ENV_TYPE["H5"] = "h5";
ENV_TYPE["QUICKAPP"] = "quickapp";
})(ENV_TYPE || (ENV_TYPE = {}));
var base = /*#__PURE__*/Object.freeze({
__proto__: null,
ENV: ENV,
get ENV_TYPE () { return ENV_TYPE; }
});
var ddKeys = new Set();
var ddKey = 'ddKeys12xas';
if ('dd' === ENV) {
dd.getStorage({
key: ddKey,
success: function success(res) {
var _ref = res || {},
data = _ref.data;
!isEmpty_1(data) && ddKeys.add.apply(ddKeys, _toConsumableArray(JSON.parse(data)));
}
});
}
var setDdKeys = function setDdKeys(key) {
ddKeys.add(key);
dd.setStorage({
key: ddKey,
data: JSON.stringify(_toConsumableArray(ddKeys))
});
};
var setStorage = function setStorage(params) {
switch (ENV) {
case 'dd':
params && setDdKeys(params.key);
return dd.setStorage(params);
default:
return Taro__default['default'].setStorage(params);
}
};
var setStorageSync = function setStorageSync(key, value) {
switch (ENV) {
case 'dd':
setDdKeys(key);
return dd.setStorageSync({
key: key,
data: value
});
default:
return Taro__default['default'].setStorageSync(key, value);
}
};
var getStorage = function getStorage(params) {
switch (ENV) {
case 'dd':
return dd.getStorage(params);
default:
return Taro__default['default'].getStorage(params);
}
};
var getStorageSync = function getStorageSync(key) {
switch (ENV) {
case 'dd':
var _ref2 = dd.getStorageSync({
key: key
}) || {},
data = _ref2.data;
return data;
default:
return Taro__default['default'].getStorageSync(key);
}
};
var removeStorage = function removeStorage(param) {
switch (ENV) {
case 'dd':
return dd.removeStorage(param);
default:
return Taro__default['default'].removeStorage(param);
}
};
var removeStorageSync = function removeStorageSync(key) {
switch (ENV) {
case 'dd':
return dd.removeStorageSync({
key: key
});
default:
return Taro__default['default'].removeStorageSync(key);
}
};
var clearStorageSync = function clearStorageSync() {
switch (ENV) {
case 'dd':
ddKeys && ddKeys.forEach(function (item) {
return removeStorageSync(item);
});
removeStorageSync(ddKey);
ddKeys.clear();
return;
default:
return Taro__default['default'].clearStorageSync();
}
};
var clearStorage = function clearStorage() {
switch (ENV) {
case 'dd':
ddKeys && ddKeys.forEach(function (item) {
return removeStorage({
key: item
});
});
removeStorage({
key: ddKey
});
ddKeys.clear();
return;
default:
return Taro__default['default'].clearStorage();
}
};
var storage = /*#__PURE__*/Object.freeze({
__proto__: null,
setStorage: setStorage,
setStorageSync: setStorageSync,
getStorage: getStorage,
getStorageSync: getStorageSync,
removeStorage: removeStorage,
removeStorageSync: removeStorageSync,
clearStorageSync: clearStorageSync,
clearStorage: clearStorage
});
var scanCode = function scanCode(param) {
// const {scanType} = param || {}
switch (ENV) {
case 'dd':
return dd.scan(param);
default:
return Taro__default['default'].scanCode(param);
}
};
var getSystemInfoSync = function getSystemInfoSync() {
switch (ENV) {
case 'dd':
return dd.getSystemInfoSync();
default:
return Taro__default['default'].getSystemInfoSync();
}
};
var device = /*#__PURE__*/Object.freeze({
__proto__: null,
scanCode: scanCode,
getSystemInfoSync: getSystemInfoSync
});
var showLoading = function showLoading(param) {
var _ref = param || {},
content = _ref.title;
switch (ENV) {
case 'dd':
return dd.showLoading(_objectSpread({
content: content
}, param));
default:
return Taro__default['default'].showLoading(param);
}
};
var hideLoading = function hideLoading(param) {
switch (ENV) {
case 'dd':
return dd.showLoading();
default:
return Taro__default['default'].hideLoading(param);
}
};
var showNavigationBarLoading = function showNavigationBarLoading() {
switch (ENV) {
case 'dd':
return dd.showLoading();
default:
return Taro__default['default'].showNavigationBarLoading();
}
};
var hideNavigationBarLoading = function hideNavigationBarLoading() {
switch (ENV) {
case 'dd':
return dd.hideLoading();
default:
return Taro__default['default'].hideNavigationBarLoading();
}
};
var showModal = function showModal(param) {
var _ref2 = param || {},
confirmButtonText = _ref2.confirmText,
cancelButtonText = _ref2.cancelText;
switch (ENV) {
case 'dd':
return dd.confirm(_objectSpread({
confirmButtonText: confirmButtonText,
cancelButtonText: cancelButtonText
}, param));
default:
return Taro__default['default'].showModal(param);
}
};
var showToast = function showToast(param) {
var content = param.title;
switch (ENV) {
case 'dd':
return dd.showToast(_objectSpread({
content: content
}, param));
default:
return Taro__default['default'].showToast(param);
}
};
var interactive = /*#__PURE__*/Object.freeze({
__proto__: null,
showLoading: showLoading,
hideLoading: hideLoading,
showNavigationBarLoading: showNavigationBarLoading,
hideNavigationBarLoading: hideNavigationBarLoading,
showModal: showModal,
showToast: showToast
});
var getLocation = function getLocation(param) {
var _ref = param || {},
ddType = _ref.ddType;
switch (ENV) {
case 'dd':
return dd.getLocation(_objectSpread(_objectSpread({}, param), {}, {
type: ddType
}));
default:
return Taro__default['default'].getLocation(param);
}
};
var location = /*#__PURE__*/Object.freeze({
__proto__: null,
getLocation: getLocation
});
var switchTab = function switchTab(param) {
switch (ENV) {
case 'dd':
return dd.switchTab(param);
default:
return Taro__default['default'].switchTab();
}
};
var navigateTo = function navigateTo(param) {
switch (ENV) {
case 'dd':
return dd.navigateTo(param);
default:
return Taro__default['default'].navigateTo(param);
}
};
var navigateBack = function navigateBack(param) {
switch (ENV) {
case 'dd':
return dd.navigateBack(param);
default:
return Taro__default['default'].navigateBack(param);
}
};
var reLaunch = function reLaunch(param) {
switch (ENV) {
case 'dd':
return dd.reLaunch(param);
default:
return Taro__default['default'].reLaunch(param);
}
};
var navigation = /*#__PURE__*/Object.freeze({
__proto__: null,
switchTab: switchTab,
navigateTo: navigateTo,
navigateBack: navigateBack,
reLaunch: reLaunch
});
var chooseImage = function chooseImage(option) {
switch (ENV) {
case 'dd':
return dd.chooseImage(option);
default:
return Taro__default['default'].chooseImage(option);
}
};
var previewImage = function previewImage(option) {
switch (ENV) {
case 'dd':
var urls = option.urls,
current = option.current;
var index = urls.findIndex(function (item) {
return item === current;
});
return dd.previewImage(_objectSpread(_objectSpread({}, option), {}, {
urls: urls,
current: index
}));
default:
return Taro__default['default'].previewImage(option);
}
};
var media = /*#__PURE__*/Object.freeze({
__proto__: null,
chooseImage: chooseImage,
previewImage: previewImage
});
var request = function request(option) {
switch (ENV) {
case 'dd':
var data = option.data,
method = option.method;
return dd.httpRequest(_objectSpread(_objectSpread({}, option), {}, {
data: method.toLowerCase() === 'post' ? JSON.stringify(data) : data
}));
default:
return Taro__default['default'].request(option);
}
};
var uploadFile = function uploadFile(option) {
switch (ENV) {
case 'dd':
var name = option.name;
return dd.uploadFile(_objectSpread(_objectSpread({}, option), {}, {
fileName: name
}));
default:
return Taro__default['default'].uploadFile(option);
}
};
var network = /*#__PURE__*/Object.freeze({
__proto__: null,
request: request,
uploadFile: uploadFile
});
var login = function login(option) {
switch (ENV) {
case 'dd':
return dd.getAuthCode().then(function (res) {
return {
code: res === null || res === void 0 ? void 0 : res.authCode
};
});
default:
return Taro__default['default'].login(option);
}
};
var open = /*#__PURE__*/Object.freeze({
__proto__: null,
login: login
});
var getNativeObj = function getNativeObj() {
switch (ENV) {
case 'dd':
return dd;
case 'wx':
return wx;
default:
return {};
}
};
var BM = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, getNativeObj()), Taro__default['default']), storage), device), interactive), location), navigation), media), network), base), open);
function uuid() {
var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;
var radix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
var value = [];
var i = 0;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++) {
value[i] = chars[0 | Math.random() * radix];
}
} else {
var r;
value[8] = value[13] = value[18] = value[23] = '-';
value[14] = '4';
for (i = 0; i < 36; i++) {
if (!value[i]) {
r = 0 | Math.random() * 16;
value[i] = chars[i === 19 ? r & 0x3 | 0x8 : r];
}
}
}
return value.join('');
}
var objectWithoutPropertiesLoose = createCommonjsModule(function (module) {
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;
}
module.exports = _objectWithoutPropertiesLoose;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var objectWithoutProperties = createCommonjsModule(function (module) {
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;
}
module.exports = _objectWithoutProperties;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var _objectWithoutProperties = /*@__PURE__*/getDefaultExportFromCjs(objectWithoutProperties);
var _excluded = ["term"];
var AbDigit = function AbDigit(_ref) {
var term = _ref.term,
rest = _objectWithoutProperties(_ref, _excluded);
return /*#__PURE__*/React__default['default'].createElement(components.View, null, /*#__PURE__*/React__default['default'].createElement(components.Text, null, term), /*#__PURE__*/React__default['default'].createElement(components.Input, Object.assign({}, rest, {
type: "digit"
})));
};
var runtime_1 = createCommonjsModule(function (module) {
/**
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var runtime = (function (exports) {
var Op = Object.prototype;
var hasOwn = Op.hasOwnProperty;
var undefined$1; // More compressible than void 0.
var $Symbol = typeof Symbol === "function" ? Symbol : {};
var iteratorSymbol = $Symbol.iterator || "@@iterator";
var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
function define(obj, key, value) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
return obj[key];
}
try {
// IE 8 has a broken Object.defineProperty that only works on DOM objects.
define({}, "");
} catch (err) {
define = function(obj, key, value) {
return obj[key] = value;
};
}
function wrap(innerFn, outerFn, self, tryLocsList) {
// If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
var generator = Object.create(protoGenerator.prototype);
var context = new Context(tryLocsList || []);
// The ._invoke method unifies the implementations of the .next,
// .throw, and .return methods.
generator._invoke = makeInvokeMethod(innerFn, self, context);
return generator;
}
exports.wrap = wrap;
// Try/catch helper to minimize deoptimizations. Returns a completion
// record like context.tryEntries[i].completion. This interface could
// have been (and was previously) designed to take a closure to be
// invoked without arguments, but in all the cases we care about we
// already have an existing method we want to call, so there's no need
// to create a new function object. We can even get away with assuming
// the method takes exactly one argument, since that happens to be true
// in every case, so we don't have to touch the arguments object. The
// only additional allocation required is the completion record, which
// has a stable shape and so hopefully should be cheap to allocate.
function tryCatch(fn, obj, arg) {
try {
return { type: "normal", arg: fn.call(obj, arg) };
} catch (err) {
return { type: "throw", arg: err };
}
}
var GenStateSuspendedStart = "suspendedStart";
var GenStateSuspendedYield = "suspendedYield";
var GenStateExecuting = "executing";
var GenStateCompleted = "completed";
// Returning this object from the innerFn has the same effect as
// breaking out of the dispatch switch statement.
var ContinueSentinel = {};
// Dummy constructor functions that we use as the .constructor and
// .constructor.prototype properties for functions that return Generator
// objects. For full spec compliance, you may wish to configure your
// minifier not to mangle the names of these two functions.
function Generator() {}
function GeneratorFunction() {}
function GeneratorFunctionPrototype() {}
// This is a polyfill for %IteratorPrototype% for environments that
// don't natively support it.
var IteratorPrototype = {};
define(IteratorPrototype, iteratorSymbol, function () {
return this;
});
var getProto = Object.getPrototypeOf;
var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
if (NativeIteratorPrototype &&
NativeIteratorPrototype !== Op &&
hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
// This environment has a native %IteratorPrototype%; use it instead
// of the polyfill.
IteratorPrototype = NativeIteratorPrototype;
}
var Gp = GeneratorFunctionPrototype.prototype =
Generator.prototype = Object.create(IteratorPrototype);
GeneratorFunction.prototype = GeneratorFunctionPrototype;
define(Gp, "constructor", GeneratorFunctionPrototype);
define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
GeneratorFunction.displayName = define(
GeneratorFunctionPrototype,
toStringTagSymbol,
"GeneratorFunction"
);
// Helper for defining the .next, .throw, and .return methods of the
// Iterator interface in terms of a single ._invoke method.
function defineIteratorMethods(prototype) {
["next", "throw", "return"].forEach(function(method) {
define(prototype, method, function(arg) {
return this._invoke(method, arg);
});
});
}
exports.isGeneratorFunction = function(genFun) {
var ctor = typeof genFun === "function" && genFun.constructor;
return ctor
? ctor === GeneratorFunction ||
// For the native GeneratorFunction constructor, the best we can
// do is to check its .name property.
(ctor.displayName || ctor.name) === "GeneratorFunction"
: false;
};
exports.mark = function(genFun) {
if (Object.setPrototypeOf) {
Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
} else {
genFun.__proto__ = GeneratorFunctionPrototype;
define(genFun, toStringTagSymbol, "GeneratorFunction");
}
genFun.prototype = Object.create(Gp);
return genFun;
};
// Within the body of any async function, `await x` is transformed to
// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
// `hasOwn.call(value, "__await")` to determine if the yielded value is
// meant to be awaited.
exports.awrap = function(arg) {
return { __await: arg };
};
function AsyncIterator(generator, PromiseImpl) {
function invoke(method, arg, resolve, reject) {
var record = tryCatch(generator[method], generator, arg);
if (record.type === "throw") {
reject(record.arg);
} else {
var result = record.arg;
var value = result.value;
if (value &&
typeof value === "object" &&
hasOwn.call(value, "__await")) {
return PromiseImpl.resolve(value.__await).then(function(value) {
invoke("next", value, resolve, reject);
}, function(err) {
invoke("throw", err, resolve, reject);
});
}
return PromiseImpl.resolve(value).then(function(unwrapped) {
// When a yielded Promise is resolved, its final value becomes
// the .value of the Promise<{value,done}> result for the
// current iteration.
result.value = unwrapped;
resolve(result);
}, function(error) {
// If a rejected Promise was yielded, throw the rejection back
// into the async generator function so it can be handled there.
return invoke("throw", error, resolve, reject);
});
}
}
var previousPromise;
function enqueue(method, arg) {
function callInvokeWithMethodAndArg() {
return new PromiseImpl(function(resolve, reject) {
invoke(method, arg, resolve, reject);
});
}
return previousPromise =
// If enqueue has been called before, then we want to wait until
// all previous Promises have been resolved before calling invoke,
// so that results are always delivered in the correct order. If
// enqueue has not been called before, then it is important to
// call invoke immediately, without waiting on a callback to fire,
// so that the async generator function has the opportunity to do
// any necessary setup in a predictable way. This predictability
// is why the Promise constructor synchronously invokes its
// executor callback, and why async functions synchronously
// execute code before the first await. Since we implement simple
// async functions in terms of async generators, it is especially
// important to get this right, even though it requires care.
previousPromise ? previousPromise.then(
callInvokeWithMethodAndArg,
// Avoid propagating failures to Promises returned by later
// invocations of the iterator.
callInvokeWithMethodAndArg
) : callInvokeWithMethodAndArg();
}
// Define the unified helper method that is used to implement .next,
// .throw, and .return (see defineIteratorMethods).
this._invoke = enqueue;
}
defineIteratorMethods(AsyncIterator.prototype);
define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
return this;
});
exports.AsyncIterator = AsyncIterator;
// Note that simple async functions are implemented on top of
// AsyncIterator objects; they just return a Promise for the value of
// the final result produced by the iterator.
exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
if (PromiseImpl === void 0) PromiseImpl = Promise;
var iter = new AsyncIterator(
wrap(innerFn, outerFn, self, tryLocsList),
PromiseImpl
);
return exports.isGeneratorFunction(outerFn)
? iter // If outerFn is a generator, return the full iterator.
: iter.next().then(function(result) {
return result.done ? result.value : iter.next();
});
};
function makeInvokeMethod(innerFn, self, context) {
var state = GenStateSuspendedStart;
return function invoke(method, arg) {
if (state === GenStateExecuting) {
throw new Error("Generator is already running");
}
if (state === GenStateCompleted) {
if (method === "throw") {
throw arg;
}
// Be forgiving, per 25.3.3.3.3 of the spec:
// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
return doneResult();
}
context.method = method;
context.arg = arg;
while (true) {
var delegate = context.delegate;
if (delegate) {
var delegateResult = maybeInvokeDelegate(delegate, context);
if (delegateResult) {
if (delegateResult === ContinueSentinel) continue;
return delegateResult;
}
}
if (context.method === "next") {
// Setting context._sent for legacy support of Babel's
// function.sent implementation.
context.sent = context._sent = context.arg;
} else if (context.method === "throw") {
if (state === GenStateSuspendedStart) {
state = GenStateCompleted;
throw context.arg;
}
context.dispatchException(context.arg);
} else if (context.method === "return") {
context.abrupt("return", context.arg);
}
state = GenStateExecuting;
var record = tryCatch(innerFn, self, context);
if (record.type === "normal") {
// If an exception is thrown from innerFn, we leave state ===
// GenStateExecuting and loop back for another invocation.
state = context.done
? GenStateCompleted
: GenStateSuspendedYield;
if (record.arg === ContinueSentinel) {
continue;
}
return {
value: record.arg,
done: context.done
};
} else if (record.type === "throw") {
state = GenStateCompleted;
// Dispatch the exception by looping back around to the
// context.dispatchException(context.arg) call above.
context.method = "throw";
context.arg = record.arg;
}
}
};
}
// Call delegate.iterator[context.method](context.arg) and handle the
// result, either by returning a { value, done } result from the
// delegate iterator, or by modifying context.method and context.arg,
// setting context.delegate to null, and returning the ContinueSentinel.
function maybeInvokeDelegate(delegate, context) {
var method = delegate.iterator[context.method];
if (method === undefined$1) {
// A .throw or .return when the delegate iterator has no .throw
// method always terminates the yield* loop.
context.delegate = null;
if (context.method === "throw") {
// Note: ["return"] must be used for ES3 parsing compatibility.
if (delegate.iterator["return"]) {
// If the delegate iterator has a return method, give it a
// chance to clean up.
context.method = "return";
context.arg = undefined$1;
maybeInvokeDelegate(delegate, context);
if (context.method === "throw") {
// If maybeInvokeDelegate(context) changed context.method from
// "return" to "throw", let that override the TypeError below.
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 (record.type === "throw") {
context.method = "throw";
context.arg = record.arg;
context.delegate = null;
return ContinueSentinel;
}
var info = record.arg;
if (! info) {
context.method = "throw";
context.arg = new TypeError("iterator result is not an object");
context.delegate = null;
return ContinueSentinel;
}
if (info.done) {
// Assign the result of the finished delegate to the temporary
// variable specified by delegate.resultName (see delegateYield).
context[delegate.resultName] = info.value;
// Resume execution at the desired location (see delegateYield).
context.next = delegate.nextLoc;
// If context.method was "throw" but the delegate handled the
// exception, let the outer generator proceed normally. If
// context.method was "next", forget context.arg since it has been
// "consumed" by the delegate iterator. If context.method was
// "return", allow the original .return call to continue in the
// outer generator.
if (context.method !== "return") {
context.method = "next";
context.arg = undefined$1;
}
} else {
// Re-yield the result returned by the delegate method.
return info;
}
// The delegate iterator is finished, so forget it and continue with
// the outer generator.
context.delegate = null;
return ContinueSentinel;
}
// Define Generator.prototype.{next,throw,return} in terms of the
// unified ._invoke helper method.
defineIteratorMethods(Gp);
define(Gp, toStringTagSymbol, "Generator");
// A Generator should always return itself as the iterator object when the
// @@iterator function is called on it. Some browsers' implementations of the
// iterator prototype chain incorrectly implement this, causing the Generator
// object to not be returned from this call. This ensures that doesn't happen.
// See https://github.com/facebook/regenerator/issues/274 for more details.
define(Gp, iteratorSymbol, function() {
return this;
});
define(Gp, "toString", function() {
return "[object Generator]";
});
function pushTryEntry(locs) {
var entry = { tryLoc: locs[0] };
if (1 in locs) {
entry.catchLoc = locs[1];
}
if (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) {
// The root entry object (effectively a try statement without a catch
// or a finally block) gives us a place to store values thrown from
// locations where there is no enclosing try statement.
this.tryEntries = [{ tryLoc: "root" }];
tryLocsList.forEach(pushTryEntry, this);
this.reset(true);
}
exports.keys = function(object) {
var keys = [];
for (var key in object) {
keys.push(key);
}
keys.reverse();
// Rather than returning an object with a next method, we keep
// things simple and return the next function itself.
return function next() {
while (keys.length) {
var key = keys.pop();
if (key in object) {
next.value = key;
next.done = false;
return next;
}
}
// To avoid creating an additional object, we just hang the .value
// and .done properties off the next function object itself. This
// also ensures that the minifier will not anonymize the function.
next.done = true;
return next;
};
};
function values(iterable) {
if (iterable) {
var iteratorMethod = iterable[iteratorSymbol];
if (iteratorMethod) {
return iteratorMethod.call(iterable);
}
if (typeof iterable.next === "function") {
return iterable;
}
if (!isNaN(iterable.length)) {
var i = -1, next = function next() {
while (++i < iterable.length) {
if (hasOwn.call(iterable, i)) {
next.value = iterable[i];
next.done = false;
return next;
}
}
next.value = undefined$1;
next.done = true;
return next;
};
return next.next = next;
}
}
// Return an iterator with no values.
return { next: doneResult };
}
exports.values = values;
function doneResult() {
return { value: undefined$1, done: true };
}
Context.prototype = {
constructor: Context,
reset: function(skipTempReset) {
this.prev = 0;
this.next = 0;
// Resetting context._sent for legacy support of Babel's
// function.sent implementation.
this.sent = this._sent = undefined$1;
this.done = false;
this.delegate = null;
this.method = "next";
this.arg = undefined$1;
this.tryEntries.forEach(resetTryEntry);
if (!skipTempReset) {
for (var name in this) {
// Not sure about the optimal order of these conditions:
if (name.charAt(0) === "t" &&
hasOwn.call(this, name) &&
!isNaN(+name.slice(1))) {
this[name] = undefined$1;
}
}
}
},
stop: function() {
this.done = true;
var rootEntry = this.tryEntries[0];
var rootRecord = rootEntry.completion;
if (rootRecord.type === "throw") {
throw rootRecord.arg;
}
return this.rval;
},
dispatchException: function(exception) {
if (this.done) {
throw exception;
}
var context = this;
function handle(loc, caught) {
record.type = "throw";
record.arg = exception;
context.next = loc;
if (caught) {
// If the dispatched exception was caught by a catch block,
// then let that catch block handle the exception normally.
context.method = "next";
context.arg = undefined$1;
}
return !! caught;
}
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
var record = entry.completion;
if (entry.tryLoc === "root") {
// Exception thrown outside of any try block that could handle
// it, so set the completion value of the entire function to
// throw the exception.
return handle("end");
}
if (entry.tryLoc <= this.prev) {
var hasCatch = hasOwn.call(entry, "catchLoc");
var hasFinally = hasOwn.call(entry, "finallyLoc");
if (hasCatch && hasFinally) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
} else if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else if (hasCatch) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
}
} else if (hasFinally) {
if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else {
throw new Error("try statement without catch or finally");
}
}
}
},
abrupt: function(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;
}
}
if (finallyEntry &&
(type === "break" ||
type === "continue") &&
finallyEntry.tryLoc <= arg &&
arg <= finallyEntry.finallyLoc) {
// Ignore the finally entry if control is not jumping to a
// location outside the try/catch block.
finallyEntry = null;
}
var record = finallyEntry ? finallyEntry.completion : {};
record.type = type;
record.arg = arg;
if (finallyEntry) {
this.method = "next";
this.next = finallyEntry.finallyLoc;
return ContinueSentinel;
}
return this.complete(record);
},
complete: function(record, afterLoc) {
if (record.type === "throw") {
throw record.arg;
}
if (record.type === "break" ||
record.type === "continue") {
this.next = record.arg;
} else if (record.type === "return") {
this.rval = this.arg = record.arg;
this.method = "return";
this.next = "end";
} else if (record.type === "normal" && afterLoc) {
this.next = afterLoc;
}
return ContinueSentinel;
},
finish: function(finallyLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.finallyLoc === finallyLoc) {
this.complete(entry.completion, entry.afterLoc);
resetTryEntry(entry);
return ContinueSentinel;
}
}
},
"catch": function(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 (record.type === "throw") {
var thrown = record.arg;
resetTryEntry(entry);
}
return thrown;
}
}
// The context.catch method must only be called with a location
// argument that corresponds to a known catch block.
throw new Error("illegal catch attempt");
},
delegateYield: function(iterable, resultName, nextLoc) {
this.delegate = {
iterator: values(iterable),
resultName: resultName,
nextLoc: nextLoc
};
if (this.method === "next") {
// Deliberately forget the last sent value so that we don't
// accidentally pass it on to the delegate.
this.arg = undefined$1;
}
return ContinueSentinel;
}
};
// Regardless of whether this script is executing as a CommonJS module
// or not, return the runtime object so that we can declare the variable
// regeneratorRuntime in the outer scope, which allows this module to be
// injected easily by `bin/regenerator --include-runtime script.js`.
return exports;
}(
// If this script is executing as a CommonJS module, use module.exports
// as the regeneratorRuntime namespace. Otherwise create a new empty
// object. Either way, the resulting object will be used to initialize
// the regeneratorRuntime variable at the top of this file.
module.exports
));
try {
regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
// This module should not be running in strict mode, so the above
// assignment should always work unless something is misconfigured. Just
// in case runtime.js accidentally runs in strict mode, in modern engines
// we can explicitly access globalThis. In older engines we can escape
// strict mode using a global Function call. This could conceivably fail
// if a Content Security Policy forbids using Function, but in that case
// the proper solution is to fix the accidental strict mode problem. If
// you've misconfigured your bundler to force strict mode and applied a
// CSP to forbid Function, and you're not willing to fix either of those
// problems, please detail your unique predicament in a GitHub issue.
if (typeof globalThis === "object") {
globalThis.regeneratorRuntime = runtime;
} else {
Function("r", "regeneratorRuntime = r")(runtime);
}
}
});
var regenerator = runtime_1;
var asyncToGenerator = createCommonjsModule(function (module) {
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);
});
};
}
module.exports = _asyncToGenerator;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var _asyncToGenerator = /*@__PURE__*/getDefaultExportFromCjs(asyncToGenerator);
var classnames = createCommonjsModule(function (module) {
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/* global define */
(function () {
var hasOwn = {}.hasOwnProperty;
function classNames() {
var classes = [];
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
if (!arg) continue;
var argType = typeof arg;
if (argType === 'string' || argType === 'number') {
classes.push(arg);
} else if (Array.isArray(arg)) {
if (arg.length) {
var inner = classNames.apply(null, arg);
if (inner) {
classes.push(inner);
}
}
} else if (argType === 'object') {
if (arg.toString === Object.prototype.toString) {
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes.push(key);
}
}
} else {
classes.push(arg.toString());
}
}
}
return classes.join(' ');
}
if ( module.exports) {
classNames.default = classNames;
module.exports = classNames;
} else {
window.classNames = classNames;
}
}());
});
var generateMatrix = function generateMatrix(files, col, showAddBtn) {
var matrix = [];
var length = showAddBtn ? files.length + 1 : files.length;
var row = Math.ceil(length / col);
for (var i = 0; i < row; i++) {
if (i === row - 1) {
// 最后一行数据加上添加按钮
var lastArr = files.slice(i * col);
if (lastArr.length < col) {
if (showAddBtn) {
lastArr.push({
type: 'btn',
uuid: uuid()
});
} // 填补剩下的空列
for (var j = lastArr.length; j < col; j++) {
lastArr.push({
type: 'blank',
uuid: uuid()
});
}
}
matrix.push(lastArr);
} else {
matrix.push(files.slice(i * col, (i + 1) * col));
}
}
return matrix;
};
var PicturePicker = function PicturePicker(props) {
var _props$className = props.className,
className = _props$className === void 0 ? '' : _props$className,
_props$customStyle = props.customStyle,
customStyle = _props$customStyle === void 0 ? '' : _props$customStyle,
_props$value = props.value,
value = _props$value === void 0 ? [] : _props$value,
_props$max = props.max,
max = _props$max === void 0 ? 99 : _props$max,
_props$mode = props.mode,
mode = _props$mode === void 0 ? 'aspectFill' : _props$mode,
_props$length = props.length,
length = _props$length === void 0 ? 4 : _props$length,
_props$showAddBtn = props.showAddBtn,
showAddBtn = _props$showAddBtn === void 0 ? true : _props$showAddBtn,
_props$onChange = props.onChange,
onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
_props$onImageClick = props.onImageClick,
onImageClick = _props$onImageClick === void 0 ? function () {} : _props$onImageClick,
_props$onFail = props.onFail,
onFail = _props$onFail === void 0 ? function () {} : _props$onFail,
_props$editable = props.editable,
editable = _props$editable === void 0 ? true : _props$editable;
var handleRemoveImg = function handleRemoveImg(idx, event) {
event.stopPropagation();
event.preventDefault();
if (BM$1.ENV === Taro__default['default'].ENV_TYPE.WEB) {
window.URL.revokeObjectURL(value[idx].url);
}
var rFiles = [];
var dFiles = [];
value.forEach(function (v, i) {
if (i !== idx) {
rFiles.push(v);
} else {
dFiles.push(v);
}
});
onChange(rFiles, 'remove', dFiles, idx);
};
var handleImageClick = function handleImageClick(idx, item) {
BM$1.previewImage({
current: item.url,
urls: value.map(function (item) {
return item.url;
})
});
onImageClick && onImageClick(idx, value[idx]);
};
var analysisFiles = function analysisFiles(flle) {
switch (BM$1.ENV) {
case 'dd':
return {
path: flle === null || flle === void 0 ? void 0 : flle.path,
size: flle === null || flle === void 0 ? void 0 : flle.size,
type: flle === null || flle === void 0 ? void 0 : flle.fileType,
name: BM$1.uuid() + '.' + (flle === null || flle === void 0 ? void 0 : flle.fileType)
};
default:
var path = (flle === null || flle === void 0 ? void 0 : flle.path) || '';
var suffix = path === null || path === void 0 ? void 0 : path.slice(path === null || path === void 0 ? void 0 : path.lastIndexOf('.'));
var filename = BM$1.uuid() + suffix;
return {
path: path,
size: flle === null || flle === void 0 ? void 0 : flle.size,
type: suffix.slice(1),
name: filename
};
}
};
var chooseFile = function chooseFile() {
var multiple = props.multiple,
sizeType = props.sizeType,
sourceType = props.sourceType;
var filePathName = BM$1.ENV === 'dd' ? 'files' : 'tempFiles';
var params = {};
if (multiple) {
params.count = max ? max - (value === null || value === void 0 ? void 0 : value.length) : 99;
} else {
params.count = 1;
}
if (sizeType) {
params.sizeType = sizeType;
}
if (sourceType) {
params.sourceType = sourceType;
}
BM$1.chooseImage(params).then(function (res) {
var targetFiles = res.tempFilePaths.map(function (path, i) {
return {
url: path,
file: analysisFiles(res[filePathName][i])
};
});
var newFiles = value.concat(targetFiles);
onChange(newFiles, 'add', targetFiles);
}).catch(onFail);
};
var rowLength = length <= 0 ? 1 : length; // 行数
var matrix = generateMatrix(value, rowLength, showAddBtn);
var rootCls = classnames('bm-image-picker', className);
return /*#__PURE__*/React__default['default'].createElement(components.View, {
className: rootCls,
style: customStyle
}, matrix.map(function (row, i) {
return /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-image-picker__flex-box",
key: i + 1
}, row.map(function (item, j) {
var _item$file, _item$file2, _item$file3;
var errorCls = ((_item$file = item.file) === null || _item$file === void 0 ? void 0 : _item$file.status) === 'error' ? 'bm-image-picker__item-error' : '';
return item.url ? /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-image-picker__flex-item",
key: i * length + j
}, /*#__PURE__*/React__default['default'].createElement(components.View, {
className: classnames('bm-image-picker__item', errorCls)
}, editable && /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-image-picker__remove-btn",
onClick: function onClick(e) {
return handleRemoveImg(i * length + j, e);
}
}), /*#__PURE__*/React__default['default'].createElement(components.Image, {
className: "bm-image-picker__preview-img",
mode: mode,
src: ((_item$file2 = item.file) === null || _item$file2 === void 0 ? void 0 : _item$file2.path) || item.url,
onClick: function onClick(e) {
return handleImageClick(i * length + j, item);
}
})), ((_item$file3 = item.file) === null || _item$file3 === void 0 ? void 0 : _item$file3.status) === 'uploading' && /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "loading-con"
}, /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "loading-mask"
}), /*#__PURE__*/React__default['default'].createElement(components.Image, {
className: "loading-animation",
src: require('../../assets/images/loading.svg')
}))) : /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-image-picker__flex-item",
key: 'empty_' + i * length + j
}, editable && item.type === 'btn' && max > (value === null || value === void 0 ? void 0 : value.length) && /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-image-picker__item bm-image-picker__choose-btn",
onClick: chooseFile
}, /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "add-bar"
}), /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "add-bar"
})));
}));
}));
};
var BmPicture = function BmPicture(props) {
var action = props.action,
_props$name = props.name,
name = _props$name === void 0 ? 'file' : _props$name,
_props$formData = props.formData,
formData = _props$formData === void 0 ? {} : _props$formData,
_props$value = props.value,
value = _props$value === void 0 ? [] : _props$value,
_props$fileType = props.fileType,
fileType = _props$fileType === void 0 ? 'image' : _props$fileType,
_props$onChange = props.onChange,
onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
beforeUpload = props.beforeUpload;
var uploadCount = 0;
var handleChange = function handleChange(files, operationType, operationData, index) {
if (operationType !== 'add') {
onChange(_toConsumableArray(files), operationType, operationData, index);
return;
}
operationData === null || operationData === void 0 ? void 0 : operationData.forEach( /*#__PURE__*/function () {
var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(currentFile) {
var _currentFile$file, _currentFile$file2;
var cFileName, uploadParam, innerParam, bData, _ref2, innerAction, innerFormData, fFormData, iFromData, fAction, iAction, fFromData, cFromData, finalAction, result;
return regenerator.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
uploadCount++;
currentFile.file.status = 'uploading';
onChange(_toConsumableArray(files), operationType, operationData);
cFileName = currentFile === null || currentFile === void 0 ? void 0 : (_currentFile$file = currentFile.file) === null || _currentFile$file === void 0 ? void 0 : _currentFile$file.name;
uploadParam = {
filePath: (currentFile === null || currentFile === void 0 ? void 0 : (_currentFile$file2 = currentFile.file) === null || _currentFile$file2 === void 0 ? void 0 : _currentFile$file2.path) || '',
name: name,
fileName: cFileName,
fileType: fileType
};
if (!beforeUpload) {
_context.next = 29;
break;
}
_context.next = 8;
return beforeUpload(files, currentFile);
case 8:
bData = _context.sent;
_ref2 = bData || {}, innerAction = _ref2.action, innerFormData = _ref2.formData;
fFormData = innerFormData || formData;
iFromData = fFormData instanceof Function ? fFormData() : fFormData;
fAction = innerAction || action;
iAction = fAction instanceof Function ? fAction() : fAction;
_context.next = 16;
return iFromData;
case 16:
fFromData = _context.sent;
_context.t0 = _objectSpread;
_context.t1 = _objectSpread({}, uploadParam);
_context.t2 = {};
_context.next = 22;
return iAction;
case 22:
_context.t3 = _context.sent;
_context.t4 = fFromData;
_context.t5 = (fFromData === null || fFromData === void 0 ? void 0 : fFromData.fileName) || cFileName;
_context.t6 = {
url: _context.t3,
formData: _context.t4,
fileName: _context.t5
};
innerParam = (0, _context.t0)(_context.t1, _context.t2, _context.t6);
_context.next = 42;
break;
case 29:
cFromData = formData instanceof Function ? formData() : formData;
finalAction = action instanceof Function ? action() : action;
_context.t7 = _objectSpread;
_context.t8 = _objectSpread({}, uploadParam);
_context.t9 = {};
_context.next = 36;
return finalAction;
case 36:
_context.t10 = _context.sent;
_context.next = 39;
return cFromData;
case 39:
_context.t11 = _context.sent;
_context.t12 = {
url: _context.t10,
formData: _context.t11
};
innerParam = (0, _context.t7)(_context.t8, _context.t9, _context.t12);
case 42:
_context.prev = 42;
_context.next = 45;
return upload(innerParam);
case 45:
result = _context.sent;
if ((result === null || result === void 0 ? void 0 : result.statusCode) === 200) {
currentFile.file.status = 'done';
} else {
currentFile.file.status = 'error';
}
currentFile.file.response = result;
_context.next = 54;
break;
case 50:
_context.prev = 50;
_context.t13 = _context["catch"](42);
currentFile.file.status = 'error';
currentFile.file.response = _context.t13;
case 54:
if (uploadCount >= operationData.length) {
onChange(_toConsumableArray(files), operationType, operationData);
}
case 55:
case "end":
return _context.stop();
}
}
}, _callee, null, [[42, 50]]);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}());
};
var upload = function upload(param) {
var _ref3 = param || {},
url = _ref3.url,
filePath = _ref3.filePath,
_ref3$name = _ref3.name,
name = _ref3$name === void 0 ? 'file' : _ref3$name,
fileName = _ref3.fileName,
_ref3$formData = _ref3.formData,
formData = _ref3$formData === void 0 ? {} : _ref3$formData,
_ref3$fileType = _ref3.fileType,
fileType = _ref3$fileType === void 0 ? 'image' : _ref3$fileType;
return BM.uploadFile({
url: url,
filePath: filePath,
name: name,
fileName: fileName,
formData: formData,
fileType: fileType
});
};
return /*#__PURE__*/React__default['default'].createElement(PicturePicker, Object.assign({}, props, {
value: _toConsumableArray(value),
onChange: handleChange
}));
};
BmPicture.defaultProps = {};
var _excluded$1 = ["value", "onChange", "onFocus", "onBlur", "onConfirm", "editable", "onClick", "onKeyboardHeightChange", "onErrorClick", "children", "title", "required", "clear", "className", "name", "border", "customStyle", "placeholderClass", "error"];
function getInputProps(props) {
var actualProps = {
type: props.type,
maxlength: props.maxlength,
disabled: props.disabled,
password: false
};
switch (actualProps.type) {
case 'phone':
actualProps.type = 'number';
actualProps.maxlength = 11;
break;
case 'password':
actualProps.type = 'text';
actualProps.password = true;
break;
}
if (!props.disabled && !props.editable) {
actualProps.disabled = true;
}
return actualProps;
}
var inputClearing = false;
var BmInput = function BmInput(props) {
var value = props.value,
onChange = props.onChange,
onFocus = props.onFocus,
onBlur = props.onBlur,
onConfirm = props.onConfirm,
editable = props.editable,
onClick = props.onClick,
onKeyboardHeightChange = props.onKeyboardHeightChange,
onErrorClick = props.onErrorClick,
children = props.children,
title = props.title,
required = props.required,
clear = props.clear,
className = props.className,
name = props.name,
border = props.border,
customStyle = props.customStyle,
placeholderClass = props.placeholderClass,
error = props.error,
rest = _objectWithoutProperties(props, _excluded$1);
var handleInput = function handleInput(event) {
return onChange(event.detail.value, event);
};
var handleFocus = function handleFocus(event) {
if (typeof onFocus === 'function') {
onFocus(event.detail.value, event);
}
};
var handleBlur = function handleBlur(event) {
if (typeof onBlur === 'function') {
onBlur(event.detail.value, event);
}
if (event.type === 'blur' && !inputClearing) {
// fix # 583 BmInput 不触发 onChange 的问题
onChange(event.detail.value, event);
} // 还原状态
inputClearing = false;
};
var handleConfirm = function handleConfirm(event) {
if (typeof onConfirm === 'function') {
onConfirm(event.detail.value, event);
}
};
var handleClick = function handleClick(event) {
if (!editable && typeof onClick === 'function') {
onClick(event);
}
};
var handleClearValue = function handleClearValue(event) {
inputClearing = true;
onChange('', event);
};
var handleKeyboardHeightChange = function handleKeyboardHeightChange(event) {
if (typeof onKeyboardHeightChange === 'function') {
onKeyboardHeightChange(event);
}
};
var handleErrorClick = function handleErrorClick(event) {
if (typeof onErrorClick === 'function') {
onErrorClick(event);
}
};
var _getInputProps = getInputProps(props),
type = _getInputProps.type,
maxlength = _getInputProps.maxlength,
disabled = _getInputProps.disabled,
password = _getInputProps.password;
var rootCls = classnames('bm-input', {
'bm-input--without-border': !border
}, className);
var containerCls = classnames('bm-input__container', {
'bm-input--error': error,
'bm-input--disabled': disabled
});
var overlayCls = classnames('bm-input__overlay', {
'bm-input__overlay--hidden': !disabled
});
var placeholderCls = classnames('placeholder', placeholderClass);
var id = name && {
id: name
};
return /*#__PURE__*/React__default['default'].createElement(components.View, {
className: rootCls,
style: customStyle
}, /*#__PURE__*/React__default['default'].createElement(components.View, {
className: containerCls
}, /*#__PURE__*/React__default['default'].createElement(components.View, {
className: overlayCls,
onClick: handleClick
}), title && /*#__PURE__*/React__default['default'].createElement(components.Label, {
className: "bm-input__title ".concat(required && 'bm-input__title--required'),
for: name
}, title), /*#__PURE__*/React__default['default'].createElement(components.Input, Object.assign({
className: "bm-input__input"
}, id, {
name: name,
value: value
}, rest, {
type: type,
maxlength: maxlength,
password: password,
onInput: handleInput,
onFocus: handleFocus,
onBlur: handleBlur,
onConfirm: handleConfirm,
onKeyboardHeightChange: handleKeyboardHeightChange
})), clear && value && /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-input__icon",
onTouchEnd: handleClearValue
}, /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-input__icon-clear"
})), error && /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-input__icon",
onTouchStart: handleErrorClick
}, /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-input__icon-close"
})), /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-input__children"
}, children)));
};
BmInput.defaultProps = {
error: false,
disabled: false,
editable: true,
onChange: function onChange() {}
};
var arrayWithHoles = createCommonjsModule(function (module) {
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
module.exports = _arrayWithHoles;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var iterableToArrayLimit = createCommonjsModule(function (module) {
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;
}
module.exports = _iterableToArrayLimit;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var nonIterableRest = createCommonjsModule(function (module) {
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.");
}
module.exports = _nonIterableRest;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var slicedToArray = createCommonjsModule(function (module) {
function _slicedToArray(arr, i) {
return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
}
module.exports = _slicedToArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;
});
var _slicedToArray = /*@__PURE__*/getDefaultExportFromCjs(slicedToArray);
var _excluded$2 = ["value", "placeholder", "options", "optionKey", "optionValue", "onChange", "mode"];
var BmPicker = function BmPicker(_ref) {
var value = _ref.value,
placeholder = _ref.placeholder,
options = _ref.options,
optionKey = _ref.optionKey,
_ref$optionValue = _ref.optionValue,
optionValue = _ref$optionValue === void 0 ? optionKey : _ref$optionValue,
onChange = _ref.onChange,
mode = _ref.mode,
rest = _objectWithoutProperties(_ref, _excluded$2);
var handleChange = function handleChange(e) {
var reValue = e.detail.value;
switch (mode) {
case 'time':
case 'date':
onChange(reValue, reValue);
break;
case 'multiSelector':
var _analysisMultiData = analysisMultiData(reValue),
_analysisMultiData2 = _slicedToArray(_analysisMultiData, 2),
item = _analysisMultiData2[0],
itemObj = _analysisMultiData2[1];
onChange(item, itemObj);
break;
default:
var fValue = optionKey ? options[reValue][optionValue] : options[reValue];
onChange(fValue, options[reValue]);
break;
}
};
var analysisMultiData = function analysisMultiData(param) {
var itemObj = [];
var item = param.map(function (p, i) {
if (optionKey) {
itemObj.push(options[i][p]);
return options[i][p][optionValue];
}
itemObj.push(options[i][p]);
return options[i][p];
});
return [item, itemObj];
};
var getCurrentDisplay = function getCurrentDisplay() {
if (!optionKey) return !value || typeof value === 'string' ? value : value.join(',');
if (mode === 'multiSelector') {
var f = value === null || value === void 0 ? void 0 : value.map(function (v, i) {
var c = options[i].find(function (item) {
return item[optionValue] === v;
});
return c[optionKey];
});
return f === null || f === void 0 ? void 0 : f.join(',');
}
var currentItem = (options === null || options === void 0 ? void 0 : options.find(function (item) {
return item[optionValue] == value;
})) || {};
return currentItem[optionKey];
};
return /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-picker"
}, /*#__PURE__*/React__default['default'].createElement(components.Picker, Object.assign({}, rest, {
mode: mode,
range: options,
rangeKey: optionKey,
onChange: handleChange
}), /*#__PURE__*/React__default['default'].createElement(components.View, {
className: "bm-picker-item"
}, /*#__PURE__*/React__default['default'].createElement(components.Text, null, getCurrentDisplay() || placeholder), /*#__PURE__*/React__default['default'].createElement(components.Image, {
className: "bm-picker-item-arrow",
src: require('../../assets/images/arrow-down.svg')
}))));
};
BmPicker.defaultProps = {
placeholder: '请点击选择',
options: [],
onChange: function onChange() {}
};
function useModal(option) {
var initialOption = React.useRef();
React.useEffect(function () {
initialOption.current = option;
}, [option]);
var showModalAsync = React.useCallback(function (option) {
return new Promise(function (resolve, reject) {
try {
if (!option && !initialOption.current) {
console.warn('please provide a option');
return reject(new Error('please provide a option'));
} else {
var options = Object.assign({}, initialOption.current || {}, option || {});
Taro.showModal(_objectSpread(_objectSpread({}, options), {}, {
success: resolve,
fail: reject
})).catch(reject);
}
} catch (e) {
reject(e);
}
});
}, [initialOption]);
return [showModalAsync];
}
var BM$1 = _objectSpread(_objectSpread({}, BM), {}, {
uuid: uuid
});
exports.BmDigit = AbDigit;
exports.BmInput = BmInput;
exports.BmPicker = BmPicker;
exports.BmPicture = BmPicture;
exports.default = BM$1;
exports.useModal = useModal;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=betanet-mini-ui.js.map