@gsretail.com/gui-core
Version:
A skeleton to create your own React component library using Rollup, TypeScript, Sass and Storybook
2 lines (1 loc) • 1.99 kB
JavaScript
import t from"../../core/change-details.js";import{DIRECTION as e,isString as i}from"../../core/utils.js";import s from"../../core/continuous-tail-details.js";class a{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(e,i){return void 0===e&&(e=0),void 0===i&&(i=this._value.length),this._value=this._value.slice(0,e)+this._value.slice(i),this._value||(this._isRawInput=!1),new t}nearestInputPos(t,i){void 0===i&&(i=e.NONE);const s=this._value.length;switch(i){case e.LEFT:case e.FORCE_LEFT:return 0;case e.NONE:case e.RIGHT:case e.FORCE_RIGHT:default:return s}}totalInputPositions(t,e){return void 0===t&&(t=0),void 0===e&&(e=this._value.length),this._isRawInput?e-t:0}extractInput(t,e,i){return void 0===t&&(t=0),void 0===e&&(e=this._value.length),void 0===i&&(i={}),i.raw&&this._isRawInput&&this._value.slice(t,e)||""}get isComplete(){return!0}get isFilled(){return Boolean(this._value)}_appendChar(e,i){void 0===i&&(i={});const s=new t;if(this.isFilled)return s;const a=!0===this.eager||"append"===this.eager,r=this.char===e&&(this.isUnmasking||i.input||i.raw)&&(!i.raw||!a)&&!i.tail;return r&&(s.rawInserted=this.char),this._value=s.inserted=this.char,this._isRawInput=r&&(i.raw||i.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const e=new t;return this.isFilled||(this._value=e.inserted=this.char),e}extractTail(){return new s("")}appendTail(t){return i(t)&&(t=new s(String(t))),t.appendTo(this)}append(t,e,i){const s=this._appendChar(t[0],e);return null!=i&&(s.tailShift+=this.appendTail(i).tailShift),s}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=Boolean(t._rawInputValue)}}export{a as default};