@arcgis/core 5.2.0-next.160 → 5.2.0-next.161
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{15bcf7cfe603f2ee1a24.js → 28104681ba161967039f.js} +1 -1
- package/assets/esri/core/workers/chunks/{842893e75696428d536f.js → 3b0808ee3c4facfaca3d.js} +1 -1
- package/assets/esri/core/workers/chunks/{eebbde81e56d69dc602f.js → 44f90e75c1dc3d726a95.js} +1 -1
- package/assets/esri/core/workers/chunks/{4eae066673484986d4c1.js → 4ed76fb5f6096a089f5b.js} +1 -1
- package/assets/esri/core/workers/chunks/5daa9429808ca31279f2.js +1 -0
- package/assets/esri/core/workers/chunks/83f29a159b8b5197e76a.js +1 -0
- package/assets/esri/core/workers/chunks/{77ebacfdf8e57f2e03f1.js → 8480fe6b4372dbbfa7cc.js} +1 -1
- package/assets/esri/core/workers/chunks/{1d77c8c59b0118c7e77b.js → 85bba551057366cd00ae.js} +1 -1
- package/assets/esri/core/workers/chunks/a2fcbc494333376192aa.js +1 -0
- package/assets/esri/core/workers/chunks/{f1df76f098a3cc924832.js → b5df193c93e9c19f9700.js} +1 -1
- package/assets/esri/core/workers/chunks/{02f8654852d389583891.js → e04fb83ab2634bc15cc7.js} +1 -1
- package/assets/esri/core/workers/chunks/f74ae0eff3f08978e607.js +1 -0
- package/chunks/RibbonLine.glsl.js +69 -83
- package/config.d.ts +62 -34
- package/config.js +1 -1
- package/core/has.js +1 -1
- package/core/mapCollectionUtils.js +1 -1
- package/core/workers/Connection.d.ts +58 -89
- package/core/workers.d.ts +45 -54
- package/geometry/support/Indices.js +1 -1
- package/geometry/support/aaBoundingRect.js +1 -1
- package/geometry/support/ray.js +1 -1
- package/kernel.js +1 -1
- package/layers/GeospatialPDFLayer.js +1 -1
- package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +1 -1
- package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
- package/layers/support/commonProperties.js +1 -1
- package/package.json +2 -2
- package/rest/print.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightIntersectionResult.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/input/handlers/DragZoom.js +1 -1
- package/views/3d/input/handlers/MouseWheelFov.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/graphics/extrudePolygon.js +1 -1
- package/views/3d/layers/graphics/tessellationUtils.js +1 -1
- package/views/3d/state/controllers/FovController.js +1 -1
- package/views/3d/state/controllers/GroundNavigationController.js +1 -1
- package/views/3d/state/controllers/momentum/GroundNavigationMomentumController.js +1 -1
- package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
- package/views/3d/terrain/PatchRenderData.js +1 -1
- package/views/3d/terrain/TextureReference.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/interactive/editGeometry/EditGeometry.js +1 -1
- package/views/interactive/editGeometry/operations/RotateVertex.js +1 -1
- package/views/interactive/editGeometry/operations/ScaleVertex.js +1 -1
- package/views/interactive/editGeometry/operations/SetAllVertexPositions.js +1 -1
- package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/Search/LocatorSearchSource.d.ts +22 -1
- package/widgets/support/SelectionList/GroupLayerItem.d.ts +2 -0
- package/widgets/support/SelectionList/GroupLayerItem.js +1 -1
- package/widgets/support/SelectionList/ItemBase.d.ts +2 -0
- package/widgets/support/SelectionList/ItemBase.js +1 -1
- package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
- package/widgets/support/SelectionList.js +1 -1
- package/assets/esri/core/workers/chunks/7d212c415f2709037408.js +0 -1
- package/assets/esri/core/workers/chunks/abb9e820d2871fa7acae.js +0 -1
- package/assets/esri/core/workers/chunks/ade5fdcd08dcbac74740.js +0 -1
- package/assets/esri/core/workers/chunks/b390b9cde2884755e8be.js +0 -1
|
@@ -9,7 +9,7 @@ import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.gls
|
|
|
9
9
|
}
|
|
10
10
|
`),N.code.add(S`void outputObjectAndLayerIdColor() {
|
|
11
11
|
fragColor = objectAndLayerIdColorVarying;
|
|
12
|
-
}`)):(M.code.add(S`void forwardObjectAndLayerIdColor() {}`),N.code.add(S`void outputObjectAndLayerIdColor() {}`));let $=P&&!F;if($&&k.include(a,O),_(M,O),F&&(G||z)){let e=G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`;M.uniforms.add(new b(e,e=>1/(e.screenToPlanarDistanceRatio*(G?e.planarDistanceToGroundRatio:1))))}return G&&!F&&M.uniforms.add(l,u),M.uniforms.add(d,f,p,new x(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),M.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),M.constants.add(`EPS`,`float`,.001),M.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,O.numJoinSubdivisions),A.add(`textureElementIndex`,`uint`),A.add(`lineParameters`,`vec2`),j.add(`vColor`,`vec4`),j.add(`vpos`,`vec3`,{invariant:!0}),j.add(`vLineDistance`,`float`),j.add(`vLineWidth`,`float`),
|
|
12
|
+
}`)):(M.code.add(S`void forwardObjectAndLayerIdColor() {}`),N.code.add(S`void outputObjectAndLayerIdColor() {}`));let $=P&&!F;if($&&k.include(a,O),_(M,O),F&&(G||z)){let e=G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`;M.uniforms.add(new b(e,e=>1/(e.screenToPlanarDistanceRatio*(G?e.planarDistanceToGroundRatio:1))))}return G&&!F&&M.uniforms.add(l,u),M.uniforms.add(d,f,p,new x(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),M.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),M.constants.add(`EPS`,`float`,.001),M.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,O.numJoinSubdivisions),A.add(`textureElementIndex`,`uint`),A.add(`lineParameters`,`vec2`),j.add(`vColor`,`vec4`),j.add(`vpos`,`vec3`,{invariant:!0}),j.add(`vLineDistance`,`float`),j.add(`vLineWidth`,`float`),j.add(`vIsInsideJoin`,`int`),j.add(`vStretchFactor`,`float`),j.add(`vJoinCenterLineSDFs`,`vec2`),j.add(`vSubdivisionFactor`,`float`),z&&j.add(`vLineSizeInv`,`float`),Y&&j.add(`vLineDistanceNorm`,`float`),q&&(j.add(`vSegmentSDF`,`float`),j.add(`vReverseSegmentSDF`,`float`)),M.code.add(S`vec3 perpendicular(vec3 v) {
|
|
13
13
|
return vec3(v.y, -v.x, 0.0);
|
|
14
14
|
}
|
|
15
15
|
float nearPlaneInterpolationFactor(float nearPlaneDistance, vec4 start, vec4 end) {
|
|
@@ -75,7 +75,7 @@ return posNdc;
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
`),v(M),M.constants.add(`aaWidth`,`float
|
|
78
|
+
`),v(M),M.constants.add(`aaWidth`,`float`,1),N.constants.add(`aaWidth`,`float`,1),M.main.add(S`
|
|
79
79
|
vec3 position = ${Q.getTextureAttribute(`position`)};
|
|
80
80
|
float u0 = ${Q.getTextureAttribute(`u0`)};
|
|
81
81
|
${C(G,S`
|
|
@@ -95,8 +95,6 @@ return posNdc;
|
|
|
95
95
|
vec3 prevPosition = ${Q.getTextureAttribute(`position`,-1)};
|
|
96
96
|
vec3 nextPosition = ${Q.getTextureAttribute(`position`,1)};
|
|
97
97
|
|
|
98
|
-
float coverage = 1.0;
|
|
99
|
-
|
|
100
98
|
// Check for special value of lineParameters.y which is used by the Renderer when graphics are removed before the
|
|
101
99
|
// VBO is recompacted. If this is the case, then we just project outside of clip space.
|
|
102
100
|
if (lineParameters.y == 0.0) {
|
|
@@ -157,39 +155,37 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
157
155
|
}
|
|
158
156
|
}
|
|
159
157
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
`)}
|
|
158
|
+
// Compute stretch compensation for feathering.
|
|
159
|
+
if (subdivisionFactor > 0.0) {
|
|
160
|
+
vIsInsideJoin = 1;
|
|
161
|
+
}
|
|
162
|
+
vSubdivisionFactor = isOutside ? subdivisionFactor : 0.5;
|
|
163
|
+
|
|
164
|
+
if (miterDisplacementLen > miterLimit * lineWidth) {
|
|
165
|
+
vec2 leftScreenDir = left.xy;
|
|
166
|
+
vec2 rightScreenDir = right.xy;
|
|
167
|
+
float leftScreenLen = length(leftScreenDir);
|
|
168
|
+
float rightScreenLen = length(rightScreenDir);
|
|
169
|
+
|
|
170
|
+
if (leftScreenLen > EPS && rightScreenLen > EPS) {
|
|
171
|
+
leftScreenDir /= leftScreenLen;
|
|
172
|
+
rightScreenDir /= rightScreenLen;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Feathering AA needs special considerations on join triangles because these can get stretched a lot at acute angles.
|
|
176
|
+
* We use the triangle height to determine by how much they get stretched.
|
|
177
|
+
*/
|
|
178
|
+
float theta = acos(clamp(dot(leftScreenDir, rightScreenDir), -1.0, 1.0));
|
|
179
|
+
/**
|
|
180
|
+
* The argument of cos here is half the angle of a join triangle.
|
|
181
|
+
* We start with one triangle, and every subdivision adds another triangle.
|
|
182
|
+
*/
|
|
183
|
+
float subdividedTriangleHeight = (innerDisplacementLen + lineWidth) * cos(theta / (2.0 + 2.0 * NUM_JOIN_SUBDIVISIONS));
|
|
184
|
+
float bevelTriangleHeight = innerDisplacementLen + lineWidth * cos(theta * 0.5);
|
|
185
|
+
float triangleHeight = NUM_JOIN_SUBDIVISIONS > 0.0 ? subdividedTriangleHeight : bevelTriangleHeight;
|
|
186
|
+
vStretchFactor = noPerspectiveWrite(max(triangleHeight / (2.0 * lineWidth), 1.0), perspectiveDivisor);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
193
189
|
|
|
194
190
|
if (isOutside && displacementLen > miterLimit * lineWidth) {
|
|
195
191
|
${C(O.roundJoins,S`
|
|
@@ -244,37 +240,23 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
244
240
|
float metersPerScreenPixel = max(-clippedPos.z, nearFar[0]) * metersPerRenderUnit * screenPixelSizePerDistance;
|
|
245
241
|
float lineSizeScreen = lineSize / metersPerScreenPixel;
|
|
246
242
|
`)}
|
|
247
|
-
|
|
248
|
-
coverage = lineSizeScreen;
|
|
249
|
-
lineSizeScreen = 1.0;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
lineSizeScreen += aaWidth;
|
|
253
|
-
float lineWidth = lineSizeScreen * pixelRatio;
|
|
243
|
+
float lineWidth = lineSizeScreen * pixelRatio + aaWidth;
|
|
254
244
|
`,S`
|
|
255
|
-
|
|
256
|
-
coverage = lineSize; // convert sub-pixel coverage to alpha
|
|
257
|
-
lineSize = 1.0;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
lineSize += aaWidth;
|
|
261
|
-
float lineWidth = lineSize * pixelRatio;
|
|
245
|
+
float lineWidth = lineSize * pixelRatio + aaWidth;
|
|
262
246
|
`)}
|
|
263
247
|
|
|
264
248
|
vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
|
|
265
|
-
${z?S`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:``}
|
|
249
|
+
${z?S`vLineSizeInv = noPerspectiveWrite(1.0 / ${G?`lineSize`:`max(lineSize, 1.0)`}, pos.w);`:``}
|
|
266
250
|
`),X&&M.main.add(S`
|
|
267
251
|
float isEndVertex = float(!isStartVertex);
|
|
268
252
|
vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
|
|
269
253
|
vec3 segment = mix(right, left, isEndVertex);
|
|
270
254
|
${q?S`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:``}
|
|
271
255
|
`),M.main.add(S`
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
vJoinCenterLineSDFs = vec2(LARGE_HALF_FLOAT);
|
|
277
|
-
`)}
|
|
256
|
+
vIsInsideJoin = 0;
|
|
257
|
+
vStretchFactor = 1.0;
|
|
258
|
+
vSubdivisionFactor = 0.0;
|
|
259
|
+
vJoinCenterLineSDFs = vec2(LARGE_HALF_FLOAT);
|
|
278
260
|
|
|
279
261
|
vec2 displacementXY = computeJoinAndCapDisplacement(
|
|
280
262
|
isJoin,
|
|
@@ -303,7 +285,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
303
285
|
${Y?S`vLineDistanceNorm = lineDistNorm;`:``}
|
|
304
286
|
|
|
305
287
|
pos.xyz += displacement;
|
|
306
|
-
`),
|
|
288
|
+
`),M.main.add(S`if (isJoin) {
|
|
307
289
|
vec2 joinCenterToVertex = displacementXY;
|
|
308
290
|
vec2 leftCenterlineDir = left.xy;
|
|
309
291
|
vec2 rightCenterlineDir = right.xy;
|
|
@@ -389,7 +371,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
|
|
|
389
371
|
pos.z = pos.z * pos.w;
|
|
390
372
|
|
|
391
373
|
vColor = getColor();
|
|
392
|
-
vColor.a = noPerspectiveWrite(vColor.a
|
|
374
|
+
vColor.a = noPerspectiveWrite(vColor.a, pos.w);
|
|
393
375
|
|
|
394
376
|
${V&&!F?`pos.z -= EPS * pos.w;`:``}
|
|
395
377
|
|
|
@@ -397,41 +379,45 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
|
|
|
397
379
|
vpos = (inverseProjectionMatrix * pos).xyz;
|
|
398
380
|
gl_Position = pos;
|
|
399
381
|
forwardObjectAndLayerIdColor();
|
|
400
|
-
}`),k.include(E,O),k.include(g),N.include(m),N.include(w),N.include(e,O),N.main.add(`discardBySlice(vpos);`),
|
|
382
|
+
}`),k.include(E,O),k.include(g),N.include(m),N.include(w),N.include(e,O),N.main.add(`discardBySlice(vpos);`),N.code.add(S`float lineFeatheringFactor(float lineWidth, float lineDistance) {
|
|
401
383
|
float stretchFactor = vIsInsideJoin == 1 ? noPerspectiveRead(vStretchFactor) : 1.0;
|
|
402
384
|
float featherWidth = 2.0;
|
|
403
|
-
float featherStartDistance =
|
|
404
|
-
float straightFeatherStartDistance =
|
|
385
|
+
float featherStartDistance = lineWidth - featherWidth / stretchFactor;
|
|
386
|
+
float straightFeatherStartDistance = lineWidth - featherWidth;
|
|
405
387
|
float value = abs(lineDistance);
|
|
406
388
|
float feather = (value - featherStartDistance) / (lineWidth - featherStartDistance);
|
|
407
389
|
vec2 joinCenterSDFs = noPerspectiveRead(vJoinCenterLineSDFs);
|
|
408
390
|
float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joinCenterSDFs.y);
|
|
409
391
|
float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
|
|
410
392
|
feather = vIsInsideJoin == 1 ? max(feather, straightFeather) : feather;
|
|
411
|
-
|
|
393
|
+
float coverage = min(lineWidth - aaWidth, 1.0);
|
|
394
|
+
return clamp(1.0 - feather, 0.0, coverage);
|
|
412
395
|
}`),N.main.add(S`
|
|
413
396
|
float lineWidth = noPerspectiveRead(vLineWidth);
|
|
414
397
|
float lineDistance = noPerspectiveRead(vLineDistance);
|
|
415
398
|
${C(Y,S`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
|
|
416
|
-
`),V?N.main.add(S`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
|
|
417
|
-
vec4 finalColor = albedo;`):(q&&N.main.add(S`
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
float
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
)
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
399
|
+
`),J&&N.main.add(S`float nominalLineWidth = lineWidth - aaWidth;`),V?N.main.add(S`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
|
|
400
|
+
vec4 finalColor = albedo;`):(q&&N.main.add(S`
|
|
401
|
+
float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
|
|
402
|
+
vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
|
|
403
|
+
|
|
404
|
+
float fragmentRadius = length(fragmentPosition);
|
|
405
|
+
float fragmentCapSDF = (fragmentRadius - ${J?`nominalLineWidth`:`lineWidth`}) * 0.5; // Divide by 2 to transform from double pixel scale
|
|
406
|
+
float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
|
|
407
|
+
|
|
408
|
+
if (capCoverage < alphaCutoff) {
|
|
409
|
+
discard;
|
|
410
|
+
}
|
|
411
|
+
`),J?N.main.add(S`vec2 stipplePosition = vec2(
|
|
412
|
+
min(getStippleCapDistance(), 0.0) * nominalLineWidth,
|
|
413
|
+
lineDistance
|
|
414
|
+
);
|
|
415
|
+
float stippleRadius = length(stipplePosition);
|
|
416
|
+
float stippleCapSDF = (stippleRadius - nominalLineWidth) * 0.5;
|
|
417
|
+
float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
|
|
418
|
+
float lineCoverage = min(lineFeatheringFactor(lineWidth, lineDistance), capCoverage);
|
|
419
|
+
float stippleAlpha = lineCoverage > 0.0 ? min(stippleCoverage, lineCoverage) / lineCoverage : 0.0;`):N.main.add(S`float stippleAlpha = getStippleAlpha(lineWidth);`),L!==11&&N.main.add(S`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),N.uniforms.add(new y(`intrinsicColor`,e=>e.color)).main.add(S`vec4 color = intrinsicColor * vColor;
|
|
434
420
|
color.a = noPerspectiveRead(color.a);`),H&&N.uniforms.add(new y(`innerColor`,e=>e.innerColor??e.color),new x(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(S`float distToInner = abs(lineDistance) - innerWidth;
|
|
435
421
|
float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
|
|
436
422
|
float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
|
|
437
|
-
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),N.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),B&&(N.uniforms.add(new x(`falloff`,e=>e.falloff)),N.main.add(S`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),
|
|
423
|
+
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),N.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),B&&(N.uniforms.add(new x(`falloff`,e=>e.falloff)),N.main.add(S`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),N.main.add(S`albedo.a *= ${J?`lineCoverage`:`lineFeatheringFactor(lineWidth, lineDistance)`};`),U&&(M.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),k.include(T,O),N.main.add(`albedo.a *= animatedAlpha();`)),I?(j.add(`vnormal`,`vec3`),M.include(o,O),M.main.add(`vnormal = getLocalUp(vpos, localOrigin);`),k.include(n,O),N.main.add(`vec4 finalColor = evaluateSceneLightingFragment(vpos, vnormal, albedo);`)):N.main.add(`vec4 finalColor = albedo;`)),N.main.add(S`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),k}const A=Object.freeze(Object.defineProperty({__proto__:null,build:k,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{A as R,k as b,O as n};
|
package/config.d.ts
CHANGED
|
@@ -236,35 +236,26 @@ export interface Config {
|
|
|
236
236
|
* An object with properties that control various aspects of [the workers framework](https://developers.arcgis.com/javascript/latest/references/core/core/workers/).
|
|
237
237
|
*
|
|
238
238
|
* @example
|
|
239
|
-
* //
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
* .
|
|
251
|
-
*
|
|
252
|
-
* })
|
|
253
|
-
* .then((result) => {
|
|
254
|
-
* console.log(result);
|
|
255
|
-
* });
|
|
239
|
+
* // Load an ESM worker module and invoke its "getMaxNumber" function.
|
|
240
|
+
*
|
|
241
|
+
* const connection = await workers.open(new URL("./workersFolder/Calculator.js", import.meta.url).href, {
|
|
242
|
+
* isESM: true
|
|
243
|
+
* });
|
|
244
|
+
*
|
|
245
|
+
* try {
|
|
246
|
+
* // Invoke the worker function and receive its result on the main thread.
|
|
247
|
+
* const result = await connection.invoke("getMaxNumber", [0, 1, 2, 3, 4]);
|
|
248
|
+
* console.log(result);
|
|
249
|
+
* } finally {
|
|
250
|
+
* connection.close();
|
|
251
|
+
* }
|
|
256
252
|
*
|
|
257
253
|
* //*********************************************************
|
|
258
|
-
* // module:
|
|
254
|
+
* // module: workersFolder/Calculator.js
|
|
259
255
|
* //*********************************************************
|
|
260
|
-
*
|
|
261
|
-
* return
|
|
262
|
-
*
|
|
263
|
-
* getMaxNumber: function (number) {
|
|
264
|
-
* return Math.max.apply(null, numbers);
|
|
265
|
-
* }
|
|
266
|
-
* };
|
|
267
|
-
* });
|
|
256
|
+
* export function getMaxNumber(numbers) {
|
|
257
|
+
* return Math.max(...numbers);
|
|
258
|
+
* }
|
|
268
259
|
*/
|
|
269
260
|
workers: WorkersConfig;
|
|
270
261
|
}
|
|
@@ -294,27 +285,64 @@ export interface ApiKeysScopeConfig {
|
|
|
294
285
|
}
|
|
295
286
|
|
|
296
287
|
export interface WorkersConfig {
|
|
297
|
-
/**
|
|
288
|
+
/**
|
|
289
|
+
* The absolute URL to the AMD or SystemJS loader used in the worker. The AMD CDN build has a default value for when this property isn't set. This is required when using custom workers.
|
|
290
|
+
*
|
|
291
|
+
* @deprecated since version 5.2. AMD/SystemJS worker loading is deprecated. Use ESM worker modules with [workers.open()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/#open) instead. See this [ESM sample](https://github.com/Esri/jsapi-resources/tree/main/templates/geometry-operator-worker).
|
|
292
|
+
*/
|
|
298
293
|
loaderUrl?: string;
|
|
299
294
|
/**
|
|
300
295
|
* This is used by the `@arcgis/core` npm package to control where to load a custom build of the `RemoteClient` from.
|
|
301
|
-
* By default, `RemoteClient` is loaded from the API's [assets](https://developers.arcgis.com/javascript/latest/working-with-assets/).
|
|
296
|
+
* By default, `RemoteClient` is loaded from the API's [assets](https://developers.arcgis.com/javascript/latest/working-with-assets/).
|
|
297
|
+
*
|
|
298
|
+
* `RemoteClient` is the SDK’s internal worker-side runtime. It loads and instantiates the worker module, then manages communication with the main thread through the worker connection.
|
|
299
|
+
*
|
|
300
|
+
* @deprecated since version 5.2. Custom worker runtime paths are deprecated. Use the default worker runtime with ESM worker modules opened via [workers.open()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/#open).
|
|
302
301
|
*/
|
|
303
302
|
workerPath?: string;
|
|
304
|
-
/**
|
|
303
|
+
/**
|
|
304
|
+
* The AMD configuration object that is set in each worker.
|
|
305
|
+
*
|
|
306
|
+
* @deprecated since version 5.2. AMD/SystemJS worker loading is deprecated. Use ESM worker modules with [workers.open()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/#open) instead.
|
|
307
|
+
*/
|
|
305
308
|
loaderConfig?: WorkersLoaderConfig;
|
|
306
309
|
}
|
|
307
310
|
|
|
311
|
+
/**
|
|
312
|
+
* Configuration for the legacy AMD worker loader.
|
|
313
|
+
*
|
|
314
|
+
* @deprecated since version 5.2. AMD/SystemJS worker loading is deprecated. Use ESM worker modules with [workers.open()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/#open) instead.
|
|
315
|
+
*/
|
|
308
316
|
export interface WorkersLoaderConfig {
|
|
309
|
-
/**
|
|
317
|
+
/**
|
|
318
|
+
* The AMD loader loads all code relative to the baseUrl.
|
|
319
|
+
*
|
|
320
|
+
* @deprecated since version 5.2. AMD/SystemJS worker loading is deprecated. Use ESM worker modules with [workers.open()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/#open) instead.
|
|
321
|
+
*/
|
|
310
322
|
baseUrl?: string;
|
|
311
|
-
/**
|
|
323
|
+
/**
|
|
324
|
+
* Determines if the specified feature capabilities are supported.
|
|
325
|
+
*
|
|
326
|
+
* @deprecated since version 5.2. AMD/SystemJS worker loading is deprecated. Use ESM worker modules with [workers.open()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/#open) instead.
|
|
327
|
+
*/
|
|
312
328
|
has?: Record<string, any>;
|
|
313
|
-
/**
|
|
329
|
+
/**
|
|
330
|
+
* Map paths in module identifiers to different paths.
|
|
331
|
+
*
|
|
332
|
+
* @deprecated since version 5.2. AMD/SystemJS worker loading is deprecated. Use ESM worker modules with [workers.open()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/#open) instead.
|
|
333
|
+
*/
|
|
314
334
|
map?: Record<string, Record<string, string>>;
|
|
315
|
-
/**
|
|
335
|
+
/**
|
|
336
|
+
* An array of objects which provide the package name and its location.
|
|
337
|
+
*
|
|
338
|
+
* @deprecated since version 5.2. AMD/SystemJS worker loading is deprecated. Use ESM worker modules with [workers.open()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/#open) instead.
|
|
339
|
+
*/
|
|
316
340
|
packages?: object[];
|
|
317
|
-
/**
|
|
341
|
+
/**
|
|
342
|
+
* Map of module id fragments to file paths.
|
|
343
|
+
*
|
|
344
|
+
* @deprecated since version 5.2. AMD/SystemJS worker loading is deprecated. Use ESM worker modules with [workers.open()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/#open) instead.
|
|
345
|
+
*/
|
|
318
346
|
paths?: Record<string, string>;
|
|
319
347
|
}
|
|
320
348
|
|
package/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const t={apiKey:void 0,apiKeys:{scopes:[]},applicationName:``,applicationUrl:globalThis.location?.href,assetsPath:``,fontsUrl:`https://static.arcgis.com/fonts`,geometryServiceUrl:`https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer`,geoRSSServiceUrl:`https://utility.arcgis.com/sharing/rss`,kmlServiceUrl:`https://utility.arcgis.com/sharing/kml`,userPrivilegesApplied:!0,portalUrl:`https://www.arcgis.com`,respectPrefersReducedMotion:!0,routeServiceUrl:`https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World`,workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:[`arcgis.com`,`arcgisonline.com`,`esrikr.com`,`premiumservices.blackbridge.com`,`esripremium.accuweather.com`,`gbm.digitalglobe.com`,`firstlook.digitalglobe.com`,`msi.digitalglobe.com`],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:`high`,proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};globalThis.esriConfig&&(e(t,globalThis.esriConfig,!0),delete t.has),!t.assetsPath&&(t.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@5.2.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const t={apiKey:void 0,apiKeys:{scopes:[]},applicationName:``,applicationUrl:globalThis.location?.href,assetsPath:``,fontsUrl:`https://static.arcgis.com/fonts`,geometryServiceUrl:`https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer`,geoRSSServiceUrl:`https://utility.arcgis.com/sharing/rss`,kmlServiceUrl:`https://utility.arcgis.com/sharing/kml`,userPrivilegesApplied:!0,portalUrl:`https://www.arcgis.com`,respectPrefersReducedMotion:!0,routeServiceUrl:`https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World`,workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:[`arcgis.com`,`arcgisonline.com`,`esrikr.com`,`premiumservices.blackbridge.com`,`esripremium.accuweather.com`,`gbm.digitalglobe.com`,`firstlook.digitalglobe.com`,`msi.digitalglobe.com`],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:`high`,proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};globalThis.esriConfig&&(e(t,globalThis.esriConfig,!0),delete t.has),!t.assetsPath&&(t.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@5.2.0-next.161/assets`,t.defaultAssetsPath=t.assetsPath);export{t as default};
|
package/core/has.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
const e=globalThis,t={...e.esriConfig?.has};function has(n){return typeof t[n]==`function`?t[n]=t[n](e):t[n]}has.add=(e,n,r,i)=>{(i||t[e]===void 0)&&(t[e]=n),r&&has(e)},has.cache=t,has.add(`big-integer-warning-enabled`,!0),has.add(`esri-deprecation-warnings`,!0),has.add(`esri-tests-disable-screenshots`,!1),has.add(`esri-tests-use-full-window`,!1),has.add(`esri-tests-post-to-influx`,!0),has.add(`esri-cim-animations-enable-status`,`enabled`),has.add(`esri-cim-animations-spotlight`,!1),has.add(`esri-cim-animations-freeze-time`,!1),(()=>{has.add(`host-webworker`,e.WorkerGlobalScope!==void 0&&self instanceof e.WorkerGlobalScope);let t=typeof window<`u`&&typeof location<`u`&&typeof document<`u`&&window.location===location&&window.document===document;if(has.add(`host-browser`,t),has.add(`host-node`,!!(typeof e.process==`object`&&e.process.versions?.node&&e.process.versions.v8)),has.add(`dom`,t),has(`host-browser`)){let e=navigator,t=e.userAgent,n=e.appVersion,r=parseFloat(n);if(has.add(`wp`,parseFloat(t.split(`Windows Phone`)[1])||void 0),has.add(`msapp`,parseFloat(t.split(`MSAppHost/`)[1])||void 0),has.add(`khtml`,n.includes(`Konqueror`)?r:void 0),has.add(`edge`,parseFloat(t.split(`Edge/`)[1])||void 0),has.add(`opr`,parseFloat(t.split(`OPR/`)[1])||void 0),has.add(`webkit`,!has(`wp`)&&!has(`edge`)&&parseFloat(t.split(`WebKit/`)[1])||void 0),has.add(`chrome`,!has(`edge`)&&!has(`opr`)&&parseFloat(t.split(`Chrome/`)[1])||void 0),has.add(`android`,!has(`wp`)&&parseFloat(t.split(`Android `)[1])||void 0),has.add(`safari`,n.includes(`Safari`)&&!has(`wp`)&&!has(`chrome`)&&!has(`android`)&&!has(`edge`)&&!has(`opr`)?parseFloat(n.split(`Version/`)[1]):void 0),has.add(`mac`,n.includes(`Macintosh`)),!has(`wp`)&&/(iPhone|iPod|iPad)/.test(t)){let e=RegExp.$1.replace(/P/,`p`),n=/OS ([\d_]+)/.test(t)?RegExp.$1:`1`,r=parseFloat(n.replace(/_/,`.`).replaceAll(`_`,``));has.add(e,r),has.add(`ios`,r)}has(`webkit`)||(t.includes(`Gecko`)&&!has(`wp`)&&!has(`khtml`)&&!has(`edge`)&&has.add(`mozilla`,r),has(`mozilla`)&&has.add(`ff`,parseFloat(t.split(`Firefox/`)[1]||t.split(`Minefield/`)[1])||void 0))}})(),(()=>{if(e.navigator){let e=navigator.userAgent,t=/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile/i.test(e),n=/iPhone/i.test(e);t&&has.add(`esri-mobile`,t),n&&has.add(`esri-iPhone`,n),has.add(`esri-geolocation`,!!navigator.geolocation)}has.add(`esri-wasm`,`WebAssembly`in e),has.add(`esri-temporal`,`Temporal`in e),has.add(`esri-performance-mode-frames-between-render`,20),has.add(`esri-force-performance-mode`,!1),has.add(`esri-shared-array-buffer`,()=>{let t=`SharedArrayBuffer`in e,n=e.crossOriginIsolated===!1;return t&&!n}),has.add(`wasm-simd`,()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))),has.add(`esri-atomics`,`Atomics`in e),has.add(`esri-workers`,`Worker`in e),has.add(`web-feat:cache`,`caches`in e),has.add(`esri-workers-arraybuffer-transfer`,!has(`safari`)||Number(has(`safari`))>=12),has.add(`min-workers-pool-size`,2),has.add(`max-workers-pool-size`,has(`esri-mobile`)?3:8),has.add(`featurelayer-simplify-thresholds`,[.5,.5,.5,.5]),has.add(`featurelayer-simplify-payload-size-factors`,[1,1,4]),has.add(`featurelayer-animation-enabled`,!0),has.add(`featurelayer-hybrid-tile-enabled`,!0),has.add(`featurelayer-snapshot-enabled`,!0),has.add(`featurelayer-snapshot-initial-tolerance`,0),has.add(`featurelayer-snapshot-point-min-threshold`,8e4),has.add(`featurelayer-snapshot-point-max-threshold`,4e5),has.add(`featurelayer-snapshot-multipoint-min-threshold`,2e4),has.add(`featurelayer-snapshot-multipoint-max-threshold`,1e5),has.add(`featurelayer-snapshot-polygon-min-threshold`,2e3),has.add(`featurelayer-snapshot-polygon-max-threshold`,2e3),has.add(`featurelayer-snapshot-polyline-min-threshold`,2e3),has.add(`featurelayer-snapshot-polyline-max-threshold`,2e3),has.add(`featurelayer-snapshot-max-vertex-count`,25e4),has.add(`featurelayer-snapshot-non-hosted-exceedslimit-enabled`,!0),has.add(`featurelayer-snapshot-concurrency`,4),has.add(`featurelayer-snapshot-allow-editable`,!1),has.add(`featurelayer-snapshot-coverage`,.1),has.add(`featurelayer-pixel-buffering-enabled`,!0),has.add(`featurelayer-query-max-depth`,4),has.add(`featurelayer-query-max-page-size`,8e3),has.add(`featurelayer-query-pausing-enabled`,!1),has.add(`featurelayer-query-tile-concurrency`,4),has.add(`featurelayer-query-tile-max-features`,6e5),has.add(`featurelayer-advanced-symbols`,!1),has.add(`featurelayer-pbf`,!0),has.add(`featurelayer-pbf-statistics`,!1),has.add(`featurelayer-pbf-true-curves`,!0),has.add(`feature-layers-workers`,!0),has.add(`feature-polyline-generalization-factor`,1),has.add(`featurelayer-relative-time-queries-enabled`,!0),has.add(`featurelayer-relative-time-queries-bin-window-public`,1),has.add(`featurelayer-relative-time-queries-bin-window-private`,60),has.add(`parquetlayer-full-query-feature-count`,5e5),has.add(`parquetlayer-persistence-enabled`,!0),has.add(`parquetlayer-cache-enabled`,!0),has.add(`parquetlayer-legacy-field-overrides-enabled`,!1),has.add(`sketch-layer-enabled`,!1),has.add(`mapview-transitions-duration`,200),has.add(`mapview-essential-goto-duration`,200),has.add(`mapview-srswitch-adjust-rotation-scale-threshold`,24e6),has.add(`mapserver-pbf-version-support`,10.81),has.add(`mapservice-popup-identify-max-tolerance`,20),has.add(`request-queue-concurrency-global`,64),has.add(`request-queue-concurrency-hosted`,16),has.add(`request-queue-concurrency-non-hosted`,16),has.add(`curve-densification-coarse-segments`,128),has.add(`curve-densification-max-segments`,2e3),has.add(`curve-densification-min-segments`,3),has.add(`curve-densification-pixel-deviation`,.5),has.add(`view-readyState-waiting-delay`,1e3),has.add(`gradient-depth-bias`,.01),has.add(`gradient-depth-epsilon`,1e-8)
|
|
2
|
+
const e=globalThis,t={...e.esriConfig?.has};function has(n){return typeof t[n]==`function`?t[n]=t[n](e):t[n]}has.add=(e,n,r,i)=>{(i||t[e]===void 0)&&(t[e]=n),r&&has(e)},has.cache=t,has.add(`big-integer-warning-enabled`,!0),has.add(`esri-deprecation-warnings`,!0),has.add(`esri-tests-disable-screenshots`,!1),has.add(`esri-tests-use-full-window`,!1),has.add(`esri-tests-post-to-influx`,!0),has.add(`esri-cim-animations-enable-status`,`enabled`),has.add(`esri-cim-animations-spotlight`,!1),has.add(`esri-cim-animations-freeze-time`,!1),(()=>{has.add(`host-webworker`,e.WorkerGlobalScope!==void 0&&self instanceof e.WorkerGlobalScope);let t=typeof window<`u`&&typeof location<`u`&&typeof document<`u`&&window.location===location&&window.document===document;if(has.add(`host-browser`,t),has.add(`host-node`,!!(typeof e.process==`object`&&e.process.versions?.node&&e.process.versions.v8)),has.add(`dom`,t),has(`host-browser`)){let e=navigator,t=e.userAgent,n=e.appVersion,r=parseFloat(n);if(has.add(`wp`,parseFloat(t.split(`Windows Phone`)[1])||void 0),has.add(`msapp`,parseFloat(t.split(`MSAppHost/`)[1])||void 0),has.add(`khtml`,n.includes(`Konqueror`)?r:void 0),has.add(`edge`,parseFloat(t.split(`Edge/`)[1])||void 0),has.add(`opr`,parseFloat(t.split(`OPR/`)[1])||void 0),has.add(`webkit`,!has(`wp`)&&!has(`edge`)&&parseFloat(t.split(`WebKit/`)[1])||void 0),has.add(`chrome`,!has(`edge`)&&!has(`opr`)&&parseFloat(t.split(`Chrome/`)[1])||void 0),has.add(`android`,!has(`wp`)&&parseFloat(t.split(`Android `)[1])||void 0),has.add(`safari`,n.includes(`Safari`)&&!has(`wp`)&&!has(`chrome`)&&!has(`android`)&&!has(`edge`)&&!has(`opr`)?parseFloat(n.split(`Version/`)[1]):void 0),has.add(`mac`,n.includes(`Macintosh`)),!has(`wp`)&&/(iPhone|iPod|iPad)/.test(t)){let e=RegExp.$1.replace(/P/,`p`),n=/OS ([\d_]+)/.test(t)?RegExp.$1:`1`,r=parseFloat(n.replace(/_/,`.`).replaceAll(`_`,``));has.add(e,r),has.add(`ios`,r)}has(`webkit`)||(t.includes(`Gecko`)&&!has(`wp`)&&!has(`khtml`)&&!has(`edge`)&&has.add(`mozilla`,r),has(`mozilla`)&&has.add(`ff`,parseFloat(t.split(`Firefox/`)[1]||t.split(`Minefield/`)[1])||void 0))}})(),(()=>{if(e.navigator){let e=navigator.userAgent,t=/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile/i.test(e),n=/iPhone/i.test(e);t&&has.add(`esri-mobile`,t),n&&has.add(`esri-iPhone`,n),has.add(`esri-geolocation`,!!navigator.geolocation)}has.add(`esri-wasm`,`WebAssembly`in e),has.add(`esri-temporal`,`Temporal`in e),has.add(`esri-performance-mode-frames-between-render`,20),has.add(`esri-force-performance-mode`,!1),has.add(`esri-shared-array-buffer`,()=>{let t=`SharedArrayBuffer`in e,n=e.crossOriginIsolated===!1;return t&&!n}),has.add(`wasm-simd`,()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))),has.add(`esri-atomics`,`Atomics`in e),has.add(`esri-workers`,`Worker`in e),has.add(`web-feat:cache`,`caches`in e),has.add(`esri-workers-arraybuffer-transfer`,!has(`safari`)||Number(has(`safari`))>=12),has.add(`min-workers-pool-size`,2),has.add(`max-workers-pool-size`,has(`esri-mobile`)?3:8),has.add(`featurelayer-simplify-thresholds`,[.5,.5,.5,.5]),has.add(`featurelayer-simplify-payload-size-factors`,[1,1,4]),has.add(`featurelayer-animation-enabled`,!0),has.add(`featurelayer-hybrid-tile-enabled`,!0),has.add(`featurelayer-snapshot-enabled`,!0),has.add(`featurelayer-snapshot-initial-tolerance`,0),has.add(`featurelayer-snapshot-point-min-threshold`,8e4),has.add(`featurelayer-snapshot-point-max-threshold`,4e5),has.add(`featurelayer-snapshot-multipoint-min-threshold`,2e4),has.add(`featurelayer-snapshot-multipoint-max-threshold`,1e5),has.add(`featurelayer-snapshot-polygon-min-threshold`,2e3),has.add(`featurelayer-snapshot-polygon-max-threshold`,2e3),has.add(`featurelayer-snapshot-polyline-min-threshold`,2e3),has.add(`featurelayer-snapshot-polyline-max-threshold`,2e3),has.add(`featurelayer-snapshot-max-vertex-count`,25e4),has.add(`featurelayer-snapshot-non-hosted-exceedslimit-enabled`,!0),has.add(`featurelayer-snapshot-concurrency`,4),has.add(`featurelayer-snapshot-allow-editable`,!1),has.add(`featurelayer-snapshot-coverage`,.1),has.add(`featurelayer-pixel-buffering-enabled`,!0),has.add(`featurelayer-query-max-depth`,4),has.add(`featurelayer-query-max-page-size`,8e3),has.add(`featurelayer-query-pausing-enabled`,!1),has.add(`featurelayer-query-tile-concurrency`,4),has.add(`featurelayer-query-tile-max-features`,6e5),has.add(`featurelayer-advanced-symbols`,!1),has.add(`featurelayer-pbf`,!0),has.add(`featurelayer-pbf-statistics`,!1),has.add(`featurelayer-pbf-true-curves`,!0),has.add(`feature-layers-workers`,!0),has.add(`feature-polyline-generalization-factor`,1),has.add(`featurelayer-relative-time-queries-enabled`,!0),has.add(`featurelayer-relative-time-queries-bin-window-public`,1),has.add(`featurelayer-relative-time-queries-bin-window-private`,60),has.add(`parquetlayer-full-query-feature-count`,5e5),has.add(`parquetlayer-persistence-enabled`,!0),has.add(`parquetlayer-cache-enabled`,!0),has.add(`parquetlayer-legacy-field-overrides-enabled`,!1),has.add(`sketch-layer-enabled`,!1),has.add(`mapview-transitions-duration`,200),has.add(`mapview-essential-goto-duration`,200),has.add(`mapview-srswitch-adjust-rotation-scale-threshold`,24e6),has.add(`mapserver-pbf-version-support`,10.81),has.add(`mapservice-popup-identify-max-tolerance`,20),has.add(`request-queue-concurrency-global`,64),has.add(`request-queue-concurrency-hosted`,16),has.add(`request-queue-concurrency-non-hosted`,16),has.add(`curve-densification-coarse-segments`,128),has.add(`curve-densification-max-segments`,2e3),has.add(`curve-densification-min-segments`,3),has.add(`curve-densification-pixel-deviation`,.5),has.add(`view-readyState-waiting-delay`,1e3),has.add(`gradient-depth-bias`,.01),has.add(`gradient-depth-epsilon`,1e-8),!has(`host-webworker`)&&has(`host-browser`)&&(has.add(`esri-csp-restrictions`,()=>{try{Function()}catch{return!0}return!1}),has.add(`esri-url-encodes-apostrophe`,()=>{let e=window.document.createElement(`a`);return e.href=`?'`,e.href.includes(`?%27`)}))})();export{has as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{createTask as e}from"./asyncUtils.js";import t from"./Collection.js";import{destroyHandle as n,removeIfHandle as r}from"./handleUtils.js";import{ignoreAbortErrors as i,isAborted as a,createAbortError as o}from"./promiseUtils.js";import{on as s}from"./reactiveUtils.js";function c(e,n,r){let i=r?.createCollection?.()??new t,a=r?.recycleItems?new l:null,o=(e,t=0)=>{if(!e?.length)return;let n=i.splice(t,e.length);a?a.processRemoved(e):n.forEach(d)},c=(e,t=0)=>{if(!e?.length)return;let r=[];for(let t of e){let e=a?.use(t);if(e)r.push(e);else{let e=n(t);a?.register(t,e),r.push(e)}}i.addMany(r,t)},u=s(e,`after-splice`,({added:e,start:t,removed:n})=>{o(n,t),c(e,t)},{sync:!0,onListenerRemove:e=>o(e.items),onListenerAdd:e=>c(e.items)});return i.addHandles(u),i}class l{constructor(){this._originalToMapped=new Map,this._removedItemCandidates=new Set,this._garbageCollectionQueued=!1}processRemoved(e){if(!e?.length)return;let{_removedItemCandidates:t}=this;for(let n of e)this._getItem(n)?.markRemoved()&&(t.add(n),this._queueGarbageCollection())}use(e){let t=this._getItem(e);return t&&(t.removed=!1),t?.item}register(e,t){this._originalToMapped.set(e,new u(t))}_getItem(e){return this._originalToMapped.get(e)}_queueGarbageCollection(){this._garbageCollectionQueued||(this._garbageCollectionQueued=!0,queueMicrotask(()=>this._garbageCollectCandidates()))}_garbageCollectCandidates(){this._garbageCollectionQueued=!1;let{_removedItemCandidates:e}=this,t=Array.from(e);e.clear(),t.forEach(e=>this._garbageCollectIfRemoved(e))}_garbageCollectIfRemoved(e){let{_originalToMapped:t}=this,n=this._getItem(e);n?.removed&&(d(n.item),t.delete(e))}}class u{constructor(e){this.item=e,this.removed=!1}markRemoved(){return this.removed=!0,!0}}function d(e){typeof e==`object`&&e&&(`destroy`in e&&typeof e.destroy==`function`?e.destroy():r(e))}function f(r,s,l){let u=new t,f=c(r,t=>e(async e=>{let n=await s(t,e);if(a(e))throw d(n),o();return n}),l),p=()=>null,m=async e=>{let t=await e.promise,n=f.indexOf(e);n<0
|
|
2
|
+
import{createTask as e}from"./asyncUtils.js";import t from"./Collection.js";import{destroyHandle as n,removeIfHandle as r}from"./handleUtils.js";import{ignoreAbortErrors as i,isAborted as a,createAbortError as o}from"./promiseUtils.js";import{on as s}from"./reactiveUtils.js";function c(e,n,r){let i=r?.createCollection?.()??new t,a=r?.recycleItems?new l:null,o=(e,t=0)=>{if(!e?.length)return;let n=i.splice(t,e.length);a?a.processRemoved(e):n.forEach(d)},c=(e,t=0)=>{if(!e?.length)return;let r=[];for(let t of e){let e=a?.use(t);if(e)r.push(e);else{let e=n(t);a?.register(t,e),r.push(e)}}i.addMany(r,t)},u=s(e,`after-splice`,({added:e,start:t,removed:n})=>{o(n,t),c(e,t)},{sync:!0,onListenerRemove:e=>o(e.items),onListenerAdd:e=>c(e.items)});return i.addHandles(u),i}class l{constructor(){this._originalToMapped=new Map,this._removedItemCandidates=new Set,this._garbageCollectionQueued=!1}processRemoved(e){if(!e?.length)return;let{_removedItemCandidates:t}=this;for(let n of e)this._getItem(n)?.markRemoved()&&(t.add(n),this._queueGarbageCollection())}use(e){let t=this._getItem(e);return t&&(t.removed=!1),t?.item}register(e,t){this._originalToMapped.set(e,new u(t))}_getItem(e){return this._originalToMapped.get(e)}_queueGarbageCollection(){this._garbageCollectionQueued||(this._garbageCollectionQueued=!0,queueMicrotask(()=>this._garbageCollectCandidates()))}_garbageCollectCandidates(){this._garbageCollectionQueued=!1;let{_removedItemCandidates:e}=this,t=Array.from(e);e.clear(),t.forEach(e=>this._garbageCollectIfRemoved(e))}_garbageCollectIfRemoved(e){let{_originalToMapped:t}=this,n=this._getItem(e);n?.removed&&(d(n.item),t.delete(e))}}class u{constructor(e){this.item=e,this.removed=!1}markRemoved(){return this.removed=!0,!0}}function d(e){typeof e==`object`&&e&&(`destroy`in e&&typeof e.destroy==`function`?e.destroy():r(e))}function f(r,s,l){let u=new t,f=c(r,t=>e(async e=>{let n=await s(t,e);if(a(e))throw d(n),o();return n}),l),p=()=>null,m=async e=>{let t=await e.promise,n=f.indexOf(e);if(n<0){d(t);return}u.splice(n,1,t)};u.addMany(f.items.map(p));for(let e of f)i(m(e));let h=f.on(`after-splice`,({added:e,start:t,deleteCount:n})=>{let r=u.splice(t,n);for(let e of r)d(e);if(e?.length){u.addMany(e.map(p),t);for(let t of e)i(m(t))}});return u.addHandles([n(f),h]),u}export{c as mapCollection,f as mapCollectionAsync};
|
|
@@ -49,30 +49,23 @@ export interface InvokeOptions extends AbortOptions {
|
|
|
49
49
|
*
|
|
50
50
|
* ```js
|
|
51
51
|
* // Module loaded in main thread
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* .
|
|
63
|
-
*
|
|
64
|
-
* connection.close();
|
|
65
|
-
* connection = null;
|
|
66
|
-
*
|
|
67
|
-
* return result;
|
|
68
|
-
* });
|
|
52
|
+
* import { open } from "@arcgis/core/core/workers.js";
|
|
53
|
+
*
|
|
54
|
+
* export async function getSumAsync(numbers) {
|
|
55
|
+
* const connection = await open(new URL("./calculator.js", import.meta.url).href, {
|
|
56
|
+
* isESM: true
|
|
57
|
+
* });
|
|
58
|
+
*
|
|
59
|
+
* try {
|
|
60
|
+
* return await connection.invoke("getSum", numbers);
|
|
61
|
+
* } finally {
|
|
62
|
+
* connection.close();
|
|
63
|
+
* }
|
|
69
64
|
* }
|
|
70
65
|
*
|
|
71
66
|
* // Invoke our method.
|
|
72
|
-
* getSumAsync([0, 2, 4, 6, 8])
|
|
73
|
-
*
|
|
74
|
-
* console.log("Result:", result);
|
|
75
|
-
* });
|
|
67
|
+
* const result = await getSumAsync([0, 2, 4, 6, 8]);
|
|
68
|
+
* console.log("Result:", result);
|
|
76
69
|
* ```
|
|
77
70
|
*
|
|
78
71
|
* <span id="multiple-parameters"></span>
|
|
@@ -102,55 +95,37 @@ export interface InvokeOptions extends AbortOptions {
|
|
|
102
95
|
*
|
|
103
96
|
* ```js
|
|
104
97
|
* // Module loaded in main thread
|
|
105
|
-
* export function mapMultiplyAsync(numbers, factor) {
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
* numbers: numbers,
|
|
116
|
-
* factor: factor
|
|
117
|
-
* });
|
|
118
|
-
* })
|
|
119
|
-
* .then(function(result) {
|
|
120
|
-
* // close the connection after we are done.
|
|
121
|
-
* connection.close();
|
|
122
|
-
* connection = null;
|
|
123
|
-
*
|
|
124
|
-
* return result;
|
|
98
|
+
* export async function mapMultiplyAsync(numbers, factor) {
|
|
99
|
+
* const connection = await open(new URL("./calculator.js", import.meta.url).href, {
|
|
100
|
+
* isESM: true
|
|
101
|
+
* });
|
|
102
|
+
*
|
|
103
|
+
* try {
|
|
104
|
+
* // Invoke mapMultiply and pass an object with two key-value pairs.
|
|
105
|
+
* return await connection.invoke("mapMultiply", {
|
|
106
|
+
* numbers: numbers,
|
|
107
|
+
* factor: factor
|
|
125
108
|
* });
|
|
109
|
+
* } finally {
|
|
110
|
+
* connection.close();
|
|
111
|
+
* }
|
|
126
112
|
* }
|
|
127
113
|
*
|
|
128
114
|
* // Invoke the method.
|
|
129
|
-
* mapMultiplyAsync([0, 2, 4, 6, 8], 2)
|
|
130
|
-
*
|
|
131
|
-
* console.log("Result:", result);
|
|
132
|
-
* });
|
|
115
|
+
* const result = await mapMultiplyAsync([0, 2, 4, 6, 8], 2);
|
|
116
|
+
* console.log("Result:", result);
|
|
133
117
|
* ```
|
|
134
118
|
*
|
|
135
119
|
* <span id="using-transferables"></span>
|
|
136
120
|
* ## Using transferables
|
|
137
121
|
*
|
|
138
|
-
*
|
|
122
|
+
* [Transferable objects](https://developer.mozilla.org/docs/Web/API/Web_Workers_API/Transferable_objects) can be used
|
|
139
123
|
* to transfer data between main and worker thread to avoid copying the data. With this approach,
|
|
140
124
|
* the ownership of the object is transferred to the other context. Use this technique to transfer large
|
|
141
125
|
* chuck of memory with [ArrayBuffers](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer),
|
|
142
126
|
* a [MessagePort](https://developer.mozilla.org/docs/Web/API/MessagePort),
|
|
143
127
|
* or an [ImageBitmap](https://developer.mozilla.org/docs/Web/API/ImageBitmap).
|
|
144
128
|
*
|
|
145
|
-
* > [!CAUTION]
|
|
146
|
-
* >
|
|
147
|
-
* > **Note**
|
|
148
|
-
* >
|
|
149
|
-
* > The `Transferable` interface technically no longer exists. The functionality of `Transferable` objects still exists,
|
|
150
|
-
* > however, but is implemented at a more fundamental level
|
|
151
|
-
* > (technically speaking, using the `[Transferable]` [WebIDL](https://developer.mozilla.org/docs/Glossary/WebIDL)
|
|
152
|
-
* > extended attribute). See also [Transferable objects](https://developer.mozilla.org/docs/Web/API/Web_Workers_API/Transferable_objects).
|
|
153
|
-
*
|
|
154
129
|
* To transfer an object to the worker, use the `transferList` parameter of the [invoke()](https://developers.arcgis.com/javascript/latest/references/core/core/workers/Connection/#invoke) method.
|
|
155
130
|
* For the remote method to return or resolve with a transferable object, the result returned must have
|
|
156
131
|
* two properties: `result` and `transferList`, `result` being an object and `transferList` the array
|
|
@@ -184,26 +159,19 @@ export interface InvokeOptions extends AbortOptions {
|
|
|
184
159
|
*
|
|
185
160
|
* ```js
|
|
186
161
|
* // Module loaded in main thread
|
|
187
|
-
* export function mapMultiplyFloat64Async(numbers, factor) {
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
* numbers: numbers,
|
|
197
|
-
* factor: factor
|
|
198
|
-
* });
|
|
199
|
-
* })
|
|
200
|
-
* .then(function(result) {
|
|
201
|
-
* // close the connection after we are done.
|
|
202
|
-
* connection.close();
|
|
203
|
-
* connection = null;
|
|
204
|
-
*
|
|
205
|
-
* return result;
|
|
162
|
+
* export async function mapMultiplyFloat64Async(numbers, factor) {
|
|
163
|
+
* const connection = await open(new URL("./calculator.js", import.meta.url).href, {
|
|
164
|
+
* isESM: true
|
|
165
|
+
* });
|
|
166
|
+
*
|
|
167
|
+
* try {
|
|
168
|
+
* return await connection.invoke("mapMultiplyFloat64", {
|
|
169
|
+
* numbers: numbers,
|
|
170
|
+
* factor: factor
|
|
206
171
|
* });
|
|
172
|
+
* } finally {
|
|
173
|
+
* connection.close();
|
|
174
|
+
* }
|
|
207
175
|
* }
|
|
208
176
|
*
|
|
209
177
|
* // Invoke our method.
|
|
@@ -213,11 +181,9 @@ export interface InvokeOptions extends AbortOptions {
|
|
|
213
181
|
* floats[2] = 4;
|
|
214
182
|
* floats[3] = 6;
|
|
215
183
|
* floats[4] = 8;
|
|
216
|
-
* mapMultiplyFloat64Async(floats, 2)
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
* console.log("Result:", resultFloats);
|
|
220
|
-
* });
|
|
184
|
+
* const result = await mapMultiplyFloat64Async(floats, 2);
|
|
185
|
+
* const resultFloats = new Float64Array(result);
|
|
186
|
+
* console.log("Result:", resultFloats);
|
|
221
187
|
* ```
|
|
222
188
|
*
|
|
223
189
|
* @since 4.2
|
|
@@ -250,16 +216,19 @@ export default abstract class Connection {
|
|
|
250
216
|
* const controller = new AbortController();
|
|
251
217
|
* const signal = controller.signal;
|
|
252
218
|
*
|
|
253
|
-
* //
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
* }
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
219
|
+
* // Invoke a function on a worker thread.
|
|
220
|
+
* async function invokeWithTimeout() {
|
|
221
|
+
* try {
|
|
222
|
+
* const result = await connection.invoke("myLongRunningRemoteFunction", { someParameter: 10 }, {
|
|
223
|
+
* signal
|
|
224
|
+
* });
|
|
225
|
+
* console.log(result);
|
|
226
|
+
* } catch (error) {
|
|
227
|
+
* console.error(error);
|
|
228
|
+
* }
|
|
229
|
+
* }
|
|
230
|
+
*
|
|
231
|
+
* invokeWithTimeout();
|
|
263
232
|
*
|
|
264
233
|
* // if the call it takes more than 10 secs, abort:
|
|
265
234
|
* setTimeout(() => {
|