W72crm_web-master/node_modules/vue-moment/dist/vue-moment.es.js

273 lines
8.7 KiB
JavaScript
Raw Normal View History

2025-05-27 11:25:53 +08:00
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
function _toConsumableArray(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
arr2[i] = arr[i];
}return arr2;
} else {
return Array.from(arr);
}
}
module.exports = {
install: function install(Vue, options) {
var moment = options && options.moment ? options.moment : require('moment');
Object.defineProperties(Vue.prototype, {
$moment: {
get: function get() {
return moment;
}
}
});
Vue.moment = moment;
Vue.filter('moment', function () {
var arguments$1 = arguments;
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments$1[_key];
}
args = Array.prototype.slice.call(args);
var input = args.shift();
var date = void 0;
if (Array.isArray(input) && typeof input[0] === 'string') {
// If input is array, assume we're being passed a format pattern to parse against.
// Format pattern will accept an array of potential formats to parse against.
// Date string should be at [0], format pattern(s) should be at [1]
date = moment(input[0], input[1], true);
} else if (typeof input === 'number') {
if (input.toString().length < 12) {
// If input is an integer with fewer than 12 digits, assume Unix seconds...
date = moment.unix(input);
} else {
// ..otherwise, assume milliseconds.
date = moment(input);
}
} else {
// Otherwise, throw the input at moment and see what happens...
date = moment(input);
}
if (!input || !date.isValid()) {
// Log a warning if moment couldn't reconcile the input. Better than throwing an error?
console.warn('Could not build a valid `moment` object from input.');
return input;
}
function parse() {
var arguments$1 = arguments;
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments$1[_key2];
}
args = Array.prototype.slice.call(args);
var method = args.shift();
switch (method) {
case 'add':
{
/*
* Mutates the original moment by adding time.
* http://momentjs.com/docs/#/manipulating/add/
*/
var addends = args.shift().split(',').map(Function.prototype.call, String.prototype.trim);
var obj = {};
for (var n = 0; n < addends.length; n++) {
var addend = addends[n].split(' ');
obj[addend[1]] = addend[0];
}
date.add(obj);
break;
}
case 'subtract':
{
/*
* Mutates the original moment by subtracting time.
* http://momentjs.com/docs/#/manipulating/subtract/
*/
var subtrahends = args.shift().split(',').map(Function.prototype.call, String.prototype.trim);
var _obj = {};
for (var _n = 0; _n < subtrahends.length; _n++) {
var subtrahend = subtrahends[_n].split(' ');
_obj[subtrahend[1]] = subtrahend[0];
}
date.subtract(_obj);
break;
}
case 'from':
{
/*
* Display a moment in relative time, either from now or from a specified date.
* http://momentjs.com/docs/#/displaying/fromnow/
*/
var from = 'now';
var removeSuffix = false;
if (args[0] === 'now') { args.shift(); }
// If valid, assume it is a date we want the output computed against.
if (moment(args[0]).isValid()) { from = moment(args.shift()); }
if (args[0] === true) {
args.shift();
removeSuffix = true;
}
if (from !== 'now') {
date = date.from(from, removeSuffix);
} else {
date = date.fromNow(removeSuffix);
}
break;
}
case 'diff':
{
/*
* Mutates the original moment by doing a difference with another date.
* http://momentjs.com/docs/#/displaying/difference/
*/
var referenceTime = moment();
var units = '';
var float = false;
if (moment(args[0]).isValid()) {
// If valid, assume it is a date we want the output computed against.
referenceTime = moment(args.shift());
} else if (args[0] === null || args[0] === 'now') {
// If null or 'now', remove argument and proceed with default referenceTime.
args.shift();
}
if (args[0]) { units = args.shift(); }
if (args[0] === true) { float = args.shift(); }
date = date.diff(referenceTime, units, float);
break;
}
case 'calendar':
{
/*
* Formats a date with different strings depending on how close
* to a certain date (today by default) the date is.
* http://momentjs.com/docs/#/displaying/calendar-time/
*/
var _referenceTime = moment();
var formats = {};
if (moment(args[0]).isValid()) {
// If valid, assume it is a date we want the output computed against.
_referenceTime = moment(args.shift());
} else if (args[0] === null || args[0] === 'now') {
// If null or 'now', remove argument and proceed with default referenceTime.
args.shift();
}
if (_typeof(args[0]) === 'object') { formats = args.shift(); }
date = date.calendar(_referenceTime, formats);
break;
}
case 'utc':
{
/*
* Mutates the original moment by converting to UTC
* https://momentjs.com/docs/#/manipulating/utc/
*/
date.utc();
break;
}
case 'timezone':
{
/*
* Mutates the original moment by converting to a new timezone.
* https://momentjs.com/timezone/docs/#/using-timezones/converting-to-zone/
*/
date.tz(args.shift());
break;
}
default:
{
/*
* Formats a date by taking a string of tokens and replacing
* them with their corresponding values.
* http://momentjs.com/docs/#/displaying/format/
*/
var format = method;
date = date.format(format);
}
}
if (args.length) { parse.apply(parse, args); }
}
parse.apply(parse, args);
return date;
});
Vue.filter('duration', function () {
var arguments$1 = arguments;
for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
args[_key3] = arguments$1[_key3];
}
/*
* Basic pass-through filter for leveraging moment.js's ability
* to manipulate and display durations.
* https://momentjs.com/docs/#/durations/
*/
args = Array.prototype.slice.call(args);
var input = args.shift();
var method = args.shift();
function createDuration(time) {
if (!Array.isArray(time)) { time = [time]; }
var result = moment.duration.apply(moment, _toConsumableArray(time));
if (!result.isValid()) { console.warn('Could not build a valid `duration` object from input.'); }
return result;
}
var duration = createDuration(input);
if (method === 'add' || method === 'subtract') {
// Generates a duration object and either adds or subtracts it
// from our original duration.
var durationChange = createDuration(args);
duration[method](durationChange);
} else if (duration && duration[method]) {
var _duration;
// This gives a full proxy to moment.duration functions.
duration = (_duration = duration)[method].apply(_duration, _toConsumableArray(args));
}
return duration;
});
}
};