@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 3.36 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as t}from"../../../../chunks/tslib.es6.js";import o from"../../../../core/Accessor.js";import{generateUUID as i}from"../../../../core/uuid.js";import{property as l}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";let s=class extends o{constructor(t){super(t),this.actual=null,this.lockable=!0,this.id=i(),this.inputValue=null,this.readOnly=!1,this.suffix=null,this.visible=!0,this.invalid=!1,this.unlockOnVertexPlacement=!0}get committed(){return this.lockable?this._get("committed"):null}set committed(t){this.lockable&&this._set("committed",t)}get dirty(){return null!=this.inputValue}get locked(){return this.lockable&&null!=this.committed}onInput(t){this.inputValue=t,this.invalid=!1}onCommit(t,o,i){this.lockable?this._onCommitLockable(t,i):this._onCommitNonLockable(i),this.invalid&&"commit-and-exit"===t||i.onCommit(o,t)}_onCommitLockable(t,o){const{inputValue:i,locked:l}=this;l&&n(i)?this.unlock():("commit-and-exit"===t&&!l||null!=i)&&this._parseInputAndLock(o)}_onCommitNonLockable(t){const{inputValue:o}=this;n(o)?this.lockable?this.setActual(null):this.clearInputValue():null!=o&&this._parseInputAndSetActual(t)}applyValue(t){this.lockable?this.lock(t):this.setActual(t)}clearInputValue(){this.inputValue=null,this.invalid=!1}setActual(t){this.actual=t,this.clearInputValue()}lock(t){this.lockable&&(this.committed=t??this.actual,this.clearInputValue())}unlock(){this.lockable&&(this.committed=null,this.clearInputValue())}toggleLock(t){this.lockable&&(this.locked?this.unlock():this._parseInputAndLock(t))}getSuffix(t){const{suffix:o}=this;return"function"==typeof o?o(t):o}getFormattedValue(t){const{actual:o,committed:i,format:l}=this;return null!=i?l(i,t):null!=o?l(o,t):null}getRawDisplayValue(t){const{actual:o,committed:i,inputValue:l}=this;return null!=l?l:this.lockable&&null!=i?this.formatForInputMode(i,t):null!=o?this.formatForInputMode(o,t):null}_parseInputAndSetActual(t){const{inputValue:o}=this;if(null==o||n(o))return this.setActual(null);const i=this.parse(o,t);null!=i?this.setActual(i):this.invalid=!0}_parseInputAndLock(t){const{inputValue:o,actual:i}=this;if(n(o))return this.unlock();if(null==o)return this.lock(i);const l=this.parse(o,t);null!=l?this.lock(l):this.invalid=!0}};function n(t){return null!=t&&""===t.trim()}t([l()],s.prototype,"actual",void 0),t([l()],s.prototype,"committed",null),t([l()],s.prototype,"dirty",null),t([l()],s.prototype,"format",void 0),t([l()],s.prototype,"formatForInputMode",void 0),t([l()],s.prototype,"lockable",void 0),t([l()],s.prototype,"locked",null),t([l()],s.prototype,"id",void 0),t([l()],s.prototype,"inputValue",void 0),t([l()],s.prototype,"name",void 0),t([l()],s.prototype,"parse",void 0),t([l()],s.prototype,"readOnly",void 0),t([l()],s.prototype,"suffix",void 0),t([l()],s.prototype,"title",void 0),t([l()],s.prototype,"visible",void 0),t([l()],s.prototype,"invalid",void 0),t([l()],s.prototype,"unlockOnVertexPlacement",void 0),s=t([e("esri.views.interactive.tooltip.fields.TooltipField")],s);export{s as TooltipField};