UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 3.6 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{toConst as n}from"./compilerUtils.js";import t from"./RandomLCG.js";const e=1.5,r=1/e,l=.5;function o(n,t){if(!t)return n;for(const e of t)n.push(e);return n}function u(n){return n}function f(n,t=u){if(!n||0===n.length)return;let e=n[0],r=t(e);for(let l=1;l<n.length;++l){const o=n[l],u=Number(t(o));u>r&&(r=u,e=o)}return e}function i(n,t=u){return f(n,(n=>-t(n)))}function c(n,t){return t?n.filter(((n,e,r)=>r.findIndex(t.bind(null,n))===e)):Array.from(new Set(n))}function s(n,t,e){if(null==n&&null==t)return!0;if(null==n||null==t||n.length!==t.length)return!1;if(e){for(let r=0;r<n.length;r++)if(!e(n[r],t[r]))return!1}else for(let r=0;r<n.length;r++)if(n[r]!==t[r])return!1;return!0}function h(n,t){let e=n.length!==t.length;e&&(n.length=t.length);for(let r=0;r<t.length;++r)n[r]!==t[r]&&(n[r]=t[r],e=!0);return e}function a(n,t,e){let r,l;return e?(r=t.filter((t=>!n.some((n=>e(n,t))))),l=n.filter((n=>!t.some((t=>e(t,n)))))):(r=t.filter((t=>!n.includes(t))),l=n.filter((n=>!t.includes(n)))),{added:r,removed:l}}function g(n,t,e){return n&&t?e?n.filter((n=>t.findIndex((t=>e(n,t)))>-1)):n.filter((n=>t.includes(n))):[]}function d(n){return n&&"number"==typeof n.length}function m(n,t){const e=n.length;if(0===e)return[];const r=[];for(let l=0;l<e;l+=t)r.push(n.slice(l,l+t));return r}function p(n,t){void 0===t&&(t=n,n=0);const e=new Array(t-n);for(let r=n;r<t;r++)e[r-n]=r;return e}function M(n,t,e){const r=n.length;let l=0,o=r-1;for(;l<o;){const e=l+Math.floor((o-l)/2);t>n[e]?l=e+1:o=e}const u=n[l];return e?t>=n[r-1]?-1:u===t?l:l-1:u===t?l:-1}class w{constructor(){this.last=0}}const x=new w;function b(n,t,e,r){r=r||x;const l=Math.max(0,r.last-10);for(let u=l;u<e;++u)if(n[u]===t)return r.last=u,u;const o=Math.min(l,e);for(let u=0;u<o;++u)if(n[u]===t)return r.last=u,u;return-1}function y(t,e,r,l){const o=r??t.length,u=b(t,n(e),o,l);if(-1!==u)return t[u]=t[o-1],null==r&&t.pop(),e}const S=new Set;function j(n,t,e=n.length,r=t.length,l,o){if(0===r||0===e)return e;S.clear();for(let f=0;f<r;++f)S.add(t[f]);l=l||x;const u=Math.max(0,l.last-10);for(let f=u;f<e;++f)if(S.has(n[f])&&(o?.push(n[f]),S.delete(n[f]),n[f]=n[e-1],--e,--f,0===S.size||0===e))return S.clear(),e;for(let f=0;f<u;++f)if(S.has(n[f])&&(o?.push(n[f]),S.delete(n[f]),n[f]=n[e-1],--e,--f,0===S.size||0===e))return S.clear(),e;return S.clear(),e}function v(n,t){let e=0;for(let r=0;r<n.length;++r){const l=n[r];t(l,r)&&(n[e]=l,e++)}n.length=e}function z(n,t,e){const r=n.length;if(t>=r)return n.slice();const l=A(e),o=new Set,u=[];for(;u.length<t;){const t=Math.floor(l()*r);o.has(t)||(o.add(t),u.push(n[t]))}return u}function A(n){return n?(I.seed=n,()=>I.getFloat()):Math.random}const I=new t;function C(n,t){const e=A(t);for(let r=n.length-1;r>0;r--){const t=Math.floor(e()*(r+1)),l=n[r];n[r]=n[t],n[t]=l}return n}function F(n,t){const e=n.indexOf(t);return-1!==e?(n.splice(e,1),t):null}function G(n,t){return null!=n}function L(n,...t){for(const e of t)null!=e&&n.push(e);return n.length}const N=[];export{w as PositionHint,o as addMany,M as binaryIndexOf,a as difference,N as emptyArray,s as equals,v as filterInPlace,A as getRandomNumberGenerator,b as indexOf,g as intersect,d as isArrayLike,G as isSome,f as max,i as min,z as pickRandom,L as pushIfSome,p as range,e as reallocGrowthFactor,r as reallocShrinkFactor,l as reallocShrinkThreshold,F as remove,y as removeUnordered,j as removeUnorderedMany,C as shuffle,m as splitIntoChunks,c as unique,h as update};