Files
front/dist/assets/vendor/imask/esm/masked/date.js
2022-04-07 14:11:14 +02:00

178 lines
4.6 KiB
JavaScript

import { d as _inherits, e as _createSuper, a as _classCallCheck, _ as _createClass, f as _slicedToArray, g as _get, h as _getPrototypeOf, i as _set } from '../_rollupPluginBabelHelpers-b054ecd2.js';
import MaskedPattern from './pattern.js';
import MaskedRange from './range.js';
import IMask from '../core/holder.js';
import '../core/utils.js';
import '../core/change-details.js';
import './base.js';
import '../core/continuous-tail-details.js';
import './pattern/input-definition.js';
import './factory.js';
import './pattern/fixed-definition.js';
import './pattern/chunk-tail-details.js';
import './pattern/cursor.js';
import './regexp.js';
/** Date mask */
var MaskedDate = /*#__PURE__*/function (_MaskedPattern) {
_inherits(MaskedDate, _MaskedPattern);
var _super = _createSuper(MaskedDate);
/** Pattern mask for date according to {@link MaskedDate#format} */
/** Start date */
/** End date */
/** */
/**
@param {Object} opts
*/
function MaskedDate(opts) {
_classCallCheck(this, MaskedDate);
return _super.call(this, Object.assign({}, MaskedDate.DEFAULTS, opts));
}
/**
@override
*/
_createClass(MaskedDate, [{
key: "_update",
value: function _update(opts) {
if (opts.mask === Date) delete opts.mask;
if (opts.pattern) opts.mask = opts.pattern;
var blocks = opts.blocks;
opts.blocks = Object.assign({}, MaskedDate.GET_DEFAULT_BLOCKS()); // adjust year block
if (opts.min) opts.blocks.Y.from = opts.min.getFullYear();
if (opts.max) opts.blocks.Y.to = opts.max.getFullYear();
if (opts.min && opts.max && opts.blocks.Y.from === opts.blocks.Y.to) {
opts.blocks.m.from = opts.min.getMonth() + 1;
opts.blocks.m.to = opts.max.getMonth() + 1;
if (opts.blocks.m.from === opts.blocks.m.to) {
opts.blocks.d.from = opts.min.getDate();
opts.blocks.d.to = opts.max.getDate();
}
}
Object.assign(opts.blocks, this.blocks, blocks); // add autofix
Object.keys(opts.blocks).forEach(function (bk) {
var b = opts.blocks[bk];
if (!('autofix' in b) && 'autofix' in opts) b.autofix = opts.autofix;
});
_get(_getPrototypeOf(MaskedDate.prototype), "_update", this).call(this, opts);
}
/**
@override
*/
}, {
key: "doValidate",
value: function doValidate() {
var _get2;
var date = this.date;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return (_get2 = _get(_getPrototypeOf(MaskedDate.prototype), "doValidate", this)).call.apply(_get2, [this].concat(args)) && (!this.isComplete || this.isDateExist(this.value) && date != null && (this.min == null || this.min <= date) && (this.max == null || date <= this.max));
}
/** Checks if date is exists */
}, {
key: "isDateExist",
value: function isDateExist(str) {
return this.format(this.parse(str, this), this).indexOf(str) >= 0;
}
/** Parsed Date */
}, {
key: "date",
get: function get() {
return this.typedValue;
},
set: function set(date) {
this.typedValue = date;
}
/**
@override
*/
}, {
key: "typedValue",
get: function get() {
return this.isComplete ? _get(_getPrototypeOf(MaskedDate.prototype), "typedValue", this) : null;
},
set: function set(value) {
_set(_getPrototypeOf(MaskedDate.prototype), "typedValue", value, this, true);
}
/**
@override
*/
}, {
key: "maskEquals",
value: function maskEquals(mask) {
return mask === Date || _get(_getPrototypeOf(MaskedDate.prototype), "maskEquals", this).call(this, mask);
}
}]);
return MaskedDate;
}(MaskedPattern);
MaskedDate.DEFAULTS = {
pattern: 'd{.}`m{.}`Y',
format: function format(date) {
if (!date) return '';
var day = String(date.getDate()).padStart(2, '0');
var month = String(date.getMonth() + 1).padStart(2, '0');
var year = date.getFullYear();
return [day, month, year].join('.');
},
parse: function parse(str) {
var _str$split = str.split('.'),
_str$split2 = _slicedToArray(_str$split, 3),
day = _str$split2[0],
month = _str$split2[1],
year = _str$split2[2];
return new Date(year, month - 1, day);
}
};
MaskedDate.GET_DEFAULT_BLOCKS = function () {
return {
d: {
mask: MaskedRange,
from: 1,
to: 31,
maxLength: 2
},
m: {
mask: MaskedRange,
from: 1,
to: 12,
maxLength: 2
},
Y: {
mask: MaskedRange,
from: 1900,
to: 9999
}
};
};
IMask.MaskedDate = MaskedDate;
export { MaskedDate as default };