167 lines
4.3 KiB
JavaScript
167 lines
4.3 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-a0b34764.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 './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, blocks); // add autofix
|
|
|
|
Object.keys(opts.blocks).forEach(function (bk) {
|
|
var b = opts.blocks[bk];
|
|
if (!('autofix' in b)) 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);
|
|
}
|
|
}]);
|
|
|
|
return MaskedDate;
|
|
}(MaskedPattern);
|
|
MaskedDate.DEFAULTS = {
|
|
pattern: 'd{.}`m{.}`Y',
|
|
format: function format(date) {
|
|
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 };
|