-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathbbo.min.js.map
1 lines (1 loc) · 127 KB
/
bbo.min.js.map
1
{"version":3,"file":"bbo.min.js","sources":["../src/lodash/get_tag.js","../src/lodash/is_string.js","../src/lodash/is_function.js","../src/util/version.js","../src/util/get_global.js","../src/util/no_conflict.js","../src/device/ua.js","../src/device/is_ios.js","../src/device/is_mobile.js","../src/device/ie_version.js","../src/args/args.js","../src/args/noop.js","../src/args/has_own_property.js","../src/bom/set_style.js","../src/bom/attr.js","../src/behavior/trigger.js","../src/bom/g.js","../src/bom/c.js","../src/lodash/is_array.js","../src/lodash/is_map.js","../src/lodash/is_set.js","../src/collection/size.js","../src/other/is_typeof.js","../src/other/judge.js","../src/lodash/is_object.js","../src/object/proper_object.js","../src/lodash/is_date.js","../src/lodash/is_empty.js","../src/object/object_diff.js","../src/object/added_diff.js","../src/object/deleted_diff.js","../src/object/updated_diff.js","../src/json/to_json.js","../src/random/random_key.js","../src/lodash/is_number.js","../src/cookie/cookie.js","../src/cookie/set_cookie.js","../src/cookie/delete_cookie.js","../src/http/delete_url_param.js","../src/http/object_param.js","../src/times/clear_timesout.js","../src/fill/fill0.js","../src/times/get_date.js","../src/times/sleep.js","../src/times/retry.js","../src/random/random_a2b.js","../src/collection/clone.js","../src/lodash/is_boolean.js","../src/collection/extend.js","../src/lodash/is.js","../src/lodash/is_symbol.js","../src/lodash/is_nil.js","../src/lodash/is_shallow_equal.js","../src/lodash/map.js","../src/lodash/string_to_path.js","../src/lodash/to_path.js","../src/lodash/for_each.js","../src/string/underscored.js","../src/functions.js","../src/device/is_iphone.js","../src/device/is_ipad.js","../src/device/is_android.js","../src/device/is_pc.js","../src/device/is_weixin.js","../src/device/is_news_app.js","../src/device/is_qq.js","../src/device/is_qq_browser.js","../src/device/is_tenvideo.js","../src/device/is_weishi.js","../src/device/is_iphonex_model.js","../src/device/is_ie.js","../src/args/merge.js","../src/args/over.js","../src/args/call.js","../src/bom/stop_propagation.js","../src/bom/gc.js","../src/bom/query.js","../src/bom/show.js","../src/bom/hide.js","../src/bom/element_contains.js","../src/bom/get_style.js","../src/other/uuid.js","../src/other/hash.js","../src/other/get_type.js","../src/other/construct.js","../src/other/params_name.js","../src/other/log.js","../src/object/detailed_diff.js","../src/json/jsonp.js","../src/cookie/get_cookie.js","../src/cookie/parse_cookie.js","../src/bom/open.js","../src/http/get_url_param.js","../src/http/set_url_param.js","../src/http/http_get.js","../src/http/http_post.js","../src/times/set_timesout.js","../src/times/format_pass_time.js","../src/times/format_remain_time.js","../src/times/format_duration.js","../src/fill/floor.js","../src/fill/chain_async.js","../src/fill/number_format.js","../src/fill/modulo.js","../src/random/random_color.js","../src/behavior/lock_touch.js","../src/behavior/copy_to_clipboard.js","../src/collection/values.js","../src/collection/entries.js","../src/collection/flush.js","../src/collection/search.js","../src/lodash/has.js","../src/lodash/reduce.js","../src/lodash/map_values.js","../src/lodash/find_index.js","../src/lodash/find.js","../src/lodash/get.js","../src/lodash/set.js","../src/lodash/debounce.js","../src/lodash/throttle.js","../src/lodash/pick.js","../src/lodash/omit.js","../src/string/trim.js","../src/string/fill_zero.js","../src/string/long_unique.js","../src/string/strip_tags.js","../src/string/capitalize.js","../src/string/de_capitalize.js","../src/http/is_absolute_url.js","../src/string/map_string.js","../src/string/mask.js","../src/string/split_lines.js","../src/string/camelize.js","../src/string/dasherize.js","../src/string/truncate.js","../src/string/byte_size.js","../src/string/byte_len.js","../src/string/repeat.js","../src/string/ends_with.js","../src/string/starts_with.js","../src/string/contains_with.js","../src/string/xss_filter.js","../src/string/effort_Index.js","../src/string/capwords.js","../src/array/unique.js","../src/array/unique_by.js","../src/array/unique_from.js","../src/array/random.js","../src/array/random_size.js","../src/array/shuffle.js","../src/array/contains.js","../src/array/copy_array.js","../src/array/includes_all.js","../src/array/includes_any.js","../src/array/remove_at.js","../src/array/remove.js","../src/array/compact.js","../src/array/pluck.js","../src/array/union.js","../src/array/union_by.js","../src/array/union_with.js","../src/array/intersect.js","../src/array/intersect_by.js","../src/array/difference.js","../src/array/difference_by.js","../src/array/max.js","../src/array/min.js","../src/array/equal.js","../src/array/all_equal.js","../src/array/all.js","../src/array/any.js","../src/array/chunk.js","../src/array/count_by.js","../src/array/count_occurrences.js","../src/array/drop.js","../src/array/drop_right.js","../src/array/drop_while.js","../src/array/drop_right_while.js","../src/array/column.js","../src/array/split.js","../src/array/unary.js","../src/array/index_by.js","../src/chain/wrapper.js","../src/index.js","../src/chain/chain.js"],"sourcesContent":["export default function getTag(src) {\n return Object.prototype.toString.call(src);\n}\n","import getTag from './get_tag';\n\nexport default function isString(str) {\n return getTag(str) === '[object String]';\n}\n","import getTag from './get_tag';\n\nexport default function isFunction(func) {\n return getTag(func) === '[object Function]';\n}\n","const version = '1.1.26';\n\nexport default version;\n","let globalObject = null;\n\nfunction getGlobalObject() {\n if (globalObject !== null) {\n return globalObject;\n }\n /* istanbul ignore next */\n // It's hard to mock the global variables. This code surely works fine. I hope :)\n if (typeof global === 'object' && global.Object === Object) {\n // NodeJS global object\n globalObject = global;\n } else if (typeof self === 'object' && self.Object === Object) {\n // self property from Window object\n globalObject = self;\n } else {\n // Other cases. Function constructor always has the context as global object\n // eslint-disable-next-line no-new-func\n globalObject = new Function('return this')();\n }\n return globalObject;\n}\n\nexport default getGlobalObject;\n","/* eslint-disable no-invalid-this */\nimport getGlobalObject from './get_global';\n\nconst globalObject = getGlobalObject();\nconst previous = globalObject.bbo;\n\nexport default function noConflict() {\n if (this === globalObject.bbo) {\n globalObject.bbo = previous;\n }\n return this;\n}\n","export default function ua(lower) {\n return lower ? window.navigator.userAgent.toLowerCase() : window.navigator.userAgent;\n}\n","import ua from './ua';\n/**\n * detect IOS\n * From https://stackoverflow.com/questions/9038625/detect-if-device-is-ios\n * more see:\n * https://github.com/madrobby/zepto/blob/master/src/detect.js#files\n */\n\nexport default function isIOS() {\n return /iPad|iPhone|iPod/.test(ua());\n}\n","import ua from './ua';\n\n/**\n * detect PC / Mobile\n * From https://stackoverflow.com/questions/3514784/what-is-the-best-way-to-detect-a-mobile-device-in-jquery\n */\nexport default function isMobile() {\n return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(ua('l'));\n}\n","import ua from './ua';\n\n/**\n * ie version\n * From https://codepen.io/gapcode/pen/vEJNZN\n * IE 10 ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\n * IE 11 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\n * Edge 12 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\n * Edge 13 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';\n */\nexport default function ieVersion() {\n let uakit = ua();\n let msie = uakit.indexOf('MSIE ');\n if (msie > 0) {\n return parseInt(uakit.substring(msie + 5, uakit.indexOf('.', msie)), 10);\n }\n\n let trident = uakit.indexOf('Trident/');\n if (trident > 0) {\n let rv = uakit.indexOf('rv:');\n return parseInt(uakit.substring(rv + 3, uakit.indexOf('.', rv)), 10);\n }\n\n let edge = uakit.indexOf('Edge/');\n if (edge > 0) {\n return parseInt(ua.substring(edge + 5, uakit.indexOf('.', edge)), 10);\n }\n\n return '';\n}\n","/**\n * arguments to array\n */\n\n/**\n * Converts the arguments object to an array object and slice it.\n * first defalult is 0.\n * @export\n * @param {*} $arguments\n * @param {*} first\n * @returns\n */\nexport default function args($arguments, first) {\n return Array.prototype.slice.call($arguments, first || 0);\n}\n","const noop = () => {};\n\nexport default noop;\n","export default function hasOwnProperty(obj, keyName) {\n return Object.prototype.hasOwnProperty.call(obj, keyName);\n}\n","export default function setStyle(el, ruleName, val) {\n el.style[ruleName] = val;\n}\n","export default function attr(el, ruleName, val) {\n el.setAttribute(ruleName, val);\n}\n","/**\n * trigger event\n * https://stackoverflow.com/questions/2490825/how-to-trigger-event-in-javascript\n */\nconst trigger = (element, event, eventType) => {\n // delete document.createEventObject of ie\n let e = document.createEvent(eventType || 'HTMLEvents');\n e.initEvent(event, true, true);\n element.dispatchEvent(e);\n};\n\nexport default trigger;\n","export default function g(i) {\n return document.getElementById(i);\n}\n","import attr from './attr';\n\n// eslint-disable-next-line max-params\nexport default function c(t, cn, i, id) {\n let el = document.createElement(t);\n if (cn) {\n attr(el, 'class', cn);\n }\n if (i) {\n el.innerHTML = i;\n }\n if (id) {\n attr(el, 'id', id);\n }\n return el;\n}\n","import getTag from './get_tag';\n\nexport default function isArray(arr) {\n return getTag(arr) === '[object Array]';\n}\n","import getTag from './get_tag';\n\nexport default function isMap(map) {\n return getTag(map) === '[object Map]';\n}\n","import getTag from './get_tag';\n\nexport default function isSet(set) {\n return getTag(set) === '[object Set]';\n}\n","import isArray from '../lodash/is_array';\nimport isString from '../lodash/is_string';\nimport isMap from '../lodash/is_map';\nimport isSet from '../lodash/is_set';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n */\nexport default function size(collection) {\n if (collection === null || collection === undefined) {\n return 0;\n }\n if (isArray(collection) || isString(collection)) {\n return collection.length;\n }\n\n if (isMap(collection) || isSet(collection)) {\n return collection.size;\n }\n\n return Object.keys(collection).length;\n}\n","/**\n * is typeof type\n */\nconst isTypeof = (val, type) => {\n return (\n Object.prototype.toString\n .call(val)\n .slice(8, -1)\n .toLowerCase() === type\n );\n};\n\nexport default isTypeof;\n","import isTypeof from './is_typeof';\n/**\n * map condition judge\n * bbo.judge = bbo.judgment\n */\nexport default function judge(v, vals, strict) {\n if (!isTypeof(vals, 'array')) return false;\n\n for (let key in vals) {\n if (strict) {\n if (v === vals[key]) return true;\n } else {\n // eslint-disable-next-line eqeqeq\n if (v == vals[key]) return true;\n }\n }\n\n return false;\n}\n","export default function isObject(value) {\n const type = typeof value;\n return value !== null && (type === 'object' || type === 'function');\n}\n","import isObject from '../lodash/is_object';\n\nconst properObject = (o) => (isObject(o) && !o.hasOwnProperty ? { ...o } : o);\n\nexport default properObject;\n","const isDate = (d) => d instanceof Date;\n\nexport default isDate;\n","import isArray from '../lodash/is_array';\nimport isString from '../lodash/is_string';\nimport isObject from '../lodash/is_object';\nimport isMap from '../lodash/is_map';\nimport isSet from '../lodash/is_set';\n\nexport default function isEmpty(obj) {\n if (obj === null) {\n return true;\n }\n\n if (isArray(obj)) {\n return !obj.length;\n }\n\n if (isString(obj)) {\n return !obj.length;\n }\n\n if (isObject(obj)) {\n return !Object.keys(obj).length;\n }\n\n if (isMap(obj) || isSet(obj)) {\n return !obj.size;\n }\n\n // other primitive || unidentifed object type\n return Object(obj) !== obj || !Object.keys(obj).length;\n}\n","import isDate from '../lodash/is_date';\nimport isEmpty from '../lodash/is_empty';\nimport isObject from '../lodash/is_object';\nimport properObject from './proper_object';\n\nconst objectDiff = (lhs, rhs) => {\n if (lhs === rhs) return {}; // equal return no diff\n\n if (!isObject(lhs) || !isObject(rhs)) return rhs; // return updated rhs\n\n const l = properObject(lhs);\n const r = properObject(rhs);\n\n const deletedValues = Object.keys(l).reduce((acc, key) => {\n return r.hasOwnProperty(key) ? acc : { ...acc, [key]: undefined };\n }, {});\n\n if (isDate(l) || isDate(r)) {\n // eslint-disable-next-line eqeqeq\n if (l.valueOf() == r.valueOf()) return {};\n return r;\n }\n\n return Object.keys(r).reduce((acc, key) => {\n if (!l.hasOwnProperty(key)) return { ...acc, [key]: r[key] }; // return added r key\n\n const difference = objectDiff(l[key], r[key]);\n\n if (isObject(difference) && isEmpty(difference) && !isDate(difference)) return acc; // return no diff\n\n return { ...acc, [key]: difference }; // return updated key\n }, deletedValues);\n};\n\nexport default objectDiff;\n","import isEmpty from '../lodash/is_empty';\nimport isObject from '../lodash/is_object';\nimport properObject from './proper_object';\n\nconst addedDiff = (lhs, rhs) => {\n if (lhs === rhs || !isObject(lhs) || !isObject(rhs)) return {};\n\n const l = properObject(lhs);\n const r = properObject(rhs);\n\n return Object.keys(r).reduce((acc, key) => {\n if (l.hasOwnProperty(key)) {\n const difference = addedDiff(l[key], r[key]);\n\n if (isObject(difference) && isEmpty(difference)) return acc;\n\n return { ...acc, [key]: difference };\n }\n\n return { ...acc, [key]: r[key] };\n }, {});\n};\n\nexport default addedDiff;\n","import isEmpty from '../lodash/is_empty';\nimport isObject from '../lodash/is_object';\nimport properObject from './proper_object';\n\nconst deletedDiff = (lhs, rhs) => {\n if (lhs === rhs || !isObject(lhs) || !isObject(rhs)) return {};\n\n const l = properObject(lhs);\n const r = properObject(rhs);\n\n return Object.keys(l).reduce((acc, key) => {\n if (r.hasOwnProperty(key)) {\n const difference = deletedDiff(l[key], r[key]);\n\n if (isObject(difference) && isEmpty(difference)) return acc;\n\n return { ...acc, [key]: difference };\n }\n\n return { ...acc, [key]: undefined };\n }, {});\n};\n\nexport default deletedDiff;\n","import isDate from '../lodash/is_date';\nimport isEmpty from '../lodash/is_empty';\nimport isObject from '../lodash/is_object';\nimport properObject from './proper_object';\n\nconst updatedDiff = (lhs, rhs) => {\n if (lhs === rhs) return {};\n\n if (!isObject(lhs) || !isObject(rhs)) return rhs;\n\n const l = properObject(lhs);\n const r = properObject(rhs);\n\n if (isDate(l) || isDate(r)) {\n // eslint-disable-next-line eqeqeq\n if (l.valueOf() == r.valueOf()) return {};\n return r;\n }\n\n return Object.keys(r).reduce((acc, key) => {\n if (l.hasOwnProperty(key)) {\n const difference = updatedDiff(l[key], r[key]);\n\n if (isObject(difference) && isEmpty(difference) && !isDate(difference)) return acc;\n\n return { ...acc, [key]: difference };\n }\n\n return acc;\n }, {});\n};\n\nexport default updatedDiff;\n","/**\n * to json\n */\n\n// eval hack\nconst evil = (fn) => {\n // A variable points to Function, preventing reporting errors\n let Fn = Function;\n return new Fn('return ' + fn)();\n};\n\n// bbo.toJSON = bbo.tojson = bbo.toJson\nconst toJson = (res) => {\n if (!res) return null;\n\n if (typeof res === 'string') {\n try {\n return JSON.parse(res);\n } catch (e) {\n return evil('(' + res + ')');\n }\n } else {\n return res;\n }\n};\n\nexport default toJson;\n","const randomKey = (len = 32) => {\n /** Removed confusing characters 'oOLl,9gq,Vv,Uu,I1' **/\n let possible = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';\n let key = '';\n for (let i = 0; i < len; i++) {\n key += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return key;\n};\n\nexport default randomKey;\n","import getTag from './get_tag';\n\nexport default function isNumber(number) {\n return getTag(number) === '[object Number]';\n}\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-param-reassign */\n\n/**\n * bbo.cookie()\n * https://github.com/hrout/onavo/blob/master/onavo.js#L209\n */\nimport hasOwnProperty from '../args/has_own_property';\nimport size from '../collection/size';\nimport isNumber from '../lodash/is_number';\n\nconst cookie = () => {\n function cookieAttrExtend() {\n let i = 0;\n let result = {};\n for (; i < arguments.length; i++) {\n let attributes = arguments[i];\n for (let key in attributes) {\n if (hasOwnProperty(attributes, key)) {\n result[key] = attributes[key];\n }\n }\n }\n return result;\n }\n function init(converter) {\n function api(key, value, attributes) {\n let result;\n if (size(arguments) > 1) {\n attributes = cookieAttrExtend(\n {\n path: '/'\n },\n api.defaults,\n attributes\n );\n\n if (isNumber(attributes.expires)) {\n let expires = new Date();\n expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e5);\n attributes.expires = expires;\n }\n\n try {\n result = JSON.stringify(value);\n if (/^[\\{\\[]/.test(result)) {\n value = result;\n }\n } catch (e) {}\n\n if (!converter.write) {\n value = encodeURIComponent(String(value)).replace(\n /%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,\n decodeURIComponent\n );\n } else {\n value = converter.write(value, key);\n }\n\n key = encodeURIComponent(String(key));\n key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n key = key.replace(/[\\(\\)]/g, escape);\n\n // eslint-disable-next-line no-return-assign\n return (document.cookie = [\n key,\n '=',\n value,\n attributes.expires ? '; expires=' + attributes.expires.toUTCString() : '',\n attributes.path ? '; path=' + attributes.path : '',\n attributes.domain ? '; domain=' + attributes.domain : '',\n attributes.secure ? '; secure' : ''\n ].join(''));\n }\n if (!key) {\n result = {};\n }\n let cookies = document.cookie ? document.cookie.split('; ') : [];\n let rdecode = /(%[0-9A-Z]{2})+/g;\n let i = 0;\n\n for (; i < cookies.length; i++) {\n let parts = cookies[i].split('=');\n let cookie = parts.slice(1).join('=');\n\n if (cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n\n try {\n let name = parts[0].replace(rdecode, decodeURIComponent);\n cookie = converter.read\n ? converter.read(cookie, name)\n : converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent);\n\n // eslint-disable-next-line no-invalid-this\n if (this.json) {\n try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n }\n\n if (key === name) {\n result = cookie;\n break;\n }\n\n if (!key) {\n result[name] = cookie;\n }\n } catch (e) {}\n }\n\n return result;\n }\n\n api.set = api;\n api.get = function(key) {\n return api.call(api, key);\n };\n api.getJson = api.getJSON = function() {\n return api.apply(\n {\n json: true\n },\n [].slice.call(arguments)\n );\n };\n api.defaults = {};\n\n api.remove = function(key, attributes) {\n api(\n key,\n '',\n cookieAttrExtend(attributes, {\n expires: -1\n })\n );\n };\n\n api.withConverter = init;\n\n return api;\n }\n return init(function() {});\n};\n\nexport default cookie;\n","/**\n * setCookie / getCookie / deleteCookie\n * From https://stackoverflow.com/questions/1458724/how-do-i-set-unset-cookie-with-jquery/1458728#1458728\n */\nconst setCookie = (name, value, option) => {\n let longTime = 10;\n // let path = '; path=/';\n let val = option && option.raw ? value : encodeURIComponent(value);\n let cookie = encodeURIComponent(name) + '=' + val;\n\n if (option) {\n if (option.days) {\n let date = new Date();\n let ms = option.days * 24 * 3600 * 1000;\n date.setTime(date.getTime() + ms);\n cookie += '; expires=' + date.toGMTString();\n } else if (option.hour) {\n let date = new Date();\n let ms = option.hour * 3600 * 1000;\n date.setTime(date.getTime() + ms);\n cookie += '; expires=' + date.toGMTString();\n } else {\n let date = new Date();\n let ms = longTime * 365 * 24 * 3600 * 1000;\n date.setTime(date.getTime() + ms);\n cookie += '; expires=' + date.toGMTString();\n }\n if (option.path) cookie += '; path=' + option.path;\n if (option.domain) cookie += '; domain=' + option.domain;\n if (option.secure) cookie += '; true';\n }\n\n document.cookie = cookie;\n};\n\nexport default setCookie;\n","import setCookie from './set_cookie';\n\nconst deleteCookie = (name) => {\n setCookie(name, '', {\n hour: -1\n });\n};\n\nexport default deleteCookie;\n","/**\n * getUrlParam / deleteUrlParam\n * From https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript\n */\n\nconst deleteUrlParam = (param, url = window.location.href) => {\n // prefer to use l.search if you have a location/link object\n let urlparts = url.split('?');\n if (urlparts.length >= 2) {\n let prefix = encodeURIComponent(param) + '=';\n let pars = urlparts[1].split(/[&;]/g);\n\n // reverse iteration as may be destructive\n for (let i = pars.length; i-- > 0; ) {\n // idiom for string.startsWith\n if (pars[i].lastIndexOf(prefix, 0) !== -1) {\n pars.splice(i, 1);\n }\n }\n return urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : '');\n } else {\n return url;\n }\n};\n\nexport default deleteUrlParam;\n","import isArray from '../lodash/is_array';\nconst objectParam = (arr) => {\n let str = '';\n if (isArray(arr)) {\n str = arr\n .map((item) => {\n return item.name + '=' + item.value;\n })\n .join('&');\n } else {\n str = objectParam(objectBigParam(arr));\n }\n return str;\n};\n\nconst objectBigParam = (obj) => {\n let arr = [];\n Object.keys(obj).forEach((k) => {\n if (isArray(obj[k])) {\n arr = arr.concat(\n obj[k].map((v) => {\n return {\n name: k,\n value: v\n };\n })\n );\n } else {\n arr.push({\n name: k,\n value: obj[k]\n });\n }\n });\n return arr;\n};\n\nexport default objectParam;\n","export default function clearTimesout(id) {\n return clearInterval(id);\n}\n","export default function fill0(num) {\n let _num = parseFloat(num);\n return _num < 10 ? '0' + _num : String(_num);\n}\n","import fill0 from '../fill/fill0';\n\n/**\n * getDate\n * https://stackoverflow.com/questions/1531093/how-do-i-get-the-current-date-in-javascript\n */\nconst getDate = (d1, d2) => {\n let today = new Date();\n\n let dd = today.getDate();\n let mm = today.getMonth() + 1;\n let yyyy = today.getFullYear();\n let hh = today.getHours();\n let ms = today.getMinutes();\n let ss = today.getSeconds();\n\n dd = fill0(dd);\n mm = fill0(mm);\n hh = fill0(hh);\n ms = fill0(ms);\n ss = fill0(ss);\n\n let _d1 = d1 || '/';\n let _d2 = d2 || ':';\n\n return yyyy + _d1 + mm + _d1 + dd + ' ' + hh + _d2 + ms + _d2 + ss;\n};\n\nexport default getDate;\n","const cachedSetTimeout = setTimeout;\n\nfunction createSleepPromise(timeout, { useCachedSetTimeout }) {\n const timeoutFunction = useCachedSetTimeout ? cachedSetTimeout : setTimeout;\n\n return new Promise((resolve) => {\n timeoutFunction(resolve, timeout);\n });\n}\n\nexport default function sleep(timeout, { useCachedSetTimeout } = {}) {\n const sleepPromise = createSleepPromise(timeout, { useCachedSetTimeout });\n\n function promiseFunction(value) {\n return sleepPromise.then(() => value);\n }\n\n promiseFunction.then = (...args) => sleepPromise.then(...args);\n promiseFunction.catch = Promise.resolve().catch;\n\n return promiseFunction;\n}\n","/* eslint-disable prefer-promise-reject-errors */\n/**\n * @param {any} attempt\n * @param {any} options\n * interval: 200, //ms\n * retries: 2\n * timeout: 8000 //ms\n */\nexport default function(attempt, options) {\n const option = options || {};\n let interval = option.interval || 400;\n let retries = option.retries || 2;\n let timeout = option.timeout || 8000;\n\n function rejectDelay(reason) {\n return new Promise(function(resolve, reject) {\n setTimeout(reject.bind(null, reason), interval);\n });\n }\n\n let p = Promise.reject();\n for (let i = 0; i < retries; i++) {\n p = p.catch(timeoutReject(attempt, timeout)).catch(rejectDelay);\n }\n\n return p;\n}\n\nfunction timeoutReject(task, timeout) {\n let timer;\n\n return function() {\n return Promise.race([\n Promise.reject().catch(task),\n new Promise(function(rs, rj) {\n timer = setTimeout(function() {\n rj('timeout.');\n }, timeout || 8000);\n })\n ]).then(\n function(r) {\n clearTimeout(timer);\n return r;\n },\n function(err) {\n return Promise.reject(err);\n }\n );\n };\n}\n","// bbo.randomFromA2B = bbo.randomA2B\nconst randomA2B = (a, b, int) => {\n let result = Math.random() * (b - a) + a;\n return int ? Math.floor(result) : result;\n};\n\nexport default randomA2B;\n","/* eslint-disable eqeqeq */\n/* eslint-disable guard-for-in */\n\n/**\n * deep copies objects and arrays\n * Deep clones all properties except functions\n */\n\nimport isFunction from '../lodash/is_function';\nimport isArray from '../lodash/is_array';\n\nexport default function clone(obj) {\n // var arr = [1, 2, 3];\n // var subObj = { aa: 1 };\n // var obj = { a: 3, b: 5, c: arr, d: subObj };\n // var objClone = bbo.clone(obj);\n // arr.push(4);\n // subObj.bb = 2;\n // obj; // {a: 3, b: 5, c: [1, 2, 3, 4], d: {aa: 1}}\n // objClone; // {a: 3, b: 5, c: [1, 2, 3], d: {aa: 1, bb: 2}}\n if (isFunction(obj)) {\n return obj;\n }\n let result = isArray(obj) ? [] : {};\n for (let key in obj) {\n // include prototype properties\n let value = obj[key];\n let type = {}.toString.call(value).slice(8, -1);\n if (type == 'Array' || type == 'Object') {\n result[key] = clone(value);\n } else if (type == 'Date') {\n result[key] = new Date(value.getTime());\n } else if (type == 'RegExp') {\n result[key] = RegExp(value.source, getRegExpFlags(value));\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n\nfunction getRegExpFlags(regExp) {\n if (typeof regExp.source.flags == 'string') {\n return regExp.source.flags;\n } else {\n let flags = [];\n regExp.global && flags.push('g');\n regExp.ignoreCase && flags.push('i');\n regExp.multiline && flags.push('m');\n regExp.sticky && flags.push('y');\n regExp.unicode && flags.push('u');\n return flags.join('');\n }\n}\n","import getTag from './get_tag';\n\nexport default function isBoolean(bool) {\n return getTag(bool) === '[object Boolean]';\n}\n","import isObject from '../lodash/is_object';\nimport isBoolean from '../lodash/is_boolean';\nimport isArray from '../lodash/is_array';\nimport isFunction from '../lodash/is_function';\n\nexport default function extend(/* [deep], obj1, obj2, [objn] */) {\n let args = [].slice.call(arguments);\n let deep = false;\n if (isBoolean(args[0])) {\n deep = args.shift();\n }\n let result = args[0];\n if (isUnextendable(result)) {\n throw new Error('extendee must be an object');\n }\n let extenders = args.slice(1);\n let len = extenders.length;\n for (let i = 0; i < len; i++) {\n let extender = extenders[i];\n for (let key in extender) {\n if (extender.hasOwnProperty(key)) {\n let value = extender[key];\n if (deep && isCloneable(value)) {\n let base = isArray(value) ? [] : {};\n result[key] = extend(\n true,\n result.hasOwnProperty(key) && !isUnextendable(result[key]) ? result[key] : base,\n value\n );\n } else {\n result[key] = value;\n }\n }\n }\n }\n return result;\n}\n\nfunction isCloneable(obj) {\n return isArray(obj) || isObject(obj);\n}\n\nfunction isUnextendable(val) {\n return !val || (!isObject(val) && !isFunction(val));\n}\n","/* eslint-disable no-self-compare */\nexport default function is(x, y) {\n // inlined Object.is polyfill to avoid requiring consumers ship their own\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n","import getTag from './get_tag';\n\nexport default function isSymbol(symbol) {\n return getTag(symbol) === '[object Symbol]';\n}\n","/* eslint-disable no-eq-null */\n/* eslint-disable eqeqeq */\nexport default function isNil(value) {\n return value == undefined || value == null;\n}\n","/* eslint-disable guard-for-in */\nimport isArray from './is_array';\nimport isObject from './is_object';\nimport isDate from './is_date';\n\nexport default function isShallowEqual(...objs) {\n if (objs.length < 2) return false;\n for (let i in objs) {\n i = Number(i);\n if (objs[i + 1] !== undefined) {\n if (isArray(objs[i])) {\n if (!compareArrays(objs[i], objs[i + 1])) {\n return false;\n }\n } else if (isObject(objs[i])) {\n if (!compareObjects(objs[i], objs[i + 1])) {\n return false;\n }\n } else if (isDate(objs[i])) {\n if (!compareDates(objs[i], objs[i + 1])) {\n return false;\n }\n } else {\n if (objs[i] !== objs[i + 1]) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n\nfunction compare(obj, obj1) {\n for (let i in obj) {\n if (obj1[i] === undefined) {\n return false;\n }\n if (isArray(obj[i])) {\n if (!compareArrays(obj[i], obj1[i])) {\n return false;\n }\n } else if (isObject(obj[i])) {\n if (!compareObjects(obj[i], obj1[i])) {\n return false;\n }\n } else if (isDate(obj[i])) {\n if (!compareDates(obj[i], obj1[i])) {\n return false;\n }\n } else {\n if (obj[i] !== obj1[i]) {\n return false;\n }\n }\n }\n return true;\n}\n\nfunction compareArrays(obj, obj1) {\n if (!isArray(obj1)) return false;\n if (obj.length !== obj1.length) return false;\n let equal = compare(obj, obj1);\n return equal;\n}\n\nfunction compareObjects(obj, obj1) {\n if (!isObject(obj1)) return false;\n for (let key in obj1) {\n if (obj[key] === undefined) {\n return false;\n }\n }\n let equal = compare(obj, obj1);\n return equal;\n}\n\nfunction compareDates(obj, obj1) {\n if (!isDate(obj1) || obj.getTime() !== obj1.getTime()) {\n return false;\n }\n return true;\n}\n","import isArray from './is_array';\nimport isObject from './is_object';\n\nexport default function map(src, func) {\n const rst = [];\n let i = 0;\n if (isArray(src)) {\n while (i < src.length) {\n rst.push(func(src[i], i, src));\n i += 1;\n }\n } else if (isObject(src)) {\n const keys = Object.keys(src);\n while (i < keys.length) {\n const key = keys[i];\n rst.push(func(src[key], key, src));\n i += 1;\n }\n }\n return rst;\n}\n","/* eslint-disable max-params */\nconst charCodeOfDot = '.'.charCodeAt(0);\nconst reEscapeChar = /\\\\(\\\\)?/g;\nconst rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]/g;\n\nexport default function stringToPath(string) {\n const result = [];\n if (string.charCodeAt(0) === charCodeOfDot) {\n result.push('');\n }\n string.replace(rePropName, (match, expression, quote, subString) => {\n let key = match;\n if (quote) {\n key = subString.replace(reEscapeChar, '$1');\n } else if (expression) {\n key = expression.trim();\n }\n result.push(key);\n });\n return result;\n}\n","/* eslint-disable eqeqeq */\nimport isString from './is_string';\nimport isArray from './is_array';\nimport isSymbol from './is_symbol';\nimport map from './map';\nimport clone from '../collection/clone';\nimport stringToPath from './string_to_path';\n// import copyArray from '../array/copyArray';\n\nconst INFINITY = 1 / 0;\n\nfunction toKey(value) {\n if (isString(value) || isSymbol(value)) {\n return value;\n }\n const result = `${value}`;\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nexport default function toPath(value) {\n if (isArray(value)) {\n return map(value, toKey);\n }\n return isSymbol(value) ? [value] : clone(stringToPath(String(value)));\n}\n","import isArray from './is_array';\nimport isObject from './is_object';\n\nexport default function forEach(src, func) {\n let i = 0;\n if (isArray(src)) {\n while (i < src.length) {\n const rst = func(src[i], i, src);\n if (rst === false) {\n break;\n }\n i += 1;\n }\n } else if (isObject(src)) {\n const keys = Object.keys(src);\n while (i < keys.length) {\n const key = keys[i];\n const rst = func(src[key], key, src);\n if (rst === false) {\n break;\n }\n i += 1;\n }\n }\n}\n","/**\n * Turn CamelCase to '_'\n */\nexport default function underscored(target) {\n return target.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();\n}\n","import version from './util/version';\nimport noConflict from './util/no_conflict';\n\n// device\nimport ua from './device/ua';\nimport isIos from './device/is_ios';\nimport isiPhone from './device/is_iphone';\nimport isIPad from './device/is_ipad';\nimport isAndroid from './device/is_android';\nimport isMobile from './device/is_mobile';\nimport isPC from './device/is_pc';\nimport isWeixin from './device/is_weixin';\nimport isNewsApp from './device/is_news_app';\nimport isQQ from './device/is_qq';\nimport isQQbrowser from './device/is_qq_browser';\nimport isTenvideo from './device/is_tenvideo';\nimport isWeiShi from './device/is_weishi';\nimport isIphoneXmodel from './device/is_iphonex_model';\nimport isIE from './device/is_ie';\nimport ieVersion from './device/ie_version';\n\n// args\nimport args from './args/args';\nimport noop from './args/noop';\nimport merge from './args/merge';\nimport over from './args/over';\nimport call from './args/call';\nimport hasOwnProperty from './args/has_own_property';\n\n// bom\nimport open from './bom/open';\nimport stopPropagation from './bom/stop_propagation';\nimport g from './bom/g';\nimport gc from './bom/gc';\nimport c from './bom/c';\nimport query from './bom/query';\nimport show from './bom/show';\nimport hide from './bom/hide';\nimport elementContains from './bom/element_contains';\nimport getStyle from './bom/get_style';\nimport setStyle from './bom/set_style';\nimport attr from './bom/attr';\n\n// other\nimport uuid from './other/uuid';\nimport hash from './other/hash';\nimport judge from './other/judge';\nimport getType from './other/get_type';\nimport isTypeof from './other/is_typeof';\nimport construct from './other/construct';\nimport paramsName from './other/params_name';\nimport log from './other/log';\n\n// object\nimport properObject from './object/proper_object';\nimport objectDiff from './object/object_diff';\nimport addedDiff from './object/added_diff';\nimport deletedDiff from './object/deleted_diff';\nimport updatedDiff from './object/updated_diff';\nimport detailedDiff from './object/detailed_diff';\n\n// json\nimport toJson from './json/to_json';\nimport jsonp from './json/jsonp';\n\n// cookie\nimport cookie from './cookie/cookie';\nimport setCookie from './cookie/set_cookie';\nimport getCookie from './cookie/get_cookie';\nimport deleteCookie from './cookie/delete_cookie';\nimport parseCookie from './cookie/parse_cookie';\n\n// http\nimport getUrlParam from './http/get_url_param';\nimport setUrlParam from './http/set_url_param';\nimport deleteUrlParam from './http/delete_url_param';\nimport objectParam from './http/object_param';\nimport httpGet from './http/http_get';\nimport httpPost from './http/http_post';\nimport isAbsoluteURL from './http/is_absolute_url';\n\n// times\nimport setTimesout from './times/set_timesout';\nimport clearTimesout from './times/clear_timesout';\nimport getDate from './times/get_date';\nimport formatPassTime from './times/format_pass_time';\nimport formatRemainTime from './times/format_remain_time';\nimport formatDuration from './times/format_duration';\nimport sleep from './times/sleep';\nimport retry from './times/retry';\n\n// fill\nimport fill0 from './fill/fill0';\nimport floor from './fill/floor';\nimport chainAsync from './fill/chain_async';\nimport numberFormat from './fill/number_format';\nimport modulo from './fill/modulo';\n\n// random\nimport randomColor from './random/random_color';\nimport randomA2B from './random/random_a2b';\nimport randomKey from './random/random_key';\n\n// behavior\nimport lockTouch from './behavior/lock_touch';\nimport copyToClipboard from './behavior/copy_to_clipboard';\nimport trigger from './behavior/trigger';\n\n// collection\nimport clone from './collection/clone';\nimport values from './collection/values';\nimport entries from './collection/entries';\nimport extend from './collection/extend';\nimport flush from './collection/flush';\nimport size from './collection/size';\nimport search from './collection/search';\n\n// lodash\nimport getTag from './lodash/get_tag';\nimport is from './lodash/is';\nimport isObject from './lodash/is_object';\nimport isDate from './lodash/is_date';\nimport isArray from './lodash/is_array';\nimport isString from './lodash/is_string';\nimport isBoolean from './lodash/is_boolean';\nimport isNumber from './lodash/is_number';\nimport isMap from './lodash/is_map';\nimport isSet from './lodash/is_set';\nimport isSymbol from './lodash/is_symbol';\nimport isFunction from './lodash/is_function';\nimport isEmpty from './lodash/is_empty';\nimport isNil from './lodash/is_nil';\nimport isShallowEqual from './lodash/is_shallow_equal';\nimport has from './lodash/has';\nimport toPath from './lodash/to_path';\nimport reduce from './lodash/reduce';\nimport forEach from './lodash/for_each';\nimport map from './lodash/map';\nimport mapValues from './lodash/map_values';\nimport find from './lodash/find';\nimport findIndex from './lodash/find_index';\nimport get from './lodash/get';\nimport set from './lodash/set';\nimport debounce from './lodash/debounce';\nimport throttle from './lodash/throttle';\nimport pick from './lodash/pick';\nimport omit from './lodash/omit';\n\n// string\nimport trim from './string/trim';\nimport fillZero from './string/fill_zero';\nimport longUnique from './string/long_unique';\nimport stripTags from './string/strip_tags';\nimport capitalize from './string/capitalize';\nimport deCapitalize from './string/de_capitalize';\nimport mapString from './string/map_string';\nimport mask from './string/mask';\nimport splitLines from './string/split_lines';\nimport camelize from './string/camelize';\nimport underscored from './string/underscored';\nimport dasherize from './string/dasherize';\nimport truncate from './string/truncate';\nimport byteSize from './string/byte_size';\nimport byteLen from './string/byte_len';\nimport repeat from './string/repeat';\nimport endsWith from './string/ends_with';\nimport startsWith from './string/starts_with';\nimport containsWith from './string/contains_with';\nimport xssFilter from './string/xss_filter';\nimport effortIndex from './string/effort_Index';\nimport capwords from './string/capwords';\n\n// array\nimport unique from './array/unique';\nimport uniqueBy from './array/unique_by';\nimport uniqueFrom from './array/unique_from';\nimport random from './array/random';\nimport randomSize from './array/random_size';\nimport shuffle from './array/shuffle';\nimport contains from './array/contains';\nimport copyArray from './array/copy_array';\nimport includesAll from './array/includes_all';\nimport includesAny from './array/includes_any';\nimport removeAt from './array/remove_at';\nimport remove from './array/remove';\nimport compact from './array/compact';\nimport pluck from './array/pluck';\nimport union from './array/union';\nimport unionBy from './array/union_by';\nimport unionWith from './array/union_with';\nimport intersect from './array/intersect';\nimport intersectBy from './array/intersect_by';\nimport difference from './array/difference';\nimport differenceBy from './array/difference_by';\nimport max from './array/max';\nimport min from './array/min';\nimport equal from './array/equal';\nimport allEqual from './array/all_equal';\nimport all from './array/all';\nimport any from './array/any';\nimport chunk from './array/chunk';\nimport countBy from './array/count_by';\nimport countOccurrences from './array/count_occurrences';\nimport drop from './array/drop';\nimport dropRight from './array/drop_right';\nimport dropWhile from './array/drop_while';\nimport dropRightWhile from './array/drop_right_while';\nimport column from './array/column';\nimport split from './array/split';\nimport unary from './array/unary';\nimport indexBy from './array/index_by';\n\nexport default {\n // version\n version,\n noConflict,\n // device\n ua,\n isIos,\n isIOS: isIos,\n isiPhone,\n isIPad,\n isAndroid,\n isMobile,\n isPC,\n isWeixin,\n isNewsApp,\n isQQ,\n isQQbrowser,\n isTenvideo,\n isWeiShi,\n isIphoneXmodel,\n ieVersion,\n isIE,\n // arg(arguments)\n args,\n noop,\n merge,\n over,\n call,\n hasOwnProperty,\n // bom\n trigger,\n stopPropagation,\n g,\n gc,\n c,\n query,\n show,\n hide,\n elementContains,\n getStyle,\n setStyle,\n attr,\n // other\n uuid,\n hash,\n judge,\n judgment: judge,\n getType,\n isTypeof,\n construct,\n paramsName,\n log,\n // object\n properObject,\n objectDiff,\n addedDiff,\n deletedDiff,\n updatedDiff,\n detailedDiff,\n // json\n toJson,\n toJSON: toJson,\n tojson: toJson,\n jsonp,\n // cookie\n cookie,\n setCookie,\n getCookie,\n deleteCookie,\n delCookie: deleteCookie,\n parseCookie,\n // http\n open,\n getUrlParam,\n setUrlParam,\n deleteUrlParam,\n delUrlParam: deleteUrlParam,\n objectParam,\n httpGet,\n httpPost,\n // times\n setTimesout,\n clearTimesout,\n getDate,\n formatPassTime,\n formatRemainTime,\n formatDuration,\n sleep,\n retry,\n // fill\n fill0,\n floor,\n chainAsync,\n numberFormat,\n modulo,\n // random\n randomColor,\n randomA2B,\n randomFromA2B: randomA2B,\n randomKey,\n // behavior\n lockTouch,\n copyToClipboard,\n // collection\n clone,\n deepClone: clone,\n values,\n entries,\n extend,\n flush,\n search,\n size,\n // lodash\n getTag,\n is,\n isObject,\n isDate,\n isArray,\n isString,\n isBoolean,\n isNumber,\n isMap,\n isSet,\n isSymbol,\n isFunction,\n isEmpty,\n isNil,\n isShallowEqual,\n isEqual: isShallowEqual,\n has,\n reduce,\n forEach,\n each: forEach,\n map,\n mapValues,\n findIndex,\n find,\n toPath,\n get,\n set,\n debounce,\n throttle,\n pick,\n omit,\n // string\n trim,\n fillZero,\n longUnique,\n stripTags,\n capitalize,\n deCapitalize,\n isAbsoluteURL,\n mapString,\n mask,\n splitLines,\n camelize,\n underscored,\n dasherize,\n truncate,\n byteSize,\n byteLen,\n repeat,\n endsWith,\n startsWith,\n containsWith,\n xssFilter,\n effortIndex,\n capwords,\n // array\n unique,\n uniqueBy,\n uniqueFrom,\n random,\n randomSize,\n shuffle,\n contains,\n copyArray,\n includesAll,\n includesAny,\n removeAt,\n remove,\n compact,\n pluck,\n union,\n unionBy,\n unionWith,\n intersect,\n intersectBy,\n difference,\n differenceBy,\n max,\n min,\n equal,\n allEqual,\n all,\n any,\n chunk,\n countBy,\n countOccurrences,\n drop,\n dropRight,\n dropWhile,\n dropRightWhile,\n column,\n split,\n unary,\n indexBy\n};\n","import ua from './ua';\n\nexport default function iPhone() {\n return /iPhone/.test(ua());\n}\n","import ua from './ua';\n\nexport default function isIPad() {\n return /iPad/.test(ua());\n}\n","import ua from './ua';\n/**\n * detect Android\n * From https://stackoverflow.com/questions/6031412/detect-android-phone-via-javascript-jquery\n */\nexport default function isAndroid() {\n return ua('l').indexOf('android') > -1;\n}\n","import isMobile from './is_mobile';\n\n/**\n * detect PC / Mobile\n * From https://stackoverflow.com/questions/3514784/what-is-the-best-way-to-detect-a-mobile-device-in-jquery\n */\nexport default function isPC() {\n return !isMobile();\n}\n","import ua from './ua';\n\nexport default function isWeixin() {\n return /MicroMessenger/i.test(ua('l')); // 微信\n}\n","import ua from './ua';\n\nexport default function isNewsApp() {\n return /qqnews/.test(ua()); // 腾讯新闻app\n}\n","import ua from './ua';\n\nexport default function isQQ() {\n return /qq\\//.test(ua('l')); // 手机QQ\n}\n","import ua from './ua';\n\nexport default function isQQbrowser() {\n return /mqqbrowser\\//.test(ua('l')); // QQ浏览器\n}\n","import ua from './ua';\n\nexport default function isTenvideo() {\n return /qqlivebrowser/.test(ua('l')); // 腾讯视频\n}\n","import ua from './ua';\n\nexport default function isWeiShi() {\n return /weishi/.test(ua('l')); // 腾讯微视\n}\n","export default function isIphoneXmodel() {\n // X XS, XS Max, XR\n const xSeriesConfig = [\n {\n devicePixelRatio: 3,\n width: 375,\n height: 812\n },\n {\n devicePixelRatio: 3,\n width: 414,\n height: 896\n },\n {\n devicePixelRatio: 2,\n width: 414,\n height: 896\n }\n ];\n if (typeof window !== 'undefined' && window) {\n const { devicePixelRatio, screen } = window;\n const { width, height } = screen;\n return xSeriesConfig.some(\n (item) =>\n item.devicePixelRatio === devicePixelRatio && item.width === width && item.height === height\n );\n }\n return false;\n}\n","import ieVersion from './ie_version';\n\nexport default function isIE() {\n return ieVersion() > 0;\n}\n","const merge = (...objs) =>\n [...objs].reduce(\n (acc, obj) =>\n Object.keys(obj).reduce((a, k) => {\n acc[k] = acc.hasOwnProperty(k) ? [].concat(acc[k]).concat(obj[k]) : obj[k];\n return acc;\n }, {}),\n {}\n );\n\nexport default merge;\n","const over = (...fns) => (...args) => fns.map((fn) => fn.apply(null, args));\n\nexport default over;\n","const call = (key, ...args) => (context) => context[key](...args);\n\nexport default call;\n","const stopPropagation = (event) => {\n const e = event || window.event;\n const stop = e.stopPropagation ? e.stopPropagation() : (e.cancelBubble = true);\n return stop;\n};\n\nexport default stopPropagation;\n","export default function gc(cn) {\n return document.getElementsByClassName(cn);\n}\n","export default function query(i) {\n return document.querySelector(i);\n}\n","const show = (...el) =>\n [...el].forEach((e) => {\n e.style.display = '';\n });\n\nexport default show;\n","const hide = (...el) =>\n [...el].forEach((e) => {\n e.style.display = 'none';\n });\n\nexport default hide;\n","const elementContains = (parent, child) => parent !== child && parent.contains(child);\n\nexport default elementContains;\n","const getStyle = (el, ruleName) => getComputedStyle(el)[ruleName];\n\nexport default getStyle;\n","/**\n * generate uuid\n * From https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n */\nexport default function uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n let r = (Math.random() * 16) | 0;\n let v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n","/**\n * string hash map\n * From https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript-jquery\n */\nimport size from '../collection/size';\n\nexport default function hash(str) {\n let _str = String(str);\n let hash = 0;\n let i;\n let chr;\n if (size(_str) === 0) return hash;\n for (i = 0; i < _str.length; i++) {\n chr = _str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n return hash;\n}\n","const getType = (v) =>\n v === undefined ? 'undefined' : v === null ? 'null' : v.constructor.name.toLowerCase();\n\nexport default getType;\n","export default function construct() {\n let classs = arguments[0];\n return new (Function.prototype.bind.apply(classs, arguments))();\n}\n","/**\n * Gets all the formal parameter names of a function\n * https://www.zhihu.com/question/28912825\n */\nexport default function paramsName(fn) {\n return /\\(\\s*([\\s\\S]*?)\\s*\\)/.exec(fn.toString())[1].split(/\\s*,\\s*/);\n}\n","/************************************************************************\n * LOGS\n *************************************************************************/\n/**\n * log on mobile html body\n */\nimport c from '../bom/c';\nimport g from '../bom/g';\nimport attr from '../bom/attr';\n\nexport default function log(msg, styles) {\n let ele = g('_bbo_log');\n if (ele === null) {\n ele = c('div');\n attr(ele, 'id', '_bbo_log');\n attr(ele, 'style', 'position:fixed;left:0;top:0;z-index:9999;padding:4px;');\n document.body.appendChild(ele);\n }\n\n if (styles) {\n for (let style in styles) {\n if (Object.prototype.hasOwnProperty.call(styles, style)) {\n ele.style[style] = styles[style];\n }\n }\n }\n ele.innerHTML = msg;\n}\n","import addedDiff from './added_diff';\nimport deletedDiff from './deleted_diff';\nimport updatedDiff from './updated_diff';\n\nconst detailedDiff = (lhs, rhs) => ({\n added: addedDiff(lhs, rhs),\n deleted: deletedDiff(lhs, rhs),\n updated: updatedDiff(lhs, rhs)\n});\n\nexport default detailedDiff;\n","/* eslint-disable */\nimport noop from '../args/noop';\nimport isFunction from '../lodash/is_function';\nimport randomKey from '../random/random_key';\n\n/**\n * Options:\n * - param {String} qs parameter (`callback`)\n * - prefix {String} qs parameter (`bbo`)\n * - name {String} qs parameter (`prefix` + incr)\n * - timeout {Number} how long after a timeout error is emitted (`60000`)\n * @param {String} url\n * @param {Object|Function} optional options / callback\n * @param {Function} optional callback\n */\n\nfunction jsonp(url, opts, fn) {\n if (isFunction(opts)) {\n fn = opts;\n opts = {};\n }\n if (!opts) opts = {};\n\n var prefix = opts.prefix || 'bbo';\n var id = opts.name || prefix + randomKey(10);\n\n var param = opts.param || 'callback';\n var timeout = null != opts.timeout ? opts.timeout : 60000;\n var enc = encodeURIComponent;\n var target = document.getElementsByTagName('script')[0] || document.head;\n var script;\n var timer;\n\n if (timeout) {\n timer = setTimeout(function() {\n cleanup();\n if (fn) fn(new Error('Timeout'));\n }, timeout);\n }\n\n function cleanup() {\n if (script.parentNode) script.parentNode.removeChild(script);\n window[id] = noop();\n if (timer) clearTimeout(timer);\n }\n\n function cancel() {\n if (window[id]) {\n cleanup();\n }\n }\n\n window[id] = function(data) {\n cleanup();\n if (fn) fn(data, null);\n };\n console.log(url);\n url += (~url.indexOf('?') ? '&' : '?') + param + '=' + enc(id);\n url = url.replace('?&', '?');\n script = document.createElement('script');\n script.src = url;\n target.parentNode.insertBefore(script, target);\n\n return cancel;\n}\n\nexport default jsonp;\n","const getCookie = (name) => {\n let nameEQ = encodeURIComponent(name) + '=';\n let ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n\n return null;\n};\n\nexport default getCookie;\n","const parseCookie = (str) =>\n str\n .split(';')\n .map((v) => v.split('='))\n .reduce((acc, v) => {\n acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim());\n return acc;\n }, {});\n\nexport default parseCookie;\n","import setStyle from './set_style';\nimport attr from './attr';\nimport trigger from '../behavior/trigger';\nimport g from './g';\nimport c from './c';\n\n/**\n * open new url dont not blocked by browser\n */\nconst open = (href) => {\n let id = '_bbo_open_proxy';\n let a = g(id) || c('a', id, '', id);\n setStyle(a, 'display', 'none');\n attr(a, 'href', href);\n attr(a, 'target', '_blank');\n if (!a.parentNode) document.body.appendChild(a);\n trigger(a, 'click', 'MouseEvents');\n};\n\nexport default open;\n","/**\n * getUrlParam / deleteUrlParam\n * From https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript\n */\nconst getUrlParam = (name, url = window.location.href) => {\n name.replace(/[\\[\\]]/g, '\\\\$&');\n let regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');\n let results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return '';\n\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n};\n\nexport default getUrlParam;\n","/**\n * setUrlParam\n * From https://stackoverflow.com/questions/5999118/add-or-update-query-string-parameter\n */\nconst setUrlParam = (key, value, uri = window.location.href) => {\n let re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');\n let separator = uri.indexOf('?') !== -1 ? '&' : '?';\n if (uri.match(re)) {\n return uri.replace(re, '$1' + key + '=' + value + '$2');\n } else {\n return uri + separator + key + '=' + value;\n }\n};\n\nexport default setUrlParam;\n","const httpGet = (url, callback, err = console.error) => {\n const request = new XMLHttpRequest();\n request.open('GET', url, true);\n request.onload = () => callback(request.responseText);\n request.onerror = () => err(request);\n request.send();\n};\n\nexport default httpGet;\n","// eslint-disable-next-line max-params\nconst httpPost = (url, data, callback, err = console.error) => {\n const request = new XMLHttpRequest();\n request.open('POST', url, true);\n request.setRequestHeader('Content-type', 'application/json; charset=utf-8');\n request.onload = () => callback(request.responseText);\n request.onerror = () => err(request);\n request.send(data);\n};\n\nexport default httpPost;\n","import args from '../args/args';\nimport clearTimesout from '../times/clear_timesout';\n/**\n * setInterval func fix times\n * https://stackoverflow.com/questions/2956966/javascript-telling-setinterval-to-only-fire-x-amount-of-times\n */\nexport default function setTimesout() {\n let func = arguments[0];\n let delay = arguments[1] === undefined ? 0 : parseFloat(arguments[1]);\n let times = arguments[2] === undefined ? 1 : parseInt(arguments[2], 10);\n let _args = arguments.length > 3 ? args(arguments, 3) : null;\n let target = {\n index: 0,\n times: times,\n over: false\n };\n\n let id = setInterval(function() {\n target.index++;\n if (target.index > times) {\n clearTimesout(id);\n } else {\n if (target.index === times) target.over = true;\n func.apply(target, _args);\n }\n }, delay);\n\n return id;\n}\n","/**\n * @param {Date} startTime timestamp\n * @return {String}\n */\nconst formatPassTime = (startTime) => {\n let seconds = Math.floor((new Date() - startTime) / 1000);\n let interval = seconds / 31536000;\n if (interval > 1) {\n return Math.floor(interval) + ' years';\n }\n interval = seconds / 2592000;\n if (interval > 1) {\n return Math.floor(interval) + ' months';\n }\n interval = seconds / 86400;\n if (interval > 1) {\n return Math.floor(interval) + ' days';\n }\n interval = seconds / 3600;\n if (interval > 1) {\n return Math.floor(interval) + ' hours';\n }\n interval = seconds / 60;\n if (interval > 1) {\n return Math.floor(interval) + ' minutes';\n }\n return Math.floor(seconds) + ' seconds';\n};\n\nexport default formatPassTime;\n","/**\n * @desc format the remaining time from ${endTime}\n * @param {Date} endTime\n * @return {String}\n */\nconst formatRemainTime = (endTime) => {\n let startDate = new Date(); // startDate\n let endDate = new Date(endTime); // endDate\n let t = endDate.getTime() - startDate.getTime();\n let d = 0;\n let h = 0;\n let m = 0;\n let s = 0;\n if (t >= 0) {\n d = Math.floor(t / 1000 / 3600 / 24);\n h = Math.floor((t / 1000 / 60 / 60) % 24);\n m = Math.floor((t / 1000 / 60) % 60);\n s = Math.floor((t / 1000) % 60);\n }\n return d + 'day ' + h + 'hour ' + m + 'minute ' + s + 'second';\n};\n\nexport default formatRemainTime;\n","const formatDuration = (ms) => {\n // eslint-disable-next-line no-param-reassign\n if (ms < 0) ms = -ms;\n const time = {\n day: Math.floor(ms / 86400000),\n hour: Math.floor(ms / 3600000) % 24,\n minute: Math.floor(ms / 60000) % 60,\n second: Math.floor(ms / 1000) % 60,\n millisecond: Math.floor(ms) % 1000\n };\n return Object.entries(time)\n .filter((val) => val[1] !== 0)\n .map(([key, val]) => `${val} ${key}${val !== 1 ? 's' : ''}`)\n .join(', ');\n};\n\nexport default formatDuration;\n","const floor = (n, m = 0) => {\n return Math.floor(n * Math.pow(10, m)) / Math.pow(10, m);\n};\n\nexport default floor;\n","const chainAsync = (fns) => {\n let curr = 0;\n const last = fns[fns.length - 1];\n const next = () => {\n const fn = fns[curr++];\n fn === last ? fn() : fn(next);\n };\n next();\n};\n\nexport default chainAsync;\n","/**\n * https://locutus.io/php/\n */\n// eslint-disable-next-line max-params\nconst numberFormat = (number, decimals, decPoint, thousandsSep) => {\n let _number = String(number).replace(/[^0-9+\\-Ee.]/g, '');\n let _decimals = decimals;\n let n = !isFinite(Number(_number)) ? 0 : Number(_number);\n let prec = !isFinite(Number(_decimals)) ? 0 : Math.abs(_decimals);\n let sep = typeof thousandsSep === 'undefined' ? ',' : thousandsSep;\n let dec = typeof decPoint === 'undefined' ? '.' : decPoint;\n let s = '';\n\n let toFixedFix = function(n, prec) {\n if (String(n).indexOf('e') === -1) {\n return Number(Math.round(n + 'e+' + prec) + 'e-' + prec);\n } else {\n let arr = String(n).split('e');\n let sig = '';\n if (Number(arr[1]) + prec > 0) {\n sig = '+';\n }\n return Number(\n Math.round(Number(arr[0]) + 'e' + sig + (Number(arr[1]) + prec)) + 'e-' + prec\n ).toFixed(prec);\n }\n };\n\n // @todo: for IE parseFloat(0.55).toFixed(0) = 0;\n s = (prec ? toFixedFix(n, prec).toString() : String(Math.round(n))).split('.');\n if (s[0].length > 3) {\n s[0] = s[0].replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, sep);\n }\n if ((s[1] || '').length < prec) {\n s[1] = s[1] || '';\n s[1] += new Array(prec - s[1].length + 1).join('0');\n }\n\n return s.join(dec);\n};\n\nexport default numberFormat;\n","/**\n * modulo of a number and a divisor\n */\n\nexport default function modulo(n, d) {\n // bbo.modulo(7, 5); // 2\n // bbo.modulo(17, 23); // 17\n // bbo.modulo(16.2, 3.8); // 1\n // bbo.modulo(5.8, 3.4); //2.4\n // bbo.modulo(4, 0); // 4\n // bbo.modulo(-7, 5); // 3\n // bbo.modulo(-2, 15); // 13\n // bbo.modulo(-5.8, 3.4); // 1\n // bbo.modulo(12, -1); // NaN\n // bbo.modulo(-3, -8); // NaN\n // bbo.modulo(12, 'apple'); // NaN\n // bbo.modulo('bee', 9); // NaN\n // bbo.modulo(null, undefined); // NaN\n\n if (d === 0) {\n return n;\n }\n if (d < 0) {\n return NaN;\n }\n return ((n % d) + d) % d;\n}\n","export default function randomColor() {\n return '#' + ('00000' + ((Math.random() * 0x1000000) << 0).toString(16)).slice(-6);\n}\n","/**\n * lock touch in mobile phone\n */\nconst lockTouch = () => {\n document.addEventListener(\n 'touchmove',\n function(e) {\n e.preventDefault();\n },\n !1\n );\n document.addEventListener('touchstart', preventDefault, !1);\n document.addEventListener('touchend', preventDefault, !1);\n\n function not(e, tag) {\n return e.target.tagName !== tag.toUpperCase() && e.target.tagName !== tag.toLowerCase();\n }\n\n function preventDefault(e) {\n if (not(e, 'input') && not(e, 'textarea') && not(e, 'select') && not(e, 'menus'))\n e.preventDefault();\n }\n};\n\nexport default lockTouch;\n","import attr from '../bom/attr';\nimport setStyle from '../bom/set_style';\n\nexport default function copyToClipboard(str) {\n const el = document.createElement('textarea');\n el.value = str;\n attr(el, 'readonly', '');\n setStyle(el, 'position', 'absolute');\n setStyle(el, 'left', '-9999px');\n document.body.appendChild(el);\n const selected =\n document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n }\n}\n","import isFunction from '../lodash/is_function';\nimport isObject from '../lodash/is_object';\nimport isArray from '../lodash/is_array';\n\nexport default function values(obj) {\n let result = [];\n if (isArray(obj)) {\n return obj.slice(0);\n }\n if (isObject(obj) || isFunction(obj)) {\n let keys = Object.keys(obj);\n let len = keys.length;\n for (let i = 0; i < len; i++) {\n result.push(obj[keys[i]]);\n }\n return result;\n }\n throw new Error('argument to `values` must be an object');\n}\n","import isFunction from '../lodash/is_function';\nimport isObject from '../lodash/is_object';\n\nexport default function entries(obj) {\n if ((!isObject(obj) && !isFunction(obj)) || obj === null) {\n throw new Error('argument to `entries` must be an object');\n }\n\n let result = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n result.push([key, obj[key]]);\n }\n }\n return result;\n}\n","/* eslint-disable eqeqeq */\n/* eslint-disable no-eq-null */\nimport isObject from '../lodash/is_object';\nimport isArray from '../lodash/is_array';\n\nexport default function flush(collection) {\n let result;\n let len;\n let i;\n if (!collection) {\n return undefined;\n }\n if (isArray(collection)) {\n result = [];\n len = collection.length;\n for (i = 0; i < len; i++) {\n let elem = collection[i];\n if (elem != null) {\n result.push(elem);\n }\n }\n return result;\n }\n if (isObject(collection)) {\n result = {};\n let keys = Object.keys(collection);\n len = keys.length;\n for (i = 0; i < len; i++) {\n let key = keys[i];\n let value = collection[key];\n if (value != null) {\n result[key] = value;\n }\n }\n return result;\n }\n return undefined;\n}\n","import hasOwnProperty from '../args/has_own_property';\n\nexport default function search(needle, haystack, argStrict) {\n let strict = !!argStrict;\n let key = '';\n for (key in haystack) {\n if (hasOwnProperty(haystack, key)) {\n // eslint-disable-next-line eqeqeq\n if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {\n return key;\n }\n }\n }\n\n return false;\n}\n","/* eslint-disable eqeqeq */\n/* eslint-disable no-eq-null */\nimport hasOwnProperty from '../args/has_own_property';\nexport default function has(object, key) {\n return object != null && hasOwnProperty(object, key);\n}\n","/* eslint-disable no-param-reassign */\n/* eslint-disable max-params */\nexport default function reduce(obj, predicate /* , initialValue */) {\n let args = [callback];\n\n let hasInitialValue = 2 in arguments;\n hasInitialValue && args.push(arguments[2]);\n\n function callback(previousValue, currentKey, currentIndex, array) {\n if (!hasInitialValue) {\n previousValue = obj[array[0]];\n hasInitialValue = true;\n }\n return predicate(previousValue, currentKey, obj[currentKey], currentIndex, array);\n }\n\n return Array.prototype.reduce.apply(Object.keys(obj), args);\n}\n","/*\n returns a new object with the predicate applied to each value\n like map-object, but (value, key, object) are passed to the predicate\n*/\n\nexport default function mapValues(obj, predicate) {\n let result = {};\n let keys = Object.keys(obj);\n let len = keys.length;\n for (let i = 0; i < len; i++) {\n let key = keys[i];\n result[key] = predicate(obj[key], key, obj);\n }\n return result;\n}\n","import forEach from './for_each';\nimport isFunction from './is_function';\nimport isObject from './is_object';\nimport is from './is';\nimport isShallowEqual from './is_shallow_equal';\n\nexport default function findIndex(src, func) {\n let rst = -1;\n forEach(src, (item, index, obj) => {\n if (isFunction(func)) {\n if (func(item, index, obj) === true) {\n rst = index;\n return false;\n }\n } else if (is(item, func)) {\n rst = index;\n return false;\n } else if (isObject(item) && isObject(func)) {\n let subEqual = true;\n forEach(func, (v, k) => {\n subEqual = isShallowEqual(item[k], v);\n return subEqual;\n });\n if (subEqual) {\n rst = index;\n return false;\n }\n }\n });\n return rst;\n}\n","import forEach from './for_each';\nimport isFunction from './is_function';\nimport isObject from './is_object';\nimport is from './is';\nimport isShallowEqual from './is_shallow_equal';\n\nexport default function find(src, func) {\n // eslint-disable-next-line no-undef-init\n let rst = undefined;\n forEach(src, (item, key, obj) => {\n if (isFunction(func)) {\n if (func(item, key, obj) === true) {\n rst = item;\n return false;\n }\n } else if (is(item, func)) {\n rst = item;\n return false;\n } else if (isObject(item) && isObject(func)) {\n let subEqual = true;\n forEach(func, (v, k) => {\n subEqual = isShallowEqual(item[k], v);\n return subEqual;\n });\n if (subEqual) {\n rst = item;\n return false;\n }\n }\n });\n return rst;\n}\n","import isString from './is_string';\nimport isSymbol from './is_symbol';\nimport isArray from './is_array';\n\nexport default function get(obj, propsArg, defaultValue) {\n if (!obj) {\n return defaultValue;\n }\n let props;\n let prop;\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0);\n }\n if (isString(propsArg)) {\n props = propsArg.split('.');\n }\n if (isSymbol(propsArg)) {\n props = [propsArg];\n }\n if (!isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol');\n }\n while (props.length) {\n prop = props.shift();\n if (!obj) {\n return defaultValue;\n }\n // eslint-disable-next-line no-param-reassign\n obj = obj[prop];\n if (obj === undefined) {\n return defaultValue;\n }\n }\n return obj;\n}\n","/* eslint-disable eqeqeq */\n/* eslint-disable no-param-reassign */\n\n/**\n * set value at property, create intermediate properties if necessary\n */\nimport isString from './is_string';\nimport isSymbol from './is_symbol';\nimport isObject from './is_object';\n\nexport default function set(obj, props, value) {\n if (isString(props)) {\n props = props.split('.');\n }\n if (isSymbol(props)) {\n props = [props];\n }\n let lastProp = props.pop();\n if (!lastProp) {\n return false;\n }\n let thisProp;\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] == 'undefined') {\n obj[thisProp] = {};\n }\n obj = obj[thisProp];\n if (!obj || !isObject(obj)) {\n return false;\n }\n }\n obj[lastProp] = value;\n return true;\n}\n","/* eslint-disable no-invalid-this */\nexport default function debounce(fn, wait, callFirst) {\n let timeout;\n return function() {\n if (!wait) {\n return fn.apply(this, arguments);\n }\n let context = this;\n let args = arguments;\n let callNow = callFirst && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(function() {\n timeout = null;\n if (!callNow) {\n return fn.apply(context, args);\n }\n }, wait);\n\n if (callNow) {\n return fn.apply(this, arguments);\n }\n };\n}\n","/* eslint-disable no-invalid-this */\nexport default function throttle(fn, interval, callFirst) {\n let wait = false;\n let callNow = false;\n return function() {\n callNow = callFirst && !wait;\n let context = this;\n let args = arguments;\n if (!wait) {\n wait = true;\n setTimeout(function() {\n wait = false;\n if (!callFirst) {\n return fn.apply(context, args);\n }\n }, interval);\n }\n if (callNow) {\n callNow = false;\n return fn.apply(this, arguments);\n }\n };\n}\n","/* eslint-disable no-param-reassign */\nimport isString from './is_string';\nexport default function pick(obj, select) {\n let result = {};\n if (isString(select)) {\n select = [].slice.call(arguments, 1);\n }\n let len = select.length;\n for (let i = 0; i < len; i++) {\n let key = select[i];\n if (key in obj) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n","/* eslint-disable no-param-reassign */\nimport isString from './is_string';\nexport default function omit(obj, remove) {\n let result = {};\n if (isString(remove)) {\n remove = [].slice.call(arguments, 1);\n }\n for (let prop in obj) {\n if (!obj.hasOwnProperty || obj.hasOwnProperty(prop)) {\n if (remove.indexOf(prop) === -1) {\n result[prop] = obj[prop];\n }\n }\n }\n return result;\n}\n","/**\n * Remove spaces after removing previous string\n */\nimport isEmpty from '../lodash/is_empty';\n\nexport default function trim(str) {\n if (isEmpty(str)) {\n return str;\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n}\n","/**\n * Increase by 0 based on string length before string\n */\nexport default function fillZero(target, n) {\n let z = new Array(n).join('0');\n let str = z + target;\n let result = str.slice(-n);\n return result;\n}\n","/**\n * Long string unique\n */\nexport default function longUnique(target) {\n let json = {};\n for (let index = 0; index < target.length; index++) {\n if (!json[target[index]]) {\n json[target[index]] = -1;\n }\n }\n let longString = '';\n for (let index = 0; index < target.length; index++) {\n if (json[target[index]]) {\n json[target[index]] = 0;\n longString = longString + target[index];\n }\n }\n return longString;\n}\n","/**\n * Remove the html tags inside the script\n */\nexport default function stripTags(target) {\n return target.replace(/<script[^>]*>(\\S\\s*?)<\\/script>/gim, '').replace(/<[^>]+>/g, '');\n}\n","/**\n * Capitalizes the first letter of a string.\n */\nexport default function capitalize(target) {\n return (\n String(target)\n .charAt(0)\n .toUpperCase() +\n String(target)\n .slice(1)\n .toLowerCase()\n );\n}\n","/**\n * DeCapitalizes the first letter of a string.\n */\n\nimport isString from '../lodash/is_string';\nimport isNil from '../lodash/is_nil';\n\nfunction coerceToString(value, defaultValue = '') {\n if (isNil(value)) {\n return defaultValue;\n }\n if (isString(value)) {\n return value;\n }\n return String(value);\n}\n\nexport default function deCapitalize(subject) {\n const subjectString = coerceToString(subject);\n if (subjectString === '') {\n return '';\n }\n return subjectString.substr(0, 1).toLowerCase() + subjectString.substr(1);\n}\n","/**\n * Returns true if the given string is an absolute URL, false otherwise.\n */\nconst isAbsoluteURL = (str) => /^[a-z][a-z0-9+.-]*:/.test(str);\n\nexport default isAbsoluteURL;\n","/**\n * Creates a new string with the results of calling a provided function\n * on every character in the calling string.\n */\nconst mapString = (str, fn) =>\n str\n .split('')\n .map((c, i) => fn(c, i, str))\n .join('');\n\nexport default mapString;\n","/**\n * Replaces all but the last num of characters with the specified mask character.\n */\nconst mask = (cc, num = 4, mask = '*') => `${cc}`.slice(-num).padStart(`${cc}`.length, mask);\nexport default mask;\n","/**\n * splitLines('This\\nis a\\nmultiline\\nstring.\\n') =>\n * ['This', 'is a', 'multiline', 'string.' , '']\n */\nexport default function splitLines(str) {\n return str.split(/\\r?\\n/);\n}\n","/**\n * _ or - to CamelCase\n */\nexport default function camelize(target) {\n if (target.indexOf('-') < 0 && target.indexOf('_') < 0) {\n return target;\n }\n return target.replace(/[-_][^-_]/g, function(match) {\n return match.charAt(1).toUpperCase();\n });\n}\n","import underscored from './underscored';\n/**\n * Turn '_' in a string into '-'\n */\nexport default function dasherize(target) {\n return underscored(String(target)).replace(/_/g, '-');\n}\n","/**\n * Truncates a string up to a specified length.\n * The default length is 3, and the truncated symbol defaults '...'\n */\nimport size from '../collection/size';\nconst truncate = (str, num = 3) => {\n const len = size(str);\n return len > num ? str.slice(0, num > 3 ? num - 3 : num) + '...' : str;\n};\n\nexport default truncate;\n","/**\n * Returns the length of a string in bytes.\n */\nexport default function byteSize(str) {\n return new Blob([str]).size;\n}\n","/* eslint-disable */\n/**\n * Returns the length of a string in bytes by Unicode (utf-8 utf8 utf-16 utf16)\n */\nexport default function byteLen(str, charset) {\n let total = 0;\n let charCode;\n if (charset === 'utf-8' || charset === 'utf8') {\n for (let i = 0, len = str.length; i < len; i++) {\n charCode = str.codePointAt(i);\n\n if (charCode <= 0x007f) {\n total += 1;\n } else if (charCode <= 0x07ff) {\n total += 2;\n } else if (charCode <= 0xffff) {\n total += 3;\n } else {\n total += 4;\n i++;\n }\n }\n } else if (charset === 'utf-16' || charset === 'utf16') {\n for (let i = 0, len = str.length; i < len; i++) {\n charCode = str.codePointAt(i);\n\n if (charCode <= 0xffff) {\n total += 2;\n } else {\n total += 4;\n i++;\n }\n }\n } else {\n total = str.replace(/[^\\x00-\\xff]/g, 'aa').length;\n }\n return total;\n}\n","/**\n * Repeat item, times times\n */\nexport default function repeat(item, times) {\n let s = String(item);\n let target = '';\n while (times > 0) {\n if (times % 2 === 1) {\n target += s;\n }\n if (times === 1) {\n break;\n }\n s += s;\n // eslint-disable-next-line no-param-reassign\n times = times >> 1;\n }\n return target;\n}\n","/**\n * Item is the end of the target\n */\nexport default function endsWith(target, item, ignore) {\n let str = target.slice(-item.length);\n return ignore ? str.toLowerCase() === item.toLowerCase() : str === item;\n}\n","/**\n * Item is the beginning of the target\n */\nexport default function startsWith(target, item, ignore) {\n let str = String(target).slice(0, item.length);\n return ignore ? str.toLowerCase() === item.toLowerCase() : str === item;\n}\n","/**\n * Whether a string contains another string\n */\nexport default function containsWith(target, item) {\n // discuss at: https://locutus.io/golang/strings/Contains\n // original by: Kevin van Zonneveld (https://kvz.io)\n // example 1: bbo.contains('Kevin', 'K')\n // returns 1: true\n return String(target).indexOf(item) !== -1;\n}\n","/**\n * XSS string filtering\n */\nexport default function xssFilter(str) {\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n","export default function sindex(s, sep) {\n // discuss at: https://locutus.io/golang/strings/Index\n // original by: Kevin van Zonneveld (https://kvz.io)\n // example 1: Index('Kevin', 'K')\n // returns 1: 0\n // example 2: Index('Kevin', 'Z')\n // returns 2: -1\n return String(s).indexOf(sep);\n}\n","export default function capwords(str) {\n // example 1: capwords('kevin van zonneveld')\n // returns 1: 'Kevin Van Zonneveld'\n // example 2: capwords('HELLO WORLD')\n // returns 2: 'HELLO WORLD'\n\n let pattern = /^([a-z\\u00E0-\\u00FC])|\\s+([a-z\\u00E0-\\u00FC])/g;\n return String(str).replace(pattern, function($1) {\n return $1.toUpperCase();\n });\n}\n","/**\n * Returns all unique values of an array.\n */\n\nconst unique = (arr) => [...new Set(arr)];\n\nexport default unique;\n","/**\n * Returns all unique values of an array, based on a provided comparator function.\n */\nconst uniqueBy = (arr, fn) =>\n arr.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x))) acc.push(v);\n return acc;\n }, []);\n\nexport default uniqueBy;\n","/**\n * Remove duplicates from an array of objects\n * https://stackoverflow.com/questions/2218999/remove-duplicates-from-an-array-of-objects-in-javascript\n */\nexport default function uniqueFrom(arr, target) {\n return Object.values(arr.reduce((acc, cur) => Object.assign(acc, { [cur[target]]: cur }), {}));\n}\n","/**\n * Returns a random element from an array.\n */\nconst random = (arr) => arr[Math.floor(Math.random() * arr.length)];\n\nexport default random;\n","/**\n * Gets n random elements at unique keys from array up to the size of array.\n */\nexport default function randomSize([...arr], n = 1) {\n let m = arr.length;\n while (m) {\n const i = Math.floor(Math.random() * m--);\n [arr[m], arr[i]] = [arr[i], arr[m]];\n }\n return arr.slice(0, n);\n}\n","/**\n * Randomizes the order of the values of an array, returning a new array.\n */\nexport default function shuffle([...arr]) {\n let m = arr.length;\n while (m) {\n const i = Math.floor(Math.random() * m--);\n [arr[m], arr[i]] = [arr[i], arr[m]];\n }\n return arr;\n}\n","/**\n * Returns true if the element has the specified Array, false otherwise.\n */\nexport default function contains(target, item) {\n return target.indexOf(item) > -1;\n}\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n let index = -1;\n const length = source.length;\n\n // eslint-disable-next-line no-param-reassign\n array || (array = new Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/**\n * Returns true if all the elements values are included in arr, false otherwise.\n */\nconst includesAll = (arr, values) => values.every((v) => arr.includes(v));\n\nexport default includesAll;\n","/**\n * Returns true if at least one element of values is included in arr , false otherwise.\n */\nconst includesAny = (arr, values) => values.some((v) => arr.includes(v));\n\nexport default includesAny;\n","/**\n * Remove the element specified by parameter 2 in parameter 1 and return Boolean\n */\nexport default function removeAt(target, index) {\n return !!target.splice(index, 1).length;\n}\n","import isArray from '../lodash/is_array';\n\nexport default function remove(arr1, arr2) {\n if (!isArray(arr1) || !isArray(arr2)) {\n throw new Error('expected both arguments to be arrays');\n }\n let result = [];\n let len = arr1.length;\n for (let i = 0; i < len; i++) {\n let elem = arr1[i];\n if (arr2.indexOf(elem) === -1) {\n result.push(elem);\n }\n }\n return result;\n}\n","/**\n * returns a copy of an array with falsey values removed\n */\n\nimport isArray from '../lodash/is_array';\n\nexport default function compact(arr) {\n if (!isArray(arr)) {\n throw new Error('expected an array');\n }\n let result = [];\n let len = arr.length;\n for (let i = 0; i < len; i++) {\n let elem = arr[i];\n if (elem) {\n result.push(elem);\n }\n }\n return result;\n}\n","/**\n * Get the attribute values in an array object and combine them into a new array\n */\nexport default function pluck(target, name) {\n let result = [];\n let temp;\n target.forEach(function(item) {\n if (item[name]) {\n temp = item[name];\n result.push(temp);\n }\n });\n return result;\n}\n","/**\n * Returns every element that exists in any of the two arrays once\n * Create a Set with all values of a and b and convert to an array.\n */\nconst union = (a, b) => Array.from(new Set([...a, ...b]));\n\nexport default union;\n","/**\n * Returns every element that exists in any of the two arrays once,\n * after applying the provided function to each array element of both.\n */\nconst unionBy = (a, b, fn) => {\n const s = new Set(a.map(fn));\n return Array.from(new Set([...a, ...b.filter((x) => !s.has(fn(x)))]));\n};\n\nexport default unionBy;\n","/**\n * Returns every element that exists in any of the two arrays once,\n * using a provided comparator function.\n */\nconst unionWith = (a, b, comp) => {\n return Array.from(new Set([...a, ...b.filter((x) => a.findIndex((y) => comp(x, y)) === -1)]));\n};\n\nexport default unionWith;\n","/**\n * Returns a list of elements that exist in both arrays.\n */\nexport default function intersect(a, b) {\n const s = new Set(b);\n return a.filter((x) => s.has(x));\n}\n","/**\n * Returns a list of elements that exist in both arrays,\n * after applying the provided function to each array element of both.\n */\nexport default function intersectBy(a, b, fn) {\n const s = new Set(b.map(fn));\n return a.filter((x) => s.has(fn(x)));\n}\n","/**\n * Returns the difference between two arrays.\n * Create a Set from b, then use Array.prototype.\n * Filter() on a to only keep values not contained in b.\n */\nexport default function difference(a, b) {\n const s = new Set(b);\n return a.filter((x) => !s.has(x));\n}\n","/**\n * Returns the difference between two arrays,\n * after applying the provided function to each array element of both.\n */\nexport default function differenceBy(a, b, fn) {\n const s = new Set(b.map(fn));\n return a.map(fn).filter((el) => !s.has(el));\n}\n","/**\n * Returns the largest element in an array\n */\nexport default function max(target) {\n return Math.max.apply(0, target);\n}\n","/**\n * Returns the smallest element in an array\n */\nexport default function min(target) {\n return Math.min.apply(0, target);\n}\n","/**\n * Check two arrays are equal\n */\nimport size from '../collection/size';\nexport default function equal(arr1, arr2) {\n let length = size(arr1);\n if (length !== size(arr2)) return false;\n for (let i = 0; i < length; i++) if (arr1[i] !== arr2[i]) return false;\n return true;\n}\n","/**\n * Check if all elements in an array are equal.\n */\nconst allEqual = (arr) => arr.every((val) => val === arr[0]);\n\nexport default allEqual;\n","/**\n * Returns true if the provided predicate function returns true for all elements in a collection, false otherwise.\n */\nconst all = (arr, fn = Boolean) => arr.every(fn);\n\nexport default all;\n","/**\n * Returns true if the provided predicate function returns true for at least one element in a collection,false otherwise.\n */\nconst any = (arr, fn = Boolean) => arr.some(fn);\n\nexport default any;\n","/**\n * Chunks an array into smaller arrays of a specified size.\n */\nconst chunk = (arr, size) => {\n return Array.from({ length: Math.ceil(arr.length / size) }, (v, i) =>\n arr.slice(i * size, i * size + size)\n );\n};\n\nexport default chunk;\n","/**\n * Groups the elements of an array based on the given function and returns the count of elements in each group.\n */\n\nimport isFunction from '../lodash/is_function';\n\nconst countBy = (arr, fn) => {\n return arr.map(isFunction(fn) ? fn : (val) => val[fn]).reduce((acc, val) => {\n acc[val] = (acc[val] || 0) + 1;\n return acc;\n }, {});\n};\n\nexport default countBy;\n","/**\n * Counts the occurrences of a value in an array.\n */\nconst countOccurrences = (arr, val) => {\n return arr.reduce((a, v) => (v === val ? a + 1 : a), 0);\n};\n\nexport default countOccurrences;\n","/**\n * Returns a new array with n elements removed from the left.\n */\nconst drop = (arr, n = 1) => arr.slice(n);\n\nexport default drop;\n","/**\n * Returns a new array with n elements removed from the right.\n */\nconst dropRight = (arr, n = 1) => arr.slice(0, -n);\n\nexport default dropRight;\n","/**\n * Removes elements in an array until the passed function returns true.\n * Returns the remaining elements in the array.\n */\nexport default function dropWhile(arr, func) {\n let _arr = arr;\n while (_arr.length > 0 && !func(_arr[0])) _arr = _arr.slice(1);\n return _arr;\n}\n","/**\n * Removes elements from the end of an array until the passed function returns true,\n * Returns the remaining elements in the array.\n */\n\nimport size from '../collection/size';\n\nexport default function dropRightWhile(arr, func) {\n let rightIndex = size(arr);\n while (rightIndex-- && !func(arr[rightIndex]));\n return arr.slice(0, rightIndex + 1);\n}\n","/**\n * discuss at: https://locutus.io/php/array_column/\n */\nimport isObject from '../lodash/is_object';\nimport isArray from '../lodash/is_array';\n\nexport default function column(input, ColumnKey, IndexKey = null) {\n if (input !== null && (isObject(input) || isArray(input))) {\n let newarray = [];\n if (isObject(input)) {\n let temparray = [];\n for (let key of Object.keys(input)) {\n temparray.push(input[key]);\n }\n // eslint-disable-next-line no-param-reassign\n input = temparray;\n }\n if (isArray(input)) {\n for (let key of input.keys()) {\n if (IndexKey && input[key][IndexKey]) {\n if (ColumnKey) {\n newarray[input[key][IndexKey]] = input[key][ColumnKey];\n } else {\n newarray[input[key][IndexKey]] = input[key];\n }\n } else {\n if (ColumnKey) {\n newarray.push(input[key][ColumnKey]);\n } else {\n newarray.push(input[key]);\n }\n }\n }\n }\n // eslint-disable-next-line prefer-object-spread\n return Object.assign({}, newarray);\n } else {\n throw new Error('throw an error');\n }\n}\n","import isNumber from '../lodash/is_number';\nimport isArray from '../lodash/is_array';\n\nexport default function split(arr, n) {\n if (!isArray(arr)) {\n throw new Error('expected an array for the first argument');\n }\n if (n !== null && !isNumber(n)) {\n throw new Error('expected a number or null for the second argument');\n }\n // eslint-disable-next-line no-param-reassign\n n = n !== null ? n : arr.length;\n let len = arr.length;\n let groups = [];\n for (let i = 0; i < len; i += n) {\n groups.push(arr.slice(i, i + n));\n }\n return groups;\n}\n","const unary = (fn) => (val) => fn(val);\n\nexport default unary;\n","/**\n * return an object from an array, keyed by the value at the given id\n */\n\nimport isArray from '../lodash/is_array';\nimport isString from '../lodash/is_string';\n\nexport default function indexBy(arr, key) {\n if (!isArray(arr)) {\n throw new Error('expected an array for first argument');\n }\n if (!isString(key)) {\n throw new Error('expected a string for second argument');\n }\n let result = {};\n let len = arr.length;\n for (let i = 0; i < len; i++) {\n let index = arr[i] && arr[i][key];\n\n if (index) {\n result[index] = arr[i];\n }\n }\n return result;\n}\n","/* eslint-disable no-invalid-this */\nimport isString from '../lodash/is_string';\nimport isFunction from '../lodash/is_function';\nimport functions from 'functions';\n\nfunction ChainWrapper(subject, explicitChain) {\n this._wrappedValue = subject;\n this._explicitChain = explicitChain;\n}\n\nChainWrapper.prototype.value = function() {\n return this._wrappedValue;\n};\n\nChainWrapper.prototype.valueOf = function() {\n return this.value();\n};\n\nChainWrapper.prototype.toJSON = function() {\n return this.value();\n};\n\nChainWrapper.prototype.toString = function() {\n return String(this.value());\n};\n\nChainWrapper.prototype.chain = function() {\n return new ChainWrapper(this._wrappedValue, true);\n};\n\nChainWrapper.prototype.thru = function(changer) {\n if (isFunction(changer)) {\n return new ChainWrapper(changer(this._wrappedValue), this._explicitChain);\n }\n return this;\n};\n\nChainWrapper.prototype._explicitChain = true;\n\nfunction makeFunctionChainable(functionInstance) {\n return function(...args) {\n const result = functionInstance(this._wrappedValue, ...args);\n if (this._explicitChain || isString(result)) {\n return new ChainWrapper(result, this._explicitChain);\n } else {\n return result;\n }\n };\n}\n\nObject.keys(functions).forEach(function(name) {\n ChainWrapper.prototype[name] = makeFunctionChainable(functions[name]);\n});\n\nexport default ChainWrapper;\n","import chain from './chain/chain';\nimport ChainWrapper from './chain/wrapper';\nimport functions from './functions';\n\nfunction bbo(subject) {\n return new ChainWrapper(subject, false);\n}\n\nObject.assign(bbo, functions, {\n chain: chain\n});\n\nexport default bbo;\n","import ChainWrapper from 'chain/wrapper';\n\nexport default function chain(subject) {\n return new ChainWrapper(subject, true);\n}\n"],"names":["getTag","src","Object","prototype","toString","call","isString","str","isFunction","func","globalObject","global","self","Function","previous","bbo","ua","lower","window","navigator","userAgent","toLowerCase","isIOS","test","isMobile","ieVersion","uakit","msie","indexOf","parseInt","substring","rv","edge","args","$arguments","first","Array","slice","noop","hasOwnProperty","obj","keyName","setStyle","el","ruleName","val","style","attr","setAttribute","trigger","element","event","eventType","e","document","createEvent","initEvent","dispatchEvent","g","i","getElementById","c","t","cn","id","createElement","innerHTML","isArray","arr","isMap","map","isSet","set","size","collection","length","keys","isTypeof","type","judge","v","vals","strict","key","isObject","value","properObject","o","isDate","d","Date","isEmpty","objectDiff","lhs","rhs","l","r","deletedValues","reduce","acc","undefined","valueOf","difference","addedDiff","deletedDiff","updatedDiff","toJson","res","JSON","parse","randomKey","len","possible","charAt","Math","floor","random","isNumber","number","setCookie","name","option","raw","encodeURIComponent","cookie","days","date","ms","setTime","getTime","toGMTString","hour","longTime","path","domain","secure","deleteCookie","deleteUrlParam","param","url","location","href","urlparts","split","prefix","pars","lastIndexOf","splice","join","objectParam","item","objectBigParam","forEach","k","concat","push","clearTimesout","clearInterval","fill0","num","_num","parseFloat","String","cachedSetTimeout","setTimeout","createSleepPromise","timeout","timeoutFunction","useCachedSetTimeout","Promise","resolve","timeoutReject","task","timer","race","reject","catch","rs","rj","then","clearTimeout","err","randomA2B","a","b","int","result","clone","RegExp","source","getRegExpFlags","regExp","flags","ignoreCase","multiline","sticky","unicode","isBoolean","bool","isCloneable","isUnextendable","is","x","y","isSymbol","symbol","isNil","isShallowEqual","objs","Number","compareArrays","compareObjects","compareDates","compare","obj1","rst","charCodeOfDot","charCodeAt","reEscapeChar","rePropName","toKey","underscored","target","replace","version","noConflict","this","isIos","isiPhone","isIPad","isAndroid","isPC","isWeixin","isNewsApp","isQQ","isQQbrowser","isTenvideo","isWeiShi","isIphoneXmodel","devicePixelRatio","screen","width","height","some","isIE","merge","over","fns","fn","apply","context","stopPropagation","cancelBubble","gc","getElementsByClassName","query","querySelector","show","display","hide","elementContains","parent","child","contains","getStyle","getComputedStyle","uuid","hash","_str","judgment","getType","constructor","construct","classs","arguments","bind","paramsName","exec","log","msg","styles","ele","body","appendChild","detailedDiff","added","deleted","updated","toJSON","tojson","jsonp","opts","script","enc","getElementsByTagName","head","cleanup","parentNode","removeChild","Error","data","console","insertBefore","cookieAttrExtend","attributes","init","converter","api","defaults","expires","setMilliseconds","getMilliseconds","stringify","write","decodeURIComponent","escape","toUTCString","cookies","rdecode","parts","read","json","get","getJson","getJSON","remove","withConverter","getCookie","nameEQ","ca","delCookie","parseCookie","trim","open","getUrlParam","regex","results","setUrlParam","uri","re","separator","match","delUrlParam","httpGet","callback","error","request","XMLHttpRequest","onload","responseText","onerror","send","httpPost","setRequestHeader","setTimesout","delay","times","_args","index","setInterval","getDate","d1","d2","today","dd","mm","getMonth","yyyy","getFullYear","hh","getHours","getMinutes","ss","getSeconds","_d1","_d2","formatPassTime","startTime","seconds","interval","formatRemainTime","endTime","startDate","h","m","s","formatDuration","time","day","minute","second","millisecond","entries","filter","sleep","sleepPromise","promiseFunction","retry","attempt","options","retries","rejectDelay","reason","p","n","pow","chainAsync","curr","last","next","numberFormat","decimals","decPoint","thousandsSep","_number","_decimals","isFinite","prec","abs","sep","dec","round","sig","toFixed","toFixedFix","modulo","NaN","randomColor","randomFromA2B","lockTouch","not","tag","tagName","toUpperCase","preventDefault","addEventListener","copyToClipboard","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeAllRanges","addRange","deepClone","values","extend","deep","shift","extenders","extender","base","flush","elem","search","needle","haystack","argStrict","isEqual","has","object","predicate","hasInitialValue","previousValue","currentKey","currentIndex","array","each","mapValues","findIndex","subEqual","find","toPath","string","expression","quote","subString","propsArg","defaultValue","props","prop","thisProp","lastProp","pop","debounce","wait","callFirst","callNow","throttle","pick","omit","fillZero","longUnique","longString","stripTags","capitalize","deCapitalize","subject","subjectString","coerceToString","substr","isAbsoluteURL","mapString","mask","cc","padStart","splitLines","camelize","dasherize","truncate","byteSize","Blob","byteLen","charset","charCode","total","codePointAt","repeat","endsWith","ignore","startsWith","containsWith","xssFilter","effortIndex","capwords","$1","unique","Set","uniqueBy","uniqueFrom","cur","_extends","randomSize","shuffle","copyArray","includesAll","every","includes","includesAny","removeAt","arr1","arr2","compact","pluck","temp","union","from","unionBy","unionWith","comp","intersect","intersectBy","differenceBy","max","min","equal","allEqual","all","Boolean","any","chunk","ceil","countBy","countOccurrences","drop","dropRight","dropWhile","_arr","dropRightWhile","rightIndex","column","input","ColumnKey","IndexKey","newarray","temparray","groups","unary","indexBy","ChainWrapper","explicitChain","_wrappedValue","_explicitChain","chain","thru","changer","functions","functionInstance"],"mappings":"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"}