143 lines
4.1 KiB
JavaScript
143 lines
4.1 KiB
JavaScript
import { _ as _createClass, a as _classCallCheck } from '../../_rollupPluginBabelHelpers-a0b34764.js';
|
|
import ChangeDetails from '../../core/change-details.js';
|
|
import { DIRECTION, isString } from '../../core/utils.js';
|
|
import ContinuousTailDetails from '../../core/continuous-tail-details.js';
|
|
|
|
var PatternFixedDefinition = /*#__PURE__*/function () {
|
|
/** */
|
|
|
|
/** */
|
|
|
|
/** */
|
|
|
|
/** */
|
|
function PatternFixedDefinition(opts) {
|
|
_classCallCheck(this, PatternFixedDefinition);
|
|
|
|
Object.assign(this, opts);
|
|
this._value = '';
|
|
}
|
|
|
|
_createClass(PatternFixedDefinition, [{
|
|
key: "value",
|
|
get: function get() {
|
|
return this._value;
|
|
}
|
|
}, {
|
|
key: "unmaskedValue",
|
|
get: function get() {
|
|
return this.isUnmasking ? this.value : '';
|
|
}
|
|
}, {
|
|
key: "reset",
|
|
value: function reset() {
|
|
this._isRawInput = false;
|
|
this._value = '';
|
|
}
|
|
}, {
|
|
key: "remove",
|
|
value: function remove() {
|
|
var fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
var toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._value.length;
|
|
this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);
|
|
if (!this._value) this._isRawInput = false;
|
|
return new ChangeDetails();
|
|
}
|
|
}, {
|
|
key: "nearestInputPos",
|
|
value: function nearestInputPos(cursorPos) {
|
|
var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DIRECTION.NONE;
|
|
var minPos = 0;
|
|
var maxPos = this._value.length;
|
|
|
|
switch (direction) {
|
|
case DIRECTION.LEFT:
|
|
case DIRECTION.FORCE_LEFT:
|
|
return minPos;
|
|
|
|
case DIRECTION.NONE:
|
|
case DIRECTION.RIGHT:
|
|
case DIRECTION.FORCE_RIGHT:
|
|
default:
|
|
return maxPos;
|
|
}
|
|
}
|
|
}, {
|
|
key: "extractInput",
|
|
value: function extractInput() {
|
|
var fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
var toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._value.length;
|
|
var flags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
return flags.raw && this._isRawInput && this._value.slice(fromPos, toPos) || '';
|
|
}
|
|
}, {
|
|
key: "isComplete",
|
|
get: function get() {
|
|
return true;
|
|
}
|
|
}, {
|
|
key: "_appendChar",
|
|
value: function _appendChar(str) {
|
|
var flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
var details = new ChangeDetails();
|
|
if (this._value) return details;
|
|
var appended = this.char === str[0];
|
|
var isResolved = appended && (this.isUnmasking || flags.input || flags.raw) && !flags.tail;
|
|
if (isResolved) details.rawInserted = this.char;
|
|
this._value = details.inserted = this.char;
|
|
this._isRawInput = isResolved && (flags.raw || flags.input);
|
|
return details;
|
|
}
|
|
}, {
|
|
key: "_appendPlaceholder",
|
|
value: function _appendPlaceholder() {
|
|
var details = new ChangeDetails();
|
|
if (this._value) return details;
|
|
this._value = details.inserted = this.char;
|
|
return details;
|
|
}
|
|
}, {
|
|
key: "extractTail",
|
|
value: function extractTail() {
|
|
arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;
|
|
return new ContinuousTailDetails('');
|
|
} // $FlowFixMe no ideas
|
|
|
|
}, {
|
|
key: "appendTail",
|
|
value: function appendTail(tail) {
|
|
if (isString(tail)) tail = new ContinuousTailDetails(String(tail));
|
|
return tail.appendTo(this);
|
|
}
|
|
}, {
|
|
key: "append",
|
|
value: function append(str, flags, tail) {
|
|
var details = this._appendChar(str, flags);
|
|
|
|
if (tail != null) {
|
|
details.tailShift += this.appendTail(tail).tailShift;
|
|
}
|
|
|
|
return details;
|
|
}
|
|
}, {
|
|
key: "doCommit",
|
|
value: function doCommit() {}
|
|
}, {
|
|
key: "state",
|
|
get: function get() {
|
|
return {
|
|
_value: this._value,
|
|
_isRawInput: this._isRawInput
|
|
};
|
|
},
|
|
set: function set(state) {
|
|
Object.assign(this, state);
|
|
}
|
|
}]);
|
|
|
|
return PatternFixedDefinition;
|
|
}();
|
|
|
|
export { PatternFixedDefinition as default };
|