/** | ||
* xe-utils.js v1.5.35 | ||
* xe-utils.js v1.6.0 | ||
* (c) 2017-2018 Xu Liangzhan | ||
@@ -16,6 +16,10 @@ * ISC License. | ||
XEUtils.version = '1.5.35' | ||
XEUtils.version = '1.6.0' | ||
var formatString = 'yyyy-MM-dd HH:mm:ss' | ||
var setupDefaults = { | ||
formats: null | ||
formatDate: formatString + '.SSS', | ||
formatString: formatString, | ||
formatStringMatchs: null, | ||
dateDiffRules: [['yyyy', 31536000000], ['MM', 2592000000], ['dd', 86400000], ['HH', 3600000], ['mm', 60000], ['ss', 1000], ['S', 0]] | ||
} | ||
@@ -1014,2 +1018,28 @@ | ||
/** | ||
* 清空对象 | ||
* | ||
* @param {Object} obj 对象 | ||
* @param {Object} defs 默认值 | ||
* @return {Object} | ||
*/ | ||
function clearObject (obj, defs) { | ||
if (obj) { | ||
if (isPlainObject(obj)) { | ||
objectEach(obj, function (val, key) { | ||
try { | ||
delete obj[key] | ||
} catch (e) { | ||
obj[key] = undefined | ||
} | ||
}) | ||
objectAssign(obj, defs) | ||
} else if (isArray(obj)) { | ||
obj.length = 0 | ||
obj.push.apply(obj, defs) | ||
} | ||
} | ||
return obj | ||
} | ||
/** | ||
* 获取对象所有属性 | ||
@@ -1232,3 +1262,4 @@ * | ||
bind: bind, | ||
once: once | ||
once: once, | ||
clearObject: clearObject | ||
} | ||
@@ -1397,3 +1428,3 @@ | ||
var dateFormatRules = [ | ||
{ rules: [['yyyy', 4], ['yyy', 3], ['yy', 2]] }, | ||
{ rules: [['yyyy', 4], ['yy', 2]] }, | ||
{ rules: [['MM', 2], ['M', 1]], offset: -1 }, | ||
@@ -1408,2 +1439,16 @@ { rules: [['dd', 2], ['d', 1]] }, | ||
/** | ||
* 比较两个日期 | ||
* | ||
* @param {Number/String/Date} date1 日期 | ||
* @param {Number/String/Date} date2 日期 | ||
* @param {String} format 格式化 | ||
*/ | ||
function isDateSame (date1, date2, format) { | ||
if (date1 && date2) { | ||
return dateToString(date1, format) === dateToString(date2, format) | ||
} | ||
return false | ||
} | ||
/** | ||
* 字符串转为日期 | ||
@@ -1424,3 +1469,3 @@ * | ||
if (baseExports.isString(str)) { | ||
format = format || 'yyyy-MM-dd HH:mm:ss.SSS' | ||
format = format || setupDefaults.formatDate | ||
var dates = [] | ||
@@ -1461,3 +1506,3 @@ baseExports.arrayEach(dateFormatRules, function (item) { | ||
* @param {Date} date 日期或数字 | ||
* @param {String} format 输出日期格式(年份(yy|yyyy)、月份(M|MM自动补0)、天(d|dd自动补0)、12小时制(h|hh自动补0)、24小时制(H|HH自动补0)、分钟(m|mm自动补0)、秒(s|ss自动补0)、毫秒(S|SSS自动补0)、D当年的第几天、E星期几、w当年的第几周、W当月的第几周、q当年第几个季度、z时区、Z时区值) | ||
* @param {String} format 输出日期格式(年份(yy|yyyy)、月份(M|MM自动补0)、天(d|dd自动补0)、12小时制(h|hh自动补0)、24小时制(H|HH自动补0)、分钟(m|mm自动补0)、秒(s|ss自动补0)、毫秒(S|SSS自动补0)、D当年的第几天、a/A上午下午、e/E星期几、w当年的第几周、W当月的第几周、q当年第几个季度、z时区、Z时区值) | ||
* @param {Object} options {formats: {q: ['日', '一', '二', '三', '四', '五', '六'], E: function (value, match, date) {return '三'}, }} 自定义格式化模板 | ||
@@ -1471,9 +1516,9 @@ * @return {String} | ||
var empty = '' | ||
var result = empty + (format || 'yyyy-MM-dd HH:mm:ss') | ||
var result = format || setupDefaults.formatString | ||
var hours = date.getHours() | ||
var fullYear = empty + date.getFullYear() | ||
var apm = hours < 12 ? 'am' : 'pm' | ||
var zoneHours = date.getTimezoneOffset() / 60 * -1 | ||
var formats = baseExports.objectAssign({}, setupDefaults.formats, options && options.formats ? options.formats : null) | ||
var formats = baseExports.objectAssign({}, setupDefaults.formatStringMatchs, options && options.formats ? options.formats : null) | ||
var timeRules = [ | ||
[/y{2,4}/g, fullYear, function (match) { return fullYear.substr(4 - match.length) }], | ||
[/y{2,4}/g, empty, function (match) { return (empty + date.getFullYear()).substr(4 - match.length) }], | ||
[/M{1,2}/g, date.getMonth() + 1], | ||
@@ -1486,3 +1531,6 @@ [/d{1,2}/g, date.getDate()], | ||
[/S{1,3}/g, date.getMilliseconds()], | ||
[/a/g, empty, function (match) { return handleCustomTemplate(date, formats, match, apm) }], | ||
[/A/g, empty, function (match) { return handleCustomTemplate(date, formats, match, apm.toLocaleUpperCase()) }], | ||
[/z/g, empty, function (match) { return handleCustomTemplate(date, formats, match, 'GMT') }], | ||
[/e/g, empty, function (match) { return handleCustomTemplate(date, formats, match, date.getDay() - 1) }], | ||
[/E/g, empty, function (match) { return handleCustomTemplate(date, formats, match, date.getDay()) }], | ||
@@ -1668,3 +1716,3 @@ [/q/g, empty, function (match) { return handleCustomTemplate(date, formats, match, Math.floor((date.getMonth() + 3) / 3)) }], | ||
*/ | ||
function getDaysOfYear (date, month) { | ||
function getDayOfYear (date, month) { | ||
if (date) { | ||
@@ -1683,3 +1731,3 @@ return baseExports.isLeapYear(getWhatYear(date, month)) ? 366 : 365 | ||
*/ | ||
function getDaysOfMonth (date, month) { | ||
function getDayOfMonth (date, month) { | ||
if (date) { | ||
@@ -1691,4 +1739,2 @@ return Math.floor((getWhatMonth(date, month, 'last').getTime() - getWhatMonth(date, month, 'first').getTime()) / DAY_TIME) + 1 | ||
var dateDiffRules = [['yyyy', 31536000000], ['MM', 2592000000], ['dd', DAY_TIME], ['HH', 3600000], ['mm', 60000], ['ss', 1000], ['S', 0]] | ||
/** | ||
@@ -1709,3 +1755,3 @@ * 返回两个日期之间差距,如果结束日期小于开始日期done为fasle | ||
var diffTime = endTime - startTime | ||
var rule = rules && rules.length > 0 ? rules : dateDiffRules | ||
var rule = rules && rules.length > 0 ? rules : setupDefaults.dateDiffRules | ||
result.done = true | ||
@@ -1732,2 +1778,3 @@ for (var index = 0, len = rule.length; index < len; index++) { | ||
now: timestamp, | ||
isDateSame: isDateSame, | ||
stringToDate: stringToDate, | ||
@@ -1742,4 +1789,4 @@ dateToString: dateToString, | ||
getMonthWeek: getMonthWeek, | ||
getDaysOfYear: getDaysOfYear, | ||
getDaysOfMonth: getDaysOfMonth, | ||
getDayOfYear: getDayOfYear, | ||
getDayOfMonth: getDayOfMonth, | ||
getDateDiff: getDateDiff | ||
@@ -1746,0 +1793,0 @@ } |
/** | ||
* xe-utils.js v1.5.35 | ||
* xe-utils.js v1.6.0 | ||
* (c) 2017-2018 Xu Liangzhan | ||
@@ -7,2 +7,2 @@ * ISC License. | ||
*/ | ||
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):t.XEUtils=n()}(this,function(){"use strict";function t(){}function n(t){var n=[];return Pt.isArray(t)&&Pt.arrayEach(t,function(t){n.includes(t)||n.push(t)}),n}function e(){for(var t=arguments,e=[],r=0,i=t.length;r<i;r++)e=e.concat(t[r]);return n(e)}function r(t,n,e){return Pt.isArray(t)?t.sort(n?Pt.isFunction(n)?n.bind(e||this):function(t,e){return t[n]>e[n]?1:-1}:function(t,n){return t>n?1:-1}):t}function i(n){for(var e=[],r=Pt.objectValues(n),i=r.length-1;i>=0;i--){var a=i>0?t.getRandom(0,i):0;e.push(r[a]),r.splice(a,1)}return e}function a(t,n){var e=i(t);return 1===arguments.length?e[0]:(n<e.length&&(e.length=n||0),e)}function u(t,n,e){if(t){if(e=e||this,Pt.isArray(t)&&t.some)return t.some(n,e);for(var r in t)if(t.hasOwnProperty(r)&&n.call(e,t[r],r,t))return!0}return!1}function o(t,n,e){if(t){if(e=e||this,Pt.isArray(t)&&t.every)return t.every(n,e);for(var r in t)if(t.hasOwnProperty(r)&&!n.call(e,t[r],r,t))return!1}return!0}function s(t,n,e){if(t){if(e=e||this,Pt.isArray(t)&&t.filter)return t.filter(n,e);var r={};return Pt.each(t,function(i,a){n.call(e,i,a,t)&&(r[a]=i)}),r}return[]}function f(t,n,e){if(t){if(e=e||this,Pt.isArray(t)&&t.find)return t.find(n,e);for(var r in t)if(t.hasOwnProperty(r)&&n.call(e,t[r],r,t))return t[r]}}function c(t,n,e){var r=[];if(t){if(e=e||this,Pt.isArray(t))return t.map(n,e);Pt.each(t,function(){r.push(n.apply(e,arguments))})}return r}function l(t,n,e){var r=0;return e=e||this,Pt.each(t,n?Pt.isFunction(n)?function(){r+=n.apply(e,arguments)}:function(t,e){r+=t[n]}:function(t,n){r+=t}),r}function g(t,n,e){return l(t,n,e||this)/Pt.getSize(t)}function h(t,n,e){var r=e,i=0,a=t.length,u=this;if(Pt.isArray(t)){if(void 0===e&&(r=t[0],i=1),t.reduce)return t.reduce(n,e);for(;i<a;i++)r=n.call(u,r,t[i],i,t)}else Pt.each(t,function(e,i){r=n.call(u,r,e,i,t)});return r}function p(t,n,e,r){if(Pt.isArray(t)&&t.copyWithin)return t.copyWithin(n,e,r);var i=n>>0,a=e>>0,u=t.length,o=arguments.length>3?r>>0:u;if(i<u&&(i=i>=0?i:u+i)>=0&&(a=a>=0?a:u+a,o=o>=0?o:u+o,a<o))for(var s=0,f=t.slice(a,o);i<u&&!(f.length<=s);i++)t[i]=f[s++];return t}function y(n){for(var e=[],r=t.max(n,function(t){return t.length||0}),i=0;i<r;i++)e.push(c(n,function(t){return t?t[i]:null}));return e}function d(t,n,e){if(Pt.isArray(t))return t;if(null===t||void 0===t)return[];var r=[];if(e=e||this,t.length)for(var i=0,a=parseInt(t.length);i<a;i++)r.push(t[i]);return arguments.length<2?r:c(r,n,e)}function m(t){return function(n){return typeof n===t}}function v(t){return function(n){return"[object "+t+"]"===ht.call(n)}}function b(n){return S(n)?function(t){var n={};return k(t,function(t,e){n[e]=b(t)}),n}(n):yt(n)?function(n){return t.arrayMap(n,b)}(n):n}function M(t,n){return t?n?b(t):Yt(S(t)?{}:[],t):t}function S(t){return!!t&&t.constructor===Object}function D(t){return jt&&Symbol.isSymbol?Symbol.isSymbol(t):"symbol"==typeof t}function x(t){return function(n,e){if(n){if(bt(n)||yt(n))return t(n,e);for(var r in n)if(e===n[r])return r}return-1}}function O(t,n){return-1!==Rt(t,n)}function j(t,n,e){for(var r,i=1,a=n.length;i<a;i++)r=n[i],W(w(n[i]),function(n){t[n]=e?M(r[n],e):r[n]});return t}function w(t){var n=[];if(t){if(Object.keys)return Object.keys(t);T(t,function(t,e){n.push(e)})}return n}function A(t){if(Object.values)return t?Object.values(t):[];var n=[];return W(w(t),function(e){n.push(t[e])}),n}function E(t){if(Object.entries)return t?Object.entries(t):[];var n=[];return W(w(t),function(e){n.push([e,t[e]])}),n}function N(t){return A(t)[0]}function F(t){var n=A(t);return n[n.length-1]}function T(t,n,e){for(var r in t)t.hasOwnProperty(r)&&n.call(e||this,t[r],r,t)}function W(t,n,e){for(var r=0,i=t.length||0;r<i;r++)n.call(e||this,t[r],r,t)}function k(t,n,e){return t?yt(t)?mt(t.forEach)?t.forEach(n,e||this):W(t,n,e||this):T(t,n,e||this):t}function I(t,n,e){var r,i,a={};return t&&(bt(n)?(i=n,n=null):n=mt(n)?n.bind(e||this):i=null,k(t,function(e,u){r=n?n(e,u,t):i?e[i]:e,a[r]?a[r].push(e):a[r]=[e]})),a}function R(t,n){var e=parseFloat(n),r=new Date,i=r.getTime();switch(t){case"y":return Zt.getWhatYear(r,e).getTime();case"M":return Zt.getWhatMonth(r,e).getTime();case"d":return Zt.getWhatDay(r,e).getTime();case"H":return i+60*e*60*1e3;case"m":return i+60*e*1e3;case"s":return i+1e3*e}return i}function H(t){return(Pt.isDate(t)?t:new Date(t)).toUTCString()}function Y(t,n,e){var r=[],i="undefined"!=typeof document;if(this&&this.$context&&(this.$context=null),Pt.isArray(t)?r=t:arguments.length>1?r=[Pt.objectAssign({name:t,value:n},e)]:Pt.isObject(t)&&(r=[t]),!(r.length>0)){var a={};return i&&document.cookie&&Pt.arrayEach(document.cookie.split("; "),function(t){var n=t.indexOf("=");a[Ut(t.substring(0,n))]=Ut(t.substring(n+1)||"")}),1===arguments.length?a[t]:a}i&&Pt.arrayEach(r,function(t){var n=Pt.objectAssign({},t),e=[];if(n.name){var r=n.expires;e.push(zt(n.name)+"="+zt(Pt.isObject(n.value)?JSON.stringify(n.value):n.value)),r&&(isNaN(r)?n.expires=r.replace(/^([0-9]+)(y|M|d|H|m|s)$/,function(t,n,e){return H(R(e,n))}):/^[0-9]{11,13}$/.test(r)||Pt.isDate(r)?n.expires=H(r):n.expires=H(R("d",r))),Pt.arrayEach(["expires","path","domain","secure"],function(t){void 0!==n[t]&&e.push(n[t]&&"secure"===t?t:t+"="+n[t])})}document.cookie=e.join("; ")})}function P(t,n){if(t){if(Pt.isDate(t))return new Date(t.getTime());if(/^[0-9]{11,13}$/.test(t))return new Date(t);if(Pt.isString(t)){n=n||"yyyy-MM-dd HH:mm:ss.SSS";var e=[];return Pt.arrayEach(qt,function(r){for(var i,a,u=0,o=r.rules,s=o.length;u<s;u++){if(i=o[u],(a=n.indexOf(i[0]))>-1){e.push(parseFloat(t.substring(a,a+i[1])||0)+(r.offset||0));break}u===s-1&&e.push(0)}}),new Date(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}}return"Invalid Date"}function C(t,n,e,r){var i=n[e];return i?Pt.isFunction(i)?i(r,e,t):i[r]:r}function U(t,n,e){var r=P(t);if(n){var i=n&&!isNaN(n)?n:0;r.setFullYear(r.getFullYear()+i)}if("first"===e)r.setMonth(0),r.setDate(1);else if("last"===e)return r.setMonth(11),z(r,0,"last");return r}function z(t,n,e){var r=P(t),i=n&&!isNaN(n)?n:0,a=r.getHours(),u=r.getMinutes(),o=r.getSeconds(),s=r.getMilliseconds();if("first"===e){var f=r.getFullYear(),c=r.getMonth();return(c+=i)<0?new Date(f-Math.ceil((c=Math.abs(c))/12),12-(c%12||1),1,a,u,o,s):new Date(f+Math.floor(c/12),c%12,1,a,u,o,s)}if("last"===e)return new Date(z(r,i+1,"first").getTime()-$t);var l=r.getDate(),g=z(r,i,"first"),h=g.getMonth();for(g.setDate(l);h<g.getMonth();)g.setDate(--l);return g}function L(t,n,e){var r=P(t),i=Number(/^[0-7]$/.test(e)?e:r.getDay()),a=r.getDay(),u=r.getTime()+((0===i?7:i)-(0===a?7:a))*$t;return n&&!isNaN(n)&&(u+=n*Bt),new Date(u)}function $(t,n,e){return Math.floor((new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime()-new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime())/e)+1}function B(t){if(t){var n=P(t),e=z(t,0,"first"),r=L(e,0,1);if(r<e&&(r=L(e,1,1)),n>=r)return $(r,n,Bt)}return 0}function J(t){return t?$(U(t,0,"first"),P(t),$t):0}function q(t){if(t){var n=P(t),e=U(t,0,"first"),r=L(e,0,1);if(r<e&&(r=L(e,1,1)),n>=r)return $(r,n,Bt)}return 0}function K(t){var n={},e=t.split("?")[1]||"";return e&&Pt.arrayEach(e.split("&"),function(t){var e=t.split("=");n[decodeURIComponent(e[0])]=decodeURIComponent(e[1]||"")}),n}function Z(){return Qt?Qt.origin||Qt.protocol+"//"+Qt.host:""}function Q(t){var n=""+t;0===n.indexOf("/")&&(n=Z()+n);var e=n.replace(/#.*/,"").match(/(\?.*)/),r={href:n,hash:"",host:"",hostname:"",protocol:"",port:"",search:e?e[1]:""};r.path=n.replace(/^([a-z0-9.+-]*:)\/\//,function(t,n){return r.protocol=n,""}).replace(/^([a-z0-9.+-]*)(:\d+)?\//,function(t,n,e){var i=e||"";return r.port=i.replace(":",""),r.hostname=n,r.host=n+i,"/"}).replace(/(#.*)/,function(t,n){return r.hash=n,""});var i=r.hash.match(/#((.*)\?|(.*))/);return r.pathname=r.path.replace(/(\?|#.*).*/,""),r.origin=r.protocol+"//"+r.host,r.hashKey=i?i[2]||"":"",r.hashQuery=K(r.hash),r.searchQuery=K(r.search),r}function V(n,e){return Pt.isFunction(e)?t.arraySort(t.arrayMap(n,e,this)):t.arraySort(n,e)}function G(){return V.apply(this,arguments)[0]}function X(){return V.apply(this,arguments).reverse()[0]}function _(t){if(t){var n=parseFloat(t);return isNaN(n)?0:n}return 0}function tt(t){return parseInt(_(t))}function nt(t){return t&&t.trim?t.trim():rt(et(t))}function et(t){return t&&t.trimLeft?t.trimLeft():(""+t).replace(/^[\s\uFEFF\xA0]+/g,"")}function rt(t){return t&&t.trimRight?t.trimRight():(""+t).replace(/[\s\uFEFF\xA0]+$/g,"")}function it(t){var n=new RegExp("(?:"+Pt.objectKeys(t).join("|")+")","g");return function(e){return(""+e).replace(n,function(n){return t[n]})}}function at(t,n){var e=""+t;if(t.repeat)return t.repeat(n);var r=isNaN(n)?[]:new Array(parseInt(n));return r.join(e)+(r.length>0?e:"")}function ut(t,n,e){var r=""+t;return r.padStart?r.padStart(n,e):n>>0>r.length?(e=""+e,(n-=r.length)>e.length&&(e+=at(e,n/e.length)),e.slice(0,n)+r):r}function ot(t,n,e){var r=""+t;return r.padEnd?r.padEnd(n,e):n>>0>r.length?(e=""+e,(n-=r.length)>e.length&&(e+=at(e,n/e.length)),r+e.slice(0,n)):r}function st(t,n,e){var r=""+t;return 0===(1===arguments.length?r:r.substring(e)).indexOf(n)}function ft(t,n,e){var r=""+t;return 1===arguments.length?r.indexOf(n)===r.length-1:r.substring(0,e).indexOf(n)===e-1}t.version="1.5.35";var ct={formats:null},lt={arrayUniq:n,uniq:n,arrayUnion:e,union:e,arraySort:r,sort:r,arrayShuffle:i,shuffle:i,arraySample:a,sample:a,arraySome:u,some:u,arrayEvery:o,every:o,arrayFilter:s,filter:s,arrayFind:f,find:f,arrayMap:c,map:c,arraySum:l,sum:l,arrayMean:g,mean:g,arrayReduce:h,reduce:h,arrayCopyWithin:p,copyWithin:p,chunk:function(t,n){var e=[],r=n>>0||1;if(Pt.isArray(t))if(r>=0&&t.length>r)for(var i=0;i<t.length;)e.push(t.slice(i,i+r)),i+=r;else e=t.length?[t]:t;return e},zip:function(){return y(arguments)},unzip:y,from:d,toArray:d,includeArrays:function(t,n){if(!Pt.isArray(n))return Pt.includes(t,n);for(var e=0,r=n.length;e<r;e++)if(!Pt.includes(t,n[e]))return!1;return!0}},gt="undefined",ht=Object.prototype.toString,pt=m(gt),yt=Array.isArray||v("Array"),dt=Number.isInteger,mt=m("function"),vt=m("boolean"),bt=m("string"),Mt=m("number"),St=v("RegExp"),Dt=m("object"),xt=v("Date"),Ot=v("Error"),jt=typeof Symbol!==gt,wt=v("Arguments"),At=typeof document!==gt,Et=typeof window!==gt,Nt=typeof FormData!==gt,Ft=typeof Map!==gt,Tt=typeof WeakMap!==gt,Wt=typeof Set!==gt,kt=typeof WeakSet!==gt,It=0,Rt=x(function(t,n){if(t.indexOf)return t.indexOf(n);for(var e=0,r=t.length;e<r;e++)if(n===t[e])return e}),Ht=x(function(t,n){if(t.lastIndexOf)return t.lastIndexOf(n);for(var e=t.length-1;e>=0;e--)if(n===t[e])return e;return-1}),Yt=function(t){if(t){var n=arguments;if(!0!==t)return Object.assign?Object.assign.apply(Object,n):j(t,n);if(n.length>1)return t=yt(t[1])?[]:{},j(t,n,!0)}return t},Pt={isNaN:isNaN,isFinite:isFinite,isUndefined:pt,isArray:yt,isFloat:function(t){return null!==t&&!isNaN(t)&&!dt(t)},isInteger:dt,isFunction:mt,isBoolean:vt,isString:bt,isNumber:Mt,isRegExp:St,isObject:Dt,isPlainObject:S,isDate:xt,isError:Ot,isTypeError:function(t){return!!t&&t.constructor===TypeError},isEmpty:function(t){if(0===t||!Mt(t)){for(var n in t)return!1;return!0}return!1},isNull:function(t){return null===t},isSymbol:D,isArguments:wt,isElement:function(t){return t&&bt(t.nodeName)&&Mt(t.nodeType)},isDocument:function(t){return t&&9===t.nodeType&&At},isWindow:function(t){return t&&t===t.window&&Et},isFormData:function(t){return Nt&&t instanceof FormData},isMap:function(t){return Ft&&t instanceof Map},isWeakMap:function(t){return Tt&&t instanceof WeakMap},isSet:function(t){return Wt&&t instanceof Set},isWeakSet:function(t){return kt&&t instanceof WeakSet},isLeapYear:function(n){var e=(n?t.stringToDate(n):new Date).getFullYear();return e%4==0&&(e%100!=0||e%400==0)},getType:function(t){return null===t?""+t:D(t)?"symbol":xt(t)?"date":yt(t)?"array":typeof t},uniqueId:function(t){return(t?""+t:0)+ ++It},getSize:function(t){var n=0;return bt(t)||yt(t)?t.length:(k(t,function(){n++}),n)},indexOf:Rt,lastIndexOf:Ht,includes:O,contains:O,objectAssign:Yt,assign:Yt,extend:Yt,stringToJson:function(t){if(Dt(t))return t;if(bt(t))try{return JSON.parse(t)}catch(t){console.error(t)}return{}},jsonToString:function(t){if(Dt(t))try{return JSON.stringify(t)}catch(t){console.error(t)}return t?""+t:""},objectKeys:w,keys:w,objectValues:A,values:A,objectEntries:E,entries:E,arrayFirst:N,first:N,arrayLast:F,last:F,objectEach:T,arrayEach:W,forEach:W,each:k,groupBy:I,countBy:function(t,n,e){var r=I(t,n,e||this);return T(r,function(t,n){r[n]=t.length}),r},objectMap:function(t,n,e){var r={};return k(t,function(i,a){r[a]=n.call(e||this,i,a,t)}),r},clone:M,bind:function(n,e){var r=t.from(arguments).slice(2);return e=e||this,function(){return n.apply(e,t.from(arguments).concat(r))}},once:function(n,e){var r=!1,i=null,a=t.from(arguments).slice(2);return e=e||this,function(){return r?i:(i=n.apply(e,t.from(arguments).concat(a)),r=!0,i)}}},Ct={browse:function(){var t={isNode:!1,isMobile:!1,isPC:!1};if("undefined"==typeof window&&"undefined"!=typeof process)t.nodeJS=!0;else if(t.isMobile=function(){for(var t=["Android","webOS","iPhone","iPad","iPod","SymbianOS","BlackBerry","Windows Phone"],n=navigator.userAgent,e=0;e<t.length;e++)if(n.indexOf(t[e])>0)return!0;return!1}(),t.isPC=!t.isMobile,"undefined"!=typeof document){var n=document.body||document.documentElement;Pt.arrayEach(["webkit","khtml","moz","ms","o"],function(e){t["-"+e]=!!n[e+"MatchesSelector"]})}return t}},Ut=decodeURIComponent,zt=encodeURIComponent;Pt.objectAssign(Y,{setItem:function(t,n,e){Y(t,n,e)},getItem:function(t){return Y(t)},removeItem:function(t){Y(t,null,{expires:-1})},getJSON:function(){return Y()}});var Lt={cookie:Y},$t=864e5,Bt=7*$t,Jt=Date.now||function(){return(new Date).getTime()},qt=[{rules:[["yyyy",4],["yyy",3],["yy",2]]},{rules:[["MM",2],["M",1]],offset:-1},{rules:[["dd",2],["d",1]]},{rules:[["HH",2],["H",1]]},{rules:[["mm",2],["m",1]]},{rules:[["ss",2],["s",1]]},{rules:[["SSS",3],["SS",2],["S",1]]}],Kt=[["yyyy",31536e6],["MM",2592e6],["dd",$t],["HH",36e5],["mm",6e4],["ss",1e3],["S",0]],Zt={timestamp:Jt,now:Jt,stringToDate:P,dateToString:function(n,e,r){if(n){if(n=P(n),Pt.isDate(n)){for(var i=""+(e||"yyyy-MM-dd HH:mm:ss"),a=n.getHours(),u=""+n.getFullYear(),o=n.getTimezoneOffset()/60*-1,s=Pt.objectAssign({},ct.formats,r&&r.formats?r.formats:null),f=[[/y{2,4}/g,u,function(t){return u.substr(4-t.length)}],[/M{1,2}/g,n.getMonth()+1],[/d{1,2}/g,n.getDate()],[/H{1,2}/g,a],[/h{1,2}/g,a<=12?a:a-12],[/m{1,2}/g,n.getMinutes()],[/s{1,2}/g,n.getSeconds()],[/S{1,3}/g,n.getMilliseconds()],[/z/g,"",function(t){return C(n,s,t,"GMT")}],[/E/g,"",function(t){return C(n,s,t,n.getDay())}],[/q/g,"",function(t){return C(n,s,t,Math.floor((n.getMonth()+3)/3))}],[/Z/g,"",function(e){return C(n,s,e,(o>=0?"+":"-")+t.padStart(o,2,0)+"00")}],[/W/g,"",function(t){return C(n,s,t,B(n))}],[/w/g,"",function(t){return C(n,s,t,q(n))}],[/D/g,"",function(t){return C(n,s,t,J(n))}]],c=0;c<f.length;c++){var l=f[c];i=i.replace(l[0],l[2]||function(n){return t.padStart(l[1],n.length,0)})}return i}return n}return""},getWhatYear:U,getWhatMonth:z,getWhatWeek:L,getWhatDay:function(t,n){var e=P(t);return n?new Date(e.getTime()+(n&&!isNaN(n)?n*$t:0)):e},getYearDay:J,getYearWeek:q,getMonthWeek:B,getDaysOfYear:function(t,n){return t?Pt.isLeapYear(U(t,n))?366:365:0},getDaysOfMonth:function(t,n){return t?Math.floor((z(t,n,"last").getTime()-z(t,n,"first").getTime())/$t)+1:0},getDateDiff:function(t,n,e){var r={done:!1},i=P(t).getTime(),a=n?P(n).getTime():new Date;if(i<a){var u,o=a-i,s=e&&e.length>0?e:Kt;r.done=!0;for(var f=0,c=s.length;f<c;f++)o>=(u=s[f])[1]?f===c-1?r[u[0]]=o||0:(r[u[0]]=Math.floor(o/u[1]),o-=r[u[0]]*u[1]):r[u[0]]=0}return r}},Qt=null;"undefined"!=typeof location&&(Qt=location);var Vt={parseUrl:Q,getBaseURL:function(){if(Qt){var t=Qt.pathname,n=Pt.lastIndexOf(t,"/")+1;return Z()+(n===t.length?t:t.substring(0,n))}return""},locat:function(){return Qt?Q(Qt.href):{}}},Gt={getRandom:function(t,n){return t>=n?t:(t>>=0)+Math.round(Math.random()*((n||9)-t))},arrayMin:G,min:G,arrayMax:X,max:X,commafy:function(t,n){var e=Pt.objectAssign({spaceNumber:3,separator:",",fixed:0},n),r=parseFloat((""+t).replace(/,/g,"")||0).toFixed(e.fixed).split(".");return r[0].replace(new RegExp("(?=(?!(\\b))(\\d{"+e.spaceNumber+"})+$)","g"),e.separator)+(r[1]?"."+r[1]:"")},toNumber:_,stringToNumber:_,toInteger:tt,stringToInteger:tt},Xt={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},_t={};Pt.arrayEach(Pt.objectKeys(Xt),function(t){_t[Xt[t]]=t});var tn={trim:nt,stringTrim:nt,trimLeft:et,stringTrimLeft:et,trimRight:rt,stringTrimRight:rt,escape:it(Xt),unescape:it(_t),camelCase:function(t){return(""+t).replace(/(-[a-zA-Z])/g,function(t,n){return n.substring(1).toLocaleUpperCase()})},kebabCase:function(t){return(""+t).replace(/([A-Z])/g,function(t,n){return"-"+n.toLowerCase()})},repeat:at,stringRepeat:at,padStart:ut,stringPadStart:ut,padEnd:ot,stringPadEnd:ot,startsWith:st,stringStartsWith:st,endsWith:ft,stringEndsWith:ft},nn={};return Pt.objectAssign(nn,lt,Pt,Ct,Lt,Zt,Vt,Gt,tn),t.mixin=function(n){nn.objectEach(n,function(n,e){t[e]=-1==="cookie".indexOf(e)&&nn.isFunction(n)?function(){var e=n.apply(t.$context,arguments);return t.$context=null,e}:n})},t.setup=function(t){nn.objectAssign(ct,t)},t.mixin(nn),t}); | ||
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):t.XEUtils=n()}(this,function(){"use strict";function t(){}function n(t){var n=[];return Ht.isArray(t)&&Ht.arrayEach(t,function(t){n.includes(t)||n.push(t)}),n}function e(){for(var t=arguments,e=[],r=0,i=t.length;r<i;r++)e=e.concat(t[r]);return n(e)}function r(t,n,e){return Ht.isArray(t)?t.sort(n?Ht.isFunction(n)?n.bind(e||this):function(t,e){return t[n]>e[n]?1:-1}:function(t,n){return t>n?1:-1}):t}function i(n){for(var e=[],r=Ht.objectValues(n),i=r.length-1;i>=0;i--){var a=i>0?t.getRandom(0,i):0;e.push(r[a]),r.splice(a,1)}return e}function a(t,n){var e=i(t);return 1===arguments.length?e[0]:(n<e.length&&(e.length=n||0),e)}function u(t,n,e){if(t){if(e=e||this,Ht.isArray(t)&&t.some)return t.some(n,e);for(var r in t)if(t.hasOwnProperty(r)&&n.call(e,t[r],r,t))return!0}return!1}function o(t,n,e){if(t){if(e=e||this,Ht.isArray(t)&&t.every)return t.every(n,e);for(var r in t)if(t.hasOwnProperty(r)&&!n.call(e,t[r],r,t))return!1}return!0}function f(t,n,e){if(t){if(e=e||this,Ht.isArray(t)&&t.filter)return t.filter(n,e);var r={};return Ht.each(t,function(i,a){n.call(e,i,a,t)&&(r[a]=i)}),r}return[]}function s(t,n,e){if(t){if(e=e||this,Ht.isArray(t)&&t.find)return t.find(n,e);for(var r in t)if(t.hasOwnProperty(r)&&n.call(e,t[r],r,t))return t[r]}}function c(t,n,e){var r=[];if(t){if(e=e||this,Ht.isArray(t))return t.map(n,e);Ht.each(t,function(){r.push(n.apply(e,arguments))})}return r}function l(t,n,e){var r=0;return e=e||this,Ht.each(t,n?Ht.isFunction(n)?function(){r+=n.apply(e,arguments)}:function(t,e){r+=t[n]}:function(t,n){r+=t}),r}function g(t,n,e){return l(t,n,e||this)/Ht.getSize(t)}function h(t,n,e){var r=e,i=0,a=t.length,u=this;if(Ht.isArray(t)){if(void 0===e&&(r=t[0],i=1),t.reduce)return t.reduce(n,e);for(;i<a;i++)r=n.call(u,r,t[i],i,t)}else Ht.each(t,function(e,i){r=n.call(u,r,e,i,t)});return r}function p(t,n,e,r){if(Ht.isArray(t)&&t.copyWithin)return t.copyWithin(n,e,r);var i=n>>0,a=e>>0,u=t.length,o=arguments.length>3?r>>0:u;if(i<u&&(i=i>=0?i:u+i)>=0&&(a=a>=0?a:u+a,o=o>=0?o:u+o,a<o))for(var f=0,s=t.slice(a,o);i<u&&!(s.length<=f);i++)t[i]=s[f++];return t}function y(n){for(var e=[],r=t.max(n,function(t){return t.length||0}),i=0;i<r;i++)e.push(c(n,function(t){return t?t[i]:null}));return e}function d(t,n,e){if(Ht.isArray(t))return t;if(null===t||void 0===t)return[];var r=[];if(e=e||this,t.length)for(var i=0,a=parseInt(t.length);i<a;i++)r.push(t[i]);return arguments.length<2?r:c(r,n,e)}function m(t){return function(n){return typeof n===t}}function v(t){return function(n){return"[object "+t+"]"===yt.call(n)}}function b(n){return M(n)?function(t){var n={};return k(t,function(t,e){n[e]=b(t)}),n}(n):mt(n)?function(n){return t.arrayMap(n,b)}(n):n}function S(t,n){return t?n?b(t):Ut(M(t)?{}:[],t):t}function M(t){return!!t&&t.constructor===Object}function D(t){return At&&Symbol.isSymbol?Symbol.isSymbol(t):"symbol"==typeof t}function x(t){return function(n,e){if(n){if(Mt(n)||mt(n))return t(n,e);for(var r in n)if(e===n[r])return r}return-1}}function O(t,n){return-1!==Ct(t,n)}function j(t,n,e){for(var r,i=1,a=n.length;i<a;i++)r=n[i],W(w(n[i]),function(n){t[n]=e?S(r[n],e):r[n]});return t}function w(t){var n=[];if(t){if(Object.keys)return Object.keys(t);T(t,function(t,e){n.push(e)})}return n}function A(t){if(Object.values)return t?Object.values(t):[];var n=[];return W(w(t),function(e){n.push(t[e])}),n}function E(t){if(Object.entries)return t?Object.entries(t):[];var n=[];return W(w(t),function(e){n.push([e,t[e]])}),n}function N(t){return A(t)[0]}function F(t){var n=A(t);return n[n.length-1]}function T(t,n,e){for(var r in t)t.hasOwnProperty(r)&&n.call(e||this,t[r],r,t)}function W(t,n,e){for(var r=0,i=t.length||0;r<i;r++)n.call(e||this,t[r],r,t)}function k(t,n,e){return t?mt(t)?bt(t.forEach)?t.forEach(n,e||this):W(t,n,e||this):T(t,n,e||this):t}function I(t,n,e){var r,i,a={};return t&&(Mt(n)?(i=n,n=null):n=bt(n)?n.bind(e||this):i=null,k(t,function(e,u){r=n?n(e,u,t):i?e[i]:e,a[r]?a[r].push(e):a[r]=[e]})),a}function R(t,n){var e=parseFloat(n),r=new Date,i=r.getTime();switch(t){case"y":return Qt.getWhatYear(r,e).getTime();case"M":return Qt.getWhatMonth(r,e).getTime();case"d":return Qt.getWhatDay(r,e).getTime();case"H":return i+60*e*60*1e3;case"m":return i+60*e*1e3;case"s":return i+1e3*e}return i}function Y(t){return(Ht.isDate(t)?t:new Date(t)).toUTCString()}function C(t,n,e){var r=[],i="undefined"!=typeof document;if(this&&this.$context&&(this.$context=null),Ht.isArray(t)?r=t:arguments.length>1?r=[Ht.objectAssign({name:t,value:n},e)]:Ht.isObject(t)&&(r=[t]),!(r.length>0)){var a={};return i&&document.cookie&&Ht.arrayEach(document.cookie.split("; "),function(t){var n=t.indexOf("=");a[zt(t.substring(0,n))]=zt(t.substring(n+1)||"")}),1===arguments.length?a[t]:a}i&&Ht.arrayEach(r,function(t){var n=Ht.objectAssign({},t),e=[];if(n.name){var r=n.expires;e.push($t(n.name)+"="+$t(Ht.isObject(n.value)?JSON.stringify(n.value):n.value)),r&&(isNaN(r)?n.expires=r.replace(/^([0-9]+)(y|M|d|H|m|s)$/,function(t,n,e){return Y(R(e,n))}):/^[0-9]{11,13}$/.test(r)||Ht.isDate(r)?n.expires=Y(r):n.expires=Y(R("d",r))),Ht.arrayEach(["expires","path","domain","secure"],function(t){void 0!==n[t]&&e.push(n[t]&&"secure"===t?t:t+"="+n[t])})}document.cookie=e.join("; ")})}function P(t,n){if(t){if(Ht.isDate(t))return new Date(t.getTime());if(/^[0-9]{11,13}$/.test(t))return new Date(t);if(Ht.isString(t)){n=n||gt.formatDate;var e=[];return Ht.arrayEach(Zt,function(r){for(var i,a,u=0,o=r.rules,f=o.length;u<f;u++){if(i=o[u],(a=n.indexOf(i[0]))>-1){e.push(parseFloat(t.substring(a,a+i[1])||0)+(r.offset||0));break}u===f-1&&e.push(0)}}),new Date(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}}return"Invalid Date"}function U(t,n,e,r){var i=n[e];return i?Ht.isFunction(i)?i(r,e,t):i[r]:r}function H(n,e,r){if(n){if(n=P(n),Ht.isDate(n)){for(var i=e||gt.formatString,a=n.getHours(),u=a<12?"am":"pm",o=n.getTimezoneOffset()/60*-1,f=Ht.objectAssign({},gt.formatStringMatchs,r&&r.formats?r.formats:null),s=[[/y{2,4}/g,"",function(t){return(""+n.getFullYear()).substr(4-t.length)}],[/M{1,2}/g,n.getMonth()+1],[/d{1,2}/g,n.getDate()],[/H{1,2}/g,a],[/h{1,2}/g,a<=12?a:a-12],[/m{1,2}/g,n.getMinutes()],[/s{1,2}/g,n.getSeconds()],[/S{1,3}/g,n.getMilliseconds()],[/a/g,"",function(t){return U(n,f,t,u)}],[/A/g,"",function(t){return U(n,f,t,u.toLocaleUpperCase())}],[/z/g,"",function(t){return U(n,f,t,"GMT")}],[/e/g,"",function(t){return U(n,f,t,n.getDay()-1)}],[/E/g,"",function(t){return U(n,f,t,n.getDay())}],[/q/g,"",function(t){return U(n,f,t,Math.floor((n.getMonth()+3)/3))}],[/Z/g,"",function(e){return U(n,f,e,(o>=0?"+":"-")+t.padStart(o,2,0)+"00")}],[/W/g,"",function(t){return U(n,f,t,J(n))}],[/w/g,"",function(t){return U(n,f,t,K(n))}],[/D/g,"",function(t){return U(n,f,t,q(n))}]],c=0;c<s.length;c++){var l=s[c];i=i.replace(l[0],l[2]||function(n){return t.padStart(l[1],n.length,0)})}return i}return n}return""}function L(t,n,e){var r=P(t);if(n){var i=n&&!isNaN(n)?n:0;r.setFullYear(r.getFullYear()+i)}if("first"===e)r.setMonth(0),r.setDate(1);else if("last"===e)return r.setMonth(11),z(r,0,"last");return r}function z(t,n,e){var r=P(t),i=n&&!isNaN(n)?n:0,a=r.getHours(),u=r.getMinutes(),o=r.getSeconds(),f=r.getMilliseconds();if("first"===e){var s=r.getFullYear(),c=r.getMonth();return(c+=i)<0?new Date(s-Math.ceil((c=Math.abs(c))/12),12-(c%12||1),1,a,u,o,f):new Date(s+Math.floor(c/12),c%12,1,a,u,o,f)}if("last"===e)return new Date(z(r,i+1,"first").getTime()-Jt);var l=r.getDate(),g=z(r,i,"first"),h=g.getMonth();for(g.setDate(l);h<g.getMonth();)g.setDate(--l);return g}function $(t,n,e){var r=P(t),i=Number(/^[0-7]$/.test(e)?e:r.getDay()),a=r.getDay(),u=r.getTime()+((0===i?7:i)-(0===a?7:a))*Jt;return n&&!isNaN(n)&&(u+=n*qt),new Date(u)}function B(t,n,e){return Math.floor((new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime()-new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime())/e)+1}function J(t){if(t){var n=P(t),e=z(t,0,"first"),r=$(e,0,1);if(r<e&&(r=$(e,1,1)),n>=r)return B(r,n,qt)}return 0}function q(t){return t?B(L(t,0,"first"),P(t),Jt):0}function K(t){if(t){var n=P(t),e=L(t,0,"first"),r=$(e,0,1);if(r<e&&(r=$(e,1,1)),n>=r)return B(r,n,qt)}return 0}function Z(t){var n={},e=t.split("?")[1]||"";return e&&Ht.arrayEach(e.split("&"),function(t){var e=t.split("=");n[decodeURIComponent(e[0])]=decodeURIComponent(e[1]||"")}),n}function Q(){return Vt?Vt.origin||Vt.protocol+"//"+Vt.host:""}function V(t){var n=""+t;0===n.indexOf("/")&&(n=Q()+n);var e=n.replace(/#.*/,"").match(/(\?.*)/),r={href:n,hash:"",host:"",hostname:"",protocol:"",port:"",search:e?e[1]:""};r.path=n.replace(/^([a-z0-9.+-]*:)\/\//,function(t,n){return r.protocol=n,""}).replace(/^([a-z0-9.+-]*)(:\d+)?\//,function(t,n,e){var i=e||"";return r.port=i.replace(":",""),r.hostname=n,r.host=n+i,"/"}).replace(/(#.*)/,function(t,n){return r.hash=n,""});var i=r.hash.match(/#((.*)\?|(.*))/);return r.pathname=r.path.replace(/(\?|#.*).*/,""),r.origin=r.protocol+"//"+r.host,r.hashKey=i?i[2]||"":"",r.hashQuery=Z(r.hash),r.searchQuery=Z(r.search),r}function G(n,e){return Ht.isFunction(e)?t.arraySort(t.arrayMap(n,e,this)):t.arraySort(n,e)}function X(){return G.apply(this,arguments)[0]}function _(){return G.apply(this,arguments).reverse()[0]}function tt(t){if(t){var n=parseFloat(t);return isNaN(n)?0:n}return 0}function nt(t){return parseInt(tt(t))}function et(t){return t&&t.trim?t.trim():it(rt(t))}function rt(t){return t&&t.trimLeft?t.trimLeft():(""+t).replace(/^[\s\uFEFF\xA0]+/g,"")}function it(t){return t&&t.trimRight?t.trimRight():(""+t).replace(/[\s\uFEFF\xA0]+$/g,"")}function at(t){var n=new RegExp("(?:"+Ht.objectKeys(t).join("|")+")","g");return function(e){return(""+e).replace(n,function(n){return t[n]})}}function ut(t,n){var e=""+t;if(t.repeat)return t.repeat(n);var r=isNaN(n)?[]:new Array(parseInt(n));return r.join(e)+(r.length>0?e:"")}function ot(t,n,e){var r=""+t;return r.padStart?r.padStart(n,e):n>>0>r.length?(e=""+e,(n-=r.length)>e.length&&(e+=ut(e,n/e.length)),e.slice(0,n)+r):r}function ft(t,n,e){var r=""+t;return r.padEnd?r.padEnd(n,e):n>>0>r.length?(e=""+e,(n-=r.length)>e.length&&(e+=ut(e,n/e.length)),r+e.slice(0,n)):r}function st(t,n,e){var r=""+t;return 0===(1===arguments.length?r:r.substring(e)).indexOf(n)}function ct(t,n,e){var r=""+t;return 1===arguments.length?r.indexOf(n)===r.length-1:r.substring(0,e).indexOf(n)===e-1}t.version="1.6.0";var lt="yyyy-MM-dd HH:mm:ss",gt={formatDate:lt+".SSS",formatString:lt,formatStringMatchs:null,dateDiffRules:[["yyyy",31536e6],["MM",2592e6],["dd",864e5],["HH",36e5],["mm",6e4],["ss",1e3],["S",0]]},ht={arrayUniq:n,uniq:n,arrayUnion:e,union:e,arraySort:r,sort:r,arrayShuffle:i,shuffle:i,arraySample:a,sample:a,arraySome:u,some:u,arrayEvery:o,every:o,arrayFilter:f,filter:f,arrayFind:s,find:s,arrayMap:c,map:c,arraySum:l,sum:l,arrayMean:g,mean:g,arrayReduce:h,reduce:h,arrayCopyWithin:p,copyWithin:p,chunk:function(t,n){var e=[],r=n>>0||1;if(Ht.isArray(t))if(r>=0&&t.length>r)for(var i=0;i<t.length;)e.push(t.slice(i,i+r)),i+=r;else e=t.length?[t]:t;return e},zip:function(){return y(arguments)},unzip:y,from:d,toArray:d,includeArrays:function(t,n){if(!Ht.isArray(n))return Ht.includes(t,n);for(var e=0,r=n.length;e<r;e++)if(!Ht.includes(t,n[e]))return!1;return!0}},pt="undefined",yt=Object.prototype.toString,dt=m(pt),mt=Array.isArray||v("Array"),vt=Number.isInteger,bt=m("function"),St=m("boolean"),Mt=m("string"),Dt=m("number"),xt=v("RegExp"),Ot=m("object"),jt=v("Date"),wt=v("Error"),At=typeof Symbol!==pt,Et=v("Arguments"),Nt=typeof document!==pt,Ft=typeof window!==pt,Tt=typeof FormData!==pt,Wt=typeof Map!==pt,kt=typeof WeakMap!==pt,It=typeof Set!==pt,Rt=typeof WeakSet!==pt,Yt=0,Ct=x(function(t,n){if(t.indexOf)return t.indexOf(n);for(var e=0,r=t.length;e<r;e++)if(n===t[e])return e}),Pt=x(function(t,n){if(t.lastIndexOf)return t.lastIndexOf(n);for(var e=t.length-1;e>=0;e--)if(n===t[e])return e;return-1}),Ut=function(t){if(t){var n=arguments;if(!0!==t)return Object.assign?Object.assign.apply(Object,n):j(t,n);if(n.length>1)return t=mt(t[1])?[]:{},j(t,n,!0)}return t},Ht={isNaN:isNaN,isFinite:isFinite,isUndefined:dt,isArray:mt,isFloat:function(t){return null!==t&&!isNaN(t)&&!vt(t)},isInteger:vt,isFunction:bt,isBoolean:St,isString:Mt,isNumber:Dt,isRegExp:xt,isObject:Ot,isPlainObject:M,isDate:jt,isError:wt,isTypeError:function(t){return!!t&&t.constructor===TypeError},isEmpty:function(t){if(0===t||!Dt(t)){for(var n in t)return!1;return!0}return!1},isNull:function(t){return null===t},isSymbol:D,isArguments:Et,isElement:function(t){return t&&Mt(t.nodeName)&&Dt(t.nodeType)},isDocument:function(t){return t&&9===t.nodeType&&Nt},isWindow:function(t){return t&&t===t.window&&Ft},isFormData:function(t){return Tt&&t instanceof FormData},isMap:function(t){return Wt&&t instanceof Map},isWeakMap:function(t){return kt&&t instanceof WeakMap},isSet:function(t){return It&&t instanceof Set},isWeakSet:function(t){return Rt&&t instanceof WeakSet},isLeapYear:function(n){var e=(n?t.stringToDate(n):new Date).getFullYear();return e%4==0&&(e%100!=0||e%400==0)},getType:function(t){return null===t?""+t:D(t)?"symbol":jt(t)?"date":mt(t)?"array":typeof t},uniqueId:function(t){return(t?""+t:0)+ ++Yt},getSize:function(t){var n=0;return Mt(t)||mt(t)?t.length:(k(t,function(){n++}),n)},indexOf:Ct,lastIndexOf:Pt,includes:O,contains:O,objectAssign:Ut,assign:Ut,extend:Ut,stringToJson:function(t){if(Ot(t))return t;if(Mt(t))try{return JSON.parse(t)}catch(t){console.error(t)}return{}},jsonToString:function(t){if(Ot(t))try{return JSON.stringify(t)}catch(t){console.error(t)}return t?""+t:""},objectKeys:w,keys:w,objectValues:A,values:A,objectEntries:E,entries:E,arrayFirst:N,first:N,arrayLast:F,last:F,objectEach:T,arrayEach:W,forEach:W,each:k,groupBy:I,countBy:function(t,n,e){var r=I(t,n,e||this);return T(r,function(t,n){r[n]=t.length}),r},objectMap:function(t,n,e){var r={};return k(t,function(i,a){r[a]=n.call(e||this,i,a,t)}),r},clone:S,bind:function(n,e){var r=t.from(arguments).slice(2);return e=e||this,function(){return n.apply(e,t.from(arguments).concat(r))}},once:function(n,e){var r=!1,i=null,a=t.from(arguments).slice(2);return e=e||this,function(){return r?i:(i=n.apply(e,t.from(arguments).concat(a)),r=!0,i)}},clearObject:function(t,n){return t&&(M(t)?(T(t,function(n,e){try{delete t[e]}catch(n){t[e]=void 0}}),Ut(t,n)):mt(t)&&(t.length=0,t.push.apply(t,n))),t}},Lt={browse:function(){var t={isNode:!1,isMobile:!1,isPC:!1};if("undefined"==typeof window&&"undefined"!=typeof process)t.nodeJS=!0;else if(t.isMobile=function(){for(var t=["Android","webOS","iPhone","iPad","iPod","SymbianOS","BlackBerry","Windows Phone"],n=navigator.userAgent,e=0;e<t.length;e++)if(n.indexOf(t[e])>0)return!0;return!1}(),t.isPC=!t.isMobile,"undefined"!=typeof document){var n=document.body||document.documentElement;Ht.arrayEach(["webkit","khtml","moz","ms","o"],function(e){t["-"+e]=!!n[e+"MatchesSelector"]})}return t}},zt=decodeURIComponent,$t=encodeURIComponent;Ht.objectAssign(C,{setItem:function(t,n,e){C(t,n,e)},getItem:function(t){return C(t)},removeItem:function(t){C(t,null,{expires:-1})},getJSON:function(){return C()}});var Bt={cookie:C},Jt=864e5,qt=7*Jt,Kt=Date.now||function(){return(new Date).getTime()},Zt=[{rules:[["yyyy",4],["yy",2]]},{rules:[["MM",2],["M",1]],offset:-1},{rules:[["dd",2],["d",1]]},{rules:[["HH",2],["H",1]]},{rules:[["mm",2],["m",1]]},{rules:[["ss",2],["s",1]]},{rules:[["SSS",3],["SS",2],["S",1]]}],Qt={timestamp:Kt,now:Kt,isDateSame:function(t,n,e){return!(!t||!n)&&H(t,e)===H(n,e)},stringToDate:P,dateToString:H,getWhatYear:L,getWhatMonth:z,getWhatWeek:$,getWhatDay:function(t,n){var e=P(t);return n?new Date(e.getTime()+(n&&!isNaN(n)?n*Jt:0)):e},getYearDay:q,getYearWeek:K,getMonthWeek:J,getDayOfYear:function(t,n){return t?Ht.isLeapYear(L(t,n))?366:365:0},getDayOfMonth:function(t,n){return t?Math.floor((z(t,n,"last").getTime()-z(t,n,"first").getTime())/Jt)+1:0},getDateDiff:function(t,n,e){var r={done:!1},i=P(t).getTime(),a=n?P(n).getTime():new Date;if(i<a){var u,o=a-i,f=e&&e.length>0?e:gt.dateDiffRules;r.done=!0;for(var s=0,c=f.length;s<c;s++)o>=(u=f[s])[1]?s===c-1?r[u[0]]=o||0:(r[u[0]]=Math.floor(o/u[1]),o-=r[u[0]]*u[1]):r[u[0]]=0}return r}},Vt=null;"undefined"!=typeof location&&(Vt=location);var Gt={parseUrl:V,getBaseURL:function(){if(Vt){var t=Vt.pathname,n=Ht.lastIndexOf(t,"/")+1;return Q()+(n===t.length?t:t.substring(0,n))}return""},locat:function(){return Vt?V(Vt.href):{}}},Xt={getRandom:function(t,n){return t>=n?t:(t>>=0)+Math.round(Math.random()*((n||9)-t))},arrayMin:X,min:X,arrayMax:_,max:_,commafy:function(t,n){var e=Ht.objectAssign({spaceNumber:3,separator:",",fixed:0},n),r=parseFloat((""+t).replace(/,/g,"")||0).toFixed(e.fixed).split(".");return r[0].replace(new RegExp("(?=(?!(\\b))(\\d{"+e.spaceNumber+"})+$)","g"),e.separator)+(r[1]?"."+r[1]:"")},toNumber:tt,stringToNumber:tt,toInteger:nt,stringToInteger:nt},_t={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},tn={};Ht.arrayEach(Ht.objectKeys(_t),function(t){tn[_t[t]]=t});var nn={trim:et,stringTrim:et,trimLeft:rt,stringTrimLeft:rt,trimRight:it,stringTrimRight:it,escape:at(_t),unescape:at(tn),camelCase:function(t){return(""+t).replace(/(-[a-zA-Z])/g,function(t,n){return n.substring(1).toLocaleUpperCase()})},kebabCase:function(t){return(""+t).replace(/([A-Z])/g,function(t,n){return"-"+n.toLowerCase()})},repeat:ut,stringRepeat:ut,padStart:ot,stringPadStart:ot,padEnd:ft,stringPadEnd:ft,startsWith:st,stringStartsWith:st,endsWith:ct,stringEndsWith:ct},en={};return Ht.objectAssign(en,ht,Ht,Lt,Bt,Qt,Gt,Xt,nn),t.mixin=function(n){en.objectEach(n,function(n,e){t[e]=-1==="cookie".indexOf(e)&&en.isFunction(n)?function(){var e=n.apply(t.$context,arguments);return t.$context=null,e}:n})},t.setup=function(t){en.objectAssign(gt,t)},t.mixin(en),t}); |
{ | ||
"name": "xe-utils", | ||
"version": "1.5.35", | ||
"version": "1.6.0", | ||
"description": "XEUtils 函数库", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
116
README.md
@@ -85,6 +85,9 @@ # XEUtils 函数库 | ||
XEUtils.setup({ | ||
formats : { | ||
formatDate: 'yyyy-MM-dd HH:mm:ss.SSS', | ||
formatString: 'yyyy-MM-dd HH:mm:ss', | ||
formatStringMatchs : { | ||
W: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'], | ||
q: ['第一季度', '第二季度', '第三季度', '第四季度'] | ||
} | ||
}, | ||
commafys: {spaceNumber: 3, separator: ',', fixed: 0} | ||
}) | ||
@@ -385,2 +388,15 @@ ``` | ||
### isDateSame (date1, date2, format) 判断两个日期是否相同 | ||
```JavaScript | ||
import XEUtils from 'xe-utils' | ||
// 例如:new Date() => 2018-12-01 | ||
XEUtils.isDateSame('2018-12-01', '2018-12-01') // true | ||
XEUtils.isDateSame(new Date(), '2018-12-01', 'yyyy') // 判断是否同一年 true | ||
XEUtils.isDateSame(new Date(), XEUtils.stringToDate('12/30/2018', 'MM/dd/yyyy'), 'MM') // 判断是否同一月 true | ||
XEUtils.isDateSame(new Date(), new Date(), 'dd') // 判断是否同一日 true | ||
XEUtils.isDateSame(new Date(), new Date(), 'yyyyMMdd') // 判断是否同年同月同日 true | ||
``` | ||
### getType (obj) 获取对象类型 | ||
@@ -481,2 +497,15 @@ | ||
### clearObject (obj, defs) 清空对象,支持默认值 | ||
```JavaScript | ||
import XEUtils from 'xe-utils' | ||
var a = [11, 22, 33, 33] | ||
XEUtils.clearObject(a) // [] | ||
XEUtils.clearObject(a, [11]) // [11] | ||
var b = {b1: 11, b2: 22} | ||
XEUtils.clearObject(b) // {} | ||
XEUtils.clearObject(b, {b1: 11}) // {b1: 11} | ||
``` | ||
### assign/objectAssign/extend ([deep], target, ...) 浅拷贝一个或者多个对象到目标对象中,如果第一值是true,则使用深拷贝 | ||
@@ -577,8 +606,8 @@ | ||
}) | ||
arrayEach([11, 22, 33], (item, index) => { | ||
// 数组迭代器 | ||
}) | ||
objectEach({a: 11, b: 22}, (item, key) => { | ||
// 对象迭代器 | ||
}) | ||
arrayEach([11, 22, 33], (item, index) => { | ||
// 数组迭代器 | ||
}) | ||
``` | ||
@@ -820,25 +849,30 @@ | ||
| 属性 | 描述 | 备注 | | ||
|------|------|------| | ||
| yy | 年份 | 自动截取后两位 | | ||
| 属性 | 描述 | 备注 | 值 | | ||
|------|------|------|------| | ||
| yy | 年份 | 自动截取后两位 | | | ||
| yyyy | 年份 | | | ||
| M | 月份 | | | ||
| MM | 月份 | 自动补0 | | ||
| d | 日 | | | ||
| dd | 日 | 自动补0 | | ||
| H | 小时 | | | ||
| HH | 小时 | 自动补0 | | ||
| m | 分钟 | | | ||
| mm | 分钟 | 自动补0 | | ||
| s | 秒 | | | ||
| ss | 秒 | 自动补0 | | ||
| S | 毫秒 | | | ||
| SSS | 毫秒 | 自动补0 | | ||
| D | 年份的第几天 | | | ||
| E | 星期几 | | | ||
| q | 季度 | | | ||
| w | 年份的第几周 | | | ||
| W | 月份的第几周 | | | ||
| z | 时区 | | | ||
| Z | 时区值 | | | ||
| M | 月份 | | 1~12 | | ||
| MM | 月份 | 自动补0 | 1~12 | | ||
| d | 日 | | 1~31 | | ||
| dd | 日 | 自动补0 | 1~31 | | ||
| h | 12小时制 | | 1~12 | | ||
| hh | 12小时制 | 自动补0 | 1~12 | | ||
| H | 24小时制 | | 0~23 | | ||
| HH | 24小时制 | 自动补0 | 0~23 | | ||
| m | 分钟 | | 1~59 | | ||
| mm | 分钟 | 自动补0 | 1~59 | | ||
| s | 秒 | | 1~59 | | ||
| ss | 秒 | 自动补0 | 1~59 | | ||
| S | 毫秒 | | 1~999 | | ||
| SSS | 毫秒 | 自动补0 | 1~999 | | ||
| a | 上午,下午 | | am/pm | | ||
| A | 上午,下午 | | AM/PM | | ||
| D | 年份的第几天 | | 1~366 | | ||
| e | 星期几 | | | 0~6 | | ||
| E | 星期几 | | | 1~7 | | ||
| q | 季度 | | 1~4 | | ||
| w | 年份的第几周 | 1~53 | | ||
| W | 月份的第几周 | 1~5 | | ||
| z | 时区 | | GMT | | ||
| Z | 时区值 | | [+-]HHmm | | ||
@@ -862,4 +896,4 @@ ```JavaScript | ||
XEUtils.dateToString(new Date(), 'yy年M月d日 HH时m分s秒S毫秒,星期E 第q季度') // '17年1月1日 14时5分30秒99毫秒,星期3 第4季度' | ||
XEUtils.dateToString(new Date(), 'yyyy年MM月dd日 hh时mm分ss秒SSS毫秒 星期E 第q季度 今年第D天 今年第w周 当月第W周 时区zZ') | ||
// 2018年05月29日 09时44分46秒647毫秒 星期2 第2季度 今年第149天 今年第22周 当月第4周 时区GMT+0800 | ||
XEUtils.dateToString(new Date(), 'yyyy年MM月dd日 hh时mm分ss秒SSS毫秒 星期E e 第q季度 今年第D天 今年第w周 当月第W周 a A 时区zZ') | ||
// 2018年05月29日 09时44分46秒647毫秒 星期2 1 第2季度 今年第149天 今年第22周 当月第4周 am AM 时区GMT+0800 | ||
``` | ||
@@ -915,3 +949,3 @@ | ||
### getDaysOfYear ( date, month ) 返回当前年份的天数,可以指定前几个年或后几个年,默认当前 | ||
### getDayOfYear ( date, month ) 返回当前年份的天数,可以指定前几个年或后几个年,默认当前 | ||
@@ -921,7 +955,7 @@ ```JavaScript | ||
XEUtils.getDaysOfYear(new Date()) // 365 | ||
XEUtils.getDaysOfYear(1513735830000) // 365 | ||
XEUtils.getDaysOfYear('2017-12-20') // 365 | ||
XEUtils.getDaysOfYear('2019-12-20', 1) // 366 | ||
XEUtils.getDaysOfYear('2020-12-20') // 366 | ||
XEUtils.getDayOfYear(new Date()) // 365 | ||
XEUtils.getDayOfYear(1513735830000) // 365 | ||
XEUtils.getDayOfYear('2017-12-20') // 365 | ||
XEUtils.getDayOfYear('2019-12-20', 1) // 366 | ||
XEUtils.getDayOfYear('2020-12-20') // 366 | ||
``` | ||
@@ -959,3 +993,3 @@ | ||
### getDaysOfMonth ( date, month ) 返回当前月份的天数,可以指定前几个月或后几个月,默认当前 | ||
### getDayOfMonth ( date, month ) 返回当前月份的天数,可以指定前几个月或后几个月,默认当前 | ||
@@ -965,7 +999,7 @@ ```JavaScript | ||
XEUtils.getDaysOfMonth(new Date()) // 31 | ||
XEUtils.getDaysOfMonth(1513735830000) // 31 | ||
XEUtils.getDaysOfMonth('2017-12-20') // 31 | ||
XEUtils.getDaysOfMonth('2017-12-20', -1) // 30 | ||
XEUtils.getDaysOfMonth('2017-12-20', 1) // 31 | ||
XEUtils.getDayOfMonth(new Date()) // 31 | ||
XEUtils.getDayOfMonth(1513735830000) // 31 | ||
XEUtils.getDayOfMonth('2017-12-20') // 31 | ||
XEUtils.getDayOfMonth('2017-12-20', -1) // 30 | ||
XEUtils.getDayOfMonth('2017-12-20', 1) // 31 | ||
``` | ||
@@ -972,0 +1006,0 @@ |
'use strict' | ||
var formatString = 'yyyy-MM-dd HH:mm:ss' | ||
var setupDefaults = { | ||
formats: null | ||
formatDate: formatString + '.SSS', | ||
formatString: formatString, | ||
formatStringMatchs: null, | ||
dateDiffRules: [['yyyy', 31536000000], ['MM', 2592000000], ['dd', 86400000], ['HH', 3600000], ['mm', 60000], ['ss', 1000], ['S', 0]] | ||
} | ||
module.exports = setupDefaults |
@@ -5,4 +5,4 @@ 'use strict' | ||
XEUtils.version = '1.5.35' | ||
XEUtils.version = '1.6.0' | ||
module.exports = XEUtils |
@@ -551,2 +551,28 @@ 'use strict' | ||
/** | ||
* 清空对象 | ||
* | ||
* @param {Object} obj 对象 | ||
* @param {Object} defs 默认值 | ||
* @return {Object} | ||
*/ | ||
function clearObject (obj, defs) { | ||
if (obj) { | ||
if (isPlainObject(obj)) { | ||
objectEach(obj, function (val, key) { | ||
try { | ||
delete obj[key] | ||
} catch (e) { | ||
obj[key] = undefined | ||
} | ||
}) | ||
objectAssign(obj, defs) | ||
} else if (isArray(obj)) { | ||
obj.length = 0 | ||
obj.push.apply(obj, defs) | ||
} | ||
} | ||
return obj | ||
} | ||
/** | ||
* 获取对象所有属性 | ||
@@ -769,5 +795,6 @@ * | ||
bind: bind, | ||
once: once | ||
once: once, | ||
clearObject: clearObject | ||
} | ||
module.exports = baseExports |
@@ -20,3 +20,3 @@ 'use strict' | ||
var dateFormatRules = [ | ||
{rules: [['yyyy', 4], ['yyy', 3], ['yy', 2]]}, | ||
{rules: [['yyyy', 4], ['yy', 2]]}, | ||
{rules: [['MM', 2], ['M', 1]], offset: -1}, | ||
@@ -31,2 +31,16 @@ {rules: [['dd', 2], ['d', 1]]}, | ||
/** | ||
* 比较两个日期 | ||
* | ||
* @param {Number/String/Date} date1 日期 | ||
* @param {Number/String/Date} date2 日期 | ||
* @param {String} format 格式化 | ||
*/ | ||
function isDateSame (date1, date2, format) { | ||
if (date1 && date2) { | ||
return dateToString(date1, format) === dateToString(date2, format) | ||
} | ||
return false | ||
} | ||
/** | ||
* 字符串转为日期 | ||
@@ -47,3 +61,3 @@ * | ||
if (baseExports.isString(str)) { | ||
format = format || 'yyyy-MM-dd HH:mm:ss.SSS' | ||
format = format || setupDefaults.formatDate | ||
var dates = [] | ||
@@ -84,3 +98,3 @@ baseExports.arrayEach(dateFormatRules, function (item) { | ||
* @param {Date} date 日期或数字 | ||
* @param {String} format 输出日期格式(年份(yy|yyyy)、月份(M|MM自动补0)、天(d|dd自动补0)、12小时制(h|hh自动补0)、24小时制(H|HH自动补0)、分钟(m|mm自动补0)、秒(s|ss自动补0)、毫秒(S|SSS自动补0)、D当年的第几天、E星期几、w当年的第几周、W当月的第几周、q当年第几个季度、z时区、Z时区值) | ||
* @param {String} format 输出日期格式(年份(yy|yyyy)、月份(M|MM自动补0)、天(d|dd自动补0)、12小时制(h|hh自动补0)、24小时制(H|HH自动补0)、分钟(m|mm自动补0)、秒(s|ss自动补0)、毫秒(S|SSS自动补0)、D当年的第几天、a/A上午下午、e/E星期几、w当年的第几周、W当月的第几周、q当年第几个季度、z时区、Z时区值) | ||
* @param {Object} options {formats: {q: ['日', '一', '二', '三', '四', '五', '六'], E: function (value, match, date) {return '三'}, }} 自定义格式化模板 | ||
@@ -94,9 +108,9 @@ * @return {String} | ||
var empty = '' | ||
var result = empty + (format || 'yyyy-MM-dd HH:mm:ss') | ||
var result = format || setupDefaults.formatString | ||
var hours = date.getHours() | ||
var fullYear = empty + date.getFullYear() | ||
var apm = hours < 12 ? 'am' : 'pm' | ||
var zoneHours = date.getTimezoneOffset() / 60 * -1 | ||
var formats = baseExports.objectAssign({}, setupDefaults.formats, options && options.formats ? options.formats : null) | ||
var formats = baseExports.objectAssign({}, setupDefaults.formatStringMatchs, options && options.formats ? options.formats : null) | ||
var timeRules = [ | ||
[/y{2,4}/g, fullYear, function (match) { return fullYear.substr(4 - match.length) }], | ||
[/y{2,4}/g, empty, function (match) { return (empty + date.getFullYear()).substr(4 - match.length) }], | ||
[/M{1,2}/g, date.getMonth() + 1], | ||
@@ -109,3 +123,6 @@ [/d{1,2}/g, date.getDate()], | ||
[/S{1,3}/g, date.getMilliseconds()], | ||
[/a/g, empty, function (match) { return handleCustomTemplate(date, formats, match, apm) }], | ||
[/A/g, empty, function (match) { return handleCustomTemplate(date, formats, match, apm.toLocaleUpperCase()) }], | ||
[/z/g, empty, function (match) { return handleCustomTemplate(date, formats, match, 'GMT') }], | ||
[/e/g, empty, function (match) { return handleCustomTemplate(date, formats, match, date.getDay() - 1) }], | ||
[/E/g, empty, function (match) { return handleCustomTemplate(date, formats, match, date.getDay()) }], | ||
@@ -291,3 +308,3 @@ [/q/g, empty, function (match) { return handleCustomTemplate(date, formats, match, Math.floor((date.getMonth() + 3) / 3)) }], | ||
*/ | ||
function getDaysOfYear (date, month) { | ||
function getDayOfYear (date, month) { | ||
if (date) { | ||
@@ -306,3 +323,3 @@ return baseExports.isLeapYear(getWhatYear(date, month)) ? 366 : 365 | ||
*/ | ||
function getDaysOfMonth (date, month) { | ||
function getDayOfMonth (date, month) { | ||
if (date) { | ||
@@ -314,4 +331,2 @@ return Math.floor((getWhatMonth(date, month, 'last').getTime() - getWhatMonth(date, month, 'first').getTime()) / DAY_TIME) + 1 | ||
var dateDiffRules = [['yyyy', 31536000000], ['MM', 2592000000], ['dd', DAY_TIME], ['HH', 3600000], ['mm', 60000], ['ss', 1000], ['S', 0]] | ||
/** | ||
@@ -332,3 +347,3 @@ * 返回两个日期之间差距,如果结束日期小于开始日期done为fasle | ||
var diffTime = endTime - startTime | ||
var rule = rules && rules.length > 0 ? rules : dateDiffRules | ||
var rule = rules && rules.length > 0 ? rules : setupDefaults.dateDiffRules | ||
result.done = true | ||
@@ -355,2 +370,3 @@ for (var index = 0, len = rule.length; index < len; index++) { | ||
now: timestamp, | ||
isDateSame: isDateSame, | ||
stringToDate: stringToDate, | ||
@@ -365,4 +381,4 @@ dateToString: dateToString, | ||
getMonthWeek: getMonthWeek, | ||
getDaysOfYear: getDaysOfYear, | ||
getDaysOfMonth: getDaysOfMonth, | ||
getDayOfYear: getDayOfYear, | ||
getDayOfMonth: getDayOfMonth, | ||
getDateDiff: getDateDiff | ||
@@ -369,0 +385,0 @@ } |
175186
2.77%4116
2.29%1313
2.66%