analysisViewUtils.js 1000 B

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{createTask as o}from"../../core/asyncUtils.js";import{removeMaybe as t,isNone as i}from"../../core/maybe.js";import{onAbort as e}from"../../core/promiseUtils.js";import{whenOnce as n,watch as r,syncAndInitial as a}from"../../core/reactiveUtils.js";function c(r,a){r.interactive=!0;const{tool:c,view:s}=r;s.activeTool=c;let l=e(a,(()=>{s.activeTool===c&&(s.activeTool=null)}));return o((async o=>{await n((()=>i(c)||!c.active),o),l=t(l)}),a)}function s(o,t){return r((()=>o.interactive),(()=>l(o,t)),a)}function l(o,t){o.interactive?v(o,t):m(o)}function v(o,t){m(o);const{view:i,analysis:e}=o,n=new t({view:i,analysis:e,analysisViewData:o});return o.tool=n,i.tools.add(n),n}function m(o){const{view:t,tool:e}=o;i(e)||(t.tools.remove(e),o.tool=null)}export{c as activateAnalysisViewTool,s as connectAnalysisViewToTool,m as removeAnalysisViewTool};