@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
3 lines (2 loc) • 1.56 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
function s(r,e,{signal:o,edges:m}={}){let p,t=null,n=m!=null&&m.includes("leading"),i=m==null||m.includes("trailing"),a=()=>{t!==null&&(r.apply(p,t),p=void 0,t=null)},h=()=>{i&&a(),l()},f=null,u=()=>{f!=null&&clearTimeout(f),f=setTimeout(()=>{f=null,h()},e)},y=()=>{f!==null&&(clearTimeout(f),f=null)},l=()=>{y(),p=void 0,t=null},g=()=>{a()},x=function(...b){if(o?.aborted)return;p=this,t=b;let w=f==null;u(),n&&w&&a()};return x.schedule=u,x.cancel=l,x.flush=g,o?.addEventListener("abort",l,{once:!0}),x}function B(r,e,{signal:o,edges:m=["leading","trailing"]}={}){let p=null,t=s(function(...i){p=Date.now(),r.apply(this,i)},e,{signal:o,edges:m}),n=function(...i){if(p==null&&(p=Date.now()),Date.now()-p>=e){p=Date.now(),r.apply(this,i),t.cancel(),t.schedule();return}t.apply(this,i)};return n.cancel=t.cancel,n.flush=t.flush,n}function c(r,e){if(e===void 0)return r.trimEnd();let o=r.length;switch(typeof e){case"string":{if(e.length!==1)throw new Error("The 'chars' parameter should be a single character string.");for(;o>0&&r[o-1]===e;)o--;break}case"object":for(;o>0&&e.includes(r[o-1]);)o--}return r.substring(0,o)}function d(r,e){if(e===void 0)return r.trimStart();let o=0;switch(typeof e){case"string":{for(;o<r.length&&r[o]===e;)o++;break}case"object":for(;o<r.length&&e.includes(r[o]);)o++}return r.substring(o)}function S(r,e){return e===void 0?r.trim():d(c(r,e),e)}function D(r){return r}function z(r){return r.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}export{s as a,D as b,B as c,z as d,S as e};