UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 1.55 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{nativeArrayMaxSize as r,isTypedArray as n}from"../../core/typedArrayUtil.js";function t(t){if(Array.isArray(t)){if(t.length<r)return t}else if(t.length<r)return Array.from(t);let i=!0,f=!0;return t.some(((r,n)=>(i=i&&0===r,f=f&&r===n,!i&&!f))),i?w(t.length):f?o(t.length):n(t)&&t.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT?t:e(t)}function e(r){let t=!0;for(const e of r){if(e>=65536)return n(r)?r:new Uint32Array(r);e>=256&&(t=!1)}return t?new Uint8Array(r):new Uint16Array(r)}function i(n){return n<=r?new Array(n):n<=65536?new Uint16Array(n):new Uint32Array(n)}function f(n){return n<=r?new Array(n):new Uint32Array(n)}let a=A(131072);const u=[0],y=(()=>{const r=new Uint16Array(65536);for(let n=0;n<r.length;++n)r[n]=n;return r})();function o(n){return 1===n?u:n<r?Array.from(new Uint16Array(y.buffer,0,n)):n<y.length?new Uint16Array(y.buffer,0,n):(n>a.length&&(a=A(Math.max(2*a.length,n))),new Uint32Array(a.buffer,0,n))}function A(r){const n=new Uint32Array(r);for(let t=0;t<n.length;t++)n[t]=t;return n}let l=new Uint8Array(65536);function w(n){if(1===n)return u;if(n<r)return new Array(n).fill(0);if(n>l.length){const r=Math.max(2*l.length,n);l=new Uint8Array(r)}return new Uint8Array(l.buffer,0,n)}function U(){a=A(131072),l=new Uint8Array(65536)}export{t as compactIndices,o as getContinuousIndexArray,w as getZeroIndexArray,i as newIndexArray,f as newIntArray,U as pruneIndexArrays};