123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.calculateNewValue = calculateNewValue;
- var _selectionRange = require("./selectionRange");
- var _getValue2 = require("./getValue");
- var _isValidDateValue = require("./isValidDateValue");
- var _isValidInputTimeValue = require("./isValidInputTimeValue");
- function calculateNewValue(newEntry, element, value = (() => {
- var _getValue;
- return (_getValue = (0, _getValue2.getValue)(element)) != null ? _getValue :
- /* istanbul ignore next */
- '';
- })(), selectionRange = (0, _selectionRange.getSelectionRange)(element), deleteContent) {
- const selectionStart = selectionRange.selectionStart === null ? value.length : selectionRange.selectionStart;
- const selectionEnd = selectionRange.selectionEnd === null ? value.length : selectionRange.selectionEnd;
- const prologEnd = Math.max(0, selectionStart === selectionEnd && deleteContent === 'backward' ? selectionStart - 1 : selectionStart);
- const prolog = value.substring(0, prologEnd);
- const epilogStart = Math.min(value.length, selectionStart === selectionEnd && deleteContent === 'forward' ? selectionEnd + 1 : selectionEnd);
- const epilog = value.substring(epilogStart, value.length);
- let newValue = `${prolog}${newEntry}${epilog}`;
- const newSelectionStart = prologEnd + newEntry.length;
- if (element.type === 'date' && !(0, _isValidDateValue.isValidDateValue)(element, newValue)) {
- newValue = value;
- }
- if (element.type === 'time' && !(0, _isValidInputTimeValue.isValidInputTimeValue)(element, newValue)) {
- if ((0, _isValidInputTimeValue.isValidInputTimeValue)(element, newEntry)) {
- newValue = newEntry;
- } else {
- newValue = value;
- }
- }
- return {
- newValue,
- newSelectionStart
- };
- }
|