commit
42ddd9b2bd
@ -0,0 +1,17 @@ |
||||
import request from '@/utils/request' |
||||
|
||||
// api地址
|
||||
const api = { |
||||
getShopList: 'merchant/list', |
||||
getShopDetail: 'merchant/detail' |
||||
} |
||||
|
||||
// 商户列表
|
||||
export function getShopList(param) { |
||||
return request.get(api.getShopList, { ...param }) |
||||
} |
||||
|
||||
// 商户详情
|
||||
export function getShopDetail(param) { |
||||
return request.get(api.getShopDetail, { ...param }) |
||||
} |
@ -0,0 +1,24 @@ |
||||
import request from '@/utils/request' |
||||
|
||||
// api地址
|
||||
const api = { |
||||
publishDynamic: 'square/add', |
||||
getDynamic: 'square/list', |
||||
dynamicLike: 'square/dynamicLike' |
||||
} |
||||
|
||||
// 发布动态
|
||||
export function publishDynamic(param) { |
||||
return request.post(api.publishDynamic, { ...param }) |
||||
} |
||||
|
||||
|
||||
// 获取动态列表
|
||||
export function getDynamic(param) { |
||||
return request.get(api.getDynamic, { ...param }) |
||||
} |
||||
|
||||
// 动态点赞
|
||||
export function dynamicLike(param) { |
||||
return request.post(api.dynamicLike, { ...param }) |
||||
} |
@ -1 +0,0 @@ |
||||
/.vite |
@ -1,12 +0,0 @@ |
||||
{ |
||||
"name": "@hbuilder/yoshop2-pro", |
||||
"lockfileVersion": 3, |
||||
"requires": true, |
||||
"packages": { |
||||
"node_modules/weixin-js-sdk": { |
||||
"version": "1.6.0", |
||||
"resolved": "https://registry.npmjs.org/weixin-js-sdk/-/weixin-js-sdk-1.6.0.tgz", |
||||
"integrity": "sha512-3IYQH7aalJGFJrwdT3epvTdR1MboMiH7vIZ5BRL2eYOJ12BNah7csoMkmSZzkq1+l92sSq29XdTCVjCJoK2sBQ==" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,23 @@ |
||||
{ |
||||
"hash": "21e32e26", |
||||
"browserHash": "4c6f45ce", |
||||
"optimized": { |
||||
"weixin-js-sdk": { |
||||
"src": "../../weixin-js-sdk/index.js", |
||||
"file": "weixin-js-sdk.js", |
||||
"fileHash": "f4f72ebd", |
||||
"needsInterop": true |
||||
}, |
||||
"lodash": { |
||||
"src": "../../lodash/lodash.js", |
||||
"file": "lodash.js", |
||||
"fileHash": "3c4dd255", |
||||
"needsInterop": true |
||||
} |
||||
}, |
||||
"chunks": { |
||||
"chunk-RSJERJUL": { |
||||
"file": "chunk-RSJERJUL.js" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@ |
||||
var __getOwnPropNames = Object.getOwnPropertyNames; |
||||
var __commonJS = (cb, mod) => function __require() { |
||||
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; |
||||
}; |
||||
|
||||
export { |
||||
__commonJS |
||||
}; |
||||
//# sourceMappingURL=chunk-RSJERJUL.js.map
|
@ -0,0 +1,7 @@ |
||||
{ |
||||
"version": 3, |
||||
"sources": [], |
||||
"sourcesContent": [], |
||||
"mappings": "", |
||||
"names": [] |
||||
} |
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,3 @@ |
||||
{ |
||||
"type": "module" |
||||
} |
@ -0,0 +1,720 @@ |
||||
import { |
||||
__commonJS |
||||
} from "./chunk-RSJERJUL.js"; |
||||
|
||||
// ../../../../proj/yanzong_qianduan/node_modules/weixin-js-sdk/index.js
|
||||
var require_weixin_js_sdk = __commonJS({ |
||||
"../../../../proj/yanzong_qianduan/node_modules/weixin-js-sdk/index.js"(exports, module) { |
||||
!function(e, n) { |
||||
module.exports = n(e); |
||||
}(typeof window === "object" && window, function(r, e) { |
||||
if (!r) { |
||||
console.warn("can't use weixin-js-sdk in server side"); |
||||
return; |
||||
} |
||||
var a, c, n, i, t, o, s, d, l, u, p, f, m, g, h, S, y, I, v, _, w, T; |
||||
if (!r.jWeixin) |
||||
return a = { |
||||
config: "preVerifyJSAPI", |
||||
onMenuShareTimeline: "menu:share:timeline", |
||||
onMenuShareAppMessage: "menu:share:appmessage", |
||||
onMenuShareQQ: "menu:share:qq", |
||||
onMenuShareWeibo: "menu:share:weiboApp", |
||||
onMenuShareQZone: "menu:share:QZone", |
||||
previewImage: "imagePreview", |
||||
getLocation: "geoLocation", |
||||
openProductSpecificView: "openProductViewWithPid", |
||||
addCard: "batchAddCard", |
||||
openCard: "batchViewCard", |
||||
chooseWXPay: "getBrandWCPayRequest", |
||||
openEnterpriseRedPacket: "getRecevieBizHongBaoRequest", |
||||
startSearchBeacons: "startMonitoringBeacons", |
||||
stopSearchBeacons: "stopMonitoringBeacons", |
||||
onSearchBeacons: "onBeaconsInRange", |
||||
consumeAndShareCard: "consumedShareCard", |
||||
openAddress: "editAddress" |
||||
}, c = function() { |
||||
var e2, n2 = {}; |
||||
for (e2 in a) |
||||
n2[a[e2]] = e2; |
||||
return n2; |
||||
}(), n = r.document, i = n.title, t = navigator.userAgent.toLowerCase(), f = navigator.platform.toLowerCase(), o = !(!f.match("mac") && !f.match("win")), s = -1 != t.indexOf("wxdebugger"), d = -1 != t.indexOf("micromessenger"), l = -1 != t.indexOf("android"), u = -1 != t.indexOf("iphone") || -1 != t.indexOf("ipad"), p = (f = t.match(/micromessenger\/(\d+\.\d+\.\d+)/) || t.match(/micromessenger\/(\d+\.\d+)/)) ? f[1] : "", m = { |
||||
initStartTime: L(), |
||||
initEndTime: 0, |
||||
preVerifyStartTime: 0, |
||||
preVerifyEndTime: 0 |
||||
}, g = { |
||||
version: 1, |
||||
appId: "", |
||||
initTime: 0, |
||||
preVerifyTime: 0, |
||||
networkType: "", |
||||
isPreVerifyOk: 1, |
||||
systemType: u ? 1 : l ? 2 : -1, |
||||
clientVersion: p, |
||||
url: encodeURIComponent(location.href) |
||||
}, h = {}, S = { _completes: [] }, y = { state: 0, data: {} }, O(function() { |
||||
m.initEndTime = L(); |
||||
}), I = false, v = [], _ = { |
||||
config: function(e2) { |
||||
C("config", h = e2); |
||||
var o2 = false !== h.check; |
||||
O(function() { |
||||
if (o2) |
||||
k( |
||||
a.config, |
||||
{ |
||||
verifyJsApiList: A(h.jsApiList), |
||||
verifyOpenTagList: A(h.openTagList) |
||||
}, |
||||
(S._complete = function(e4) { |
||||
m.preVerifyEndTime = L(), y.state = 1, y.data = e4; |
||||
}, S.success = function(e4) { |
||||
g.isPreVerifyOk = 0; |
||||
}, S.fail = function(e4) { |
||||
S._fail ? S._fail(e4) : y.state = -1; |
||||
}, (t2 = S._completes).push(function() { |
||||
B(); |
||||
}), S.complete = function(e4) { |
||||
for (var n3 = 0, i3 = t2.length; n3 < i3; ++n3) |
||||
t2[n3](); |
||||
S._completes = []; |
||||
}, S) |
||||
), m.preVerifyStartTime = L(); |
||||
else { |
||||
y.state = 1; |
||||
for (var e3 = S._completes, n2 = 0, i2 = e3.length; n2 < i2; ++n2) |
||||
e3[n2](); |
||||
S._completes = []; |
||||
} |
||||
var t2; |
||||
}), _.invoke || (_.invoke = function(e3, n2, i2) { |
||||
r.WeixinJSBridge && WeixinJSBridge.invoke(e3, P(n2), i2); |
||||
}, _.on = function(e3, n2) { |
||||
r.WeixinJSBridge && WeixinJSBridge.on(e3, n2); |
||||
}); |
||||
}, |
||||
ready: function(e2) { |
||||
(0 != y.state || (S._completes.push(e2), !d && h.debug)) && e2(); |
||||
}, |
||||
error: function(e2) { |
||||
p < "6.0.2" || (-1 == y.state ? e2(y.data) : S._fail = e2); |
||||
}, |
||||
checkJsApi: function(e2) { |
||||
k( |
||||
"checkJsApi", |
||||
{ jsApiList: A(e2.jsApiList) }, |
||||
(e2._complete = function(e3) { |
||||
l && (i2 = e3.checkResult) && (e3.checkResult = JSON.parse(i2)); |
||||
var n2, i2 = e3, t2 = i2.checkResult; |
||||
for (n2 in t2) { |
||||
var o2 = c[n2]; |
||||
o2 && (t2[o2] = t2[n2], delete t2[n2]); |
||||
} |
||||
}, e2) |
||||
); |
||||
}, |
||||
onMenuShareTimeline: function(e2) { |
||||
M( |
||||
a.onMenuShareTimeline, |
||||
{ |
||||
complete: function() { |
||||
k( |
||||
"shareTimeline", |
||||
{ |
||||
title: e2.title || i, |
||||
desc: e2.title || i, |
||||
img_url: e2.imgUrl || "", |
||||
link: e2.link || location.href, |
||||
type: e2.type || "link", |
||||
data_url: e2.dataUrl || "" |
||||
}, |
||||
e2 |
||||
); |
||||
} |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
onMenuShareAppMessage: function(n2) { |
||||
M( |
||||
a.onMenuShareAppMessage, |
||||
{ |
||||
complete: function(e2) { |
||||
"favorite" === e2.scene ? k("sendAppMessage", { |
||||
title: n2.title || i, |
||||
desc: n2.desc || "", |
||||
link: n2.link || location.href, |
||||
img_url: n2.imgUrl || "", |
||||
type: n2.type || "link", |
||||
data_url: n2.dataUrl || "" |
||||
}) : k( |
||||
"sendAppMessage", |
||||
{ |
||||
title: n2.title || i, |
||||
desc: n2.desc || "", |
||||
link: n2.link || location.href, |
||||
img_url: n2.imgUrl || "", |
||||
type: n2.type || "link", |
||||
data_url: n2.dataUrl || "" |
||||
}, |
||||
n2 |
||||
); |
||||
} |
||||
}, |
||||
n2 |
||||
); |
||||
}, |
||||
onMenuShareQQ: function(e2) { |
||||
M( |
||||
a.onMenuShareQQ, |
||||
{ |
||||
complete: function() { |
||||
k( |
||||
"shareQQ", |
||||
{ |
||||
title: e2.title || i, |
||||
desc: e2.desc || "", |
||||
img_url: e2.imgUrl || "", |
||||
link: e2.link || location.href |
||||
}, |
||||
e2 |
||||
); |
||||
} |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
onMenuShareWeibo: function(e2) { |
||||
M( |
||||
a.onMenuShareWeibo, |
||||
{ |
||||
complete: function() { |
||||
k( |
||||
"shareWeiboApp", |
||||
{ |
||||
title: e2.title || i, |
||||
desc: e2.desc || "", |
||||
img_url: e2.imgUrl || "", |
||||
link: e2.link || location.href |
||||
}, |
||||
e2 |
||||
); |
||||
} |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
onMenuShareQZone: function(e2) { |
||||
M( |
||||
a.onMenuShareQZone, |
||||
{ |
||||
complete: function() { |
||||
k( |
||||
"shareQZone", |
||||
{ |
||||
title: e2.title || i, |
||||
desc: e2.desc || "", |
||||
img_url: e2.imgUrl || "", |
||||
link: e2.link || location.href |
||||
}, |
||||
e2 |
||||
); |
||||
} |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
updateTimelineShareData: function(e2) { |
||||
k( |
||||
"updateTimelineShareData", |
||||
{ title: e2.title, link: e2.link, imgUrl: e2.imgUrl }, |
||||
e2 |
||||
); |
||||
}, |
||||
updateAppMessageShareData: function(e2) { |
||||
k( |
||||
"updateAppMessageShareData", |
||||
{ title: e2.title, desc: e2.desc, link: e2.link, imgUrl: e2.imgUrl }, |
||||
e2 |
||||
); |
||||
}, |
||||
startRecord: function(e2) { |
||||
k("startRecord", {}, e2); |
||||
}, |
||||
stopRecord: function(e2) { |
||||
k("stopRecord", {}, e2); |
||||
}, |
||||
onVoiceRecordEnd: function(e2) { |
||||
M("onVoiceRecordEnd", e2); |
||||
}, |
||||
playVoice: function(e2) { |
||||
k("playVoice", { localId: e2.localId }, e2); |
||||
}, |
||||
pauseVoice: function(e2) { |
||||
k("pauseVoice", { localId: e2.localId }, e2); |
||||
}, |
||||
stopVoice: function(e2) { |
||||
k("stopVoice", { localId: e2.localId }, e2); |
||||
}, |
||||
onVoicePlayEnd: function(e2) { |
||||
M("onVoicePlayEnd", e2); |
||||
}, |
||||
uploadVoice: function(e2) { |
||||
k( |
||||
"uploadVoice", |
||||
{ |
||||
localId: e2.localId, |
||||
isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
downloadVoice: function(e2) { |
||||
k( |
||||
"downloadVoice", |
||||
{ |
||||
serverId: e2.serverId, |
||||
isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
translateVoice: function(e2) { |
||||
k( |
||||
"translateVoice", |
||||
{ |
||||
localId: e2.localId, |
||||
isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
chooseImage: function(e2) { |
||||
k( |
||||
"chooseImage", |
||||
{ |
||||
scene: "1|2", |
||||
count: e2.count || 9, |
||||
sizeType: e2.sizeType || ["original", "compressed"], |
||||
sourceType: e2.sourceType || ["album", "camera"] |
||||
}, |
||||
(e2._complete = function(e3) { |
||||
if (l) { |
||||
var n2 = e3.localIds; |
||||
try { |
||||
n2 && (e3.localIds = JSON.parse(n2)); |
||||
} catch (e4) { |
||||
} |
||||
} |
||||
}, e2) |
||||
); |
||||
}, |
||||
getLocation: function(e2) { |
||||
e2 = e2 || {}, k( |
||||
a.getLocation, |
||||
{ type: e2.type || "wgs84" }, |
||||
(e2._complete = function(e3) { |
||||
delete e3.type; |
||||
}, e2) |
||||
); |
||||
}, |
||||
previewImage: function(e2) { |
||||
k(a.previewImage, { current: e2.current, urls: e2.urls }, e2); |
||||
}, |
||||
uploadImage: function(e2) { |
||||
k( |
||||
"uploadImage", |
||||
{ |
||||
localId: e2.localId, |
||||
isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
downloadImage: function(e2) { |
||||
k( |
||||
"downloadImage", |
||||
{ |
||||
serverId: e2.serverId, |
||||
isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
getLocalImgData: function(e2) { |
||||
false === I ? (I = true, k( |
||||
"getLocalImgData", |
||||
{ localId: e2.localId }, |
||||
(e2._complete = function(e3) { |
||||
var n2; |
||||
I = false, 0 < v.length && (n2 = v.shift(), wx.getLocalImgData(n2)); |
||||
}, e2) |
||||
)) : v.push(e2); |
||||
}, |
||||
getNetworkType: function(e2) { |
||||
k( |
||||
"getNetworkType", |
||||
{}, |
||||
(e2._complete = function(e3) { |
||||
var n2 = e3, e3 = n2.errMsg, i2 = (n2.errMsg = "getNetworkType:ok", n2.subtype); |
||||
if (delete n2.subtype, i2) |
||||
n2.networkType = i2; |
||||
else { |
||||
var i2 = e3.indexOf(":"), t2 = e3.substring(i2 + 1); |
||||
switch (t2) { |
||||
case "wifi": |
||||
case "edge": |
||||
case "wwan": |
||||
n2.networkType = t2; |
||||
break; |
||||
default: |
||||
n2.errMsg = "getNetworkType:fail"; |
||||
} |
||||
} |
||||
}, e2) |
||||
); |
||||
}, |
||||
openLocation: function(e2) { |
||||
k( |
||||
"openLocation", |
||||
{ |
||||
latitude: e2.latitude, |
||||
longitude: e2.longitude, |
||||
name: e2.name || "", |
||||
address: e2.address || "", |
||||
scale: e2.scale || 28, |
||||
infoUrl: e2.infoUrl || "" |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
hideOptionMenu: function(e2) { |
||||
k("hideOptionMenu", {}, e2); |
||||
}, |
||||
showOptionMenu: function(e2) { |
||||
k("showOptionMenu", {}, e2); |
||||
}, |
||||
closeWindow: function(e2) { |
||||
k("closeWindow", {}, e2 = e2 || {}); |
||||
}, |
||||
hideMenuItems: function(e2) { |
||||
k("hideMenuItems", { menuList: e2.menuList }, e2); |
||||
}, |
||||
showMenuItems: function(e2) { |
||||
k("showMenuItems", { menuList: e2.menuList }, e2); |
||||
}, |
||||
hideAllNonBaseMenuItem: function(e2) { |
||||
k("hideAllNonBaseMenuItem", {}, e2); |
||||
}, |
||||
showAllNonBaseMenuItem: function(e2) { |
||||
k("showAllNonBaseMenuItem", {}, e2); |
||||
}, |
||||
scanQRCode: function(e2) { |
||||
k( |
||||
"scanQRCode", |
||||
{ |
||||
needResult: (e2 = e2 || {}).needResult || 0, |
||||
scanType: e2.scanType || ["qrCode", "barCode"] |
||||
}, |
||||
(e2._complete = function(e3) { |
||||
var n2; |
||||
u && (n2 = e3.resultStr) && (n2 = JSON.parse(n2), e3.resultStr = n2 && n2.scan_code && n2.scan_code.scan_result); |
||||
}, e2) |
||||
); |
||||
}, |
||||
openAddress: function(e2) { |
||||
k( |
||||
a.openAddress, |
||||
{}, |
||||
(e2._complete = function(e3) { |
||||
(e3 = e3).postalCode = e3.addressPostalCode, delete e3.addressPostalCode, e3.provinceName = e3.proviceFirstStageName, delete e3.proviceFirstStageName, e3.cityName = e3.addressCitySecondStageName, delete e3.addressCitySecondStageName, e3.countryName = e3.addressCountiesThirdStageName, delete e3.addressCountiesThirdStageName, e3.detailInfo = e3.addressDetailInfo, delete e3.addressDetailInfo; |
||||
}, e2) |
||||
); |
||||
}, |
||||
openProductSpecificView: function(e2) { |
||||
k( |
||||
a.openProductSpecificView, |
||||
{ |
||||
pid: e2.productId, |
||||
view_type: e2.viewType || 0, |
||||
ext_info: e2.extInfo |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
addCard: function(e2) { |
||||
for (var n2 = e2.cardList, i2 = [], t2 = 0, o2 = n2.length; t2 < o2; ++t2) { |
||||
var r2 = n2[t2], r2 = { card_id: r2.cardId, card_ext: r2.cardExt }; |
||||
i2.push(r2); |
||||
} |
||||
k( |
||||
a.addCard, |
||||
{ card_list: i2 }, |
||||
(e2._complete = function(e3) { |
||||
if (n3 = e3.card_list) { |
||||
for (var n3, i3 = 0, t3 = (n3 = JSON.parse(n3)).length; i3 < t3; ++i3) { |
||||
var o3 = n3[i3]; |
||||
o3.cardId = o3.card_id, o3.cardExt = o3.card_ext, o3.isSuccess = !!o3.is_succ, delete o3.card_id, delete o3.card_ext, delete o3.is_succ; |
||||
} |
||||
e3.cardList = n3, delete e3.card_list; |
||||
} |
||||
}, e2) |
||||
); |
||||
}, |
||||
chooseCard: function(e2) { |
||||
k( |
||||
"chooseCard", |
||||
{ |
||||
app_id: h.appId, |
||||
location_id: e2.shopId || "", |
||||
sign_type: e2.signType || "SHA1", |
||||
card_id: e2.cardId || "", |
||||
card_type: e2.cardType || "", |
||||
card_sign: e2.cardSign, |
||||
time_stamp: e2.timestamp + "", |
||||
nonce_str: e2.nonceStr |
||||
}, |
||||
(e2._complete = function(e3) { |
||||
e3.cardList = e3.choose_card_info, delete e3.choose_card_info; |
||||
}, e2) |
||||
); |
||||
}, |
||||
openCard: function(e2) { |
||||
for (var n2 = e2.cardList, i2 = [], t2 = 0, o2 = n2.length; t2 < o2; ++t2) { |
||||
var r2 = n2[t2], r2 = { card_id: r2.cardId, code: r2.code }; |
||||
i2.push(r2); |
||||
} |
||||
k(a.openCard, { card_list: i2 }, e2); |
||||
}, |
||||
consumeAndShareCard: function(e2) { |
||||
k( |
||||
a.consumeAndShareCard, |
||||
{ consumedCardId: e2.cardId, consumedCode: e2.code }, |
||||
e2 |
||||
); |
||||
}, |
||||
chooseWXPay: function(e2) { |
||||
k(a.chooseWXPay, x(e2), e2), B({ jsApiName: "chooseWXPay" }); |
||||
}, |
||||
openEnterpriseRedPacket: function(e2) { |
||||
k(a.openEnterpriseRedPacket, x(e2), e2); |
||||
}, |
||||
startSearchBeacons: function(e2) { |
||||
k(a.startSearchBeacons, { ticket: e2.ticket }, e2); |
||||
}, |
||||
stopSearchBeacons: function(e2) { |
||||
k(a.stopSearchBeacons, {}, e2); |
||||
}, |
||||
onSearchBeacons: function(e2) { |
||||
M(a.onSearchBeacons, e2); |
||||
}, |
||||
openEnterpriseChat: function(e2) { |
||||
k( |
||||
"openEnterpriseChat", |
||||
{ useridlist: e2.userIds, chatname: e2.groupName }, |
||||
e2 |
||||
); |
||||
}, |
||||
launchMiniProgram: function(e2) { |
||||
k( |
||||
"launchMiniProgram", |
||||
{ |
||||
targetAppId: e2.targetAppId, |
||||
path: function(e3) { |
||||
var n2; |
||||
if ("string" == typeof e3 && 0 < e3.length) |
||||
return n2 = e3.split("?")[0], n2 += ".html", void 0 !== (e3 = e3.split("?")[1]) ? n2 + "?" + e3 : n2; |
||||
}(e2.path), |
||||
envVersion: e2.envVersion |
||||
}, |
||||
e2 |
||||
); |
||||
}, |
||||
openBusinessView: function(e2) { |
||||
k( |
||||
"openBusinessView", |
||||
{ |
||||
businessType: e2.businessType, |
||||
queryString: e2.queryString || "", |
||||
envVersion: e2.envVersion |
||||
}, |
||||
(e2._complete = function(n2) { |
||||
if (l) { |
||||
var e3 = n2.extraData; |
||||
if (e3) |
||||
try { |
||||
n2.extraData = JSON.parse(e3); |
||||
} catch (e4) { |
||||
n2.extraData = {}; |
||||
} |
||||
} |
||||
}, e2) |
||||
); |
||||
}, |
||||
miniProgram: { |
||||
navigateBack: function(e2) { |
||||
e2 = e2 || {}, O(function() { |
||||
k( |
||||
"invokeMiniProgramAPI", |
||||
{ name: "navigateBack", arg: { delta: e2.delta || 1 } }, |
||||
e2 |
||||
); |
||||
}); |
||||
}, |
||||
navigateTo: function(e2) { |
||||
O(function() { |
||||
k( |
||||
"invokeMiniProgramAPI", |
||||
{ name: "navigateTo", arg: { url: e2.url } }, |
||||
e2 |
||||
); |
||||
}); |
||||
}, |
||||
redirectTo: function(e2) { |
||||
O(function() { |
||||
k( |
||||
"invokeMiniProgramAPI", |
||||
{ name: "redirectTo", arg: { url: e2.url } }, |
||||
e2 |
||||
); |
||||
}); |
||||
}, |
||||
switchTab: function(e2) { |
||||
O(function() { |
||||
k( |
||||
"invokeMiniProgramAPI", |
||||
{ name: "switchTab", arg: { url: e2.url } }, |
||||
e2 |
||||
); |
||||
}); |
||||
}, |
||||
reLaunch: function(e2) { |
||||
O(function() { |
||||
k( |
||||
"invokeMiniProgramAPI", |
||||
{ name: "reLaunch", arg: { url: e2.url } }, |
||||
e2 |
||||
); |
||||
}); |
||||
}, |
||||
postMessage: function(e2) { |
||||
O(function() { |
||||
k( |
||||
"invokeMiniProgramAPI", |
||||
{ name: "postMessage", arg: e2.data || {} }, |
||||
e2 |
||||
); |
||||
}); |
||||
}, |
||||
getEnv: function(e2) { |
||||
O(function() { |
||||
e2({ miniprogram: "miniprogram" === r.__wxjs_environment }); |
||||
}); |
||||
} |
||||
} |
||||
}, w = 1, T = {}, n.addEventListener( |
||||
"error", |
||||
function(e2) { |
||||
var n2, i2, t2; |
||||
l || (t2 = (n2 = e2.target).tagName, i2 = n2.src, "IMG" != t2 && "VIDEO" != t2 && "AUDIO" != t2 && "SOURCE" != t2) || -1 != i2.indexOf("wxlocalresource://") && (e2.preventDefault(), e2.stopPropagation(), (t2 = n2["wx-id"]) || (t2 = w++, n2["wx-id"] = t2), T[t2] || (T[t2] = true, wx.ready(function() { |
||||
wx.getLocalImgData({ |
||||
localId: i2, |
||||
success: function(e3) { |
||||
n2.src = e3.localData; |
||||
} |
||||
}); |
||||
}))); |
||||
}, |
||||
true |
||||
), n.addEventListener( |
||||
"load", |
||||
function(e2) { |
||||
var n2; |
||||
l || (n2 = (e2 = e2.target).tagName, e2.src, "IMG" != n2 && "VIDEO" != n2 && "AUDIO" != n2 && "SOURCE" != n2) || (n2 = e2["wx-id"]) && (T[n2] = false); |
||||
}, |
||||
true |
||||
), e && (r.wx = r.jWeixin = _), _; |
||||
else |
||||
return r.jWeixin; |
||||
function k(n2, e2, i2) { |
||||
r.WeixinJSBridge ? WeixinJSBridge.invoke(n2, P(e2), function(e3) { |
||||
V(n2, e3, i2); |
||||
}) : C(n2, i2); |
||||
} |
||||
function M(n2, i2, t2) { |
||||
r.WeixinJSBridge ? WeixinJSBridge.on(n2, function(e2) { |
||||
t2 && t2.trigger && t2.trigger(e2), V(n2, e2, i2); |
||||
}) : C(n2, t2 || i2); |
||||
} |
||||
function P(e2) { |
||||
return (e2 = e2 || {}).appId = h.appId, e2.verifyAppId = h.appId, e2.verifySignType = "sha1", e2.verifyTimestamp = h.timestamp + "", e2.verifyNonceStr = h.nonceStr, e2.verifySignature = h.signature, e2; |
||||
} |
||||
function x(e2) { |
||||
return { |
||||
timeStamp: e2.timestamp + "", |
||||
nonceStr: e2.nonceStr, |
||||
package: e2.package, |
||||
paySign: e2.paySign, |
||||
signType: e2.signType || "SHA1" |
||||
}; |
||||
} |
||||
function V(e2, n2, i2) { |
||||
"openEnterpriseChat" != e2 && "openBusinessView" !== e2 || (n2.errCode = n2.err_code), delete n2.err_code, delete n2.err_desc, delete n2.err_detail; |
||||
var t2 = n2.errMsg, e2 = (t2 || (t2 = n2.err_msg, delete n2.err_msg, t2 = function(e3, n3) { |
||||
var i3 = c[e3]; |
||||
i3 && (e3 = i3); |
||||
i3 = "ok"; |
||||
{ |
||||
var t3; |
||||
n3 && (t3 = n3.indexOf(":"), "access denied" != (i3 = (i3 = (i3 = -1 != (i3 = -1 != (i3 = "failed" == (i3 = "confirm" == (i3 = n3.substring(t3 + 1)) ? "ok" : i3) ? "fail" : i3).indexOf("failed_") ? i3.substring(7) : i3).indexOf("fail_") ? i3.substring(5) : i3).replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != i3 || (i3 = "permission denied"), "" == (i3 = "config" == e3 && "function not exist" == i3 ? "ok" : i3)) && (i3 = "fail"); |
||||
} |
||||
return n3 = e3 + ":" + i3; |
||||
}(e2, t2), n2.errMsg = t2), (i2 = i2 || {})._complete && (i2._complete(n2), delete i2._complete), t2 = n2.errMsg || "", h.debug && !i2.isInnerInvoke && alert(JSON.stringify(n2)), t2.indexOf(":")); |
||||
switch (t2.substring(e2 + 1)) { |
||||
case "ok": |
||||
i2.success && i2.success(n2); |
||||
break; |
||||
case "cancel": |
||||
i2.cancel && i2.cancel(n2); |
||||
break; |
||||
default: |
||||
i2.fail && i2.fail(n2); |
||||
} |
||||
i2.complete && i2.complete(n2); |
||||
} |
||||
function A(e2) { |
||||
if (e2) { |
||||
for (var n2 = 0, i2 = e2.length; n2 < i2; ++n2) { |
||||
var t2 = e2[n2], t2 = a[t2]; |
||||
t2 && (e2[n2] = t2); |
||||
} |
||||
return e2; |
||||
} |
||||
} |
||||
function C(e2, n2) { |
||||
var i2; |
||||
!h.debug || n2 && n2.isInnerInvoke || ((i2 = c[e2]) && (e2 = i2), n2 && n2._complete && delete n2._complete, console.log('"' + e2 + '",', n2 || "")); |
||||
} |
||||
function B(n2) { |
||||
var i2; |
||||
o || s || h.debug || p < "6.0.2" || g.systemType < 0 || (i2 = new Image(), g.appId = h.appId, g.initTime = m.initEndTime - m.initStartTime, g.preVerifyTime = m.preVerifyEndTime - m.preVerifyStartTime, _.getNetworkType({ |
||||
isInnerInvoke: true, |
||||
success: function(e2) { |
||||
g.networkType = e2.networkType; |
||||
e2 = "https://open.weixin.qq.com/sdk/report?v=" + g.version + "&o=" + g.isPreVerifyOk + "&s=" + g.systemType + "&c=" + g.clientVersion + "&a=" + g.appId + "&n=" + g.networkType + "&i=" + g.initTime + "&p=" + g.preVerifyTime + "&u=" + g.url + "&jsapi_name=" + (n2 ? n2.jsApiName : ""); |
||||
i2.src = e2; |
||||
} |
||||
})); |
||||
} |
||||
function L() { |
||||
return (/* @__PURE__ */ new Date()).getTime(); |
||||
} |
||||
function O(e2) { |
||||
d && (r.WeixinJSBridge ? e2() : n.addEventListener && n.addEventListener("WeixinJSBridgeReady", e2, false)); |
||||
} |
||||
}); |
||||
} |
||||
}); |
||||
export default require_weixin_js_sdk(); |
||||
//# sourceMappingURL=weixin-js-sdk.js.map
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,18 @@ |
||||
{ |
||||
"systemParams": "win32-x64-93", |
||||
"modulesFolders": [ |
||||
"node_modules" |
||||
], |
||||
"flags": [], |
||||
"linkedModules": [], |
||||
"topLevelPatterns": [ |
||||
"lodash@^4.17.21", |
||||
"weixin-js-sdk@^1.6.0" |
||||
], |
||||
"lockfileEntries": { |
||||
"lodash@^4.17.21": "https://open-npm.qpaas.com:443/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c", |
||||
"weixin-js-sdk@^1.6.0": "https://open-npm.qpaas.com:443/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz#01fe5220b91dbfe089fc0730d061be0e68271e6a" |
||||
}, |
||||
"files": [], |
||||
"artifacts": {} |
||||
} |
@ -0,0 +1,47 @@ |
||||
Copyright OpenJS Foundation and other contributors <https://openjsf.org/> |
||||
|
||||
Based on Underscore.js, copyright Jeremy Ashkenas, |
||||
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/> |
||||
|
||||
This software consists of voluntary contributions made by many |
||||
individuals. For exact contribution history, see the revision history |
||||
available at https://github.com/lodash/lodash |
||||
|
||||
The following license applies to all parts of this software except as |
||||
documented below: |
||||
|
||||
==== |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining |
||||
a copy of this software and associated documentation files (the |
||||
"Software"), to deal in the Software without restriction, including |
||||
without limitation the rights to use, copy, modify, merge, publish, |
||||
distribute, sublicense, and/or sell copies of the Software, and to |
||||
permit persons to whom the Software is furnished to do so, subject to |
||||
the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be |
||||
included in all copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
||||
|
||||
==== |
||||
|
||||
Copyright and related rights for sample code are waived via CC0. Sample |
||||
code is defined as all source code displayed within the prose of the |
||||
documentation. |
||||
|
||||
CC0: http://creativecommons.org/publicdomain/zero/1.0/ |
||||
|
||||
==== |
||||
|
||||
Files located in the node_modules and vendor directories are externally |
||||
maintained libraries used by this software which have their own |
||||
licenses; we recommend you read them, as their terms may differ from the |
||||
terms above. |
@ -0,0 +1,39 @@ |
||||
# lodash v4.17.21 |
||||
|
||||
The [Lodash](https://lodash.com/) library exported as [Node.js](https://nodejs.org/) modules. |
||||
|
||||
## Installation |
||||
|
||||
Using npm: |
||||
```shell |
||||
$ npm i -g npm |
||||
$ npm i --save lodash |
||||
``` |
||||
|
||||
In Node.js: |
||||
```js |
||||
// Load the full build. |
||||
var _ = require('lodash'); |
||||
// Load the core build. |
||||
var _ = require('lodash/core'); |
||||
// Load the FP build for immutable auto-curried iteratee-first data-last methods. |
||||
var fp = require('lodash/fp'); |
||||
|
||||
// Load method categories. |
||||
var array = require('lodash/array'); |
||||
var object = require('lodash/fp/object'); |
||||
|
||||
// Cherry-pick methods for smaller browserify/rollup/webpack bundles. |
||||
var at = require('lodash/at'); |
||||
var curryN = require('lodash/fp/curryN'); |
||||
``` |
||||
|
||||
See the [package source](https://github.com/lodash/lodash/tree/4.17.21-npm) for more details. |
||||
|
||||
**Note:**<br> |
||||
Install [n_](https://www.npmjs.com/package/n_) for Lodash use in the Node.js < 6 REPL. |
||||
|
||||
## Support |
||||
|
||||
Tested in Chrome 74-75, Firefox 66-67, IE 11, Edge 18, Safari 11-12, & Node.js 8-12.<br> |
||||
Automated [browser](https://saucelabs.com/u/lodash) & [CI](https://travis-ci.org/lodash/lodash/) test runs are available. |
@ -0,0 +1,7 @@ |
||||
var getNative = require('./_getNative'), |
||||
root = require('./_root'); |
||||
|
||||
/* Built-in method references that are verified to be native. */ |
||||
var DataView = getNative(root, 'DataView'); |
||||
|
||||
module.exports = DataView; |
@ -0,0 +1,32 @@ |
||||
var hashClear = require('./_hashClear'), |
||||
hashDelete = require('./_hashDelete'), |
||||
hashGet = require('./_hashGet'), |
||||
hashHas = require('./_hashHas'), |
||||
hashSet = require('./_hashSet'); |
||||
|
||||
/** |
||||
* Creates a hash object. |
||||
* |
||||
* @private |
||||
* @constructor |
||||
* @param {Array} [entries] The key-value pairs to cache. |
||||
*/ |
||||
function Hash(entries) { |
||||
var index = -1, |
||||
length = entries == null ? 0 : entries.length; |
||||
|
||||
this.clear(); |
||||
while (++index < length) { |
||||
var entry = entries[index]; |
||||
this.set(entry[0], entry[1]); |
||||
} |
||||
} |
||||
|
||||
// Add methods to `Hash`.
|
||||
Hash.prototype.clear = hashClear; |
||||
Hash.prototype['delete'] = hashDelete; |
||||
Hash.prototype.get = hashGet; |
||||
Hash.prototype.has = hashHas; |
||||
Hash.prototype.set = hashSet; |
||||
|
||||
module.exports = Hash; |
@ -0,0 +1,28 @@ |
||||
var baseCreate = require('./_baseCreate'), |
||||
baseLodash = require('./_baseLodash'); |
||||
|
||||
/** Used as references for the maximum length and index of an array. */ |
||||
var MAX_ARRAY_LENGTH = 4294967295; |
||||
|
||||
/** |
||||
* Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. |
||||
* |
||||
* @private |
||||
* @constructor |
||||
* @param {*} value The value to wrap. |
||||
*/ |
||||
function LazyWrapper(value) { |
||||
this.__wrapped__ = value; |
||||
this.__actions__ = []; |
||||
this.__dir__ = 1; |
||||
this.__filtered__ = false; |
||||
this.__iteratees__ = []; |
||||
this.__takeCount__ = MAX_ARRAY_LENGTH; |
||||
this.__views__ = []; |
||||
} |
||||
|
||||
// Ensure `LazyWrapper` is an instance of `baseLodash`.
|
||||
LazyWrapper.prototype = baseCreate(baseLodash.prototype); |
||||
LazyWrapper.prototype.constructor = LazyWrapper; |
||||
|
||||
module.exports = LazyWrapper; |
@ -0,0 +1,32 @@ |
||||
var listCacheClear = require('./_listCacheClear'), |
||||
listCacheDelete = require('./_listCacheDelete'), |
||||
listCacheGet = require('./_listCacheGet'), |
||||
listCacheHas = require('./_listCacheHas'), |
||||
listCacheSet = require('./_listCacheSet'); |
||||
|
||||
/** |
||||
* Creates an list cache object. |
||||
* |
||||
* @private |
||||
* @constructor |
||||
* @param {Array} [entries] The key-value pairs to cache. |
||||
*/ |
||||
function ListCache(entries) { |
||||
var index = -1, |
||||
length = entries == null ? 0 : entries.length; |
||||
|
||||
this.clear(); |
||||
while (++index < length) { |
||||
var entry = entries[index]; |
||||
this.set(entry[0], entry[1]); |
||||
} |
||||
} |
||||
|
||||
// Add methods to `ListCache`.
|
||||
ListCache.prototype.clear = listCacheClear; |
||||
ListCache.prototype['delete'] = listCacheDelete; |
||||
ListCache.prototype.get = listCacheGet; |
||||
ListCache.prototype.has = listCacheHas; |
||||
ListCache.prototype.set = listCacheSet; |
||||
|
||||
module.exports = ListCache; |
@ -0,0 +1,22 @@ |
||||
var baseCreate = require('./_baseCreate'), |
||||
baseLodash = require('./_baseLodash'); |
||||
|
||||
/** |
||||
* The base constructor for creating `lodash` wrapper objects. |
||||
* |
||||
* @private |
||||
* @param {*} value The value to wrap. |
||||
* @param {boolean} [chainAll] Enable explicit method chain sequences. |
||||
*/ |
||||
function LodashWrapper(value, chainAll) { |
||||
this.__wrapped__ = value; |
||||
this.__actions__ = []; |
||||
this.__chain__ = !!chainAll; |
||||
this.__index__ = 0; |
||||
this.__values__ = undefined; |
||||
} |
||||
|
||||
LodashWrapper.prototype = baseCreate(baseLodash.prototype); |
||||
LodashWrapper.prototype.constructor = LodashWrapper; |
||||
|
||||
module.exports = LodashWrapper; |
@ -0,0 +1,7 @@ |
||||
var getNative = require('./_getNative'), |
||||
root = require('./_root'); |
||||
|
||||
/* Built-in method references that are verified to be native. */ |
||||
var Map = getNative(root, 'Map'); |
||||
|
||||
module.exports = Map; |
@ -0,0 +1,32 @@ |
||||
var mapCacheClear = require('./_mapCacheClear'), |
||||
mapCacheDelete = require('./_mapCacheDelete'), |
||||
mapCacheGet = require('./_mapCacheGet'), |
||||
mapCacheHas = require('./_mapCacheHas'), |
||||
mapCacheSet = require('./_mapCacheSet'); |
||||
|
||||
/** |
||||
* Creates a map cache object to store key-value pairs. |
||||
* |
||||
* @private |
||||
* @constructor |
||||
* @param {Array} [entries] The key-value pairs to cache. |
||||
*/ |
||||
function MapCache(entries) { |
||||
var index = -1, |
||||
length = entries == null ? 0 : entries.length; |
||||
|
||||
this.clear(); |
||||
while (++index < length) { |
||||
var entry = entries[index]; |
||||
this.set(entry[0], entry[1]); |
||||
} |
||||
} |
||||
|
||||
// Add methods to `MapCache`.
|
||||
MapCache.prototype.clear = mapCacheClear; |
||||
MapCache.prototype['delete'] = mapCacheDelete; |
||||
MapCache.prototype.get = mapCacheGet; |
||||
MapCache.prototype.has = mapCacheHas; |
||||
MapCache.prototype.set = mapCacheSet; |
||||
|
||||
module.exports = MapCache; |
@ -0,0 +1,7 @@ |
||||
var getNative = require('./_getNative'), |
||||
root = require('./_root'); |
||||
|
||||
/* Built-in method references that are verified to be native. */ |
||||
var Promise = getNative(root, 'Promise'); |
||||
|
||||
module.exports = Promise; |
@ -0,0 +1,7 @@ |
||||
var getNative = require('./_getNative'), |
||||
root = require('./_root'); |
||||
|
||||
/* Built-in method references that are verified to be native. */ |
||||
var Set = getNative(root, 'Set'); |
||||
|
||||
module.exports = Set; |
@ -0,0 +1,27 @@ |
||||
var MapCache = require('./_MapCache'), |
||||
setCacheAdd = require('./_setCacheAdd'), |
||||
setCacheHas = require('./_setCacheHas'); |
||||
|
||||
/** |
||||
* |
||||
* Creates an array cache object to store unique values. |
||||
* |
||||
* @private |
||||
* @constructor |
||||
* @param {Array} [values] The values to cache. |
||||
*/ |
||||
function SetCache(values) { |
||||
var index = -1, |
||||
length = values == null ? 0 : values.length; |
||||
|
||||
this.__data__ = new MapCache; |
||||
while (++index < length) { |
||||
this.add(values[index]); |
||||
} |
||||
} |
||||
|
||||
// Add methods to `SetCache`.
|
||||
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; |
||||
SetCache.prototype.has = setCacheHas; |
||||
|
||||
module.exports = SetCache; |
@ -0,0 +1,27 @@ |
||||
var ListCache = require('./_ListCache'), |
||||
stackClear = require('./_stackClear'), |
||||
stackDelete = require('./_stackDelete'), |
||||
stackGet = require('./_stackGet'), |
||||
stackHas = require('./_stackHas'), |
||||
stackSet = require('./_stackSet'); |
||||
|
||||
/** |
||||
* Creates a stack cache object to store key-value pairs. |
||||
* |
||||
* @private |
||||
* @constructor |
||||
* @param {Array} [entries] The key-value pairs to cache. |
||||
*/ |
||||
function Stack(entries) { |
||||
var data = this.__data__ = new ListCache(entries); |
||||
this.size = data.size; |
||||
} |
||||
|
||||
// Add methods to `Stack`.
|
||||
Stack.prototype.clear = stackClear; |
||||
Stack.prototype['delete'] = stackDelete; |
||||
Stack.prototype.get = stackGet; |
||||
Stack.prototype.has = stackHas; |
||||
Stack.prototype.set = stackSet; |
||||
|
||||
module.exports = Stack; |
@ -0,0 +1,6 @@ |
||||
var root = require('./_root'); |
||||
|
||||
/** Built-in value references. */ |
||||
var Symbol = root.Symbol; |
||||
|
||||
module.exports = Symbol; |
@ -0,0 +1,6 @@ |
||||
var root = require('./_root'); |
||||
|
||||
/** Built-in value references. */ |
||||
var Uint8Array = root.Uint8Array; |
||||
|
||||
module.exports = Uint8Array; |
@ -0,0 +1,7 @@ |
||||
var getNative = require('./_getNative'), |
||||
root = require('./_root'); |
||||
|
||||
/* Built-in method references that are verified to be native. */ |
||||
var WeakMap = getNative(root, 'WeakMap'); |
||||
|
||||
module.exports = WeakMap; |
@ -0,0 +1,21 @@ |
||||
/** |
||||
* A faster alternative to `Function#apply`, this function invokes `func` |
||||
* with the `this` binding of `thisArg` and the arguments of `args`. |
||||
* |
||||
* @private |
||||
* @param {Function} func The function to invoke. |
||||
* @param {*} thisArg The `this` binding of `func`. |
||||
* @param {Array} args The arguments to invoke `func` with. |
||||
* @returns {*} Returns the result of `func`. |
||||
*/ |
||||
function apply(func, thisArg, args) { |
||||
switch (args.length) { |
||||
case 0: return func.call(thisArg); |
||||
case 1: return func.call(thisArg, args[0]); |
||||
case 2: return func.call(thisArg, args[0], args[1]); |
||||
case 3: return func.call(thisArg, args[0], args[1], args[2]); |
||||
} |
||||
return func.apply(thisArg, args); |
||||
} |
||||
|
||||
module.exports = apply; |
@ -0,0 +1,22 @@ |
||||
/** |
||||
* A specialized version of `baseAggregator` for arrays. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to iterate over. |
||||
* @param {Function} setter The function to set `accumulator` values. |
||||
* @param {Function} iteratee The iteratee to transform keys. |
||||
* @param {Object} accumulator The initial aggregated object. |
||||
* @returns {Function} Returns `accumulator`. |
||||
*/ |
||||
function arrayAggregator(array, setter, iteratee, accumulator) { |
||||
var index = -1, |
||||
length = array == null ? 0 : array.length; |
||||
|
||||
while (++index < length) { |
||||
var value = array[index]; |
||||
setter(accumulator, value, iteratee(value), array); |
||||
} |
||||
return accumulator; |
||||
} |
||||
|
||||
module.exports = arrayAggregator; |
@ -0,0 +1,22 @@ |
||||
/** |
||||
* A specialized version of `_.forEach` for arrays without support for |
||||
* iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @returns {Array} Returns `array`. |
||||
*/ |
||||
function arrayEach(array, iteratee) { |
||||
var index = -1, |
||||
length = array == null ? 0 : array.length; |
||||
|
||||
while (++index < length) { |
||||
if (iteratee(array[index], index, array) === false) { |
||||
break; |
||||
} |
||||
} |
||||
return array; |
||||
} |
||||
|
||||
module.exports = arrayEach; |
@ -0,0 +1,21 @@ |
||||
/** |
||||
* A specialized version of `_.forEachRight` for arrays without support for |
||||
* iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @returns {Array} Returns `array`. |
||||
*/ |
||||
function arrayEachRight(array, iteratee) { |
||||
var length = array == null ? 0 : array.length; |
||||
|
||||
while (length--) { |
||||
if (iteratee(array[length], length, array) === false) { |
||||
break; |
||||
} |
||||
} |
||||
return array; |
||||
} |
||||
|
||||
module.exports = arrayEachRight; |
@ -0,0 +1,23 @@ |
||||
/** |
||||
* A specialized version of `_.every` for arrays without support for |
||||
* iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to iterate over. |
||||
* @param {Function} predicate The function invoked per iteration. |
||||
* @returns {boolean} Returns `true` if all elements pass the predicate check, |
||||
* else `false`. |
||||
*/ |
||||
function arrayEvery(array, predicate) { |
||||
var index = -1, |
||||
length = array == null ? 0 : array.length; |
||||
|
||||
while (++index < length) { |
||||
if (!predicate(array[index], index, array)) { |
||||
return false; |
||||
} |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
module.exports = arrayEvery; |
@ -0,0 +1,25 @@ |
||||
/** |
||||
* A specialized version of `_.filter` for arrays without support for |
||||
* iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to iterate over. |
||||
* @param {Function} predicate The function invoked per iteration. |
||||
* @returns {Array} Returns the new filtered array. |
||||
*/ |
||||
function arrayFilter(array, predicate) { |
||||
var index = -1, |
||||
length = array == null ? 0 : array.length, |
||||
resIndex = 0, |
||||
result = []; |
||||
|
||||
while (++index < length) { |
||||
var value = array[index]; |
||||
if (predicate(value, index, array)) { |
||||
result[resIndex++] = value; |
||||
} |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
module.exports = arrayFilter; |
@ -0,0 +1,17 @@ |
||||
var baseIndexOf = require('./_baseIndexOf'); |
||||
|
||||
/** |
||||
* A specialized version of `_.includes` for arrays without support for |
||||
* specifying an index to search from. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to inspect. |
||||
* @param {*} target The value to search for. |
||||
* @returns {boolean} Returns `true` if `target` is found, else `false`. |
||||
*/ |
||||
function arrayIncludes(array, value) { |
||||
var length = array == null ? 0 : array.length; |
||||
return !!length && baseIndexOf(array, value, 0) > -1; |
||||
} |
||||
|
||||
module.exports = arrayIncludes; |
@ -0,0 +1,22 @@ |
||||
/** |
||||
* This function is like `arrayIncludes` except that it accepts a comparator. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to inspect. |
||||
* @param {*} target The value to search for. |
||||
* @param {Function} comparator The comparator invoked per element. |
||||
* @returns {boolean} Returns `true` if `target` is found, else `false`. |
||||
*/ |
||||
function arrayIncludesWith(array, value, comparator) { |
||||
var index = -1, |
||||
length = array == null ? 0 : array.length; |
||||
|
||||
while (++index < length) { |
||||
if (comparator(value, array[index])) { |
||||
return true; |
||||
} |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
module.exports = arrayIncludesWith; |
@ -0,0 +1,49 @@ |
||||
var baseTimes = require('./_baseTimes'), |
||||
isArguments = require('./isArguments'), |
||||
isArray = require('./isArray'), |
||||
isBuffer = require('./isBuffer'), |
||||
isIndex = require('./_isIndex'), |
||||
isTypedArray = require('./isTypedArray'); |
||||
|
||||
/** Used for built-in method references. */ |
||||
var objectProto = Object.prototype; |
||||
|
||||
/** Used to check objects for own properties. */ |
||||
var hasOwnProperty = objectProto.hasOwnProperty; |
||||
|
||||
/** |
||||
* Creates an array of the enumerable property names of the array-like `value`. |
||||
* |
||||
* @private |
||||
* @param {*} value The value to query. |
||||
* @param {boolean} inherited Specify returning inherited property names. |
||||
* @returns {Array} Returns the array of property names. |
||||
*/ |
||||
function arrayLikeKeys(value, inherited) { |
||||
var isArr = isArray(value), |
||||
isArg = !isArr && isArguments(value), |
||||
isBuff = !isArr && !isArg && isBuffer(value), |
||||
isType = !isArr && !isArg && !isBuff && isTypedArray(value), |
||||
skipIndexes = isArr || isArg || isBuff || isType, |
||||
result = skipIndexes ? baseTimes(value.length, String) : [], |
||||
length = result.length; |
||||
|
||||
for (var key in value) { |
||||
if ((inherited || hasOwnProperty.call(value, key)) && |
||||
!(skipIndexes && ( |
||||
// Safari 9 has enumerable `arguments.length` in strict mode.
|
||||
key == 'length' || |
||||
// Node.js 0.10 has enumerable non-index properties on buffers.
|
||||
(isBuff && (key == 'offset' || key == 'parent')) || |
||||
// PhantomJS 2 has enumerable non-index properties on typed arrays.
|
||||
(isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || |
||||
// Skip index properties.
|
||||
isIndex(key, length) |
||||
))) { |
||||
result.push(key); |
||||
} |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
module.exports = arrayLikeKeys; |
@ -0,0 +1,21 @@ |
||||
/** |
||||
* A specialized version of `_.map` for arrays without support for iteratee |
||||
* shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @returns {Array} Returns the new mapped array. |
||||
*/ |
||||
function arrayMap(array, iteratee) { |
||||
var index = -1, |
||||
length = array == null ? 0 : array.length, |
||||
result = Array(length); |
||||
|
||||
while (++index < length) { |
||||
result[index] = iteratee(array[index], index, array); |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
module.exports = arrayMap; |
@ -0,0 +1,20 @@ |
||||
/** |
||||
* Appends the elements of `values` to `array`. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to modify. |
||||
* @param {Array} values The values to append. |
||||
* @returns {Array} Returns `array`. |
||||
*/ |
||||
function arrayPush(array, values) { |
||||
var index = -1, |
||||
length = values.length, |
||||
offset = array.length; |
||||
|
||||
while (++index < length) { |
||||
array[offset + index] = values[index]; |
||||
} |
||||
return array; |
||||
} |
||||
|
||||
module.exports = arrayPush; |
@ -0,0 +1,26 @@ |
||||
/** |
||||
* A specialized version of `_.reduce` for arrays without support for |
||||
* iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @param {*} [accumulator] The initial value. |
||||
* @param {boolean} [initAccum] Specify using the first element of `array` as |
||||
* the initial value. |
||||
* @returns {*} Returns the accumulated value. |
||||
*/ |
||||
function arrayReduce(array, iteratee, accumulator, initAccum) { |
||||
var index = -1, |
||||
length = array == null ? 0 : array.length; |
||||
|
||||
if (initAccum && length) { |
||||
accumulator = array[++index]; |
||||
} |
||||
while (++index < length) { |
||||
accumulator = iteratee(accumulator, array[index], index, array); |
||||
} |
||||
return accumulator; |
||||
} |
||||
|
||||
module.exports = arrayReduce; |
@ -0,0 +1,24 @@ |
||||
/** |
||||
* A specialized version of `_.reduceRight` for arrays without support for |
||||
* iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @param {*} [accumulator] The initial value. |
||||
* @param {boolean} [initAccum] Specify using the last element of `array` as |
||||
* the initial value. |
||||
* @returns {*} Returns the accumulated value. |
||||
*/ |
||||
function arrayReduceRight(array, iteratee, accumulator, initAccum) { |
||||
var length = array == null ? 0 : array.length; |
||||
if (initAccum && length) { |
||||
accumulator = array[--length]; |
||||
} |
||||
while (length--) { |
||||
accumulator = iteratee(accumulator, array[length], length, array); |
||||
} |
||||
return accumulator; |
||||
} |
||||
|
||||
module.exports = arrayReduceRight; |
@ -0,0 +1,15 @@ |
||||
var baseRandom = require('./_baseRandom'); |
||||
|
||||
/** |
||||
* A specialized version of `_.sample` for arrays. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to sample. |
||||
* @returns {*} Returns the random element. |
||||
*/ |
||||
function arraySample(array) { |
||||
var length = array.length; |
||||
return length ? array[baseRandom(0, length - 1)] : undefined; |
||||
} |
||||
|
||||
module.exports = arraySample; |
@ -0,0 +1,17 @@ |
||||
var baseClamp = require('./_baseClamp'), |
||||
copyArray = require('./_copyArray'), |
||||
shuffleSelf = require('./_shuffleSelf'); |
||||
|
||||
/** |
||||
* A specialized version of `_.sampleSize` for arrays. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to sample. |
||||
* @param {number} n The number of elements to sample. |
||||
* @returns {Array} Returns the random elements. |
||||
*/ |
||||
function arraySampleSize(array, n) { |
||||
return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); |
||||
} |
||||
|
||||
module.exports = arraySampleSize; |
@ -0,0 +1,15 @@ |
||||
var copyArray = require('./_copyArray'), |
||||
shuffleSelf = require('./_shuffleSelf'); |
||||
|
||||
/** |
||||
* A specialized version of `_.shuffle` for arrays. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to shuffle. |
||||
* @returns {Array} Returns the new shuffled array. |
||||
*/ |
||||
function arrayShuffle(array) { |
||||
return shuffleSelf(copyArray(array)); |
||||
} |
||||
|
||||
module.exports = arrayShuffle; |
@ -0,0 +1,23 @@ |
||||
/** |
||||
* A specialized version of `_.some` for arrays without support for iteratee |
||||
* shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} [array] The array to iterate over. |
||||
* @param {Function} predicate The function invoked per iteration. |
||||
* @returns {boolean} Returns `true` if any element passes the predicate check, |
||||
* else `false`. |
||||
*/ |
||||
function arraySome(array, predicate) { |
||||
var index = -1, |
||||
length = array == null ? 0 : array.length; |
||||
|
||||
while (++index < length) { |
||||
if (predicate(array[index], index, array)) { |
||||
return true; |
||||
} |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
module.exports = arraySome; |
@ -0,0 +1,12 @@ |
||||
var baseProperty = require('./_baseProperty'); |
||||
|
||||
/** |
||||
* Gets the size of an ASCII `string`. |
||||
* |
||||
* @private |
||||
* @param {string} string The string inspect. |
||||
* @returns {number} Returns the string size. |
||||
*/ |
||||
var asciiSize = baseProperty('length'); |
||||
|
||||
module.exports = asciiSize; |
@ -0,0 +1,12 @@ |
||||
/** |
||||
* Converts an ASCII `string` to an array. |
||||
* |
||||
* @private |
||||
* @param {string} string The string to convert. |
||||
* @returns {Array} Returns the converted array. |
||||
*/ |
||||
function asciiToArray(string) { |
||||
return string.split(''); |
||||
} |
||||
|
||||
module.exports = asciiToArray; |
@ -0,0 +1,15 @@ |
||||
/** Used to match words composed of alphanumeric characters. */ |
||||
var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; |
||||
|
||||
/** |
||||
* Splits an ASCII `string` into an array of its words. |
||||
* |
||||
* @private |
||||
* @param {string} The string to inspect. |
||||
* @returns {Array} Returns the words of `string`. |
||||
*/ |
||||
function asciiWords(string) { |
||||
return string.match(reAsciiWord) || []; |
||||
} |
||||
|
||||
module.exports = asciiWords; |
@ -0,0 +1,20 @@ |
||||
var baseAssignValue = require('./_baseAssignValue'), |
||||
eq = require('./eq'); |
||||
|
||||
/** |
||||
* This function is like `assignValue` except that it doesn't assign |
||||
* `undefined` values. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to modify. |
||||
* @param {string} key The key of the property to assign. |
||||
* @param {*} value The value to assign. |
||||
*/ |
||||
function assignMergeValue(object, key, value) { |
||||
if ((value !== undefined && !eq(object[key], value)) || |
||||
(value === undefined && !(key in object))) { |
||||
baseAssignValue(object, key, value); |
||||
} |
||||
} |
||||
|
||||
module.exports = assignMergeValue; |
@ -0,0 +1,28 @@ |
||||
var baseAssignValue = require('./_baseAssignValue'), |
||||
eq = require('./eq'); |
||||
|
||||
/** Used for built-in method references. */ |
||||
var objectProto = Object.prototype; |
||||
|
||||
/** Used to check objects for own properties. */ |
||||
var hasOwnProperty = objectProto.hasOwnProperty; |
||||
|
||||
/** |
||||
* Assigns `value` to `key` of `object` if the existing value is not equivalent |
||||
* using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
||||
* for equality comparisons. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to modify. |
||||
* @param {string} key The key of the property to assign. |
||||
* @param {*} value The value to assign. |
||||
*/ |
||||
function assignValue(object, key, value) { |
||||
var objValue = object[key]; |
||||
if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || |
||||
(value === undefined && !(key in object))) { |
||||
baseAssignValue(object, key, value); |
||||
} |
||||
} |
||||
|
||||
module.exports = assignValue; |
@ -0,0 +1,21 @@ |
||||
var eq = require('./eq'); |
||||
|
||||
/** |
||||
* Gets the index at which the `key` is found in `array` of key-value pairs. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to inspect. |
||||
* @param {*} key The key to search for. |
||||
* @returns {number} Returns the index of the matched value, else `-1`. |
||||
*/ |
||||
function assocIndexOf(array, key) { |
||||
var length = array.length; |
||||
while (length--) { |
||||
if (eq(array[length][0], key)) { |
||||
return length; |
||||
} |
||||
} |
||||
return -1; |
||||
} |
||||
|
||||
module.exports = assocIndexOf; |
@ -0,0 +1,21 @@ |
||||
var baseEach = require('./_baseEach'); |
||||
|
||||
/** |
||||
* Aggregates elements of `collection` on `accumulator` with keys transformed |
||||
* by `iteratee` and values set by `setter`. |
||||
* |
||||
* @private |
||||
* @param {Array|Object} collection The collection to iterate over. |
||||
* @param {Function} setter The function to set `accumulator` values. |
||||
* @param {Function} iteratee The iteratee to transform keys. |
||||
* @param {Object} accumulator The initial aggregated object. |
||||
* @returns {Function} Returns `accumulator`. |
||||
*/ |
||||
function baseAggregator(collection, setter, iteratee, accumulator) { |
||||
baseEach(collection, function(value, key, collection) { |
||||
setter(accumulator, value, iteratee(value), collection); |
||||
}); |
||||
return accumulator; |
||||
} |
||||
|
||||
module.exports = baseAggregator; |
@ -0,0 +1,17 @@ |
||||
var copyObject = require('./_copyObject'), |
||||
keys = require('./keys'); |
||||
|
||||
/** |
||||
* The base implementation of `_.assign` without support for multiple sources |
||||
* or `customizer` functions. |
||||
* |
||||
* @private |
||||
* @param {Object} object The destination object. |
||||
* @param {Object} source The source object. |
||||
* @returns {Object} Returns `object`. |
||||
*/ |
||||
function baseAssign(object, source) { |
||||
return object && copyObject(source, keys(source), object); |
||||
} |
||||
|
||||
module.exports = baseAssign; |
@ -0,0 +1,17 @@ |
||||
var copyObject = require('./_copyObject'), |
||||
keysIn = require('./keysIn'); |
||||
|
||||
/** |
||||
* The base implementation of `_.assignIn` without support for multiple sources |
||||
* or `customizer` functions. |
||||
* |
||||
* @private |
||||
* @param {Object} object The destination object. |
||||
* @param {Object} source The source object. |
||||
* @returns {Object} Returns `object`. |
||||
*/ |
||||
function baseAssignIn(object, source) { |
||||
return object && copyObject(source, keysIn(source), object); |
||||
} |
||||
|
||||
module.exports = baseAssignIn; |
@ -0,0 +1,25 @@ |
||||
var defineProperty = require('./_defineProperty'); |
||||
|
||||
/** |
||||
* The base implementation of `assignValue` and `assignMergeValue` without |
||||
* value checks. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to modify. |
||||
* @param {string} key The key of the property to assign. |
||||
* @param {*} value The value to assign. |
||||
*/ |
||||
function baseAssignValue(object, key, value) { |
||||
if (key == '__proto__' && defineProperty) { |
||||
defineProperty(object, key, { |
||||
'configurable': true, |
||||
'enumerable': true, |
||||
'value': value, |
||||
'writable': true |
||||
}); |
||||
} else { |
||||
object[key] = value; |
||||
} |
||||
} |
||||
|
||||
module.exports = baseAssignValue; |
@ -0,0 +1,23 @@ |
||||
var get = require('./get'); |
||||
|
||||
/** |
||||
* The base implementation of `_.at` without support for individual paths. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to iterate over. |
||||
* @param {string[]} paths The property paths to pick. |
||||
* @returns {Array} Returns the picked elements. |
||||
*/ |
||||
function baseAt(object, paths) { |
||||
var index = -1, |
||||
length = paths.length, |
||||
result = Array(length), |
||||
skip = object == null; |
||||
|
||||
while (++index < length) { |
||||
result[index] = skip ? undefined : get(object, paths[index]); |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
module.exports = baseAt; |
@ -0,0 +1,22 @@ |
||||
/** |
||||
* The base implementation of `_.clamp` which doesn't coerce arguments. |
||||
* |
||||
* @private |
||||
* @param {number} number The number to clamp. |
||||
* @param {number} [lower] The lower bound. |
||||
* @param {number} upper The upper bound. |
||||
* @returns {number} Returns the clamped number. |
||||
*/ |
||||
function baseClamp(number, lower, upper) { |
||||
if (number === number) { |
||||
if (upper !== undefined) { |
||||
number = number <= upper ? number : upper; |
||||
} |
||||
if (lower !== undefined) { |
||||
number = number >= lower ? number : lower; |
||||
} |
||||
} |
||||
return number; |
||||
} |
||||
|
||||
module.exports = baseClamp; |
@ -0,0 +1,166 @@ |
||||
var Stack = require('./_Stack'), |
||||
arrayEach = require('./_arrayEach'), |
||||
assignValue = require('./_assignValue'), |
||||
baseAssign = require('./_baseAssign'), |
||||
baseAssignIn = require('./_baseAssignIn'), |
||||
cloneBuffer = require('./_cloneBuffer'), |
||||
copyArray = require('./_copyArray'), |
||||
copySymbols = require('./_copySymbols'), |
||||
copySymbolsIn = require('./_copySymbolsIn'), |
||||
getAllKeys = require('./_getAllKeys'), |
||||
getAllKeysIn = require('./_getAllKeysIn'), |
||||
getTag = require('./_getTag'), |
||||
initCloneArray = require('./_initCloneArray'), |
||||
initCloneByTag = require('./_initCloneByTag'), |
||||
initCloneObject = require('./_initCloneObject'), |
||||
isArray = require('./isArray'), |
||||
isBuffer = require('./isBuffer'), |
||||
isMap = require('./isMap'), |
||||
isObject = require('./isObject'), |
||||
isSet = require('./isSet'), |
||||
keys = require('./keys'), |
||||
keysIn = require('./keysIn'); |
||||
|
||||
/** Used to compose bitmasks for cloning. */ |
||||
var CLONE_DEEP_FLAG = 1, |
||||
CLONE_FLAT_FLAG = 2, |
||||
CLONE_SYMBOLS_FLAG = 4; |
||||
|
||||
/** `Object#toString` result references. */ |
||||
var argsTag = '[object Arguments]', |
||||
arrayTag = '[object Array]', |
||||
boolTag = '[object Boolean]', |
||||
dateTag = '[object Date]', |
||||
errorTag = '[object Error]', |
||||
funcTag = '[object Function]', |
||||
genTag = '[object GeneratorFunction]', |
||||
mapTag = '[object Map]', |
||||
numberTag = '[object Number]', |
||||
objectTag = '[object Object]', |
||||
regexpTag = '[object RegExp]', |
||||
setTag = '[object Set]', |
||||
stringTag = '[object String]', |
||||
symbolTag = '[object Symbol]', |
||||
weakMapTag = '[object WeakMap]'; |
||||
|
||||
var arrayBufferTag = '[object ArrayBuffer]', |
||||
dataViewTag = '[object DataView]', |
||||
float32Tag = '[object Float32Array]', |
||||
float64Tag = '[object Float64Array]', |
||||
int8Tag = '[object Int8Array]', |
||||
int16Tag = '[object Int16Array]', |
||||
int32Tag = '[object Int32Array]', |
||||
uint8Tag = '[object Uint8Array]', |
||||
uint8ClampedTag = '[object Uint8ClampedArray]', |
||||
uint16Tag = '[object Uint16Array]', |
||||
uint32Tag = '[object Uint32Array]'; |
||||
|
||||
/** Used to identify `toStringTag` values supported by `_.clone`. */ |
||||
var cloneableTags = {}; |
||||
cloneableTags[argsTag] = cloneableTags[arrayTag] = |
||||
cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = |
||||
cloneableTags[boolTag] = cloneableTags[dateTag] = |
||||
cloneableTags[float32Tag] = cloneableTags[float64Tag] = |
||||
cloneableTags[int8Tag] = cloneableTags[int16Tag] = |
||||
cloneableTags[int32Tag] = cloneableTags[mapTag] = |
||||
cloneableTags[numberTag] = cloneableTags[objectTag] = |
||||
cloneableTags[regexpTag] = cloneableTags[setTag] = |
||||
cloneableTags[stringTag] = cloneableTags[symbolTag] = |
||||
cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = |
||||
cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; |
||||
cloneableTags[errorTag] = cloneableTags[funcTag] = |
||||
cloneableTags[weakMapTag] = false; |
||||
|
||||
/** |
||||
* The base implementation of `_.clone` and `_.cloneDeep` which tracks |
||||
* traversed objects. |
||||
* |
||||
* @private |
||||
* @param {*} value The value to clone. |
||||
* @param {boolean} bitmask The bitmask flags. |
||||
* 1 - Deep clone |
||||
* 2 - Flatten inherited properties |
||||
* 4 - Clone symbols |
||||
* @param {Function} [customizer] The function to customize cloning. |
||||
* @param {string} [key] The key of `value`. |
||||
* @param {Object} [object] The parent object of `value`. |
||||
* @param {Object} [stack] Tracks traversed objects and their clone counterparts. |
||||
* @returns {*} Returns the cloned value. |
||||
*/ |
||||
function baseClone(value, bitmask, customizer, key, object, stack) { |
||||
var result, |
||||
isDeep = bitmask & CLONE_DEEP_FLAG, |
||||
isFlat = bitmask & CLONE_FLAT_FLAG, |
||||
isFull = bitmask & CLONE_SYMBOLS_FLAG; |
||||
|
||||
if (customizer) { |
||||
result = object ? customizer(value, key, object, stack) : customizer(value); |
||||
} |
||||
if (result !== undefined) { |
||||
return result; |
||||
} |
||||
if (!isObject(value)) { |
||||
return value; |
||||
} |
||||
var isArr = isArray(value); |
||||
if (isArr) { |
||||
result = initCloneArray(value); |
||||
if (!isDeep) { |
||||
return copyArray(value, result); |
||||
} |
||||
} else { |
||||
var tag = getTag(value), |
||||
isFunc = tag == funcTag || tag == genTag; |
||||
|
||||
if (isBuffer(value)) { |
||||
return cloneBuffer(value, isDeep); |
||||
} |
||||
if (tag == objectTag || tag == argsTag || (isFunc && !object)) { |
||||
result = (isFlat || isFunc) ? {} : initCloneObject(value); |
||||
if (!isDeep) { |
||||
return isFlat |
||||
? copySymbolsIn(value, baseAssignIn(result, value)) |
||||
: copySymbols(value, baseAssign(result, value)); |
||||
} |
||||
} else { |
||||
if (!cloneableTags[tag]) { |
||||
return object ? value : {}; |
||||
} |
||||
result = initCloneByTag(value, tag, isDeep); |
||||
} |
||||
} |
||||
// Check for circular references and return its corresponding clone.
|
||||
stack || (stack = new Stack); |
||||
var stacked = stack.get(value); |
||||
if (stacked) { |
||||
return stacked; |
||||
} |
||||
stack.set(value, result); |
||||
|
||||
if (isSet(value)) { |
||||
value.forEach(function(subValue) { |
||||
result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); |
||||
}); |
||||
} else if (isMap(value)) { |
||||
value.forEach(function(subValue, key) { |
||||
result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); |
||||
}); |
||||
} |
||||
|
||||
var keysFunc = isFull |
||||
? (isFlat ? getAllKeysIn : getAllKeys) |
||||
: (isFlat ? keysIn : keys); |
||||
|
||||
var props = isArr ? undefined : keysFunc(value); |
||||
arrayEach(props || value, function(subValue, key) { |
||||
if (props) { |
||||
key = subValue; |
||||
subValue = value[key]; |
||||
} |
||||
// Recursively populate clone (susceptible to call stack limits).
|
||||
assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); |
||||
}); |
||||
return result; |
||||
} |
||||
|
||||
module.exports = baseClone; |
@ -0,0 +1,18 @@ |
||||
var baseConformsTo = require('./_baseConformsTo'), |
||||
keys = require('./keys'); |
||||
|
||||
/** |
||||
* The base implementation of `_.conforms` which doesn't clone `source`. |
||||
* |
||||
* @private |
||||
* @param {Object} source The object of property predicates to conform to. |
||||
* @returns {Function} Returns the new spec function. |
||||
*/ |
||||
function baseConforms(source) { |
||||
var props = keys(source); |
||||
return function(object) { |
||||
return baseConformsTo(object, source, props); |
||||
}; |
||||
} |
||||
|
||||
module.exports = baseConforms; |
@ -0,0 +1,27 @@ |
||||
/** |
||||
* The base implementation of `_.conformsTo` which accepts `props` to check. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to inspect. |
||||
* @param {Object} source The object of property predicates to conform to. |
||||
* @returns {boolean} Returns `true` if `object` conforms, else `false`. |
||||
*/ |
||||
function baseConformsTo(object, source, props) { |
||||
var length = props.length; |
||||
if (object == null) { |
||||
return !length; |
||||
} |
||||
object = Object(object); |
||||
while (length--) { |
||||
var key = props[length], |
||||
predicate = source[key], |
||||
value = object[key]; |
||||
|
||||
if ((value === undefined && !(key in object)) || !predicate(value)) { |
||||
return false; |
||||
} |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
module.exports = baseConformsTo; |
@ -0,0 +1,30 @@ |
||||
var isObject = require('./isObject'); |
||||
|
||||
/** Built-in value references. */ |
||||
var objectCreate = Object.create; |
||||
|
||||
/** |
||||
* The base implementation of `_.create` without support for assigning |
||||
* properties to the created object. |
||||
* |
||||
* @private |
||||
* @param {Object} proto The object to inherit from. |
||||
* @returns {Object} Returns the new object. |
||||
*/ |
||||
var baseCreate = (function() { |
||||
function object() {} |
||||
return function(proto) { |
||||
if (!isObject(proto)) { |
||||
return {}; |
||||
} |
||||
if (objectCreate) { |
||||
return objectCreate(proto); |
||||
} |
||||
object.prototype = proto; |
||||
var result = new object; |
||||
object.prototype = undefined; |
||||
return result; |
||||
}; |
||||
}()); |
||||
|
||||
module.exports = baseCreate; |
@ -0,0 +1,21 @@ |
||||
/** Error message constants. */ |
||||
var FUNC_ERROR_TEXT = 'Expected a function'; |
||||
|
||||
/** |
||||
* The base implementation of `_.delay` and `_.defer` which accepts `args` |
||||
* to provide to `func`. |
||||
* |
||||
* @private |
||||
* @param {Function} func The function to delay. |
||||
* @param {number} wait The number of milliseconds to delay invocation. |
||||
* @param {Array} args The arguments to provide to `func`. |
||||
* @returns {number|Object} Returns the timer id or timeout object. |
||||
*/ |
||||
function baseDelay(func, wait, args) { |
||||
if (typeof func != 'function') { |
||||
throw new TypeError(FUNC_ERROR_TEXT); |
||||
} |
||||
return setTimeout(function() { func.apply(undefined, args); }, wait); |
||||
} |
||||
|
||||
module.exports = baseDelay; |
@ -0,0 +1,67 @@ |
||||
var SetCache = require('./_SetCache'), |
||||
arrayIncludes = require('./_arrayIncludes'), |
||||
arrayIncludesWith = require('./_arrayIncludesWith'), |
||||
arrayMap = require('./_arrayMap'), |
||||
baseUnary = require('./_baseUnary'), |
||||
cacheHas = require('./_cacheHas'); |
||||
|
||||
/** Used as the size to enable large array optimizations. */ |
||||
var LARGE_ARRAY_SIZE = 200; |
||||
|
||||
/** |
||||
* The base implementation of methods like `_.difference` without support |
||||
* for excluding multiple arrays or iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to inspect. |
||||
* @param {Array} values The values to exclude. |
||||
* @param {Function} [iteratee] The iteratee invoked per element. |
||||
* @param {Function} [comparator] The comparator invoked per element. |
||||
* @returns {Array} Returns the new array of filtered values. |
||||
*/ |
||||
function baseDifference(array, values, iteratee, comparator) { |
||||
var index = -1, |
||||
includes = arrayIncludes, |
||||
isCommon = true, |
||||
length = array.length, |
||||
result = [], |
||||
valuesLength = values.length; |
||||
|
||||
if (!length) { |
||||
return result; |
||||
} |
||||
if (iteratee) { |
||||
values = arrayMap(values, baseUnary(iteratee)); |
||||
} |
||||
if (comparator) { |
||||
includes = arrayIncludesWith; |
||||
isCommon = false; |
||||
} |
||||
else if (values.length >= LARGE_ARRAY_SIZE) { |
||||
includes = cacheHas; |
||||
isCommon = false; |
||||
values = new SetCache(values); |
||||
} |
||||
outer: |
||||
while (++index < length) { |
||||
var value = array[index], |
||||
computed = iteratee == null ? value : iteratee(value); |
||||
|
||||
value = (comparator || value !== 0) ? value : 0; |
||||
if (isCommon && computed === computed) { |
||||
var valuesIndex = valuesLength; |
||||
while (valuesIndex--) { |
||||
if (values[valuesIndex] === computed) { |
||||
continue outer; |
||||
} |
||||
} |
||||
result.push(value); |
||||
} |
||||
else if (!includes(values, computed, comparator)) { |
||||
result.push(value); |
||||
} |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
module.exports = baseDifference; |
@ -0,0 +1,14 @@ |
||||
var baseForOwn = require('./_baseForOwn'), |
||||
createBaseEach = require('./_createBaseEach'); |
||||
|
||||
/** |
||||
* The base implementation of `_.forEach` without support for iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array|Object} collection The collection to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @returns {Array|Object} Returns `collection`. |
||||
*/ |
||||
var baseEach = createBaseEach(baseForOwn); |
||||
|
||||
module.exports = baseEach; |
@ -0,0 +1,14 @@ |
||||
var baseForOwnRight = require('./_baseForOwnRight'), |
||||
createBaseEach = require('./_createBaseEach'); |
||||
|
||||
/** |
||||
* The base implementation of `_.forEachRight` without support for iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array|Object} collection The collection to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @returns {Array|Object} Returns `collection`. |
||||
*/ |
||||
var baseEachRight = createBaseEach(baseForOwnRight, true); |
||||
|
||||
module.exports = baseEachRight; |
@ -0,0 +1,21 @@ |
||||
var baseEach = require('./_baseEach'); |
||||
|
||||
/** |
||||
* The base implementation of `_.every` without support for iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array|Object} collection The collection to iterate over. |
||||
* @param {Function} predicate The function invoked per iteration. |
||||
* @returns {boolean} Returns `true` if all elements pass the predicate check, |
||||
* else `false` |
||||
*/ |
||||
function baseEvery(collection, predicate) { |
||||
var result = true; |
||||
baseEach(collection, function(value, index, collection) { |
||||
result = !!predicate(value, index, collection); |
||||
return result; |
||||
}); |
||||
return result; |
||||
} |
||||
|
||||
module.exports = baseEvery; |
@ -0,0 +1,32 @@ |
||||
var isSymbol = require('./isSymbol'); |
||||
|
||||
/** |
||||
* The base implementation of methods like `_.max` and `_.min` which accepts a |
||||
* `comparator` to determine the extremum value. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to iterate over. |
||||
* @param {Function} iteratee The iteratee invoked per iteration. |
||||
* @param {Function} comparator The comparator used to compare values. |
||||
* @returns {*} Returns the extremum value. |
||||
*/ |
||||
function baseExtremum(array, iteratee, comparator) { |
||||
var index = -1, |
||||
length = array.length; |
||||
|
||||
while (++index < length) { |
||||
var value = array[index], |
||||
current = iteratee(value); |
||||
|
||||
if (current != null && (computed === undefined |
||||
? (current === current && !isSymbol(current)) |
||||
: comparator(current, computed) |
||||
)) { |
||||
var computed = current, |
||||
result = value; |
||||
} |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
module.exports = baseExtremum; |
@ -0,0 +1,32 @@ |
||||
var toInteger = require('./toInteger'), |
||||
toLength = require('./toLength'); |
||||
|
||||
/** |
||||
* The base implementation of `_.fill` without an iteratee call guard. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to fill. |
||||
* @param {*} value The value to fill `array` with. |
||||
* @param {number} [start=0] The start position. |
||||
* @param {number} [end=array.length] The end position. |
||||
* @returns {Array} Returns `array`. |
||||
*/ |
||||
function baseFill(array, value, start, end) { |
||||
var length = array.length; |
||||
|
||||
start = toInteger(start); |
||||
if (start < 0) { |
||||
start = -start > length ? 0 : (length + start); |
||||
} |
||||
end = (end === undefined || end > length) ? length : toInteger(end); |
||||
if (end < 0) { |
||||
end += length; |
||||
} |
||||
end = start > end ? 0 : toLength(end); |
||||
while (start < end) { |
||||
array[start++] = value; |
||||
} |
||||
return array; |
||||
} |
||||
|
||||
module.exports = baseFill; |
@ -0,0 +1,21 @@ |
||||
var baseEach = require('./_baseEach'); |
||||
|
||||
/** |
||||
* The base implementation of `_.filter` without support for iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array|Object} collection The collection to iterate over. |
||||
* @param {Function} predicate The function invoked per iteration. |
||||
* @returns {Array} Returns the new filtered array. |
||||
*/ |
||||
function baseFilter(collection, predicate) { |
||||
var result = []; |
||||
baseEach(collection, function(value, index, collection) { |
||||
if (predicate(value, index, collection)) { |
||||
result.push(value); |
||||
} |
||||
}); |
||||
return result; |
||||
} |
||||
|
||||
module.exports = baseFilter; |
@ -0,0 +1,24 @@ |
||||
/** |
||||
* The base implementation of `_.findIndex` and `_.findLastIndex` without |
||||
* support for iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to inspect. |
||||
* @param {Function} predicate The function invoked per iteration. |
||||
* @param {number} fromIndex The index to search from. |
||||
* @param {boolean} [fromRight] Specify iterating from right to left. |
||||
* @returns {number} Returns the index of the matched value, else `-1`. |
||||
*/ |
||||
function baseFindIndex(array, predicate, fromIndex, fromRight) { |
||||
var length = array.length, |
||||
index = fromIndex + (fromRight ? 1 : -1); |
||||
|
||||
while ((fromRight ? index-- : ++index < length)) { |
||||
if (predicate(array[index], index, array)) { |
||||
return index; |
||||
} |
||||
} |
||||
return -1; |
||||
} |
||||
|
||||
module.exports = baseFindIndex; |
@ -0,0 +1,23 @@ |
||||
/** |
||||
* The base implementation of methods like `_.findKey` and `_.findLastKey`, |
||||
* without support for iteratee shorthands, which iterates over `collection` |
||||
* using `eachFunc`. |
||||
* |
||||
* @private |
||||
* @param {Array|Object} collection The collection to inspect. |
||||
* @param {Function} predicate The function invoked per iteration. |
||||
* @param {Function} eachFunc The function to iterate over `collection`. |
||||
* @returns {*} Returns the found element or its key, else `undefined`. |
||||
*/ |
||||
function baseFindKey(collection, predicate, eachFunc) { |
||||
var result; |
||||
eachFunc(collection, function(value, key, collection) { |
||||
if (predicate(value, key, collection)) { |
||||
result = key; |
||||
return false; |
||||
} |
||||
}); |
||||
return result; |
||||
} |
||||
|
||||
module.exports = baseFindKey; |
@ -0,0 +1,38 @@ |
||||
var arrayPush = require('./_arrayPush'), |
||||
isFlattenable = require('./_isFlattenable'); |
||||
|
||||
/** |
||||
* The base implementation of `_.flatten` with support for restricting flattening. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to flatten. |
||||
* @param {number} depth The maximum recursion depth. |
||||
* @param {boolean} [predicate=isFlattenable] The function invoked per iteration. |
||||
* @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. |
||||
* @param {Array} [result=[]] The initial result value. |
||||
* @returns {Array} Returns the new flattened array. |
||||
*/ |
||||
function baseFlatten(array, depth, predicate, isStrict, result) { |
||||
var index = -1, |
||||
length = array.length; |
||||
|
||||
predicate || (predicate = isFlattenable); |
||||
result || (result = []); |
||||
|
||||
while (++index < length) { |
||||
var value = array[index]; |
||||
if (depth > 0 && predicate(value)) { |
||||
if (depth > 1) { |
||||
// Recursively flatten arrays (susceptible to call stack limits).
|
||||
baseFlatten(value, depth - 1, predicate, isStrict, result); |
||||
} else { |
||||
arrayPush(result, value); |
||||
} |
||||
} else if (!isStrict) { |
||||
result[result.length] = value; |
||||
} |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
module.exports = baseFlatten; |
@ -0,0 +1,16 @@ |
||||
var createBaseFor = require('./_createBaseFor'); |
||||
|
||||
/** |
||||
* The base implementation of `baseForOwn` which iterates over `object` |
||||
* properties returned by `keysFunc` and invokes `iteratee` for each property. |
||||
* Iteratee functions may exit iteration early by explicitly returning `false`. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @param {Function} keysFunc The function to get the keys of `object`. |
||||
* @returns {Object} Returns `object`. |
||||
*/ |
||||
var baseFor = createBaseFor(); |
||||
|
||||
module.exports = baseFor; |
@ -0,0 +1,16 @@ |
||||
var baseFor = require('./_baseFor'), |
||||
keys = require('./keys'); |
||||
|
||||
/** |
||||
* The base implementation of `_.forOwn` without support for iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @returns {Object} Returns `object`. |
||||
*/ |
||||
function baseForOwn(object, iteratee) { |
||||
return object && baseFor(object, iteratee, keys); |
||||
} |
||||
|
||||
module.exports = baseForOwn; |
@ -0,0 +1,16 @@ |
||||
var baseForRight = require('./_baseForRight'), |
||||
keys = require('./keys'); |
||||
|
||||
/** |
||||
* The base implementation of `_.forOwnRight` without support for iteratee shorthands. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @returns {Object} Returns `object`. |
||||
*/ |
||||
function baseForOwnRight(object, iteratee) { |
||||
return object && baseForRight(object, iteratee, keys); |
||||
} |
||||
|
||||
module.exports = baseForOwnRight; |
@ -0,0 +1,15 @@ |
||||
var createBaseFor = require('./_createBaseFor'); |
||||
|
||||
/** |
||||
* This function is like `baseFor` except that it iterates over properties |
||||
* in the opposite order. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to iterate over. |
||||
* @param {Function} iteratee The function invoked per iteration. |
||||
* @param {Function} keysFunc The function to get the keys of `object`. |
||||
* @returns {Object} Returns `object`. |
||||
*/ |
||||
var baseForRight = createBaseFor(true); |
||||
|
||||
module.exports = baseForRight; |
@ -0,0 +1,19 @@ |
||||
var arrayFilter = require('./_arrayFilter'), |
||||
isFunction = require('./isFunction'); |
||||
|
||||
/** |
||||
* The base implementation of `_.functions` which creates an array of |
||||
* `object` function property names filtered from `props`. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to inspect. |
||||
* @param {Array} props The property names to filter. |
||||
* @returns {Array} Returns the function names. |
||||
*/ |
||||
function baseFunctions(object, props) { |
||||
return arrayFilter(props, function(key) { |
||||
return isFunction(object[key]); |
||||
}); |
||||
} |
||||
|
||||
module.exports = baseFunctions; |
@ -0,0 +1,24 @@ |
||||
var castPath = require('./_castPath'), |
||||
toKey = require('./_toKey'); |
||||
|
||||
/** |
||||
* The base implementation of `_.get` without support for default values. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to query. |
||||
* @param {Array|string} path The path of the property to get. |
||||
* @returns {*} Returns the resolved value. |
||||
*/ |
||||
function baseGet(object, path) { |
||||
path = castPath(path, object); |
||||
|
||||
var index = 0, |
||||
length = path.length; |
||||
|
||||
while (object != null && index < length) { |
||||
object = object[toKey(path[index++])]; |
||||
} |
||||
return (index && index == length) ? object : undefined; |
||||
} |
||||
|
||||
module.exports = baseGet; |
@ -0,0 +1,20 @@ |
||||
var arrayPush = require('./_arrayPush'), |
||||
isArray = require('./isArray'); |
||||
|
||||
/** |
||||
* The base implementation of `getAllKeys` and `getAllKeysIn` which uses |
||||
* `keysFunc` and `symbolsFunc` to get the enumerable property names and |
||||
* symbols of `object`. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to query. |
||||
* @param {Function} keysFunc The function to get the keys of `object`. |
||||
* @param {Function} symbolsFunc The function to get the symbols of `object`. |
||||
* @returns {Array} Returns the array of property names and symbols. |
||||
*/ |
||||
function baseGetAllKeys(object, keysFunc, symbolsFunc) { |
||||
var result = keysFunc(object); |
||||
return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); |
||||
} |
||||
|
||||
module.exports = baseGetAllKeys; |
@ -0,0 +1,28 @@ |
||||
var Symbol = require('./_Symbol'), |
||||
getRawTag = require('./_getRawTag'), |
||||
objectToString = require('./_objectToString'); |
||||
|
||||
/** `Object#toString` result references. */ |
||||
var nullTag = '[object Null]', |
||||
undefinedTag = '[object Undefined]'; |
||||
|
||||
/** Built-in value references. */ |
||||
var symToStringTag = Symbol ? Symbol.toStringTag : undefined; |
||||
|
||||
/** |
||||
* The base implementation of `getTag` without fallbacks for buggy environments. |
||||
* |
||||
* @private |
||||
* @param {*} value The value to query. |
||||
* @returns {string} Returns the `toStringTag`. |
||||
*/ |
||||
function baseGetTag(value) { |
||||
if (value == null) { |
||||
return value === undefined ? undefinedTag : nullTag; |
||||
} |
||||
return (symToStringTag && symToStringTag in Object(value)) |
||||
? getRawTag(value) |
||||
: objectToString(value); |
||||
} |
||||
|
||||
module.exports = baseGetTag; |
@ -0,0 +1,14 @@ |
||||
/** |
||||
* The base implementation of `_.gt` which doesn't coerce arguments. |
||||
* |
||||
* @private |
||||
* @param {*} value The value to compare. |
||||
* @param {*} other The other value to compare. |
||||
* @returns {boolean} Returns `true` if `value` is greater than `other`, |
||||
* else `false`. |
||||
*/ |
||||
function baseGt(value, other) { |
||||
return value > other; |
||||
} |
||||
|
||||
module.exports = baseGt; |
@ -0,0 +1,19 @@ |
||||
/** Used for built-in method references. */ |
||||
var objectProto = Object.prototype; |
||||
|
||||
/** Used to check objects for own properties. */ |
||||
var hasOwnProperty = objectProto.hasOwnProperty; |
||||
|
||||
/** |
||||
* The base implementation of `_.has` without support for deep paths. |
||||
* |
||||
* @private |
||||
* @param {Object} [object] The object to query. |
||||
* @param {Array|string} key The key to check. |
||||
* @returns {boolean} Returns `true` if `key` exists, else `false`. |
||||
*/ |
||||
function baseHas(object, key) { |
||||
return object != null && hasOwnProperty.call(object, key); |
||||
} |
||||
|
||||
module.exports = baseHas; |
@ -0,0 +1,13 @@ |
||||
/** |
||||
* The base implementation of `_.hasIn` without support for deep paths. |
||||
* |
||||
* @private |
||||
* @param {Object} [object] The object to query. |
||||
* @param {Array|string} key The key to check. |
||||
* @returns {boolean} Returns `true` if `key` exists, else `false`. |
||||
*/ |
||||
function baseHasIn(object, key) { |
||||
return object != null && key in Object(object); |
||||
} |
||||
|
||||
module.exports = baseHasIn; |
@ -0,0 +1,18 @@ |
||||
/* Built-in method references for those with the same name as other `lodash` methods. */ |
||||
var nativeMax = Math.max, |
||||
nativeMin = Math.min; |
||||
|
||||
/** |
||||
* The base implementation of `_.inRange` which doesn't coerce arguments. |
||||
* |
||||
* @private |
||||
* @param {number} number The number to check. |
||||
* @param {number} start The start of the range. |
||||
* @param {number} end The end of the range. |
||||
* @returns {boolean} Returns `true` if `number` is in the range, else `false`. |
||||
*/ |
||||
function baseInRange(number, start, end) { |
||||
return number >= nativeMin(start, end) && number < nativeMax(start, end); |
||||
} |
||||
|
||||
module.exports = baseInRange; |
@ -0,0 +1,20 @@ |
||||
var baseFindIndex = require('./_baseFindIndex'), |
||||
baseIsNaN = require('./_baseIsNaN'), |
||||
strictIndexOf = require('./_strictIndexOf'); |
||||
|
||||
/** |
||||
* The base implementation of `_.indexOf` without `fromIndex` bounds checks. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to inspect. |
||||
* @param {*} value The value to search for. |
||||
* @param {number} fromIndex The index to search from. |
||||
* @returns {number} Returns the index of the matched value, else `-1`. |
||||
*/ |
||||
function baseIndexOf(array, value, fromIndex) { |
||||
return value === value |
||||
? strictIndexOf(array, value, fromIndex) |
||||
: baseFindIndex(array, baseIsNaN, fromIndex); |
||||
} |
||||
|
||||
module.exports = baseIndexOf; |
@ -0,0 +1,23 @@ |
||||
/** |
||||
* This function is like `baseIndexOf` except that it accepts a comparator. |
||||
* |
||||
* @private |
||||
* @param {Array} array The array to inspect. |
||||
* @param {*} value The value to search for. |
||||
* @param {number} fromIndex The index to search from. |
||||
* @param {Function} comparator The comparator invoked per element. |
||||
* @returns {number} Returns the index of the matched value, else `-1`. |
||||
*/ |
||||
function baseIndexOfWith(array, value, fromIndex, comparator) { |
||||
var index = fromIndex - 1, |
||||
length = array.length; |
||||
|
||||
while (++index < length) { |
||||
if (comparator(array[index], value)) { |
||||
return index; |
||||
} |
||||
} |
||||
return -1; |
||||
} |
||||
|
||||
module.exports = baseIndexOfWith; |
@ -0,0 +1,74 @@ |
||||
var SetCache = require('./_SetCache'), |
||||
arrayIncludes = require('./_arrayIncludes'), |
||||
arrayIncludesWith = require('./_arrayIncludesWith'), |
||||
arrayMap = require('./_arrayMap'), |
||||
baseUnary = require('./_baseUnary'), |
||||
cacheHas = require('./_cacheHas'); |
||||
|
||||
/* Built-in method references for those with the same name as other `lodash` methods. */ |
||||
var nativeMin = Math.min; |
||||
|
||||
/** |
||||
* The base implementation of methods like `_.intersection`, without support |
||||
* for iteratee shorthands, that accepts an array of arrays to inspect. |
||||
* |
||||
* @private |
||||
* @param {Array} arrays The arrays to inspect. |
||||
* @param {Function} [iteratee] The iteratee invoked per element. |
||||
* @param {Function} [comparator] The comparator invoked per element. |
||||
* @returns {Array} Returns the new array of shared values. |
||||
*/ |
||||
function baseIntersection(arrays, iteratee, comparator) { |
||||
var includes = comparator ? arrayIncludesWith : arrayIncludes, |
||||
length = arrays[0].length, |
||||
othLength = arrays.length, |
||||
othIndex = othLength, |
||||
caches = Array(othLength), |
||||
maxLength = Infinity, |
||||
result = []; |
||||
|
||||
while (othIndex--) { |
||||
var array = arrays[othIndex]; |
||||
if (othIndex && iteratee) { |
||||
array = arrayMap(array, baseUnary(iteratee)); |
||||
} |
||||
maxLength = nativeMin(array.length, maxLength); |
||||
caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) |
||||
? new SetCache(othIndex && array) |
||||
: undefined; |
||||
} |
||||
array = arrays[0]; |
||||
|
||||
var index = -1, |
||||
seen = caches[0]; |
||||
|
||||
outer: |
||||
while (++index < length && result.length < maxLength) { |
||||
var value = array[index], |
||||
computed = iteratee ? iteratee(value) : value; |
||||
|
||||
value = (comparator || value !== 0) ? value : 0; |
||||
if (!(seen |
||||
? cacheHas(seen, computed) |
||||
: includes(result, computed, comparator) |
||||
)) { |
||||
othIndex = othLength; |
||||
while (--othIndex) { |
||||
var cache = caches[othIndex]; |
||||
if (!(cache |
||||
? cacheHas(cache, computed) |
||||
: includes(arrays[othIndex], computed, comparator)) |
||||
) { |
||||
continue outer; |
||||
} |
||||
} |
||||
if (seen) { |
||||
seen.push(computed); |
||||
} |
||||
result.push(value); |
||||
} |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
module.exports = baseIntersection; |
@ -0,0 +1,21 @@ |
||||
var baseForOwn = require('./_baseForOwn'); |
||||
|
||||
/** |
||||
* The base implementation of `_.invert` and `_.invertBy` which inverts |
||||
* `object` with values transformed by `iteratee` and set by `setter`. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to iterate over. |
||||
* @param {Function} setter The function to set `accumulator` values. |
||||
* @param {Function} iteratee The iteratee to transform values. |
||||
* @param {Object} accumulator The initial inverted object. |
||||
* @returns {Function} Returns `accumulator`. |
||||
*/ |
||||
function baseInverter(object, setter, iteratee, accumulator) { |
||||
baseForOwn(object, function(value, key, object) { |
||||
setter(accumulator, iteratee(value), key, object); |
||||
}); |
||||
return accumulator; |
||||
} |
||||
|
||||
module.exports = baseInverter; |
@ -0,0 +1,24 @@ |
||||
var apply = require('./_apply'), |
||||
castPath = require('./_castPath'), |
||||
last = require('./last'), |
||||
parent = require('./_parent'), |
||||
toKey = require('./_toKey'); |
||||
|
||||
/** |
||||
* The base implementation of `_.invoke` without support for individual |
||||
* method arguments. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to query. |
||||
* @param {Array|string} path The path of the method to invoke. |
||||
* @param {Array} args The arguments to invoke the method with. |
||||
* @returns {*} Returns the result of the invoked method. |
||||
*/ |
||||
function baseInvoke(object, path, args) { |
||||
path = castPath(path, object); |
||||
object = parent(object, path); |
||||
var func = object == null ? object : object[toKey(last(path))]; |
||||
return func == null ? undefined : apply(func, object, args); |
||||
} |
||||
|
||||
module.exports = baseInvoke; |
@ -0,0 +1,18 @@ |
||||
var baseGetTag = require('./_baseGetTag'), |
||||
isObjectLike = require('./isObjectLike'); |
||||
|
||||
/** `Object#toString` result references. */ |
||||
var argsTag = '[object Arguments]'; |
||||
|
||||
/** |
||||
* The base implementation of `_.isArguments`. |
||||
* |
||||
* @private |
||||
* @param {*} value The value to check. |
||||
* @returns {boolean} Returns `true` if `value` is an `arguments` object, |
||||
*/ |
||||
function baseIsArguments(value) { |
||||
return isObjectLike(value) && baseGetTag(value) == argsTag; |
||||
} |
||||
|
||||
module.exports = baseIsArguments; |
@ -0,0 +1,17 @@ |
||||
var baseGetTag = require('./_baseGetTag'), |
||||
isObjectLike = require('./isObjectLike'); |
||||
|
||||
var arrayBufferTag = '[object ArrayBuffer]'; |
||||
|
||||
/** |
||||
* The base implementation of `_.isArrayBuffer` without Node.js optimizations. |
||||
* |
||||
* @private |
||||
* @param {*} value The value to check. |
||||
* @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. |
||||
*/ |
||||
function baseIsArrayBuffer(value) { |
||||
return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; |
||||
} |
||||
|
||||
module.exports = baseIsArrayBuffer; |
@ -0,0 +1,18 @@ |
||||
var baseGetTag = require('./_baseGetTag'), |
||||
isObjectLike = require('./isObjectLike'); |
||||
|
||||
/** `Object#toString` result references. */ |
||||
var dateTag = '[object Date]'; |
||||
|
||||
/** |
||||
* The base implementation of `_.isDate` without Node.js optimizations. |
||||
* |
||||
* @private |
||||
* @param {*} value The value to check. |
||||
* @returns {boolean} Returns `true` if `value` is a date object, else `false`. |
||||
*/ |
||||
function baseIsDate(value) { |
||||
return isObjectLike(value) && baseGetTag(value) == dateTag; |
||||
} |
||||
|
||||
module.exports = baseIsDate; |
@ -0,0 +1,28 @@ |
||||
var baseIsEqualDeep = require('./_baseIsEqualDeep'), |
||||
isObjectLike = require('./isObjectLike'); |
||||
|
||||
/** |
||||
* The base implementation of `_.isEqual` which supports partial comparisons |
||||
* and tracks traversed objects. |
||||
* |
||||
* @private |
||||
* @param {*} value The value to compare. |
||||
* @param {*} other The other value to compare. |
||||
* @param {boolean} bitmask The bitmask flags. |
||||
* 1 - Unordered comparison |
||||
* 2 - Partial comparison |
||||
* @param {Function} [customizer] The function to customize comparisons. |
||||
* @param {Object} [stack] Tracks traversed `value` and `other` objects. |
||||
* @returns {boolean} Returns `true` if the values are equivalent, else `false`. |
||||
*/ |
||||
function baseIsEqual(value, other, bitmask, customizer, stack) { |
||||
if (value === other) { |
||||
return true; |
||||
} |
||||
if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { |
||||
return value !== value && other !== other; |
||||
} |
||||
return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); |
||||
} |
||||
|
||||
module.exports = baseIsEqual; |
@ -0,0 +1,83 @@ |
||||
var Stack = require('./_Stack'), |
||||
equalArrays = require('./_equalArrays'), |
||||
equalByTag = require('./_equalByTag'), |
||||
equalObjects = require('./_equalObjects'), |
||||
getTag = require('./_getTag'), |
||||
isArray = require('./isArray'), |
||||
isBuffer = require('./isBuffer'), |
||||
isTypedArray = require('./isTypedArray'); |
||||
|
||||
/** Used to compose bitmasks for value comparisons. */ |
||||
var COMPARE_PARTIAL_FLAG = 1; |
||||
|
||||
/** `Object#toString` result references. */ |
||||
var argsTag = '[object Arguments]', |
||||
arrayTag = '[object Array]', |
||||
objectTag = '[object Object]'; |
||||
|
||||
/** Used for built-in method references. */ |
||||
var objectProto = Object.prototype; |
||||
|
||||
/** Used to check objects for own properties. */ |
||||
var hasOwnProperty = objectProto.hasOwnProperty; |
||||
|
||||
/** |
||||
* A specialized version of `baseIsEqual` for arrays and objects which performs |
||||
* deep comparisons and tracks traversed objects enabling objects with circular |
||||
* references to be compared. |
||||
* |
||||
* @private |
||||
* @param {Object} object The object to compare. |
||||
* @param {Object} other The other object to compare. |
||||
* @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. |
||||
* @param {Function} customizer The function to customize comparisons. |
||||
* @param {Function} equalFunc The function to determine equivalents of values. |
||||
* @param {Object} [stack] Tracks traversed `object` and `other` objects. |
||||
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`. |
||||
*/ |
||||
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { |
||||
var objIsArr = isArray(object), |
||||
othIsArr = isArray(other), |
||||
objTag = objIsArr ? arrayTag : getTag(object), |
||||
othTag = othIsArr ? arrayTag : getTag(other); |
||||
|
||||
objTag = objTag == argsTag ? objectTag : objTag; |
||||
othTag = othTag == argsTag ? objectTag : othTag; |
||||
|
||||
var objIsObj = objTag == objectTag, |
||||
othIsObj = othTag == objectTag, |
||||
isSameTag = objTag == othTag; |
||||
|
||||
if (isSameTag && isBuffer(object)) { |
||||
if (!isBuffer(other)) { |
||||
return false; |
||||
} |
||||
objIsArr = true; |
||||
objIsObj = false; |
||||
} |
||||
if (isSameTag && !objIsObj) { |
||||
stack || (stack = new Stack); |
||||
return (objIsArr || isTypedArray(object)) |
||||
? equalArrays(object, other, bitmask, customizer, equalFunc, stack) |
||||
: equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); |
||||
} |
||||
if (!(bitmask & COMPARE_PARTIAL_FLAG)) { |
||||
var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), |
||||
othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); |
||||
|
||||
if (objIsWrapped || othIsWrapped) { |
||||
var objUnwrapped = objIsWrapped ? object.value() : object, |
||||
othUnwrapped = othIsWrapped ? other.value() : other; |
||||
|
||||
stack || (stack = new Stack); |
||||
return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); |
||||
} |
||||
} |
||||
if (!isSameTag) { |
||||
return false; |
||||
} |
||||
stack || (stack = new Stack); |
||||
return equalObjects(object, other, bitmask, customizer, equalFunc, stack); |
||||
} |
||||
|
||||
module.exports = baseIsEqualDeep; |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue