import { _ as _createClass, a as _classCallCheck } from '../../_rollupPluginBabelHelpers-b054ecd2.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 = ''; this.isFixed = true; } _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: "isFilled", get: function get() { return Boolean(this._value); } }, { key: "_appendChar", value: function _appendChar(ch) { var flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var details = new ChangeDetails(); if (this._value) return details; var appended = this.char === ch; var isResolved = appended && (this.isUnmasking || flags.input || flags.raw) && !this.eager && !flags.tail; if (isResolved) details.rawInserted = this.char; this._value = details.inserted = this.char; this._isRawInput = isResolved && (flags.raw || flags.input); return details; } }, { key: "_appendEager", value: function _appendEager() { return this._appendChar(this.char); } }, { 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[0], 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 };