@arcgis/core 5.2.0-next.62 → 5.2.0-next.64
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/WebDocument2D.d.ts +17 -1
- package/WebDocument2D.js +1 -1
- package/WebLinkChart.js +1 -1
- package/WebMap.js +1 -1
- package/WebScene.js +1 -1
- package/arcade/Feature.js +1 -1
- package/arcade/ImmutableArray.js +1 -1
- package/arcade/ImmutablePathArray.js +1 -1
- package/arcade/ImmutablePointArray.js +1 -1
- package/arcade/Pixel.js +1 -1
- package/arcade/Voxel.js +1 -1
- package/arcade/arcadeAsyncRuntime.js +1 -1
- package/arcade/arcadeCompiler.js +1 -1
- package/arcade/arcadeRuntime.js +1 -1
- package/arcade/containerUtils.js +1 -1
- package/arcade/debug.js +1 -1
- package/arcade/deepClone.js +1 -1
- package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/arcade/functions/convertdirection.js +1 -1
- package/arcade/functions/date.js +1 -1
- package/arcade/functions/feature.js +1 -1
- package/arcade/functions/featuresetbase.js +1 -1
- package/arcade/functions/featuresetgeom.js +1 -1
- package/arcade/functions/featuresetstats.js +1 -1
- package/arcade/functions/featuresetstring.js +1 -1
- package/arcade/functions/fieldStats.js +1 -1
- package/arcade/functions/geomasync.js +1 -1
- package/arcade/functions/geometry.js +1 -1
- package/arcade/functions/geomsync.js +1 -1
- package/arcade/functions/knowledgegraph.js +1 -1
- package/arcade/functions/maths.js +1 -1
- package/arcade/functions/stats.js +1 -1
- package/arcade/functions/string.js +1 -1
- package/arcade/functions/track.js +1 -1
- package/arcade/geometry/functions.js +1 -1
- package/arcade/languageUtils.js +1 -1
- package/arcade.js +1 -1
- package/arcgisGlobal.d.ts +14 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{44e64186318728d1be51.js → 067b00498ae85f635f60.js} +1 -1
- package/assets/esri/core/workers/chunks/0977f4d77c36175c2895.js +1 -0
- package/assets/esri/core/workers/chunks/09c43bcb09aad02e83a9.js +1 -0
- package/assets/esri/core/workers/chunks/0b20f92bae2b4c40d299.js +1 -0
- package/assets/esri/core/workers/chunks/0c3c311400ee352187ea.js +1 -0
- package/assets/esri/core/workers/chunks/0c582abc8d25249eb530.js +1 -0
- package/assets/esri/core/workers/chunks/0d6776055e9b34c14151.js +1 -0
- package/assets/esri/core/workers/chunks/0d7d54e74b5639a0be6e.js +1 -0
- package/assets/esri/core/workers/chunks/0da5b27b070ab780f8b3.js +1 -0
- package/assets/esri/core/workers/chunks/0e6b6fcc55cc43ede1fc.js +1 -0
- package/assets/esri/core/workers/chunks/{bcb5017500d144b73908.js → 126f1f6b355723db6c4f.js} +1 -1
- package/assets/esri/core/workers/chunks/12a64eca4c571926d9d4.js +1 -0
- package/assets/esri/core/workers/chunks/{b2c0262c4a76b8a86200.js → 149284464115981694ff.js} +1 -1
- package/assets/esri/core/workers/chunks/1642fa1263d8f4a45101.js +1 -0
- package/assets/esri/core/workers/chunks/1840d74ebae777a0200b.js +1 -0
- package/assets/esri/core/workers/chunks/19bf6826e7d9a4d52035.js +1 -0
- package/assets/esri/core/workers/chunks/1bfbdec791e19f5a2534.js +1 -0
- package/assets/esri/core/workers/chunks/1d8280f63a6698e74f20.js +1 -0
- package/assets/esri/core/workers/chunks/{1b68b1b724ad30396723.js → 2426601b8cae7f06af4d.js} +1 -1
- package/assets/esri/core/workers/chunks/{a12803108c3b12808698.js → 242cad472fbc38b24dbc.js} +2 -2
- package/assets/esri/core/workers/chunks/25197ecb324d6f08e03e.js +1 -0
- package/assets/esri/core/workers/chunks/253c231b5a52f1d2d3a5.js +1 -0
- package/assets/esri/core/workers/chunks/25999b6f96ec305a7679.js +1 -0
- package/assets/esri/core/workers/chunks/259bdacfb7b0f866a8d0.js +1 -0
- package/assets/esri/core/workers/chunks/28565756f884d0851003.js +1 -0
- package/assets/esri/core/workers/chunks/2a5a165848413764381b.js +1 -0
- package/assets/esri/core/workers/chunks/2e7a5bb740281ef59199.js +1 -0
- package/assets/esri/core/workers/chunks/{285a5bd708f0fe1c620c.js → 2ea3ca68cfa4d34e8f3b.js} +1 -1
- package/assets/esri/core/workers/chunks/2f87a49bdd00f899d81d.js +1 -0
- package/assets/esri/core/workers/chunks/{37a95f097533bad1b338.js → 302d91b7c480c6c9304b.js} +1 -1
- package/assets/esri/core/workers/chunks/{3d6d2b42ba2ad7086d5d.js → 3b493e8043ec1a2a5d96.js} +1 -1
- package/assets/esri/core/workers/chunks/40e48b720d89cd067892.js +1 -0
- package/assets/esri/core/workers/chunks/{a833fc9250635eb4152f.js → 41f7f3615d3ecb87c59a.js} +1 -1
- package/assets/esri/core/workers/chunks/{17acbf40e7c1cb42d9bd.js → 44b1cdf28269b4fa8a39.js} +1 -1
- package/assets/esri/core/workers/chunks/44e8cd4b3dad777ab0c9.js +1 -0
- package/assets/esri/core/workers/chunks/{95b3b8fe45ef4ac6b277.js → 450bc48a7389607bce1e.js} +1 -1
- package/assets/esri/core/workers/chunks/465a050fd838ee8eddf3.js +1 -0
- package/assets/esri/core/workers/chunks/46d8a1d6f7341ad20749.js +1 -0
- package/assets/esri/core/workers/chunks/4710f21b138a2c9a0345.js +1 -0
- package/assets/esri/core/workers/chunks/48a0dfaabb9b4bce4191.js +1 -0
- package/assets/esri/core/workers/chunks/49a3888bf9e2481642ac.js +1 -0
- package/assets/esri/core/workers/chunks/{4ee900e5dbb130fa0c7b.js → 4a40b894ec89b0a4f9bf.js} +1 -1
- package/assets/esri/core/workers/chunks/{d847c3cb2043a983145b.js → 4addea2e35b0c845743e.js} +1 -1
- package/assets/esri/core/workers/chunks/{e0a4d0288abd334b0673.js → 4ae626868e14bedd7fc5.js} +1 -1
- package/assets/esri/core/workers/chunks/529ee4670940720e888b.js +1 -0
- package/assets/esri/core/workers/chunks/{a3c882fe7599dc0f4f27.js → 59d1708ae13c6e7e6e55.js} +1 -1
- package/assets/esri/core/workers/chunks/59dd83e5aee2908c7eca.js +1 -0
- package/assets/esri/core/workers/chunks/5dbd8ca7e7b8eb9a0bf7.js +1 -0
- package/assets/esri/core/workers/chunks/{b8bdacebd4d24ba90f3f.js → 5fde1234c5cccaee6763.js} +1 -1
- package/assets/esri/core/workers/chunks/60f9b37dd738d884c48d.js +1 -0
- package/assets/esri/core/workers/chunks/6123894e2ae9233cdf89.js +1 -0
- package/assets/esri/core/workers/chunks/62c8413f3bbc1378273d.js +1 -0
- package/assets/esri/core/workers/chunks/6501ee40bf25f9f75d02.js +1 -0
- package/assets/esri/core/workers/chunks/663cf8bff17c894cd5f8.js +1 -0
- package/assets/esri/core/workers/chunks/6b536d03b4bef408035b.js +1 -0
- package/assets/esri/core/workers/chunks/6c98a64d92c9bca78203.js +1 -0
- package/assets/esri/core/workers/chunks/6d1371b521c7f94fd77e.js +1 -0
- package/assets/esri/core/workers/chunks/6d5038d4351fe29e2718.js +1 -0
- package/assets/esri/core/workers/chunks/6f102c90908c9900cdaa.js +1 -0
- package/assets/esri/core/workers/chunks/6f39545710d1b35d922c.js +1 -0
- package/assets/esri/core/workers/chunks/7278fdf6bfcdffa10a7f.js +1 -0
- package/assets/esri/core/workers/chunks/72eb0ac55026a4f5d6a7.js +1 -0
- package/assets/esri/core/workers/chunks/73cb499d7d68c59ba34e.js +1 -0
- package/assets/esri/core/workers/chunks/{b8d788e110c212a879ab.js → 73f228d966b89c73c9e9.js} +1 -1
- package/assets/esri/core/workers/chunks/{e7402dfd683f82878360.js → 752343d92ed48e674351.js} +1 -1
- package/assets/esri/core/workers/chunks/7538a0fe0cec3156769e.js +1 -0
- package/assets/esri/core/workers/chunks/76bccc318d7cc33829a7.js +1 -0
- package/assets/esri/core/workers/chunks/771ead806efbe9c91fdc.js +1 -0
- package/assets/esri/core/workers/chunks/777eafdb86b26b35c803.js +1 -0
- package/assets/esri/core/workers/chunks/7821aeba3e414b318a75.js +1 -0
- package/assets/esri/core/workers/chunks/78b80da3bbc1b608fe83.js +1 -0
- package/assets/esri/core/workers/chunks/7b531feba4fd662575f9.js +1 -0
- package/assets/esri/core/workers/chunks/7c57354d026e27e056d4.js +1 -0
- package/assets/esri/core/workers/chunks/7d163d9d90393e491ee5.js +1 -0
- package/assets/esri/core/workers/chunks/7d4c65311064a5c2e0b1.js +1 -0
- package/assets/esri/core/workers/chunks/{0474af7687466d8befd2.js → 7e2794705b4e679fcb3f.js} +1 -1
- package/assets/esri/core/workers/chunks/7ebbb90d80600d9ba889.js +1 -0
- package/assets/esri/core/workers/chunks/7f125963555dc1ce63ad.js +1 -0
- package/assets/esri/core/workers/chunks/{763cbb6716e398436a6d.js → 7f6eee102871769fdf8f.js} +1 -1
- package/assets/esri/core/workers/chunks/805c97b875d3066fb8df.js +1 -0
- package/assets/esri/core/workers/chunks/8566449c39eba55147f5.js +1 -0
- package/assets/esri/core/workers/chunks/86ed75b7169b8ee43025.js +1 -0
- package/assets/esri/core/workers/chunks/{9482a6d7baa24bbf5693.js → 89132395eca329b9ab92.js} +1 -1
- package/assets/esri/core/workers/chunks/{28bc5e8e82f188b30eb9.js → 894343e415639df88243.js} +1 -1
- package/assets/esri/core/workers/chunks/8b4759cef5ae5e43253b.js +1 -0
- package/assets/esri/core/workers/chunks/8ba4175f5e9a24ffecf7.js +1 -0
- package/assets/esri/core/workers/chunks/8be707044d992ef5f1d8.js +1 -0
- package/assets/esri/core/workers/chunks/{bd862382f72ebd446b46.js → 8d2cac1952e817daaf1f.js} +1 -1
- package/assets/esri/core/workers/chunks/8e1d4867406753c5483c.js +1 -0
- package/assets/esri/core/workers/chunks/8e38c5e63aae42bdf5a4.js +29 -0
- package/assets/esri/core/workers/chunks/{02ab09285a5c4ca98066.js → 8f785b722b1a131bf370.js} +1 -1
- package/assets/esri/core/workers/chunks/8f9874f42f21a4cb3acd.js +1 -0
- package/assets/esri/core/workers/chunks/90f4b81c6034253b70d7.js +1 -0
- package/assets/esri/core/workers/chunks/917c11cb40a7742d7f98.js +1 -0
- package/assets/esri/core/workers/chunks/93ab247ff34694ac60eb.js +1 -0
- package/assets/esri/core/workers/chunks/{6e45d0db97ffa4509177.js → 94bf7f0da6ad3f7ea277.js} +1 -1
- package/assets/esri/core/workers/chunks/{580451761cadfe308919.js → 9954149def644c371894.js} +1 -1
- package/assets/esri/core/workers/chunks/9c57161ad48d8d546dc7.js +1 -0
- package/assets/esri/core/workers/chunks/{33bd9785bd0b6ccef21b.js → 9c5dff4f13102871786e.js} +1 -1
- package/assets/esri/core/workers/chunks/9d0bda096cdbd7e22f4b.js +1 -0
- package/assets/esri/core/workers/chunks/9dfb7d120195991e9672.js +1 -0
- package/assets/esri/core/workers/chunks/9ed5e6b06afea6c85330.js +1 -0
- package/assets/esri/core/workers/chunks/9f65cc6d9f7390bb1d5b.js +1 -0
- package/assets/esri/core/workers/chunks/{79b857bb301f9c4169d6.js → 9fee8441fbac9f723f77.js} +1 -1
- package/assets/esri/core/workers/chunks/a108f276659d5f25352c.js +1 -0
- package/assets/esri/core/workers/chunks/a2d8bc0efddd2e13b1ad.js +1 -0
- package/assets/esri/core/workers/chunks/{b32ede7805c7c6644e4c.js → a3bf8aa81ee398da5b52.js} +1 -1
- package/assets/esri/core/workers/chunks/{5b30231ae0a8f4b8435f.js → a504fa17d83facf1c01f.js} +1 -1
- package/assets/esri/core/workers/chunks/{538fe46dfd685a490e23.js → a7f42ada0aa69873a938.js} +1 -1
- package/assets/esri/core/workers/chunks/a97e0b9b057664911c14.js +1 -0
- package/assets/esri/core/workers/chunks/{cb58aff1ff186fa18345.js → a9f616f22042b0dce8b9.js} +1 -1
- package/assets/esri/core/workers/chunks/{128799741dd3c6fc69b9.js → ac4131121230cfc14f21.js} +1 -1
- package/assets/esri/core/workers/chunks/afd63c18ce4656271c8e.js +1 -0
- package/assets/esri/core/workers/chunks/{f04cb48fc73635d0572f.js → b059dabb1c732829487c.js} +1 -1
- package/assets/esri/core/workers/chunks/b13d2da33ec07e9d41ff.js +1 -0
- package/assets/esri/core/workers/chunks/b313464b987db8a3987a.js +1 -0
- package/assets/esri/core/workers/chunks/b318823aefcefad6fad5.js +1 -0
- package/assets/esri/core/workers/chunks/b378e504a5b1afc8d0ce.js +1 -0
- package/assets/esri/core/workers/chunks/{9fb87a7dba62b527c0ba.js → b3a1a93c6dc9247cb048.js} +1 -1
- package/assets/esri/core/workers/chunks/b5397dc03fa0bd654ba6.js +1 -0
- package/assets/esri/core/workers/chunks/b5b698008b8f3f4d5d61.js +1 -0
- package/assets/esri/core/workers/chunks/b7bcb31737b01d7736d0.js +1 -0
- package/assets/esri/core/workers/chunks/b9a1046ca2cd0cca5da5.js +1 -0
- package/assets/esri/core/workers/chunks/{cda04571d7623c17ada2.js → b9c7aa04861f545a559c.js} +1 -1
- package/assets/esri/core/workers/chunks/{7df795bc4fa1d433463b.js → ba030767cf935f967454.js} +1 -1
- package/assets/esri/core/workers/chunks/{53d165b4f30fd64e5d8a.js → bd311c85437743cf7d2f.js} +1 -1
- package/assets/esri/core/workers/chunks/bd88228f781a0399d8bd.js +1 -0
- package/assets/esri/core/workers/chunks/bfb626805405646a0419.js +1 -0
- package/assets/esri/core/workers/chunks/{61d3fcb419d6bf7e355e.js → c1e45e24f5ef719a714c.js} +18 -18
- package/assets/esri/core/workers/chunks/c203df41f9d2e4b80889.js +1 -0
- package/assets/esri/core/workers/chunks/{278409028bc5af45b507.js → c4c83b5129c279c3615b.js} +1 -1
- package/assets/esri/core/workers/chunks/c53b2be005721591e29b.js +1 -0
- package/assets/esri/core/workers/chunks/c6ef0636073e28350c91.js +1 -0
- package/assets/esri/core/workers/chunks/c7e391df714839484cd1.js +1 -0
- package/assets/esri/core/workers/chunks/{e287113777a94ded8de6.js → c82ab4f0908290e70ee9.js} +1 -1
- package/assets/esri/core/workers/chunks/cded485ad893a7dd2948.js +1 -0
- package/assets/esri/core/workers/chunks/{1cf8fb704c48ac3d3b15.js → cf360767310fb45660a8.js} +1 -1
- package/assets/esri/core/workers/chunks/{8f2fecd8a0a972d68590.js → cf8ce63711488f2e677c.js} +1 -1
- package/assets/esri/core/workers/chunks/d214ac457ac970479536.js +1 -0
- package/assets/esri/core/workers/chunks/d4058352db1e8255b52e.js +1 -0
- package/assets/esri/core/workers/chunks/d456520e4b119a2816b6.js +1 -0
- package/assets/esri/core/workers/chunks/d4d385d19e62ef1c286f.js +1 -0
- package/assets/esri/core/workers/chunks/d4f005dadba75422b401.js +1 -0
- package/assets/esri/core/workers/chunks/{52c4b4dabcb0d162be72.js → d5e15021928e95c11463.js} +1 -1
- package/assets/esri/core/workers/chunks/{fc639c730115e07a4a1a.js → d6500f6b2ff115d9eb09.js} +1 -1
- package/assets/esri/core/workers/chunks/e02f02040b63d9c2e654.js +1 -0
- package/assets/esri/core/workers/chunks/e08c64e4ae5a68eae2be.js +1 -0
- package/assets/esri/core/workers/chunks/e1492d2404c3ed82931e.js +1 -0
- package/assets/esri/core/workers/chunks/e2ddfc96ddba92302e0c.js +1 -0
- package/assets/esri/core/workers/chunks/e34ed3b818b2eb4116c5.js +1 -0
- package/assets/esri/core/workers/chunks/e7149d23615fee31ab7e.js +1 -0
- package/assets/esri/core/workers/chunks/ec774f5d6ea5c29536e5.js +1 -0
- package/assets/esri/core/workers/chunks/{35cbf00f0c37a86517af.js → ed1de8b7406269e217b9.js} +1 -1
- package/assets/esri/core/workers/chunks/ed4ac5568dc2815b066d.js +1 -0
- package/assets/esri/core/workers/chunks/ed71a4e353715db0a6e9.js +1 -0
- package/assets/esri/core/workers/chunks/{f4891345507df63cff3c.js → ef27bf1d7941ae265ca4.js} +3 -3
- package/assets/esri/core/workers/chunks/f029c12f1afee0e9b2a1.js +1 -0
- package/assets/esri/core/workers/chunks/{1e342d532925569daadb.js → f475672ff4c2ec9367c2.js} +1 -1
- package/assets/esri/core/workers/chunks/{cc414fd2e313d89d524d.js → f54eba484f40d5eeb590.js} +1 -1
- package/assets/esri/core/workers/chunks/f5c9659fc5d571d501c9.js +1 -0
- package/assets/esri/core/workers/chunks/f622b27ebdf1c918fd6d.js +1 -0
- package/assets/esri/core/workers/chunks/{dd95f50dac3f33cdb6d2.js → f6a13f07a5f7b781a9a8.js} +1 -1
- package/assets/esri/core/workers/chunks/{d849bdaf5bdfdc37531a.js → f6f7d885b4d6080e3f58.js} +1 -1
- package/assets/esri/core/workers/chunks/f8b8d3d2710c83acccf3.js +1 -0
- package/assets/esri/core/workers/chunks/f95870bb4d8e4e13e69e.js +1 -0
- package/assets/esri/core/workers/chunks/fa377112ef3b78f6ed18.js +1 -0
- package/assets/esri/core/workers/chunks/fa59f10ed0f182a2a7f3.js +1 -0
- package/assets/esri/core/workers/chunks/faa55265020591fd2224.js +1 -0
- package/assets/esri/core/workers/chunks/fc827f58db3194922056.js +1 -0
- package/chunks/VolumeMask.glsl.js +3 -0
- package/chunks/_commonjsHelpers.js +1 -1
- package/chunks/aiServices.js +1 -1
- package/chunks/array.js +1 -1
- package/chunks/languageUtils.js +1 -1
- package/chunks/persistableUrlUtils.js +1 -1
- package/config.js +1 -1
- package/core/Collection.d.ts +42 -6
- package/core/Collection.js +1 -1
- package/form/ExpressionInfo.d.ts +1 -1
- package/form/ExpressionInfo.js +1 -1
- package/form/elements/FieldElement.d.ts +3 -2
- package/form/elements/inputs/ComboBoxInput.d.ts +4 -15
- package/form/elements/inputs/ComboBoxInput.js +1 -1
- package/form/elements/inputs/DynamicChoiceInput.d.ts +31 -0
- package/form/elements/inputs/DynamicChoiceInput.js +2 -0
- package/form/elements/inputs/Input.d.ts +1 -1
- package/form/elements/inputs/RadioButtonsInput.d.ts +4 -15
- package/form/elements/inputs/RadioButtonsInput.js +1 -1
- package/form/elements/inputs/SingleChoiceInput.d.ts +18 -0
- package/form/elements/inputs/SingleChoiceInput.js +2 -0
- package/form/elements/inputs.d.ts +11 -2
- package/form/elements/inputs.js +1 -1
- package/geometry/SpatialReference.d.ts +1 -4
- package/geometry/support/normalizeUtils.d.ts +1 -1
- package/kernel.js +1 -1
- package/layers/BaseElevationLayer.js +1 -1
- package/layers/ElevationLayer.js +1 -1
- package/layers/ImageryTileLayer.d.ts +1 -1
- package/layers/IntegratedMesh3DTilesLayer.js +1 -1
- package/layers/KnowledgeGraphLayer.js +1 -1
- package/layers/Lyr3DWasmPerSceneView.js +1 -1
- package/layers/RouteLayer.d.ts +1 -1
- package/layers/StreamLayer.js +1 -1
- package/layers/VoxelWasmPerSceneView.js +1 -1
- package/layers/graphics/sources/connections/createConnection.js +1 -1
- package/layers/graphics/sources/parquet/ParquetFileStatistics.js +1 -1
- package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
- package/layers/graphics/sources/support/QueryTask.js +1 -1
- package/layers/mixins/ArcGISImageService.d.ts +24 -24
- package/layers/mixins/SceneService.js +1 -1
- package/layers/mixins/TiledImagery.d.ts +1 -1
- package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
- package/layers/raster/datasets/BaseRaster.js +1 -1
- package/layers/save/groupLayerUtils.js +1 -1
- package/layers/save/mediaLayerUtils.js +1 -1
- package/layers/support/ElevationQueryTileCache.js +1 -1
- package/layers/video/VideoController.js +1 -1
- package/layers/video/types.d.ts +17 -1
- package/linkChart/LinkChartProperties.js +1 -1
- package/networks/support/CircuitExportJobInfo.d.ts +1 -1
- package/networks/support/CircuitVerifyJobInfo.d.ts +1 -1
- package/networks/support/TopologyValidationJobInfo.d.ts +1 -1
- package/networks/support/TraceJobInfo.d.ts +1 -1
- package/package.json +2 -2
- package/portal/jsonTypes.d.ts +1 -1
- package/portal/support/jsonContext.js +1 -1
- package/rest/closestFacility.d.ts +1 -1
- package/rest/find.d.ts +1 -1
- package/rest/geometryService.d.ts +21 -21
- package/rest/geoprocessor.d.ts +2 -2
- package/rest/identify.d.ts +1 -1
- package/rest/imageService.d.ts +19 -19
- package/rest/lastMileDelivery.d.ts +8 -8
- package/rest/locator.d.ts +4 -4
- package/rest/networkService.d.ts +1 -1
- package/rest/networks/queryAssociations.d.ts +1 -1
- package/rest/networks/synthesizeAssociationGeometries.d.ts +1 -1
- package/rest/networks/trace.d.ts +1 -1
- package/rest/networks/traverseAssociations.d.ts +1 -1
- package/rest/places.d.ts +3 -3
- package/rest/print.d.ts +1 -1
- package/rest/query.d.ts +11 -11
- package/rest/route.d.ts +1 -1
- package/rest/serviceArea.d.ts +1 -1
- package/rest/support/JobInfo.d.ts +5 -5
- package/rest/symbolService.d.ts +1 -1
- package/support/persistableUrlUtils.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/layers/features/sources/strategies/AFeatureLoadStrategy.js +1 -1
- package/views/2d/layers/features/sources/strategies/FeatureHybridTileLoadStrategy.js +1 -1
- package/views/3d/GroundView3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightReshapeTool3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayerConstants.js +1 -1
- package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
- package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
- package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
- package/views/3d/layers/support/Tiles3DMeshIntersectionHandler.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatHeaderTexture.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
- package/views/3d/support/hitTest.js +1 -1
- package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
- package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectFixedBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathEvaluate.glsl.js +49 -32
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexInfo.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +23 -23
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaMask.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillVisualization.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/IntersectorResult.js +1 -1
- package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
- package/views/3d/webgl-engine/lib/PathEvaluator.js +1 -1
- package/views/3d/webgl-engine/lib/PathExtruder.js +1 -1
- package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBufferFieldCreation.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/intersectWithPolygonOffset.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowCastMaskTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/{CutFillMask.glsl.js → VolumeMask.glsl.js} +1 -1
- package/views/3d/webgl-engine/shaders/VolumeMaskTechnique.js +2 -0
- package/views/draw/support/InteractiveHandle.js +1 -1
- package/views/draw/support/managers/SurfaceManager.js +1 -1
- package/views/interactive/Tooltip.d.ts +3 -3
- package/views/interactive/Tooltip.js +1 -1
- package/views/interactive/options/ElevationOptions.d.ts +20 -0
- package/views/interactive/options/ElevationOptions.js +2 -0
- package/views/interactive/options/LabelOptions.d.ts +74 -0
- package/views/interactive/options/LabelOptions.js +2 -0
- package/views/interactive/options/SnappingOptions.d.ts +157 -0
- package/views/interactive/options/SnappingOptions.js +2 -0
- package/views/interactive/options/TooltipOptions.d.ts +152 -0
- package/views/interactive/options/TooltipOptions.js +2 -0
- package/views/interactive/options/TooltipVisibleElements.d.ts +105 -0
- package/views/interactive/options/TooltipVisibleElements.js +2 -0
- package/views/interactive/options/ValueOptions.d.ts +63 -0
- package/views/interactive/options/ValueOptions.js +2 -0
- package/views/interactive/sketch/SketchLabelOptions.d.ts +7 -9
- package/views/interactive/sketch/SketchLabelOptions.js +1 -1
- package/views/interactive/sketch/SketchTooltipElevationOptions.js +1 -1
- package/views/interactive/sketch/SketchTooltipOptions.d.ts +8 -50
- package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
- package/views/interactive/sketch/SketchTooltipVisibleElements.d.ts +10 -95
- package/views/interactive/sketch/SketchTooltipVisibleElements.js +1 -1
- package/views/interactive/sketch/SketchValueOptions.d.ts +7 -45
- package/views/interactive/sketch/SketchValueOptions.js +1 -1
- package/views/interactive/sketch/Units.d.ts +10 -29
- package/views/interactive/sketch/Units.js +1 -1
- package/views/interactive/snapping/SnappingOptions.d.ts +7 -78
- package/views/interactive/snapping/SnappingOptions.js +1 -1
- package/views/interactive/support/Units.d.ts +33 -0
- package/views/interactive/support/Units.js +2 -0
- package/views/interactive/support/types.d.ts +33 -0
- package/views/interactive/tooltip/types.d.ts +6 -2
- package/webdoc/support/resourceUtils.js +1 -1
- package/webdoc/support/types.d.ts +2 -0
- package/webdoc/support/utils.js +2 -0
- package/webdoc/support/webdocLoadUtils.js +1 -1
- package/webdoc/support/webdocSaveUtils.js +1 -1
- package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
- package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
- package/widgets/BatchAttributeForm/expressions/ArcadeExecutorProvider.js +1 -1
- package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
- package/widgets/BatchAttributeForm/expressions/ExpressionsModel.js +1 -1
- package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
- package/widgets/BatchAttributeForm/inputs/BatchFormInputs.js +1 -1
- package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
- package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
- package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +1 -1
- package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/Grid/Column.d.ts +6 -0
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/support/SelectionList/FeatureItem.d.ts +116 -0
- package/widgets/support/SelectionList/GroupLayerItem.d.ts +94 -0
- package/widgets/support/SelectionList/ItemBase.d.ts +70 -0
- package/widgets/support/SelectionList/LayerItem.d.ts +140 -0
- package/widgets/support/SelectionList/LayerItem.js +1 -1
- package/widgets/support/SelectionList/SelectionListViewModel.d.ts +265 -0
- package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
- package/widgets/support/SelectionList/types.d.ts +42 -0
- package/widgets/support/forms/formUtils.js +1 -1
- package/assets/esri/core/workers/chunks/003a87b16f8a4b476e14.js +0 -1
- package/assets/esri/core/workers/chunks/069b6d8bdb34ee88d437.js +0 -1
- package/assets/esri/core/workers/chunks/0790bf0eb276cd9166f6.js +0 -1
- package/assets/esri/core/workers/chunks/0a50efb07eee36237e21.js +0 -1
- package/assets/esri/core/workers/chunks/0ae0483b72f5e8d00d55.js +0 -1
- package/assets/esri/core/workers/chunks/0d1224693a62a26a0e72.js +0 -1
- package/assets/esri/core/workers/chunks/10b367563f894ceb9864.js +0 -1
- package/assets/esri/core/workers/chunks/11e00ca5ac1b004f4ecc.js +0 -1
- package/assets/esri/core/workers/chunks/129fdd1636e67997337c.js +0 -1
- package/assets/esri/core/workers/chunks/12e0c5b7cc5c3f9e6f0f.js +0 -1
- package/assets/esri/core/workers/chunks/13033178de9f637a2356.js +0 -1
- package/assets/esri/core/workers/chunks/13c893e448bedc5c1cef.js +0 -1
- package/assets/esri/core/workers/chunks/147a89553188cc6aabf4.js +0 -1
- package/assets/esri/core/workers/chunks/15c2d9bec0455fc363a9.js +0 -1
- package/assets/esri/core/workers/chunks/246cd372d4184233f48e.js +0 -1
- package/assets/esri/core/workers/chunks/268ab65afc3fce775ad2.js +0 -1
- package/assets/esri/core/workers/chunks/26a2d4b95cda0a41d980.js +0 -1
- package/assets/esri/core/workers/chunks/26f1fd3f2be5102aae1d.js +0 -1
- package/assets/esri/core/workers/chunks/279a9a38b04a21cdfd11.js +0 -1
- package/assets/esri/core/workers/chunks/3406a01dad6338e3c548.js +0 -1
- package/assets/esri/core/workers/chunks/34fbeeeeef4bd01672c6.js +0 -1
- package/assets/esri/core/workers/chunks/36781219ca9ba5d7fe52.js +0 -1
- package/assets/esri/core/workers/chunks/36999a2e383c8eb3c398.js +0 -1
- package/assets/esri/core/workers/chunks/36f8a912842181e1f0aa.js +0 -1
- package/assets/esri/core/workers/chunks/36fe6adf6517d8f80125.js +0 -1
- package/assets/esri/core/workers/chunks/3f1a7f8a9ead64bf0b7b.js +0 -1
- package/assets/esri/core/workers/chunks/403f08e0c1a9203f7fba.js +0 -1
- package/assets/esri/core/workers/chunks/461c2de938bf4c9b1442.js +0 -1
- package/assets/esri/core/workers/chunks/478540265c86436da05e.js +0 -1
- package/assets/esri/core/workers/chunks/479f486ec1797629ec70.js +0 -1
- package/assets/esri/core/workers/chunks/484b3e2a220c440ccbb4.js +0 -1
- package/assets/esri/core/workers/chunks/4a340836ddbc856993f2.js +0 -1
- package/assets/esri/core/workers/chunks/4f2170609742b51bd7b8.js +0 -1
- package/assets/esri/core/workers/chunks/4f59357f535f30a6b5cc.js +0 -1
- package/assets/esri/core/workers/chunks/5133083222588799493f.js +0 -1
- package/assets/esri/core/workers/chunks/52993a9dc0c56e9bda19.js +0 -1
- package/assets/esri/core/workers/chunks/57b07448da06d0302a46.js +0 -1
- package/assets/esri/core/workers/chunks/5a9ff50fdcc99ae28cce.js +0 -1
- package/assets/esri/core/workers/chunks/5dc17b76c6ecc24e7b9a.js +0 -1
- package/assets/esri/core/workers/chunks/5e35828216020f33e26b.js +0 -1
- package/assets/esri/core/workers/chunks/5eb6f37c74a217772eca.js +0 -1
- package/assets/esri/core/workers/chunks/5f0d6c853873a7f32527.js +0 -1
- package/assets/esri/core/workers/chunks/6121cd0264b6841a5bac.js +0 -1
- package/assets/esri/core/workers/chunks/6210fb6cd31844f23964.js +0 -1
- package/assets/esri/core/workers/chunks/638ed1297efdb24f4711.js +0 -1
- package/assets/esri/core/workers/chunks/64247e439ef3e1f712e9.js +0 -1
- package/assets/esri/core/workers/chunks/661a59133ae34f172174.js +0 -1
- package/assets/esri/core/workers/chunks/6823ba1688dfedba0107.js +0 -1
- package/assets/esri/core/workers/chunks/6c2b5087a9df65267f4e.js +0 -1
- package/assets/esri/core/workers/chunks/6d247ff53421d27628ce.js +0 -1
- package/assets/esri/core/workers/chunks/700c08dd2e734c15e621.js +0 -1
- package/assets/esri/core/workers/chunks/70452f6d63e9be8d03dd.js +0 -1
- package/assets/esri/core/workers/chunks/705d6b108fd121cea887.js +0 -1
- package/assets/esri/core/workers/chunks/733b2e181683d5fc7c95.js +0 -1
- package/assets/esri/core/workers/chunks/73aa1bfa6e1dc271c9d7.js +0 -1
- package/assets/esri/core/workers/chunks/7659391f952d134164cf.js +0 -1
- package/assets/esri/core/workers/chunks/7889f4a17cf249f2acc5.js +0 -1
- package/assets/esri/core/workers/chunks/7a2dcd57849048c6e00d.js +0 -1
- package/assets/esri/core/workers/chunks/7a2dfa42610fe8414ed7.js +0 -1
- package/assets/esri/core/workers/chunks/7ce52b850dd785bfa33f.js +0 -1
- package/assets/esri/core/workers/chunks/81accb1820e2735fa376.js +0 -1
- package/assets/esri/core/workers/chunks/8210fc9e072209e26fa9.js +0 -1
- package/assets/esri/core/workers/chunks/825eb845216762a1ed2f.js +0 -1
- package/assets/esri/core/workers/chunks/83991475aa54fd5aa008.js +0 -1
- package/assets/esri/core/workers/chunks/84fa102a93b2144c28fb.js +0 -1
- package/assets/esri/core/workers/chunks/85ce7673d42526a79fd2.js +0 -1
- package/assets/esri/core/workers/chunks/8722e2790272e90a1897.js +0 -1
- package/assets/esri/core/workers/chunks/88df19742edb0cdc3e67.js +0 -1
- package/assets/esri/core/workers/chunks/8977c85aecc7e08ab13c.js +0 -1
- package/assets/esri/core/workers/chunks/8a1970e68bc1e833cb7f.js +0 -1
- package/assets/esri/core/workers/chunks/8bb20ef549ec1c86b38e.js +0 -1
- package/assets/esri/core/workers/chunks/8bdca809dd88eab9e5d8.js +0 -29
- package/assets/esri/core/workers/chunks/8c5726c7ce40a92901e6.js +0 -1
- package/assets/esri/core/workers/chunks/8c5e65982c3f9295e844.js +0 -1
- package/assets/esri/core/workers/chunks/8ce649e55fefc8eca55c.js +0 -1
- package/assets/esri/core/workers/chunks/90ae80b797642bff0efa.js +0 -1
- package/assets/esri/core/workers/chunks/94e9cf8e729ec36de5be.js +0 -1
- package/assets/esri/core/workers/chunks/97c758f736f28c5dab84.js +0 -1
- package/assets/esri/core/workers/chunks/98b27cf8acbfa4259758.js +0 -1
- package/assets/esri/core/workers/chunks/9a6208ab670ad74e6f7d.js +0 -1
- package/assets/esri/core/workers/chunks/a10f63a08d976be058be.js +0 -1
- package/assets/esri/core/workers/chunks/a494abeb026d536d9fae.js +0 -1
- package/assets/esri/core/workers/chunks/a5f058567419ea70dff6.js +0 -1
- package/assets/esri/core/workers/chunks/a8ade34612e73862de6f.js +0 -1
- package/assets/esri/core/workers/chunks/a9d391071803b1e9e8a0.js +0 -1
- package/assets/esri/core/workers/chunks/aa3abc07de2921ef6ca1.js +0 -1
- package/assets/esri/core/workers/chunks/b03f09ee2224f0cc526a.js +0 -1
- package/assets/esri/core/workers/chunks/b3f1a442d6b7826e917f.js +0 -1
- package/assets/esri/core/workers/chunks/b5c7813495657f844171.js +0 -1
- package/assets/esri/core/workers/chunks/b7170816736769d3b7b0.js +0 -1
- package/assets/esri/core/workers/chunks/b819a9187426d0c146df.js +0 -1
- package/assets/esri/core/workers/chunks/b8e5d7aefddddbd0a10c.js +0 -1
- package/assets/esri/core/workers/chunks/b958f87f23f984131d09.js +0 -1
- package/assets/esri/core/workers/chunks/b9f40681af1fa00b5bbe.js +0 -1
- package/assets/esri/core/workers/chunks/c4c25db769a78e677e33.js +0 -1
- package/assets/esri/core/workers/chunks/c85ba0700eafdc8d6f9e.js +0 -1
- package/assets/esri/core/workers/chunks/ca118c42c0f609ca7912.js +0 -1
- package/assets/esri/core/workers/chunks/cb17cd8aaf77238c0236.js +0 -1
- package/assets/esri/core/workers/chunks/d03f427442bb0c287d05.js +0 -1
- package/assets/esri/core/workers/chunks/d08d3c6f21e6ba8268ca.js +0 -1
- package/assets/esri/core/workers/chunks/d37a72111dffc4c4db70.js +0 -1
- package/assets/esri/core/workers/chunks/d41ab2abcfacc87809b5.js +0 -1
- package/assets/esri/core/workers/chunks/d4ed094962a41d756c95.js +0 -1
- package/assets/esri/core/workers/chunks/d51c41c1944df0cbab3e.js +0 -1
- package/assets/esri/core/workers/chunks/dc24e80d061f7b063608.js +0 -1
- package/assets/esri/core/workers/chunks/df30053a10d4930924d5.js +0 -1
- package/assets/esri/core/workers/chunks/e3623e557ab463580fd2.js +0 -1
- package/assets/esri/core/workers/chunks/e5bb7ee670a3ba5ba3fe.js +0 -1
- package/assets/esri/core/workers/chunks/e5c75459de85a6dd2f14.js +0 -1
- package/assets/esri/core/workers/chunks/e798ca23f02a2dd65bd4.js +0 -1
- package/assets/esri/core/workers/chunks/f0225829f7d941914815.js +0 -1
- package/assets/esri/core/workers/chunks/f1299b4fc760ccca1518.js +0 -1
- package/assets/esri/core/workers/chunks/f65adaaa33d9f3b131f6.js +0 -1
- package/assets/esri/core/workers/chunks/f7fa932ade85cb2847b6.js +0 -1
- package/assets/esri/core/workers/chunks/f9b654f801cb416e9e17.js +0 -1
- package/assets/esri/core/workers/chunks/fb34d6d96c8c0d53fcf6.js +0 -1
- package/assets/esri/core/workers/chunks/fdec3a2e100688c42e41.js +0 -1
- package/assets/esri/core/workers/chunks/fefbde2c2e527bb716ee.js +0 -1
- package/chunks/CutFillMask.glsl.js +0 -3
- package/chunks/FocusAreaMask.glsl.js +0 -3
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaMask.glsl.js +0 -2
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +0 -2
- package/views/3d/webgl-engine/shaders/CutFillMaskTechnique.js +0 -2
- /package/assets/esri/core/workers/chunks/{a12803108c3b12808698.js.LICENSE.txt → 242cad472fbc38b24dbc.js.LICENSE.txt} +0 -0
package/arcade/arcadeCompiler.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as a,flattenAccessChain as s}from"./compilerUtils.js";import{getNestedOptionalValue as l,tryGetMember as i,getMember as c,getGeometryMember as u,getGeometryKeys as m}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as f,ArcadeCompilationError as d,ArcadeUncompilableError as g}from"./executionError.js";import{Feature as h}from"./Feature.js";import{NativeFunction as y,ArcadeFunction as w,ScopeMarshalledFunction as b,wrapModuleScopedResponse as $}from"./FunctionWrapper.js";import{p as v,q as S,i as x,h as I,g as F,r as C,s as M,v as O,u as k,w as j,x as A,f as E,l as N,y as B}from"../chunks/languageUtils.js";import{addFunctionDeclaration as _}from"./treeAnalysis.js";import{A as V}from"../chunks/aiServices.js";import{A as T}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as R}from"./functions/feature.js";import{registerFunctions as U}from"./functions/geometry.js";import{registerFunctions as D}from"./functions/geomsync.js";import{registerFunctions as G}from"./functions/maths.js";import{registerFunctions as q}from"./functions/stats.js";import{registerFunctions as z}from"./functions/string.js";import{registerFunctions as P}from"./functions/track.js";import W from"../core/Logger.js";import{isPromiseLike as K}from"../core/promiseUtils.js";import{addMany as Z}from"../core/SetUtils.js";import J from"../geometry/SpatialReference.js";import{isGraphic as Y}from"../support/graphicInstanceUtils.js";import{isArray as H,isNumber as Q,isString as X,isBoolean as ee}from"../support/guards.js";const te=()=>W.getLogger("esri.arcade.arcadeCompiler");class ne{constructor(){this._symbolCounter=0,this.safeAccessTempVarId="_Tsat"}nextVarId(){return this._symbolCounter+=1,`_T${this._symbolCounter}`}nextTempVarId(){return this._symbolCounter+=1,`_Tvar${this._symbolCounter}`}nextLocalsSymbolMapId(){return this._symbolCounter+=1,`_Locals${this._symbolCounter}`}}function re(e,t){const n=e.localScope?.get(t);if(null!=n)return{scope:"local",name:t,var:n};const r=e.globalScope.get(t);return null!=r?{scope:"global",name:t,var:r}:e.standardGlobals.has(t)?{scope:"global",name:t,var:t}:null}function oe(t,n,r="InvalidIdentifier"){const o=re(t,e(n));if(null!=o)return o;throw new d(r,n)}function ae(t,n,r){const o=re(t,e(n));if(null==o)throw te().error(`Internal error: Symbol "${n.name}" not declared.`),new d("NeverReach",n);if(null!=r&&o.scope!==r)throw te().error(`Internal error: Expected to resolve "${n.name}" in the ${r} scope but is in the ${o.scope} scope.`),new d("NeverReach",n);return o}function se(t,n){const r=e(n),o=t.symbolMetadata;if(t.localStack.length>0){const e=t.localStack[t.localStack.length-1],n=o.locals.get(e._SymbolsMapId);if(null==n)return void te().error(`Internal error: no reflection metadata for ${e._SymbolsMapId}`);const a=n.get(r);if(null!=a)return ot.requireInitialized(e[a])}const a=o.globals.get(r);if(null!=a)return ot.requireInitialized(t.globalScope[a]);if(o.standardGlobals.has(r))return ot.requireInitialized(t.globalScope[r]);throw new f("InvalidIdentifier",null)}class le extends w{constructor(e,t){super(),this.paramCount=t,this.fn=e}get debugName(){return null}createFunction(e){return(...e)=>{if(e.length!==this.paramCount)throw new f("WrongNumberOfParameters",null);return this.fn(...e)}}call(e,t){return this.fn(...t.arguments)}marshalledCall(e,t,n,r){return r(e,t,(t,o,a)=>{a=a.map(t=>!x(t)||t instanceof b?t:$(t,e,r));const s=this.call(n,{arguments:a});return K(s)?s.then(e=>$(e,n,r)):s})}}function ie(e,t,n){try{return n(e,null,t.arguments)}catch(r){throw r}}function ce(e,t,n,r,a,s){const{globals:l,exports:i}=o(e),c=new Set(l.keys());Z(c,n);const u=new ne,m=[],p=new Map;for(const o of c)if(n.has(o)||t.has(o))p.set(o,o);else{const e=u.nextVarId();p.set(o,e),m.push(`gscope[${JSON.stringify(e)}] = ${nt};`)}const f=new Map,d=Object.create(null),g={isAsync:r,symbols:u,standardGlobals:t,globalScope:p,exports:i,localScope:null,allLocalSymbolMetadata:f,moduleFactory:s,moduleFactoryMap:d,libraryResolver:a};return{body:[...m,`var ${u.safeAccessTempVarId};`,"var lastStatement = lc.voidOperation;",Fe(g,e),"return lastStatement;"].join("\n"),symbolMetadata:{standardGlobals:t,exports:i,globals:p,locals:f},moduleFactoryMap:d}}function ue(e,t){switch(t.type){case"AssignmentExpression":return ve(e,t);case"UpdateExpression":return be(e,t);case"TemplateLiteral":return Re(e,t);case"Identifier":return Ge(e,t);case"MemberExpression":return Ee(e,t);case"Literal":return null===t.value||void 0===t.value?"null":JSON.stringify(t.value);case"CallExpression":return qe(e,t);case"UnaryExpression":return Te(e,t);case"BinaryExpression":return Ue(e,t);case"LogicalExpression":return De(e,t);case"ArrayExpression":return Le(e,t);case"ObjectExpression":return pe(e,t);case"MemberAccessChainExpression":return Ve(e,t);case"SafeMemberExpression":throw te().error("SafeMemberExpression outside of MemberAccessChainExpression"),new d("Unrecognized",t);default:throw new d("Unrecognized",t)}}function me(e,t){switch(t.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return je(e,t);case"BlockStatement":return Fe(e,t);case"FunctionDeclaration":return ke(e,t);case"ImportDeclaration":return Me(e,t);case"ExportNamedDeclaration":return me(e,t.declaration);case"ReturnStatement":return Ce(e,t);case"IfStatement":return Ie(e,t);case"ExpressionStatement":return Se(e,t);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return we(e,t);case"ForInStatement":return he(e,t);case"ForOfStatement":return ye(e,t);case"WhileStatement":return $e(e,t);default:throw new d("Unrecognized",t)}}function pe(e,t){let n="lang.dictionary([";for(let r=0;r<t.properties.length;r++){const o=t.properties[r];let a;a="Identifier"===o.key.type?"'"+o.key.name+"'":ue(e,o.key);r>0&&(n+=","),n+="lang.strCheck("+a+",'ObjectExpression'),lang.aCheck("+ue(e,o.value)+", 'ObjectExpression')"}return n+="])",n}function fe(e,t,n,r,o=(e,t)=>`${e} = ${t}`){const a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${a} = ${n};`,`for (var ${s} = 0; ${s} < ${a}; ${s}++) {`,` ${o(t,s)}`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function de(e,t,n,r,o=e=>e){const a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${a} = ${n};`,`for (var ${s} of ${a}) {`,` ${t} = ${o(s)};`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ge(e,t,n,r){const o=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId(),l=e.symbols.nextTempVarId();return[`var ${o} = yield ${n}.queryAll(runtimeCtx.abortSignal);`,`var ${a} = { done: false, value: [] };`,`for (var ${s} = 0; ${s} < ${a}.value.length || ((${s} = 0), !(${a} = yield ${o}.next()).done); ${s}++) {`,` if (${a}.value.length === 0) continue;`,` var ${l} = ${a}.value[${s}];`,` ${t} = lang.createFeature(${l}, ${n}, runtimeCtx);`,` ${me(e,r)}`,"}"].join("\n")}function he(e,t){const n=e.symbols.nextTempVarId();let r,o,a="var "+n+" = "+ue(e,t.right)+";\n";switch("VariableDeclaration"===t.left.type?(r=ae(e,t.left.declarations[0].id),a+=me(e,t.left)):r=oe(e,t.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d("NeverReach",t.left)}return a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {\n",a+=fe(e,o,`${n}.length`,t.body),a+="}\n",a+="else if (lc.isImmutableArray("+n+")) {\n",a+=fe(e,o,`${n}.length()`,t.body),a+="}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || lc.isDictionaryLike("+n+")) {\n",a+=de(e,o,`${n}.keys()`,t.body),a+="}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {\n",a+=ge(e,o,n,t.body),a+="}\n"),a+=`else if (lc.isGeometry(${n})) {\n`,a+=de(e,o,`lang.getGeometryKeys(${n})`,t.body),a+="}\n",a+="else { lastStatement = lc.voidOperation; } \n",a}function ye(e,t){const n=e.symbols.nextTempVarId();let r,o,a="var "+n+" = "+ue(e,t.right)+";\n";switch("VariableDeclaration"===t.left.type?(r=ae(e,t.left.declarations[0].id),a+=me(e,t.left)):r=oe(e,t.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d("NeverReach",t.left)}return a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {\n",a+=fe(e,o,`${n}.length`,t.body,(e,t)=>[`if (${t} >= ${n}.length) {`," lang.error('OutOfBounds');","}",`${e} = ${n}[${t}];`].join("\n")),a+="}\n",a+="else if (lc.isImmutableArray("+n+")) {\n",a+=fe(e,o,`${n}.length()`,t.body,(e,t)=>`${e} = ${n}.get(${t});`),a+="}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || lc.isDictionaryLike("+n+")) {\n",a+=de(e,o,`${n}.keys()`,t.body,e=>`lang.entry(${e}, ${n}.field(${e}))`),a+="}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {\n",a+=ge(e,o,n,t.body),a+="}\n"),a+=`else if (lc.isGeometry(${n})) {\n`,a+=de(e,o,`lang.getGeometryKeys(${n})`,t.body,e=>`lang.entry(${e}, lang.getGeometryMember(${n}, ${e}))`),a+="}\n",a+="else { lastStatement = lc.voidOperation; } \n",a}function we(e,t){let n="lastStatement = lc.voidOperation; \n";null!==t.init&&("VariableDeclaration"===t.init.type?n+=me(e,t.init):n+=ue(e,t.init)+"; ");const r=e.symbols.nextTempVarId(),o=e.symbols.nextTempVarId();return n+="var "+r+" = true; ",n+="\n do { ",null!==t.update&&(n+=" if ("+r+"===false) {\n "+ue(e,t.update)+" \n}\n "+r+"=false; \n"),null!==t.test&&(n+="var "+o+" = "+ue(e,t.test)+"; ",n+="if ("+o+"===false) { break; } else if ("+o+"!==true) { lang.error('BooleanConditionRequired'); }\n"),n+=me(e,t.body),null!==t.update&&(n+="\n "+ue(e,t.update)),n+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",n}function be(e,t){if("CallExpression"===t.argument.type)throw new d("NeverReach",t);let n;if("MemberExpression"===t.argument.type){const r=ue(e,t.argument.object);return n=!0===t.argument.computed?ue(e,t.argument.property):"'"+t.argument.property.name+"'","lang.memberupdate("+r+","+n+",'"+t.operator+"',"+t.prefix+")"}const r=oe(e,t.argument);switch(Oe(r),r.scope){case"local":return`lang.update(lscope, '${r.var}', '${t.operator}', ${t.prefix})`;case"global":return`lang.update(gscope, '${r.var}', '${t.operator}', ${t.prefix})`;default:throw r.scope,new d("NeverReach",t.argument)}}function $e(e,t){let n="lastStatement = lc.voidOperation; \n";const r=e.symbols.nextTempVarId();return n+=`\n var ${r} = true;\n do {\n ${r} = ${ue(e,t.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('BooleanConditionRequired');\n }\n ${me(e,t.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,n}function ve(e,t){const n=ue(e,t.right);if("MemberExpression"===t.left.type){let r;const o=ue(e,t.left.object);return r=!0===t.left.computed?ue(e,t.left.property):"'"+t.left.property.name+"'","lang.assignmember("+o+","+r+",'"+t.operator+"',"+n+")"}const r=oe(e,t.left);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=lang.assign(${n},'${t.operator}', ${"="===t.operator?"null":rt(`lscope['${r.var}']`)})`;case"global":return`gscope['${r.var}']=lang.assign(${n},'${t.operator}', ${"="===t.operator?"null":rt(`gscope['${r.var}']`)})`;default:throw r.scope,new d("NeverReach",t.left)}}function Se(e,t){return"AssignmentExpression"===t.expression.type?"lastStatement = lc.voidOperation; "+ue(e,t.expression)+"; \n ":"lastStatement = "+ue(e,t.expression)+"; "}function xe(e,t){return"BlockStatement"===t.type?me(e,t):"ReturnStatement"===t.type||"BreakStatement"===t.type||"ContinueStatement"===t.type?me(e,t)+"; ":"ExpressionStatement"===t.type?me(e,t):me(e,t)+"; "}function Ie(e,t){return`if (lang.mustBoolean(${ue(e,t.test)}) === true) {\n ${xe(e,t.consequent)}\n } `+(null!==t.alternate?"IfStatement"===t.alternate.type?" else "+Ie(e,t.alternate):` else {\n ${xe(e,t.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function Fe(e,t){let n="";for(let r=0;r<t.body.length;r++)"EmptyStatement"!==t.body[r].type&&("ReturnStatement"===t.body[r].type||"BreakStatement"===t.body[r].type||"ContinueStatement"===t.body[r].type?n+=me(e,t.body[r])+"; \n":n+=me(e,t.body[r])+" \n");return n}function Ce(e,t){if(null===t.argument)return"return lc.voidOperation";return"return "+ue(e,t.argument)}function Me(e,t){const n=ae(e,t.specifiers[0].local,"global"),r=e.libraryResolver?.loadLibrary(n.name),o=e.symbols.nextVarId();void 0===e.moduleFactory[r.uri]&&(e.moduleFactory[r.uri]=ct(r.syntax,e.moduleFactory,e.isAsync)),e.moduleFactoryMap[o]=r.uri;let a="";return a=e.isAsync?"(yield lang.loadModule('"+o+"', runtimeCtx) ); ":"lang.loadModule('"+o+"', runtimeCtx); ",Oe(n),`gscope['${n.var}']=${a}`}function Oe(e){if("global"===e.scope)switch(e.name){case"iif":case"when":case"defaultvalue":case"decode":throw new g}}function ke(t,n){const r=new Set(n.params.map(t=>e(t))),o=new Set(a(n).keys());Z(o,r);const s=t.symbols,l=new Map;for(const e of o)l.set(e,s.nextVarId());const i=s.nextLocalsSymbolMapId();t.allLocalSymbolMetadata.set(i,l);const c={...t,localScope:l},u=[`lscope._SymbolsMapId = ${JSON.stringify(i)};`];for(let e=0;e<n.params.length;e++){const t=ae(c,n.params[e],"local");Oe(t),u.push(`lscope['${t.var}'] = arguments[${e}];`)}for(const[e,a]of l)r.has(e)||u.push(`lscope['${a}'] = ${nt};`);const m=Fe(c,n.body),p=!0===t.isAsync?["return lang.__awaiter(this, void 0, void 0, function* () {",` ${m}`," return lastStatement;","});"]:[m,"return lastStatement;"],f=["new lang.UserDefinedCompiledFunction("," lang.functionDepthchecker("," function() {"," var lastStatement = lc.voidOperation;"," var lscope = runtimeCtx.localStack[runtimeCtx.localStack.length-1];",...u,...p," },"," runtimeCtx,"," ),",` ${n.params.length},`,")"].join("\n"),d=ae(t,n.id,"global");return Oe(d),`gscope['${d.var}']=${f}; lastStatement = lc.voidOperation;`}function je(e,t){const n=[];for(let r=0;r<t.declarations.length;r++)n.push(Ae(e,t.declarations[r]));return n.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function Ae(e,t){const n=null===t.init?"null":ue(e,t.init),r=ae(e,t.id);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=${n};`;case"global":return`gscope['${r.var}']=${n};`;default:throw r.scope,new d("NeverReach",t.id)}}function Ee(e,t){return Ne(e,ue(e,t.object),t)}function Ne(e,t,n){return`lang.member(${t}, ${n.computed?ue(e,n.property):`'${n.property.name}'`})`}function Be(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=Ne(e,t,r);break;case"CallExpression":t=ze(e,t,r.arguments);break;default:throw new d("Unrecognized",r)}return t}function _e(e,t,n){return`lang.tryMember(${t}, ${n.computed?ue(e,n.property):`'${n.property.name}'`})`}function Ve(e,t){const n=s(t);let r="",o=ue(e,n.root);for(const a of n.sections)r+=`(${e.symbols.safeAccessTempVarId} = ${_e(e,o,a.checked)}) == null ? null : `,o=Be(e,e.symbols.safeAccessTempVarId,a.unchecked);return`(${r}${o})`}function Te(e,t){try{return"lang.unary("+ue(e,t.argument)+",'"+t.operator+"')"}catch(n){throw n}}function Le(e,t){try{const n=[];for(let r=0;r<t.elements.length;r++)"Literal"===t.elements[r].type?n.push(ue(e,t.elements[r])):n.push("lang.aCheck("+ue(e,t.elements[r])+",'ArrayExpression')");return"["+n.join(",")+"]"}catch(n){throw n}}function Re(e,t){try{const n=[];let r=0;for(const o of t.quasis)n.push(o.value?JSON.stringify(o.value.cooked):JSON.stringify("")),!1===o.tail&&(n.push(t.expressions[r]?"lang.castString(lang.aCheck("+ue(e,t.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+n.join(",")+"]).join('')"}catch(n){throw n}}function Ue(e,t){try{return"lang.binary("+ue(e,t.left)+","+ue(e,t.right)+",'"+t.operator+"')"}catch(n){throw n}}function De(e,t){try{if("AssignmentExpression"===t.left.type||"UpdateExpression"===t.left.type)throw new d("LogicalExpressionOnlyBoolean",t);if("AssignmentExpression"===t.right.type||"UpdateExpression"===t.right.type)throw new d("LogicalExpressionOnlyBoolean",t);if("&&"===t.operator||"||"===t.operator)return"(lang.logicalCheck("+ue(e,t.left)+") "+t.operator+" lang.logicalCheck("+ue(e,t.right)+"))";throw new d("LogicExpressionOrAnd",null)}catch(n){throw n}}function Ge(e,t){const n=oe(e,t);switch(Oe(n),n.scope){case"local":return rt(`lscope['${n.var}']`);case"global":return rt(`gscope['${n.var}']`);default:throw n.scope,new d("NeverReach",t)}}function qe(e,t){if("Identifier"===t.callee.type){const n=oe(e,t.callee,"FunctionNotFound");if("global"===n.scope)switch(n.name){case"iif":return Pe(e,t);case"when":return Ke(e,t);case"defaultvalue":return We(e,t);case"decode":return Ze(e,t)}}return ze(e,ue(e,t.callee),t.arguments)}function ze(e,t,n){const r=`lang.callfunc(${t}, [${n.map(t=>ue(e,t)).join(", ")}], runtimeCtx)`;return e.isAsync?`(yield ${r})`:r}function Pe(e,t){try{if(3!==t.arguments.length)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n\n if (${n} === true) {\n return ${ue(e,t.arguments[1])};\n }\n else if (${n} === false) {\n return ${ue(e,t.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function We(e,t){try{if(t.arguments.length<2||t.arguments.length>3)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId(),r=e.symbols.nextTempVarId();return 3===t.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n var ${r} = ${ue(e,t.arguments[1])};\n ${n} = lang.getNestedOptionalValue(${n}, ${r});\n return ${n} != null && ${n} !== "" ? ${n} : ${ue(e,t.arguments[2])};\n ${e.isAsync?"})}()))":"}()"}`:`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n if (${n} === null) {\n return ${ue(e,t.arguments[1])};\n }\n if (${n} === "") {\n return ${ue(e,t.arguments[1])};\n }\n if (${n} === undefined) {\n return ${ue(e,t.arguments[1])};\n }\n return ${n};\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Ke(e,t){try{if(t.arguments.length<3)throw new d("WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();let r="var ";for(let o=0;o<t.arguments.length-1;o+=2)r+=`${n} = lang.mustBoolean(${ue(e,t.arguments[o])});\n if (${n} === true ) {\n return ${ue(e,t.arguments[o+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n ${r}\n return ${ue(e,t.arguments[t.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Ze(e,t){try{if(t.arguments.length<2)throw new d("WrongNumberOfParameters",t);if(2===t.arguments.length)return`(${ue(e,t.arguments[1])})`;if((t.arguments.length-1)%2==0)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();let r;if(t.arguments.every((e,t)=>t%2==0||"Literal"===e.type)){r=`switch (${n}) {`;for(let n=1;n<t.arguments.length-1;n+=2){const o=t.arguments[n],a=t.arguments[n+1];null==o.value?r+="\n case null:\n case lc.voidOperation:\n ":r+=`\n case ${JSON.stringify(o.value)}:\n `,r+=`return ${ue(e,a)}`}r+="}"}else{const o=e.symbols.nextTempVarId();r="var ";for(let a=1;a<t.arguments.length-1;a+=2){const s=t.arguments[a],l=t.arguments[a+1];r+=`${o} = ${ue(e,s)};\n if (lang.binary(${o}, ${n}, "==") === true ) {\n return ${ue(e,l)}\n }\n `}}return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n ${r}\n return ${ue(e,t.arguments[t.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Je(e,t){try{return ie(e,t,(e,t)=>{throw new f("Unrecognized",t)})}catch(n){throw n}}function Ye(e){const t=function(){this.textformatting=p.textFormatting()};t.prototype=Object.create(null),t.provided=new Set(["textformatting","infinity","nan","pi"]),t.prototype.infinity=Number.POSITIVE_INFINITY,t.prototype.nan=Number.NaN,t.prototype.pi=Math.PI;for(const[n,r]of Object.entries(e))t.prototype[n]=new y(r),t.provided.add(n);return t}function He(){const e=Object.create(null);L(e,ie),z(e,ie),R(e,ie,se),G(e,ie),U(e,ie),q(e,ie),P(e,ie),e.iif=Je,e.decode=Je,e.when=Je,e.defaultvalue=Je;const t=Ye(e);D(e,ie);return{ScopeSync:Ye(e),ScopeAsync:t}}const{ScopeSync:Qe,ScopeAsync:Xe}=He();function et(e,t){const n={mode:t,compiled:!0,functions:Object.create(null),signatures:[],standardFunction:ie,standardFunctionAsync:ie,evaluateIdentifier:se};for(const r of e)r.registerFunctions(n);if("sync"===t)for(const[r,o]of Object.entries(n.functions))Qe.prototype[r]=new y(o),Qe.provided.add(r);else for(const[r,o]of Object.entries(n.functions))Xe.prototype[r]=new y(o),Xe.provided.add(r);for(const r of n.signatures)_(r,t)}et([T],"sync"),et([T],"async"),et([V],"async");const tt=Symbol("uninitialized"),nt="lang.uninitialized";function rt(e){return`lang.requireInitialized(${e})`}const ot={uninitialized:tt,requireInitialized(e){if(e===tt)throw new f("InvalidIdentifier",null);return e},isNumber:e=>Q(e),isArray:e=>H(e),isImmutableArray:e=>F(e),isDictionaryLike:e=>B(e),isString:e=>X(e),isDictionary:e=>N(e),isGeometry:e=>E(e),getGeometryKeys:e=>m(e),getGeometryMember:(e,t)=>u(e,t,null),error(e){throw new f(e,null)},__awaiter(e,t,n,r){const o=r.apply(e,t||[]);let a=o.next();for(;!a.done&&!K(a.value);)a=o.next(a.value);return a.done?a.value:new Promise((e,t)=>{function n(r){for(;!r.done;){if(K(r.value))return void Promise.resolve(r.value).then(e=>{try{n(o.next(e))}catch(r){t(r)}},e=>{try{n(o.throw(e))}catch(r){t(r)}});try{r=o.next(r.value)}catch(a){return void t(a)}}e(r.value)}n(a)})},functionDepthchecker:(e,t)=>function(){if(t.depthCounter.depth++,t.localStack.push({}),t.depthCounter.depth>64)throw new f("MaximumCallDepth",null);const n=e.apply(this,arguments);return K(n)?n.then(e=>(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,e)):(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,n)},mustBoolean(e){if(!0===e||!1===e)return e;throw new f("BooleanConditionRequired",null)},castString:e=>M(e),aCheck(e,t){if(x(e)){if("ArrayExpression"===t)throw new f("NoFunctionInArray",null);if("ObjectExpression"===t)throw new f("NoFunctionInDictionary",null);throw new f("NoFunctionInTemplateLiteral",null)}return e===O?null:e},Dictionary:p,Feature:h,UserDefinedCompiledFunction:le,dictionary(e){const t=Object.create(null),n=new Map;for(let o=0;o<e.length;o+=2){if(x(e[o+1]))throw new f("NoFunctionInDictionary",null);if(!1===X(e[o]))throw new f("KeyMustBeString",null);let r=e[o].toString();const a=r.toLowerCase();n.has(a)?r=n.get(a):n.set(a,r),e[o+1]===O?t[r]=null:t[r]=e[o+1]}const r=new p(t);return r.immutable=!1,r},entry:(e,t)=>p.containerEntry(e,t),strCheck(e){if(!1===X(e))throw new f("KeyMustBeString",null);return e},unary(e,t){if(ee(e)){if("!"===t)return!e;if("-"===t)return-1*C(e);if("+"===t)return 1*C(e);if("~"===t)return~C(e);throw new f("UnsupportUnaryOperator",null)}if("-"===t)return-1*C(e);if("+"===t)return 1*C(e);if("~"===t)return~C(e);throw new f("UnsupportUnaryOperator",null)},logicalCheck(e){if(!1===ee(e))throw new f("LogicExpressionOrAnd",null);return e},logical(e,t,n){if(ee(e)&&ee(t))switch(n){case"||":return e||t;case"&&":return e&&t;default:throw new f("LogicExpressionOrAnd",null)}throw new f("LogicExpressionOrAnd",null)},binary(e,t,n){switch(n){case"|":case"<<":case">>":case">>>":case"^":case"&":return A(C(e),C(t),n);case"==":return j(e,t);case"!=":return!j(e,t);case"<":case">":case"<=":case">=":return k(e,t,n);case"+":return X(e)||X(t)?M(e)+M(t):C(e)+C(t);case"-":return C(e)-C(t);case"*":return C(e)*C(t);case"/":return C(e)/C(t);case"%":return C(e)%C(t);default:throw new f("UnsupportedOperator",null)}},assign(e,t,n){switch(t){case"=":return e===O?null:e;case"/=":return C(n)/C(e);case"*=":return C(n)*C(e);case"-=":return C(n)-C(e);case"+=":return X(n)||X(e)?M(n)+M(e):C(n)+C(e);case"%=":return C(n)%C(e);default:throw new f("UnsupportedOperator",null)}},update(e,t,n,r){const o=C(this.requireInitialized(e[t]));return e[t]="++"===n?o+1:o-1,!1===r?o:"++"===n?o+1:o-1},createFeature:(e,t,n)=>h.createFromGraphicLikeObject(e.geometry,e.attributes,t,n.timeZone),memberupdate(e,t,n,r){let o;if(H(e)){if(!Q(t))throw new f("ArrayAccessMustBeNumber",null);if(t<0&&(t=e.length+t),t<0||t>=e.length)throw new f("OutOfBounds",null);o=C(e[t]),e[t]="++"===n?o+1:o-1}else if(e instanceof p){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0!==e.hasField(t))throw new f("FieldNotFound",null,{key:t});o=C(e.field(t)),e.setField(t,"++"===n?o+1:o-1)}else if(I(e)){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0!==e.hasField(t))throw new f("FieldNotFound",null,{key:t});o=C(e.field(t)),e.setField(t,"++"===n?o+1:o-1)}else{if(F(e))throw new f("Immutable",null);if(!(e instanceof it))throw new f("InvalidIdentifier",null);if(!1===X(t))throw new f("ModuleAccessorMustBeString",null);if(!0!==e.hasGlobal(t))throw new f("ModuleExportNotFound",null);o=C(e.global(t)),e.setGlobal(t,"++"===n?o+1:o-1)}return!1===r?o:"++"===n?o+1:o-1},assignmember(e,t,n,r){if(H(e)){if(!Q(t))throw new f("ArrayAccessMustBeNumber",null);if(t<0&&(t=e.length+t),t<0||t>e.length)throw new f("OutOfBounds",null);if(t===e.length){if("="!==n)throw new f("OutOfBounds",null);e[t]=this.assign(r,n,e[t])}else e[t]=this.assign(r,n,e[t])}else if(e instanceof p){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new f("FieldNotFound",null,{key:t});e.setField(t,this.assign(r,n,null))}}else if(I(e)){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new f("FieldNotFound",null,{key:t});e.setField(t,this.assign(r,n,null))}}else{if(F(e))throw new f("Immutable",null);if(!(e instanceof it))throw new f("InvalidIdentifier",null);if(!1===X(t))throw new f("ModuleAccessorMustBeString",null);if(!e.hasGlobal(t))throw new f("ModuleExportNotFound",null);e.setGlobal(t,this.assign(r,n,e.global(t)))}},member:(e,t)=>c(e,t),tryMember:(e,t)=>i(e,t),callfunc(e,t,n){if(x(e))return e.call(n,{arguments:t,preparsed:!0});throw new f("CallNonFunction",null)},loadModule(e,t){const n=t.moduleFactoryMap[e];if(t.moduleSingletons[n])return t.moduleSingletons[n];const r=t.moduleFactory[n]({moduleSingletons:t.moduleSingletons,depthCounter:t.depthCounter,lrucache:t.lrucache,interceptor:t.interceptor,services:t.services,console:t.console,abortSignal:t.abortSignal,timeZone:t.timeZone??null,spatialReference:t.spatialReference});return t.moduleSingletons[n]=r,r},getNestedOptionalValue:(e,t)=>l(e,t)};function at(e){console.log(e)}function st(n,o,a=!1){let s=null;n.usesModules&&(s=new r(null,n.loadedModules));const l=Object.create(null),i=new Set(Object.keys(o?.vars||{}).map(t=>e(t))),c=new Set(Object.keys(o?.customfunctions||{}).map(t=>e(t))),u=ce(n,a?Xe.provided:Qe.provided,new Set([...i,...c]),a,s,l);let m;m=a?["var runtimeCtx = this.prepare(context, true);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","return lang.__awaiter(this, void 0, void 0, function* () {"," function mainBody() {"," return lang.__awaiter(this, void 0, void 0, function* () {",` ${u.body}`," });"," }"," return this.postProcess(yield mainBody());","});"].join("\n"):["var runtimeCtx = this.prepare(context, false);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","function mainBody() {",` ${u.body}`,"}","return this.postProcess(mainBody());"].join("\n");const{symbolMetadata:p,moduleFactoryMap:d}=u,g={lc:v,lang:ot,postProcess(e){if(S(e))return null;if(x(e))throw new f("IllegalResult",null);return e},prepare(e,n){const r=e.spatialReference??J.WebMercator,o=n?new Xe:new Qe;for(const t of c)null!=e.customfunctions&&t in e.customfunctions?o[t]=e.customfunctions[t]??null:o[t]=tt;for(const t of i){if(null==e.vars||!(t in e.vars)){t in o||(o[t]=tt);continue}const n=e.vars[t]??null;Y(n)?o[t]=h.createFromGraphic(n,e.timeZone??null):o[t]=n}return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??at,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:r,track:e.track,globalScope:o,localStack:[],depthCounter:{depth:1},symbolMetadata:p,moduleFactory:l,moduleFactoryMap:d,moduleSingletons:Object.create(null)}}};return new Function("context",m).bind(g)}async function lt(){return et([await import("./functions/geomasync.js")],"async"),!0}class it extends n{constructor(e){super(),this.moduleContext=e}hasGlobal(t){const n=this.moduleContext.symbolMetadata.exports;return n.has(t)||n.has(e(t))}setGlobal(t,n){if(x(n))throw new f("AssignModuleFunction",null);const r=this.moduleContext.symbolMetadata.globals.get(e(t));if(null==r)throw new f("ModuleExportNotFound",null);this.moduleContext.globalScope[r]=n}global(t){const n=this.moduleContext.symbolMetadata.globals.get(e(t));if(null==n)throw new f("ModuleExportNotFound",null);const r=this.moduleContext.globalScope,o=ot.requireInitialized(r[n]);if(x(o)&&!(o instanceof b)){const e=new b;return e.fn=o,e.parameterEvaluator=ie,e.context=this.moduleContext,r[n]=e,e}return o}}function ct(e,n,o){const a=new r(null,e.loadedModules),s=ce(e,o?Xe.provided:Qe.provided,new Set,o,a,n);let l;l=o?["var runtimeCtx = this.prepare(context, true);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","return lang.__awaiter(this, void 0, void 0, function* () {"," function mainBody() {"," return lang.__awaiter(this, void 0, void 0, function* () {",` ${s.body}`," });"," }"," yield mainBody();"," return this.prepareModule(runtimeCtx);","});"].join("\n"):["var runtimeCtx = this.prepare(context, false);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","function mainBody() {",` ${s.body}`,"}","mainBody();","return this.prepareModule(runtimeCtx);"].join("\n");const{symbolMetadata:i,moduleFactoryMap:c}=s,u={lc:v,lang:ot,prepareModule:e=>new it(e),prepare(e,r){const o=e.spatialReference??J.WebMercator,a=r?new Xe:new Qe;return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??at,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:null,globalScope:a,localStack:[],depthCounter:e.depthCounter,symbolMetadata:i,moduleFactory:n,moduleFactoryMap:c,moduleSingletons:e.moduleSingletons}}};return new Function("context",l).bind(u)}export{le as UserDefinedCompiledFunction,st as compileScript,lt as enableAsyncSupport,et as extend};
|
|
2
|
+
import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as a,flattenAccessChain as s}from"./compilerUtils.js";import{getNestedOptionalValue as l,tryGetMember as i,getMember as c,getGeometryMember as u,getGeometryKeys as m}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as f,ArcadeCompilationError as d,ArcadeUncompilableError as g}from"./executionError.js";import{Feature as h}from"./Feature.js";import{NativeFunction as y,ArcadeFunction as w,ScopeMarshalledFunction as b,wrapModuleScopedResponse as $}from"./FunctionWrapper.js";import{s as v,u as S,i as x,h as I,g as F,v as C,w as M,x as O,y as k,z as j,A,f as E,l as N,B}from"../chunks/languageUtils.js";import{addFunctionDeclaration as _}from"./treeAnalysis.js";import{A as V}from"../chunks/aiServices.js";import{A as T}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as R}from"./functions/feature.js";import{registerFunctions as U}from"./functions/geometry.js";import{registerFunctions as D}from"./functions/geomsync.js";import{registerFunctions as G}from"./functions/maths.js";import{registerFunctions as z}from"./functions/stats.js";import{registerFunctions as q}from"./functions/string.js";import{registerFunctions as P}from"./functions/track.js";import W from"../core/Logger.js";import{isPromiseLike as K}from"../core/promiseUtils.js";import{addMany as Z}from"../core/SetUtils.js";import J from"../geometry/SpatialReference.js";import{isGraphic as Y}from"../support/graphicInstanceUtils.js";import{isArray as H,isNumber as Q,isString as X,isBoolean as ee}from"../support/guards.js";const te=()=>W.getLogger("esri.arcade.arcadeCompiler");class ne{constructor(){this._symbolCounter=0,this.safeAccessTempVarId="_Tsat"}nextVarId(){return this._symbolCounter+=1,`_T${this._symbolCounter}`}nextTempVarId(){return this._symbolCounter+=1,`_Tvar${this._symbolCounter}`}nextLocalsSymbolMapId(){return this._symbolCounter+=1,`_Locals${this._symbolCounter}`}}function re(e,t){const n=e.localScope?.get(t);if(null!=n)return{scope:"local",name:t,var:n};const r=e.globalScope.get(t);return null!=r?{scope:"global",name:t,var:r}:e.standardGlobals.has(t)?{scope:"global",name:t,var:t}:null}function oe(t,n,r="InvalidIdentifier"){const o=re(t,e(n));if(null!=o)return o;throw new d(r,n)}function ae(t,n,r){const o=re(t,e(n));if(null==o)throw te().error(`Internal error: Symbol "${n.name}" not declared.`),new d("NeverReach",n);if(null!=r&&o.scope!==r)throw te().error(`Internal error: Expected to resolve "${n.name}" in the ${r} scope but is in the ${o.scope} scope.`),new d("NeverReach",n);return o}function se(t,n){const r=e(n),o=t.symbolMetadata;if(t.localStack.length>0){const e=t.localStack[t.localStack.length-1],n=o.locals.get(e._SymbolsMapId);if(null==n)return void te().error(`Internal error: no reflection metadata for ${e._SymbolsMapId}`);const a=n.get(r);if(null!=a)return ot.requireInitialized(e[a])}const a=o.globals.get(r);if(null!=a)return ot.requireInitialized(t.globalScope[a]);if(o.standardGlobals.has(r))return ot.requireInitialized(t.globalScope[r]);throw new f("InvalidIdentifier",null)}class le extends w{constructor(e,t){super(),this.paramCount=t,this.fn=e}get debugName(){return null}createFunction(e){return(...e)=>{if(e.length!==this.paramCount)throw new f("WrongNumberOfParameters",null);return this.fn(...e)}}call(e,t){return this.fn(...t.arguments)}marshalledCall(e,t,n,r){return r(e,t,(t,o,a)=>{a=a.map(t=>!x(t)||t instanceof b?t:$(t,e,r));const s=this.call(n,{arguments:a});return K(s)?s.then(e=>$(e,n,r)):s})}}function ie(e,t,n){try{return n(e,null,t.arguments)}catch(r){throw r}}function ce(e,t,n,r,a,s){const{globals:l,exports:i}=o(e),c=new Set(l.keys());Z(c,n);const u=new ne,m=[],p=new Map;for(const o of c)if(n.has(o)||t.has(o))p.set(o,o);else{const e=u.nextVarId();p.set(o,e),m.push(`gscope[${JSON.stringify(e)}] = ${nt};`)}const f=new Map,d=Object.create(null),g={isAsync:r,symbols:u,standardGlobals:t,globalScope:p,exports:i,localScope:null,allLocalSymbolMetadata:f,moduleFactory:s,moduleFactoryMap:d,libraryResolver:a};return{body:[...m,`var ${u.safeAccessTempVarId};`,"var lastStatement = lc.voidOperation;",Fe(g,e),"return lastStatement;"].join("\n"),symbolMetadata:{standardGlobals:t,exports:i,globals:p,locals:f},moduleFactoryMap:d}}function ue(e,t){switch(t.type){case"AssignmentExpression":return ve(e,t);case"UpdateExpression":return be(e,t);case"TemplateLiteral":return Re(e,t);case"Identifier":return Ge(e,t);case"MemberExpression":return Ee(e,t);case"Literal":return null===t.value||void 0===t.value?"null":JSON.stringify(t.value);case"CallExpression":return ze(e,t);case"UnaryExpression":return Te(e,t);case"BinaryExpression":return Ue(e,t);case"LogicalExpression":return De(e,t);case"ArrayExpression":return Le(e,t);case"ObjectExpression":return pe(e,t);case"MemberAccessChainExpression":return Ve(e,t);case"SafeMemberExpression":throw te().error("SafeMemberExpression outside of MemberAccessChainExpression"),new d("Unrecognized",t);default:throw new d("Unrecognized",t)}}function me(e,t){switch(t.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return je(e,t);case"BlockStatement":return Fe(e,t);case"FunctionDeclaration":return ke(e,t);case"ImportDeclaration":return Me(e,t);case"ExportNamedDeclaration":return me(e,t.declaration);case"ReturnStatement":return Ce(e,t);case"IfStatement":return Ie(e,t);case"ExpressionStatement":return Se(e,t);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return we(e,t);case"ForInStatement":return he(e,t);case"ForOfStatement":return ye(e,t);case"WhileStatement":return $e(e,t);default:throw new d("Unrecognized",t)}}function pe(e,t){let n="lang.dictionary([";for(let r=0;r<t.properties.length;r++){const o=t.properties[r];let a;a="Identifier"===o.key.type?"'"+o.key.name+"'":ue(e,o.key);r>0&&(n+=","),n+="lang.strCheck("+a+",'ObjectExpression'),lang.aCheck("+ue(e,o.value)+", 'ObjectExpression')"}return n+="])",n}function fe(e,t,n,r,o=(e,t)=>`${e} = ${t}`){const a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${a} = ${n};`,`for (var ${s} = 0; ${s} < ${a}; ${s}++) {`,` ${o(t,s)}`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function de(e,t,n,r,o=e=>e){const a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${a} = ${n};`,`for (var ${s} of ${a}) {`,` ${t} = ${o(s)};`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ge(e,t,n,r){const o=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId(),l=e.symbols.nextTempVarId();return[`var ${o} = yield ${n}.queryAll(runtimeCtx.abortSignal);`,`var ${a} = { done: false, value: [] };`,`for (var ${s} = 0; ${s} < ${a}.value.length || ((${s} = 0), !(${a} = yield ${o}.next()).done); ${s}++) {`,` if (${a}.value.length === 0) continue;`,` var ${l} = ${a}.value[${s}];`,` ${t} = lang.createFeature(${l}, ${n}, runtimeCtx);`,` ${me(e,r)}`,"}"].join("\n")}function he(e,t){const n=e.symbols.nextTempVarId();let r,o,a="var "+n+" = "+ue(e,t.right)+";\n";switch("VariableDeclaration"===t.left.type?(r=ae(e,t.left.declarations[0].id),a+=me(e,t.left)):r=oe(e,t.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d("NeverReach",t.left)}return a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {\n",a+=fe(e,o,`${n}.length`,t.body),a+="}\n",a+="else if (lc.isImmutableArray("+n+")) {\n",a+=fe(e,o,`${n}.length()`,t.body),a+="}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || lc.isDictionaryLike("+n+")) {\n",a+=de(e,o,`${n}.keys()`,t.body),a+="}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {\n",a+=ge(e,o,n,t.body),a+="}\n"),a+=`else if (lc.isGeometry(${n})) {\n`,a+=de(e,o,`lang.getGeometryKeys(${n})`,t.body),a+="}\n",a+="else { lastStatement = lc.voidOperation; } \n",a}function ye(e,t){const n=e.symbols.nextTempVarId();let r,o,a="var "+n+" = "+ue(e,t.right)+";\n";switch("VariableDeclaration"===t.left.type?(r=ae(e,t.left.declarations[0].id),a+=me(e,t.left)):r=oe(e,t.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d("NeverReach",t.left)}return a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {\n",a+=fe(e,o,`${n}.length`,t.body,(e,t)=>[`if (${t} >= ${n}.length) {`," lang.error('OutOfBounds');","}",`${e} = ${n}[${t}];`].join("\n")),a+="}\n",a+="else if (lc.isImmutableArray("+n+")) {\n",a+=fe(e,o,`${n}.length()`,t.body,(e,t)=>`${e} = ${n}.get(${t});`),a+="}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || lc.isDictionaryLike("+n+")) {\n",a+=de(e,o,`${n}.keys()`,t.body,e=>`lang.entry(${e}, ${n}.field(${e}))`),a+="}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {\n",a+=ge(e,o,n,t.body),a+="}\n"),a+=`else if (lc.isGeometry(${n})) {\n`,a+=de(e,o,`lang.getGeometryKeys(${n})`,t.body,e=>`lang.entry(${e}, lang.getGeometryMember(${n}, ${e}))`),a+="}\n",a+="else { lastStatement = lc.voidOperation; } \n",a}function we(e,t){let n="lastStatement = lc.voidOperation; \n";null!==t.init&&("VariableDeclaration"===t.init.type?n+=me(e,t.init):n+=ue(e,t.init)+"; ");const r=e.symbols.nextTempVarId(),o=e.symbols.nextTempVarId();return n+="var "+r+" = true; ",n+="\n do { ",null!==t.update&&(n+=" if ("+r+"===false) {\n "+ue(e,t.update)+" \n}\n "+r+"=false; \n"),null!==t.test&&(n+="var "+o+" = "+ue(e,t.test)+"; ",n+="if ("+o+"===false) { break; } else if ("+o+"!==true) { lang.error('BooleanConditionRequired'); }\n"),n+=me(e,t.body),null!==t.update&&(n+="\n "+ue(e,t.update)),n+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",n}function be(e,t){if("CallExpression"===t.argument.type)throw new d("NeverReach",t);let n;if("MemberExpression"===t.argument.type){const r=ue(e,t.argument.object);return n=!0===t.argument.computed?ue(e,t.argument.property):"'"+t.argument.property.name+"'","lang.memberupdate("+r+","+n+",'"+t.operator+"',"+t.prefix+")"}const r=oe(e,t.argument);switch(Oe(r),r.scope){case"local":return`lang.update(lscope, '${r.var}', '${t.operator}', ${t.prefix})`;case"global":return`lang.update(gscope, '${r.var}', '${t.operator}', ${t.prefix})`;default:throw r.scope,new d("NeverReach",t.argument)}}function $e(e,t){let n="lastStatement = lc.voidOperation; \n";const r=e.symbols.nextTempVarId();return n+=`\n var ${r} = true;\n do {\n ${r} = ${ue(e,t.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('BooleanConditionRequired');\n }\n ${me(e,t.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,n}function ve(e,t){const n=ue(e,t.right);if("MemberExpression"===t.left.type){let r;const o=ue(e,t.left.object);return r=!0===t.left.computed?ue(e,t.left.property):"'"+t.left.property.name+"'","lang.assignmember("+o+","+r+",'"+t.operator+"',"+n+")"}const r=oe(e,t.left);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=lang.assign(${n},'${t.operator}', ${"="===t.operator?"null":rt(`lscope['${r.var}']`)})`;case"global":return`gscope['${r.var}']=lang.assign(${n},'${t.operator}', ${"="===t.operator?"null":rt(`gscope['${r.var}']`)})`;default:throw r.scope,new d("NeverReach",t.left)}}function Se(e,t){return"AssignmentExpression"===t.expression.type?"lastStatement = lc.voidOperation; "+ue(e,t.expression)+"; \n ":"lastStatement = "+ue(e,t.expression)+"; "}function xe(e,t){return"BlockStatement"===t.type?me(e,t):"ReturnStatement"===t.type||"BreakStatement"===t.type||"ContinueStatement"===t.type?me(e,t)+"; ":"ExpressionStatement"===t.type?me(e,t):me(e,t)+"; "}function Ie(e,t){return`if (lang.mustBoolean(${ue(e,t.test)}) === true) {\n ${xe(e,t.consequent)}\n } `+(null!==t.alternate?"IfStatement"===t.alternate.type?" else "+Ie(e,t.alternate):` else {\n ${xe(e,t.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function Fe(e,t){let n="";for(let r=0;r<t.body.length;r++)"EmptyStatement"!==t.body[r].type&&("ReturnStatement"===t.body[r].type||"BreakStatement"===t.body[r].type||"ContinueStatement"===t.body[r].type?n+=me(e,t.body[r])+"; \n":n+=me(e,t.body[r])+" \n");return n}function Ce(e,t){if(null===t.argument)return"return lc.voidOperation";return"return "+ue(e,t.argument)}function Me(e,t){const n=ae(e,t.specifiers[0].local,"global"),r=e.libraryResolver?.loadLibrary(n.name),o=e.symbols.nextVarId();void 0===e.moduleFactory[r.uri]&&(e.moduleFactory[r.uri]=ct(r.syntax,e.moduleFactory,e.isAsync)),e.moduleFactoryMap[o]=r.uri;let a="";return a=e.isAsync?"(yield lang.loadModule('"+o+"', runtimeCtx) ); ":"lang.loadModule('"+o+"', runtimeCtx); ",Oe(n),`gscope['${n.var}']=${a}`}function Oe(e){if("global"===e.scope)switch(e.name){case"iif":case"when":case"defaultvalue":case"decode":throw new g}}function ke(t,n){const r=new Set(n.params.map(t=>e(t))),o=new Set(a(n).keys());Z(o,r);const s=t.symbols,l=new Map;for(const e of o)l.set(e,s.nextVarId());const i=s.nextLocalsSymbolMapId();t.allLocalSymbolMetadata.set(i,l);const c={...t,localScope:l},u=[`lscope._SymbolsMapId = ${JSON.stringify(i)};`];for(let e=0;e<n.params.length;e++){const t=ae(c,n.params[e],"local");Oe(t),u.push(`lscope['${t.var}'] = arguments[${e}];`)}for(const[e,a]of l)r.has(e)||u.push(`lscope['${a}'] = ${nt};`);const m=Fe(c,n.body),p=!0===t.isAsync?["return lang.__awaiter(this, void 0, void 0, function* () {",` ${m}`," return lastStatement;","});"]:[m,"return lastStatement;"],f=["new lang.UserDefinedCompiledFunction("," lang.functionDepthchecker("," function() {"," var lastStatement = lc.voidOperation;"," var lscope = runtimeCtx.localStack[runtimeCtx.localStack.length-1];",...u,...p," },"," runtimeCtx,"," ),",` ${n.params.length},`,")"].join("\n"),d=ae(t,n.id,"global");return Oe(d),`gscope['${d.var}']=${f}; lastStatement = lc.voidOperation;`}function je(e,t){const n=[];for(let r=0;r<t.declarations.length;r++)n.push(Ae(e,t.declarations[r]));return n.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function Ae(e,t){const n=null===t.init?"null":ue(e,t.init),r=ae(e,t.id);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=${n};`;case"global":return`gscope['${r.var}']=${n};`;default:throw r.scope,new d("NeverReach",t.id)}}function Ee(e,t){return Ne(e,ue(e,t.object),t)}function Ne(e,t,n){return`lang.member(${t}, ${n.computed?ue(e,n.property):`'${n.property.name}'`})`}function Be(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=Ne(e,t,r);break;case"CallExpression":t=qe(e,t,r.arguments);break;default:throw new d("Unrecognized",r)}return t}function _e(e,t,n){return`lang.tryMember(${t}, ${n.computed?ue(e,n.property):`'${n.property.name}'`})`}function Ve(e,t){const n=s(t);let r="",o=ue(e,n.root);for(const a of n.sections)r+=`(${e.symbols.safeAccessTempVarId} = ${_e(e,o,a.checked)}) == null ? null : `,o=Be(e,e.symbols.safeAccessTempVarId,a.unchecked);return`(${r}${o})`}function Te(e,t){try{return"lang.unary("+ue(e,t.argument)+",'"+t.operator+"')"}catch(n){throw n}}function Le(e,t){try{const n=[];for(let r=0;r<t.elements.length;r++)"Literal"===t.elements[r].type?n.push(ue(e,t.elements[r])):n.push("lang.aCheck("+ue(e,t.elements[r])+",'ArrayExpression')");return"["+n.join(",")+"]"}catch(n){throw n}}function Re(e,t){try{const n=[];let r=0;for(const o of t.quasis)n.push(o.value?JSON.stringify(o.value.cooked):JSON.stringify("")),!1===o.tail&&(n.push(t.expressions[r]?"lang.castString(lang.aCheck("+ue(e,t.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+n.join(",")+"]).join('')"}catch(n){throw n}}function Ue(e,t){try{return"lang.binary("+ue(e,t.left)+","+ue(e,t.right)+",'"+t.operator+"')"}catch(n){throw n}}function De(e,t){try{if("AssignmentExpression"===t.left.type||"UpdateExpression"===t.left.type)throw new d("LogicalExpressionOnlyBoolean",t);if("AssignmentExpression"===t.right.type||"UpdateExpression"===t.right.type)throw new d("LogicalExpressionOnlyBoolean",t);if("&&"===t.operator||"||"===t.operator)return"(lang.logicalCheck("+ue(e,t.left)+") "+t.operator+" lang.logicalCheck("+ue(e,t.right)+"))";throw new d("LogicExpressionOrAnd",null)}catch(n){throw n}}function Ge(e,t){const n=oe(e,t);switch(Oe(n),n.scope){case"local":return rt(`lscope['${n.var}']`);case"global":return rt(`gscope['${n.var}']`);default:throw n.scope,new d("NeverReach",t)}}function ze(e,t){if("Identifier"===t.callee.type){const n=oe(e,t.callee,"FunctionNotFound");if("global"===n.scope)switch(n.name){case"iif":return Pe(e,t);case"when":return Ke(e,t);case"defaultvalue":return We(e,t);case"decode":return Ze(e,t)}}return qe(e,ue(e,t.callee),t.arguments)}function qe(e,t,n){const r=`lang.callfunc(${t}, [${n.map(t=>ue(e,t)).join(", ")}], runtimeCtx)`;return e.isAsync?`(yield ${r})`:r}function Pe(e,t){try{if(3!==t.arguments.length)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n\n if (${n} === true) {\n return ${ue(e,t.arguments[1])};\n }\n else if (${n} === false) {\n return ${ue(e,t.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function We(e,t){try{if(t.arguments.length<2||t.arguments.length>3)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId(),r=e.symbols.nextTempVarId();return 3===t.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n var ${r} = ${ue(e,t.arguments[1])};\n ${n} = lang.getNestedOptionalValue(${n}, ${r});\n return ${n} != null && ${n} !== "" ? ${n} : ${ue(e,t.arguments[2])};\n ${e.isAsync?"})}()))":"}()"}`:`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n if (${n} === null) {\n return ${ue(e,t.arguments[1])};\n }\n if (${n} === "") {\n return ${ue(e,t.arguments[1])};\n }\n if (${n} === undefined) {\n return ${ue(e,t.arguments[1])};\n }\n return ${n};\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Ke(e,t){try{if(t.arguments.length<3)throw new d("WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();let r="var ";for(let o=0;o<t.arguments.length-1;o+=2)r+=`${n} = lang.mustBoolean(${ue(e,t.arguments[o])});\n if (${n} === true ) {\n return ${ue(e,t.arguments[o+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n ${r}\n return ${ue(e,t.arguments[t.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Ze(e,t){try{if(t.arguments.length<2)throw new d("WrongNumberOfParameters",t);if(2===t.arguments.length)return`(${ue(e,t.arguments[1])})`;if((t.arguments.length-1)%2==0)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();let r;if(t.arguments.every((e,t)=>t%2==0||"Literal"===e.type)){r=`switch (${n}) {`;for(let n=1;n<t.arguments.length-1;n+=2){const o=t.arguments[n],a=t.arguments[n+1];null==o.value?r+="\n case null:\n case lc.voidOperation:\n ":r+=`\n case ${JSON.stringify(o.value)}:\n `,r+=`return ${ue(e,a)}`}r+="}"}else{const o=e.symbols.nextTempVarId();r="var ";for(let a=1;a<t.arguments.length-1;a+=2){const s=t.arguments[a],l=t.arguments[a+1];r+=`${o} = ${ue(e,s)};\n if (lang.binary(${o}, ${n}, "==") === true ) {\n return ${ue(e,l)}\n }\n `}}return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n ${r}\n return ${ue(e,t.arguments[t.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Je(e,t){try{return ie(e,t,(e,t)=>{throw new f("Unrecognized",t)})}catch(n){throw n}}function Ye(e){const t=function(){this.textformatting=p.textFormatting()};t.prototype=Object.create(null),t.provided=new Set(["textformatting","infinity","nan","pi"]),t.prototype.infinity=Number.POSITIVE_INFINITY,t.prototype.nan=Number.NaN,t.prototype.pi=Math.PI;for(const[n,r]of Object.entries(e))t.prototype[n]=new y(r),t.provided.add(n);return t}function He(){const e=Object.create(null);L(e,ie),q(e,ie),R(e,ie,se),G(e,ie),U(e,ie),z(e,ie),P(e,ie),e.iif=Je,e.decode=Je,e.when=Je,e.defaultvalue=Je;const t=Ye(e);D(e,ie);return{ScopeSync:Ye(e),ScopeAsync:t}}const{ScopeSync:Qe,ScopeAsync:Xe}=He();function et(e,t){const n={mode:t,compiled:!0,functions:Object.create(null),signatures:[],standardFunction:ie,standardFunctionAsync:ie,evaluateIdentifier:se};for(const r of e)r.registerFunctions(n);if("sync"===t)for(const[r,o]of Object.entries(n.functions))Qe.prototype[r]=new y(o),Qe.provided.add(r);else for(const[r,o]of Object.entries(n.functions))Xe.prototype[r]=new y(o),Xe.provided.add(r);for(const r of n.signatures)_(r,t)}et([T],"sync"),et([T],"async"),et([V],"async");const tt=Symbol("uninitialized"),nt="lang.uninitialized";function rt(e){return`lang.requireInitialized(${e})`}const ot={uninitialized:tt,requireInitialized(e){if(e===tt)throw new f("InvalidIdentifier",null);return e},isNumber:e=>Q(e),isArray:e=>H(e),isImmutableArray:e=>F(e),isDictionaryLike:e=>B(e),isString:e=>X(e),isDictionary:e=>N(e),isGeometry:e=>E(e),getGeometryKeys:e=>m(e),getGeometryMember:(e,t)=>u(e,t,null),error(e){throw new f(e,null)},__awaiter(e,t,n,r){const o=r.apply(e,t||[]);let a=o.next();for(;!a.done&&!K(a.value);)a=o.next(a.value);return a.done?a.value:new Promise((e,t)=>{function n(r){for(;!r.done;){if(K(r.value))return void Promise.resolve(r.value).then(e=>{try{n(o.next(e))}catch(r){t(r)}},e=>{try{n(o.throw(e))}catch(r){t(r)}});try{r=o.next(r.value)}catch(a){return void t(a)}}e(r.value)}n(a)})},functionDepthchecker:(e,t)=>function(){if(t.depthCounter.depth++,t.localStack.push({}),t.depthCounter.depth>64)throw new f("MaximumCallDepth",null);const n=e.apply(this,arguments);return K(n)?n.then(e=>(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,e)):(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,n)},mustBoolean(e){if(!0===e||!1===e)return e;throw new f("BooleanConditionRequired",null)},castString:e=>M(e),aCheck(e,t){if(x(e)){if("ArrayExpression"===t)throw new f("NoFunctionInArray",null);if("ObjectExpression"===t)throw new f("NoFunctionInDictionary",null);throw new f("NoFunctionInTemplateLiteral",null)}return e===O?null:e},Dictionary:p,Feature:h,UserDefinedCompiledFunction:le,dictionary(e){const t=Object.create(null),n=new Map;for(let o=0;o<e.length;o+=2){if(x(e[o+1]))throw new f("NoFunctionInDictionary",null);if(!1===X(e[o]))throw new f("KeyMustBeString",null);let r=e[o].toString();const a=r.toLowerCase();n.has(a)?r=n.get(a):n.set(a,r),e[o+1]===O?t[r]=null:t[r]=e[o+1]}const r=new p(t);return r.immutable=!1,r},entry:(e,t)=>p.containerEntry(e,t),strCheck(e){if(!1===X(e))throw new f("KeyMustBeString",null);return e},unary(e,t){if(ee(e)){if("!"===t)return!e;if("-"===t)return-1*C(e);if("+"===t)return 1*C(e);if("~"===t)return~C(e);throw new f("UnsupportUnaryOperator",null)}if("-"===t)return-1*C(e);if("+"===t)return 1*C(e);if("~"===t)return~C(e);throw new f("UnsupportUnaryOperator",null)},logicalCheck(e){if(!1===ee(e))throw new f("LogicExpressionOrAnd",null);return e},logical(e,t,n){if(ee(e)&&ee(t))switch(n){case"||":return e||t;case"&&":return e&&t;default:throw new f("LogicExpressionOrAnd",null)}throw new f("LogicExpressionOrAnd",null)},binary(e,t,n){switch(n){case"|":case"<<":case">>":case">>>":case"^":case"&":return A(C(e),C(t),n);case"==":return j(e,t);case"!=":return!j(e,t);case"<":case">":case"<=":case">=":return k(e,t,n);case"+":return X(e)||X(t)?M(e)+M(t):C(e)+C(t);case"-":return C(e)-C(t);case"*":return C(e)*C(t);case"/":return C(e)/C(t);case"%":return C(e)%C(t);default:throw new f("UnsupportedOperator",null)}},assign(e,t,n){switch(t){case"=":return e===O?null:e;case"/=":return C(n)/C(e);case"*=":return C(n)*C(e);case"-=":return C(n)-C(e);case"+=":return X(n)||X(e)?M(n)+M(e):C(n)+C(e);case"%=":return C(n)%C(e);default:throw new f("UnsupportedOperator",null)}},update(e,t,n,r){const o=C(this.requireInitialized(e[t]));return e[t]="++"===n?o+1:o-1,!1===r?o:"++"===n?o+1:o-1},createFeature:(e,t,n)=>h.createFromGraphicLikeObject(e.geometry,e.attributes,t,n.timeZone),memberupdate(e,t,n,r){let o;if(H(e)){if(!Q(t))throw new f("ArrayAccessMustBeNumber",null);if(t<0&&(t=e.length+t),t<0||t>=e.length)throw new f("OutOfBounds",null);o=C(e[t]),e[t]="++"===n?o+1:o-1}else if(e instanceof p){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0!==e.hasField(t))throw new f("FieldNotFound",null,{key:t});o=C(e.field(t)),e.setField(t,"++"===n?o+1:o-1)}else if(I(e)){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0!==e.hasField(t))throw new f("FieldNotFound",null,{key:t});o=C(e.field(t)),e.setField(t,"++"===n?o+1:o-1)}else{if(F(e))throw new f("Immutable",null);if(!(e instanceof it))throw new f("InvalidIdentifier",null);if(!1===X(t))throw new f("ModuleAccessorMustBeString",null);if(!0!==e.hasGlobal(t))throw new f("ModuleExportNotFound",null);o=C(e.global(t)),e.setGlobal(t,"++"===n?o+1:o-1)}return!1===r?o:"++"===n?o+1:o-1},assignmember(e,t,n,r){if(H(e)){if(!Q(t))throw new f("ArrayAccessMustBeNumber",null);if(t<0&&(t=e.length+t),t<0||t>e.length)throw new f("OutOfBounds",null);if(t===e.length){if("="!==n)throw new f("OutOfBounds",null);e[t]=this.assign(r,n,e[t])}else e[t]=this.assign(r,n,e[t])}else if(e instanceof p){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new f("FieldNotFound",null,{key:t});e.setField(t,this.assign(r,n,null))}}else if(I(e)){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new f("FieldNotFound",null,{key:t});e.setField(t,this.assign(r,n,null))}}else{if(F(e))throw new f("Immutable",null);if(!(e instanceof it))throw new f("InvalidIdentifier",null);if(!1===X(t))throw new f("ModuleAccessorMustBeString",null);if(!e.hasGlobal(t))throw new f("ModuleExportNotFound",null);e.setGlobal(t,this.assign(r,n,e.global(t)))}},member:(e,t)=>c(e,t),tryMember:(e,t)=>i(e,t),callfunc(e,t,n){if(x(e))return e.call(n,{arguments:t,preparsed:!0});throw new f("CallNonFunction",null)},loadModule(e,t){const n=t.moduleFactoryMap[e];if(t.moduleSingletons[n])return t.moduleSingletons[n];const r=t.moduleFactory[n]({moduleSingletons:t.moduleSingletons,depthCounter:t.depthCounter,lrucache:t.lrucache,interceptor:t.interceptor,services:t.services,console:t.console,abortSignal:t.abortSignal,timeZone:t.timeZone??null,spatialReference:t.spatialReference});return t.moduleSingletons[n]=r,r},getNestedOptionalValue:(e,t)=>l(e,t)};function at(e){console.log(e)}function st(n,o,a=!1){let s=null;n.usesModules&&(s=new r(null,n.loadedModules));const l=Object.create(null),i=new Set(Object.keys(o?.vars||{}).map(t=>e(t))),c=new Set(Object.keys(o?.customfunctions||{}).map(t=>e(t))),u=ce(n,a?Xe.provided:Qe.provided,new Set([...i,...c]),a,s,l);let m;m=a?["var runtimeCtx = this.prepare(context, true);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","return lang.__awaiter(this, void 0, void 0, function* () {"," function mainBody() {"," return lang.__awaiter(this, void 0, void 0, function* () {",` ${u.body}`," });"," }"," return this.postProcess(yield mainBody());","});"].join("\n"):["var runtimeCtx = this.prepare(context, false);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","function mainBody() {",` ${u.body}`,"}","return this.postProcess(mainBody());"].join("\n");const{symbolMetadata:p,moduleFactoryMap:d}=u,g={lc:v,lang:ot,postProcess(e){if(S(e))return null;if(x(e))throw new f("IllegalResult",null);return e},prepare(e,n){const r=e.spatialReference??J.WebMercator,o=n?new Xe:new Qe;for(const t of c)null!=e.customfunctions&&t in e.customfunctions?o[t]=e.customfunctions[t]??null:o[t]=tt;for(const t of i){if(null==e.vars||!(t in e.vars)){t in o||(o[t]=tt);continue}const n=e.vars[t]??null;Y(n)?o[t]=h.createFromGraphic(n,e.timeZone??null):o[t]=n}return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??at,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:r,track:e.track,globalScope:o,localStack:[],depthCounter:{depth:1},symbolMetadata:p,moduleFactory:l,moduleFactoryMap:d,moduleSingletons:Object.create(null)}}};return new Function("context",m).bind(g)}async function lt(){return et([await import("./functions/geomasync.js")],"async"),!0}class it extends n{constructor(e){super(),this.moduleContext=e}hasGlobal(t){const n=this.moduleContext.symbolMetadata.exports;return n.has(t)||n.has(e(t))}setGlobal(t,n){if(x(n))throw new f("AssignModuleFunction",null);const r=this.moduleContext.symbolMetadata.globals.get(e(t));if(null==r)throw new f("ModuleExportNotFound",null);this.moduleContext.globalScope[r]=n}global(t){const n=this.moduleContext.symbolMetadata.globals.get(e(t));if(null==n)throw new f("ModuleExportNotFound",null);const r=this.moduleContext.globalScope,o=ot.requireInitialized(r[n]);if(x(o)&&!(o instanceof b)){const e=new b;return e.fn=o,e.parameterEvaluator=ie,e.context=this.moduleContext,r[n]=e,e}return o}}function ct(e,n,o){const a=new r(null,e.loadedModules),s=ce(e,o?Xe.provided:Qe.provided,new Set,o,a,n);let l;l=o?["var runtimeCtx = this.prepare(context, true);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","return lang.__awaiter(this, void 0, void 0, function* () {"," function mainBody() {"," return lang.__awaiter(this, void 0, void 0, function* () {",` ${s.body}`," });"," }"," yield mainBody();"," return this.prepareModule(runtimeCtx);","});"].join("\n"):["var runtimeCtx = this.prepare(context, false);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","function mainBody() {",` ${s.body}`,"}","mainBody();","return this.prepareModule(runtimeCtx);"].join("\n");const{symbolMetadata:i,moduleFactoryMap:c}=s,u={lc:v,lang:ot,prepareModule:e=>new it(e),prepare(e,r){const o=e.spatialReference??J.WebMercator,a=r?new Xe:new Qe;return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??at,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:null,globalScope:a,localStack:[],depthCounter:e.depthCounter,symbolMetadata:i,moduleFactory:n,moduleFactoryMap:c,moduleSingletons:e.moduleSingletons}}};return new Function("context",l).bind(u)}export{le as UserDefinedCompiledFunction,st as compileScript,lt as enableAsyncSupport,et as extend};
|
package/arcade/arcadeRuntime.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as r}from"./ArcadeModule.js";import{ArcadeModuleLoader as n}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as s,flattenAccessChain as i}from"./compilerUtils.js";import{getNestedOptionalValue as a,getGeometryKeys as l,getGeometryMember as c,tryGetMember as u,getMember as f}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as h,ensureLocatableError as d}from"./executionError.js";import{Feature as w}from"./Feature.js";import{NativeFunction as m,ArcadeFunction as g,ScopeMarshalledFunction as b,wrapModuleScopedResponse as y}from"./FunctionWrapper.js";import{R as v,I as x,q as S,i as R,z as F,A as k,v as j,B as I,g as O,y as A,f as N,w as C,r as M,s as E,u as B,x as U,h as G}from"../chunks/languageUtils.js";import{addFunctionDeclaration as z}from"./treeAnalysis.js";import{A as D}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as _}from"./functions/feature.js";import{registerFunctions as Z}from"./functions/geometry.js";import{registerFunctions as q}from"./functions/geomsync.js";import{registerFunctions as W}from"./functions/maths.js";import{registerFunctions as P}from"./functions/stats.js";import{registerFunctions as V}from"./functions/string.js";import{registerFunctions as T}from"./functions/track.js";import K from"../core/Logger.js";import Y from"../geometry/SpatialReference.js";import{isGraphic as $}from"../support/graphicInstanceUtils.js";import{isBoolean as H,isArray as J,isString as Q,isNumber as X}from"../support/guards.js";const ee=()=>K.getLogger("esri.arcade.arcadeRuntime"),te=Symbol("uninitialized");function re(e){if(e===te)throw new h("InvalidIdentifier",null)}function ne(e){return re(e),e}function oe(t,r){const n=e(r);if(null!==t.localScope){const e=t.localScope[n];if(void 0!==e)return{scope:t.localScope,id:n,var:e}}const o=t.globalScope[n];if(void 0!==o)return{scope:t.globalScope,id:n,var:o};throw new h("InvalidIdentifier",r)}function se(t,r,n="InvalidIdentifier"){const o=e(r);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return re(e),e.value}const s=t.globalScope[o];if(void 0!==s)return re(s),s.value;throw new h(n,r)}const ie=function(){};ie.prototype=Object.freeze(Object.create(null));class ae extends g{constructor(e,t,r,n){super(),this.definition=e,this.context=t,this._params=r,this._locals=n}get debugName(){return null}createFunction(e){return(...t)=>{const r={spatialReference:this.context.spatialReference,console:this.context.console,services:this.context.services,timeZone:this.context.timeZone??null,lrucache:this.context.lrucache,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,abortSignal:this.context.abortSignal,localScope:new ie,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(r.depthCounter.depth>64)throw new h("MaximumCallDepth",null);return le(r,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return fe(e,t,(r,n,o)=>{const s={spatialReference:e.spatialReference,services:e.services,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,timeZone:e.timeZone??null,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:new ie,track:e.track};if(s.depthCounter.depth>64)throw new h("MaximumCallDepth",t);return le(s,this.definition.body,this._params,this._locals,o,t)})}marshalledCall(e,t,r,n){return n(e,t,(o,s,i)=>{const a={spatialReference:e.spatialReference,globalScope:r.globalScope,services:e.services,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,timeZone:e.timeZone??null,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:new ie,track:e.track};return i=i.map(t=>!R(t)||t instanceof b?t:y(t,e,n)),y(le(a,this.definition.body,this._params,this._locals,i,t),r,n)})}}function le(e,t,r,n,o,s){try{if(r.length!==o.length)throw new h("WrongNumberOfParameters",s);if(null!=e.localScope){for(let t=0;t<r.length;t++)e.localScope[r[t]]={value:o[t]};for(const t of n)e.localScope[t]=te}const i=he(e,t);if(i instanceof v)return i.value;if(i===F)throw new h("UnexpectedToken",s);if(i===k)throw new h("UnexpectedToken",s);return i instanceof x?i.value:i}catch(i){throw i}}class ce extends r{constructor(e){super(),this.moduleGlobalContext=e}global(t){const r=e(t);if(!this.moduleGlobalContext.exports.has(r))throw new h("ModuleExportNotFound",null);const n=this.moduleGlobalContext.globalScope[r];if(re(n),R(n.value)&&!(n.value instanceof b)){const e=new b;return e.fn=n.value,e.parameterEvaluator=fe,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[r]={value:e},e}return n.value}setGlobal(t,r){if(R(r))throw new h("AssignModuleFunction",null);const n=e(t);if(!this.moduleGlobalContext.exports.has(n))throw new h("ModuleExportNotFound",null);this.moduleGlobalContext.globalScope[n]={value:r}}hasGlobal(t){return this.moduleGlobalContext.exports.has(e(t))}static load(e,r){const{globals:s,exports:i}=o(r),a=new Xe;for(const t of s.keys())t in a||(a[t]=te);const l=e.spatialReference??Y.WebMercator,c={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??tt,abortSignal:t,timeZone:e.timeZone??null,spatialReference:l,track:e.track,depthCounter:{depth:1},libraryResolver:new n(e.libraryResolver._moduleSingletons,r.loadedModules),exports:i,localScope:null,globalScope:a};return ke(c,r),new ce(c)}}function ue(e,t){const r=[];for(let n=0;n<t.arguments.length;n++)r.push(pe(e,t.arguments[n]));return r}function fe(e,t,r){try{return!0===t.preparsed?r(e,null,t.arguments):r(e,t,ue(e,t))}catch(n){throw n}}function pe(e,t){try{switch(t.type){case"AssignmentExpression":return Se(e,t);case"UpdateExpression":return ve(e,t);case"TemplateLiteral":return qe(e,t);case"Identifier":return We(e,t);case"MemberExpression":return Me(e,t);case"Literal":return t.value;case"CallExpression":return Pe(e,t);case"UnaryExpression":return ze(e,t);case"BinaryExpression":return Le(e,t);case"LogicalExpression":return _e(e,t);case"ArrayExpression":return De(e,t);case"ObjectExpression":return de(e,t);case"MemberAccessChainExpression":return Ge(e,t);case"SafeMemberExpression":throw ee().error("SafeMemberExpression outside of MemberAccessChainExpression"),new h("Unrecognized",t);default:throw new h("Unrecognized",t)}}catch(r){throw d(r,t)}}function he(e,t){switch(t.type){case"EmptyStatement":return j;case"VariableDeclaration":return Ne(e,t);case"ImportDeclaration":return Oe(e,t);case"ExportNamedDeclaration":return Ae(e,t);case"BlockStatement":return ke(e,t);case"FunctionDeclaration":return Ie(e,t);case"ReturnStatement":return je(e,t);case"IfStatement":return Fe(e,t);case"ExpressionStatement":return Re(e,t);case"BreakStatement":return F;case"ContinueStatement":return k;case"ForStatement":return ge(e,t);case"ForInStatement":return we(e,t);case"ForOfStatement":return me(e,t);case"WhileStatement":return be(e,t);default:throw new h("Unrecognized",t)}}function de(e,t){const r=Object.create(null),n=new Map;for(let s=0;s<t.properties.length;s++){const o=t.properties[s],i="Identifier"===o.key.type?o.key.name:pe(e,o.key),a=pe(e,o.value);if(R(a))throw new h("NoFunctionInDictionary",t);if(!1===Q(i))throw new h("KeyMustBeString",t);let l=i.toString();const c=l.toLowerCase();n.has(c)?l=n.get(c):n.set(c,l),r[l]=a===j?null:a}const o=new p(r);return o.immutable=!1,o}function we(e,t){const r=pe(e,t.right);"VariableDeclaration"===t.left.type&&Ne(e,t.left);const n=oe(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);if(J(r)||Q(r)){const o=r.length;for(let r=0;r<o;r++){n.scope[n.id]={value:r};const o=he(e,t.body);if(o===F)break;if(o instanceof v)return o}return j}if(O(r)){for(let o=0;o<r.length();o++){n.scope[n.id]={value:o};const r=he(e,t.body);if(r===F)break;if(r instanceof v)return r}return j}if(r instanceof p||A(r)){const o=r.keys();for(let r=0;r<o.length;r++){n.scope[n.id]={value:o[r]};const s=he(e,t.body);if(s===F)break;if(s instanceof v)return s}return j}if(N(r)){for(const o of l(r)){n.scope[n.id]={value:o};const r=he(e,t.body);if(r===F)break;if(r instanceof v)return r}return j}return j}function me(e,t){const r=pe(e,t.right);"VariableDeclaration"===t.left.type&&he(e,t.left);const n=oe(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);if(J(r)||Q(r)){const o=r.length;for(let s=0;s<o;s++){if(s>=r.length)throw new h("OutOfBounds",t);n.scope[n.id]={value:r[s]};const o=he(e,t.body);if(o===F)break;if(o instanceof v)return o}return j}if(O(r)){for(let o=0;o<r.length();o++){n.scope[n.id]={value:r.get(o)};const s=he(e,t.body);if(s===F)break;if(s instanceof v)return s}return j}if(r instanceof p||A(r)){for(const o of r.keys()){const s=r.field(o);n.scope[n.id]={value:p.containerEntry(o,s)};const i=he(e,t.body);if(i===F)break;if(i instanceof v)return i}return j}if(N(r)){for(const o of l(r)){const s=c(r,o,t);n.scope[n.id]={value:p.containerEntry(o,s)};const i=he(e,t.body);if(i===F)break;if(i instanceof v)return i}return j}return j}function ge(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?he(e,t.init):pe(e,t.init));const r={testResult:!0,lastAction:j};do{ye(e,t,r)}while(!0===r.testResult);return r.lastAction instanceof v?r.lastAction:j}function be(e,t){const r={testResult:!0,lastAction:j};if(r.testResult=pe(e,t.test),!1===r.testResult)return j;if(!0!==r.testResult)throw new h("BooleanConditionRequired",t);for(;!0===r.testResult&&(r.lastAction=he(e,t.body),r.lastAction!==F)&&!(r.lastAction instanceof v);)if(r.testResult=pe(e,t.test),!0!==r.testResult&&!1!==r.testResult)throw new h("BooleanConditionRequired",t);return r.lastAction instanceof v?r.lastAction:j}function ye(e,t,r){if(null!==t.test){if(r.testResult=pe(e,t.test),!1===r.testResult)return;if(!0!==r.testResult)throw new h("BooleanConditionRequired",t)}r.lastAction=he(e,t.body),r.lastAction!==F?r.lastAction instanceof v?r.testResult=!1:null!==t.update&&pe(e,t.update):r.testResult=!1}function ve(e,t){if("CallExpression"===t.argument.type)throw new h("NeverReach",t);let r;if("MemberExpression"===t.argument.type){const n=pe(e,t.argument.object);let o;if(!0===t.argument.computed)o=pe(e,t.argument.property);else{if("Identifier"!==t.argument.property.type)throw new h("Unrecognized",t);o=t.argument.property.name}if(J(n)){if(!X(o))throw new h("ArrayAccessMustBeNumber",t);if(o<0&&(o=n.length+o),o<0||o>=n.length)throw new h("OutOfBounds",t);r=M(n[o]),n[o]="++"===t.operator?r+1:r-1}else if(n instanceof p){if(!1===Q(o))throw new h("KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h("FieldNotFound",t,{key:o});r=M(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else if(G(n)){if(!1===Q(o))throw new h("KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h("FieldNotFound",t,{key:o});r=M(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else{if(O(n))throw new h("Immutable",t);if(!(n instanceof ce))throw new h("InvalidParameter",t);if(!1===Q(o))throw new h("ModuleAccessorMustBeString",t);if(!0!==n.hasGlobal(o))throw new h("ModuleExportNotFound",t);r=M(n.global(o)),n.setGlobal(o,"++"===t.operator?r+1:r-1)}return!1===t.prefix?r:"++"===t.operator?r+1:r-1}const n=oe(e,t.argument);r=M(ne(n.var).value);const o="++"===t.operator?r+1:r-1;return n.scope[n.id]={value:o},!1===t.prefix?r:"++"===t.operator?r+1:r-1}function xe(e,t,r,n){switch(t){case"=":return e===j?null:e;case"/=":return M(r)/M(e);case"*=":return M(r)*M(e);case"-=":return M(r)-M(e);case"+=":return Q(r)||Q(e)?E(r)+E(e):M(r)+M(e);case"%=":return M(r)%M(e);default:throw new h("UnsupportedOperator",n)}}function Se(e,t){if("MemberExpression"===t.left.type){const r=pe(e,t.left.object);let n;if(!0===t.left.computed)n=pe(e,t.left.property);else{if("Identifier"!==t.left.property.type)throw new h("InvalidIdentifier",t);n=t.left.property.name}const o=pe(e,t.right);if(J(r)){if(!X(n))throw new h("ArrayAccessMustBeNumber",t);if(n<0&&(n=r.length+n),n<0||n>r.length)throw new h("OutOfBounds",t);if(n===r.length){if("="!==t.operator)throw new h("OutOfBounds",t);r[n]=xe(o,t.operator,r[n],t)}else r[n]=xe(o,t.operator,r[n],t)}else if(r instanceof p){if(!1===Q(n))throw new h("KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t));else{if("="!==t.operator)throw new h("FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t))}}else if(G(r)){if(!1===Q(n))throw new h("KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t));else{if("="!==t.operator)throw new h("FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t))}}else{if(O(r))throw new h("Immutable",t);if(!(r instanceof ce))throw new h("InvalidIdentifier",t);if(!1===Q(n))throw new h("ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(n))throw new h("ModuleExportNotFound",t);r.setGlobal(n,xe(o,t.operator,r.global(n),t))}return j}const r=oe(e,t.left),n=pe(e,t.right);return r.scope[r.id]={value:xe(n,t.operator,"="!==t.operator?ne(r.var).value:null,t)},j}function Re(e,t){const r=pe(e,t.expression);return r===j?j:new x(r)}function Fe(e,t){const r=pe(e,t.test);if(!0===r)return he(e,t.consequent);if(!1===r)return null!==t.alternate?he(e,t.alternate):j;throw new h("BooleanConditionRequired",t)}function ke(e,t){let r=j;for(let n=0;n<t.body.length;n++)if(r=he(e,t.body[n]),r instanceof v||r===F||r===k)return r;return r}function je(e,t){if(null===t.argument)return new v(j);const r=pe(e,t.argument);return new v(r)}function Ie(t,r){if(null!=t.localScope)throw ee().error("Function declarations are only valid in global scope."),new h("NeverReach",r);const n=e(r.id);if(!(n in t.globalScope))throw ee().error(`Function "${n}" not declared.`),new h("NeverReach",r);const o=s(r),i=r.params.map(t=>e(t)),a=Array.from(o.keys()).filter(e=>!i.includes(e));return t.globalScope[n]={value:new ae(r,t,i,a)},j}function Oe(e,t){const r=oe(e,t.specifiers[0].local),n=e.libraryResolver;if(null==n)throw ee().error("Internal error: module loader not initialized"),new h("NeverReach",t);const o=n.loadLibrary(r.id);let s;return n._moduleSingletons?.has(o.uri)?s=n._moduleSingletons.get(o.uri):(s=ce.load(e,o.syntax),n._moduleSingletons?.set(o.uri,s)),r.scope[r.id]={value:s},j}function Ae(e,t){return he(e,t.declaration),j}function Ne(e,t){for(let r=0;r<t.declarations.length;r++)Ce(e,t.declarations[r]);return j}function Ce(e,t){let r=null===t.init?null:pe(e,t.init);if(r===j&&(r=null),"Identifier"!==t.id.type)throw new h("InvalidIdentifier",t);const n=oe(e,t.id);n.scope[n.id]={value:r}}function Me(e,t){return Ee(e,pe(e,t.object),t)}function Ee(e,t,r){const n=r.computed?pe(e,r.property):r.property.name;return f(t,n)}function Be(e,t,r){for(const n of r)switch(n.type){case"MemberExpression":t=Ee(e,t,n);break;case"CallExpression":t=Ve(e,t,n);break;default:throw new h("Unrecognized",n)}return t}function Ue(e,t,r){const n=r.computed?pe(e,r.property):r.property.name;return u(t,n)}function Ge(e,t){const r=i(t);let n=pe(e,r.root);for(const o of r.sections){const t=Ue(e,n,o.checked);if(null==t)return null;n=Be(e,t,o.unchecked)}return n}function ze(e,t){try{const r=pe(e,t.argument);if(H(r)){if("!"===t.operator)return!r;if("-"===t.operator)return-1*M(r);if("+"===t.operator)return 1*M(r);if("~"===t.operator)return~M(r);throw new h("UnsupportUnaryOperator",t)}if("~"===t.operator)return~M(r);if("-"===t.operator)return-1*M(r);if("+"===t.operator)return 1*M(r);throw new h("UnsupportUnaryOperator",t)}catch(r){throw r}}function De(e,t){try{const r=[];for(let n=0;n<t.elements.length;n++){const o=pe(e,t.elements[n]);if(R(o))throw new h("NoFunctionInArray",t);o===j?r.push(null):r.push(o)}return r}catch(r){throw r}}function Le(e,t){try{const r=pe(e,t.left),n=pe(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return U(M(r),M(n),t.operator);case"==":return C(r,n);case"!=":return!C(r,n);case"<":case">":case"<=":case">=":return B(r,n,t.operator);case"+":return Q(r)||Q(n)?E(r)+E(n):M(r)+M(n);case"-":return M(r)-M(n);case"*":return M(r)*M(n);case"/":return M(r)/M(n);case"%":return M(r)%M(n);default:throw t.operator,new h("UnsupportedOperator",t)}}catch(r){throw r}}function _e(e,t){try{const r=pe(e,t.left);if(H(r))switch(t.operator){case"||":{if(!0===r)return r;const n=pe(e,t.right);if(H(n))return n;throw new h("LogicExpressionOrAnd",t)}case"&&":{if(!1===r)return r;const n=pe(e,t.right);if(H(n))return n;throw new h("LogicExpressionOrAnd",t)}default:throw t.operator,new h("LogicExpressionOrAnd",t)}throw new h("LogicalExpressionOnlyBoolean",t)}catch(r){throw r}}function Ze(e,t){if(R(e))throw new h("NoFunctionInTemplateLiteral",t);return e}function qe(e,t){let r="",n=0;for(const o of t.quasis)if(r+=o.value?o.value.cooked:"",!1===o.tail){r+=t.expressions[n]?E(Ze(pe(e,t.expressions[n]),t)):"",n++}return r}function We(e,t){return se(e,t)}function Pe(e,t){return Ve(e,"Identifier"===t.callee.type?se(e,t.callee,"FunctionNotFound"):pe(e,t.callee),t)}function Ve(e,t,r){if(R(t))return t.call(e,r);throw new h("CallNonFunction",r)}function Te(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;I(null===r?[]:r,3,3,t);const n=pe(e,r[0]);if(!1===H(n))throw new h("BooleanConditionRequired",t);return pe(e,!0===n?r[1]:r[2])}catch(r){throw r}}function Ke(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;I(null===r?[]:r,2,3,t);const n=pe(e,r[0]);if(3===r.length){const t=pe(e,r[1]),o=a(n,t);return null!=o&&""!==o?o:pe(e,r[2])}return null===n||""===n||void 0===n?pe(e,r[1]):n}catch(r){throw r}}function Ye(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;if(r.length<2)throw new h("WrongNumberOfParameters",t);if(2===r.length)return pe(e,r[1]);{if((r.length-1)%2==0)throw new h("WrongNumberOfParameters",t);const n=pe(e,r[0]);return $e(e,t,1,n)}}catch(r){throw r}}function $e(e,t,r,n){try{const o=t.arguments,s=pe(e,o[r]);if(C(s,n))return pe(e,o[r+1]);{const s=o.length-r;return 1===s?pe(e,o[r]):2===s?null:3===s?pe(e,o[r+2]):$e(e,t,r+2,n)}}catch(o){throw o}}function He(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;if(r.length<3)throw new h("WrongNumberOfParameters",t);if(r.length%2==0)throw new h("WrongNumberOfParameters",t);const n=pe(e,r[0]);if(!1===H(n))throw new h("BooleanConditionRequired",r[0]);return Je(e,t,0,n)}catch(r){throw r}}function Je(e,t,r,n){try{const o=t.arguments;if(!0===n)return pe(e,o[r+1]);if(3===o.length-r)return pe(e,o[r+2]);{const n=pe(e,o[r+2]);if(!1===H(n))throw new h("BooleanConditionRequired",o[r+2]);return Je(e,t,r+2,n)}}catch(o){throw o}}function Qe(){const e=Object.create(null);L(e,fe),V(e,fe),_(e,fe,We),W(e,fe),Z(e,fe),P(e,fe),q(e,fe),T(e,fe),e.iif=Te,e.defaultvalue=Ke,e.decode=Ye,e.when=He;const t=function(){this.textformatting={value:p.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.nan=Object.freeze({value:Number.NaN}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[r,n]of Object.entries(e))t.prototype[r]=Object.freeze({value:new m(n)});return t}const Xe=Qe();function et(e){const t={mode:"sync",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:fe,evaluateIdentifier:We};for(let r=0;r<e.length;r++)e[r].registerFunctions(t);for(const[r,n]of Object.entries(t.functions))Xe.prototype[r]=Object.freeze({value:new m(n)});for(let r=0;r<t.signatures.length;r++)z(t.signatures[r],"sync")}function tt(e){console.log(e)}function rt(r,s){const i=new Set(Object.keys(s?.vars||{}).map(t=>e(t))),a=new Set(Object.keys(s?.customfunctions||{}).map(t=>e(t))),{globals:l,exports:c}=o(r),u=new Set(l.keys());return e=>{const o=e.spatialReference??Y.WebMercator;let s=null;r.usesModules&&(s=new n(new Map,r.loadedModules));const l=new Xe;for(const t of a)null!=e.customfunctions&&t in e.customfunctions?l[t]={value:new m(e.customfunctions[t])}:l[t]=te;for(const t of i){if(null==e.vars||!(t in e.vars)){t in l||(l[t]=te);continue}const r=e.vars[t]??null;$(r)?l[t]={value:w.createFromGraphic(r,e.timeZone??null)}:l[t]={value:r}}for(const t of u)t in l||(l[t]=te);const f=ke({lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??tt,abortSignal:t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:s,exports:c,localScope:null,globalScope:l},r);if(f instanceof v||f instanceof x){const e=f.value;if(S(e))return null;if(R(e))throw new h("IllegalResult",null);return e}if(S(f))return null;if(f===F)throw new h("IllegalResult",null);if(f===k)throw new h("IllegalResult",null);throw new h("NeverReach",null)}}function nt(e,t){return rt(e,t)(t)}et([D]);export{nt as executeScript,et as extend,rt as prepareScript};
|
|
2
|
+
import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as r}from"./ArcadeModule.js";import{ArcadeModuleLoader as n}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as s,flattenAccessChain as i}from"./compilerUtils.js";import{getNestedOptionalValue as a,getGeometryKeys as l,getGeometryMember as c,tryGetMember as u,getMember as f}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as h,ensureLocatableError as d}from"./executionError.js";import{Feature as w}from"./Feature.js";import{NativeFunction as m,ArcadeFunction as g,ScopeMarshalledFunction as b,wrapModuleScopedResponse as y}from"./FunctionWrapper.js";import{R as v,I as x,u as S,i as R,C as F,D as k,x as j,E as I,g as O,B as A,f as C,z as N,v as E,w as M,y as B,A as U,h as G}from"../chunks/languageUtils.js";import{addFunctionDeclaration as z}from"./treeAnalysis.js";import{A as D}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as _}from"./functions/feature.js";import{registerFunctions as Z}from"./functions/geometry.js";import{registerFunctions as q}from"./functions/geomsync.js";import{registerFunctions as W}from"./functions/maths.js";import{registerFunctions as P}from"./functions/stats.js";import{registerFunctions as V}from"./functions/string.js";import{registerFunctions as T}from"./functions/track.js";import K from"../core/Logger.js";import Y from"../geometry/SpatialReference.js";import{isGraphic as $}from"../support/graphicInstanceUtils.js";import{isBoolean as H,isArray as J,isString as Q,isNumber as X}from"../support/guards.js";const ee=()=>K.getLogger("esri.arcade.arcadeRuntime"),te=Symbol("uninitialized");function re(e){if(e===te)throw new h("InvalidIdentifier",null)}function ne(e){return re(e),e}function oe(t,r){const n=e(r);if(null!==t.localScope){const e=t.localScope[n];if(void 0!==e)return{scope:t.localScope,id:n,var:e}}const o=t.globalScope[n];if(void 0!==o)return{scope:t.globalScope,id:n,var:o};throw new h("InvalidIdentifier",r)}function se(t,r,n="InvalidIdentifier"){const o=e(r);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return re(e),e.value}const s=t.globalScope[o];if(void 0!==s)return re(s),s.value;throw new h(n,r)}const ie=function(){};ie.prototype=Object.freeze(Object.create(null));class ae extends g{constructor(e,t,r,n){super(),this.definition=e,this.context=t,this._params=r,this._locals=n}get debugName(){return null}createFunction(e){return(...t)=>{const r={spatialReference:this.context.spatialReference,console:this.context.console,services:this.context.services,timeZone:this.context.timeZone??null,lrucache:this.context.lrucache,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,abortSignal:this.context.abortSignal,localScope:new ie,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(r.depthCounter.depth>64)throw new h("MaximumCallDepth",null);return le(r,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return fe(e,t,(r,n,o)=>{const s={spatialReference:e.spatialReference,services:e.services,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,timeZone:e.timeZone??null,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:new ie,track:e.track};if(s.depthCounter.depth>64)throw new h("MaximumCallDepth",t);return le(s,this.definition.body,this._params,this._locals,o,t)})}marshalledCall(e,t,r,n){return n(e,t,(o,s,i)=>{const a={spatialReference:e.spatialReference,globalScope:r.globalScope,services:e.services,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,timeZone:e.timeZone??null,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:new ie,track:e.track};return i=i.map(t=>!R(t)||t instanceof b?t:y(t,e,n)),y(le(a,this.definition.body,this._params,this._locals,i,t),r,n)})}}function le(e,t,r,n,o,s){try{if(r.length!==o.length)throw new h("WrongNumberOfParameters",s);if(null!=e.localScope){for(let t=0;t<r.length;t++)e.localScope[r[t]]={value:o[t]};for(const t of n)e.localScope[t]=te}const i=he(e,t);if(i instanceof v)return i.value;if(i===F)throw new h("UnexpectedToken",s);if(i===k)throw new h("UnexpectedToken",s);return i instanceof x?i.value:i}catch(i){throw i}}class ce extends r{constructor(e){super(),this.moduleGlobalContext=e}global(t){const r=e(t);if(!this.moduleGlobalContext.exports.has(r))throw new h("ModuleExportNotFound",null);const n=this.moduleGlobalContext.globalScope[r];if(re(n),R(n.value)&&!(n.value instanceof b)){const e=new b;return e.fn=n.value,e.parameterEvaluator=fe,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[r]={value:e},e}return n.value}setGlobal(t,r){if(R(r))throw new h("AssignModuleFunction",null);const n=e(t);if(!this.moduleGlobalContext.exports.has(n))throw new h("ModuleExportNotFound",null);this.moduleGlobalContext.globalScope[n]={value:r}}hasGlobal(t){return this.moduleGlobalContext.exports.has(e(t))}static load(e,r){const{globals:s,exports:i}=o(r),a=new Xe;for(const t of s.keys())t in a||(a[t]=te);const l=e.spatialReference??Y.WebMercator,c={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??tt,abortSignal:t,timeZone:e.timeZone??null,spatialReference:l,track:e.track,depthCounter:{depth:1},libraryResolver:new n(e.libraryResolver._moduleSingletons,r.loadedModules),exports:i,localScope:null,globalScope:a};return ke(c,r),new ce(c)}}function ue(e,t){const r=[];for(let n=0;n<t.arguments.length;n++)r.push(pe(e,t.arguments[n]));return r}function fe(e,t,r){try{return!0===t.preparsed?r(e,null,t.arguments):r(e,t,ue(e,t))}catch(n){throw n}}function pe(e,t){try{switch(t.type){case"AssignmentExpression":return Se(e,t);case"UpdateExpression":return ve(e,t);case"TemplateLiteral":return qe(e,t);case"Identifier":return We(e,t);case"MemberExpression":return Ee(e,t);case"Literal":return t.value;case"CallExpression":return Pe(e,t);case"UnaryExpression":return ze(e,t);case"BinaryExpression":return Le(e,t);case"LogicalExpression":return _e(e,t);case"ArrayExpression":return De(e,t);case"ObjectExpression":return de(e,t);case"MemberAccessChainExpression":return Ge(e,t);case"SafeMemberExpression":throw ee().error("SafeMemberExpression outside of MemberAccessChainExpression"),new h("Unrecognized",t);default:throw new h("Unrecognized",t)}}catch(r){throw d(r,t)}}function he(e,t){switch(t.type){case"EmptyStatement":return j;case"VariableDeclaration":return Ce(e,t);case"ImportDeclaration":return Oe(e,t);case"ExportNamedDeclaration":return Ae(e,t);case"BlockStatement":return ke(e,t);case"FunctionDeclaration":return Ie(e,t);case"ReturnStatement":return je(e,t);case"IfStatement":return Fe(e,t);case"ExpressionStatement":return Re(e,t);case"BreakStatement":return F;case"ContinueStatement":return k;case"ForStatement":return ge(e,t);case"ForInStatement":return we(e,t);case"ForOfStatement":return me(e,t);case"WhileStatement":return be(e,t);default:throw new h("Unrecognized",t)}}function de(e,t){const r=Object.create(null),n=new Map;for(let s=0;s<t.properties.length;s++){const o=t.properties[s],i="Identifier"===o.key.type?o.key.name:pe(e,o.key),a=pe(e,o.value);if(R(a))throw new h("NoFunctionInDictionary",t);if(!1===Q(i))throw new h("KeyMustBeString",t);let l=i.toString();const c=l.toLowerCase();n.has(c)?l=n.get(c):n.set(c,l),r[l]=a===j?null:a}const o=new p(r);return o.immutable=!1,o}function we(e,t){const r=pe(e,t.right);"VariableDeclaration"===t.left.type&&Ce(e,t.left);const n=oe(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);if(J(r)||Q(r)){const o=r.length;for(let r=0;r<o;r++){n.scope[n.id]={value:r};const o=he(e,t.body);if(o===F)break;if(o instanceof v)return o}return j}if(O(r)){for(let o=0;o<r.length();o++){n.scope[n.id]={value:o};const r=he(e,t.body);if(r===F)break;if(r instanceof v)return r}return j}if(r instanceof p||A(r)){const o=r.keys();for(let r=0;r<o.length;r++){n.scope[n.id]={value:o[r]};const s=he(e,t.body);if(s===F)break;if(s instanceof v)return s}return j}if(C(r)){for(const o of l(r)){n.scope[n.id]={value:o};const r=he(e,t.body);if(r===F)break;if(r instanceof v)return r}return j}return j}function me(e,t){const r=pe(e,t.right);"VariableDeclaration"===t.left.type&&he(e,t.left);const n=oe(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);if(J(r)||Q(r)){const o=r.length;for(let s=0;s<o;s++){if(s>=r.length)throw new h("OutOfBounds",t);n.scope[n.id]={value:r[s]};const o=he(e,t.body);if(o===F)break;if(o instanceof v)return o}return j}if(O(r)){for(let o=0;o<r.length();o++){n.scope[n.id]={value:r.get(o)};const s=he(e,t.body);if(s===F)break;if(s instanceof v)return s}return j}if(r instanceof p||A(r)){for(const o of r.keys()){const s=r.field(o);n.scope[n.id]={value:p.containerEntry(o,s)};const i=he(e,t.body);if(i===F)break;if(i instanceof v)return i}return j}if(C(r)){for(const o of l(r)){const s=c(r,o,t);n.scope[n.id]={value:p.containerEntry(o,s)};const i=he(e,t.body);if(i===F)break;if(i instanceof v)return i}return j}return j}function ge(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?he(e,t.init):pe(e,t.init));const r={testResult:!0,lastAction:j};do{ye(e,t,r)}while(!0===r.testResult);return r.lastAction instanceof v?r.lastAction:j}function be(e,t){const r={testResult:!0,lastAction:j};if(r.testResult=pe(e,t.test),!1===r.testResult)return j;if(!0!==r.testResult)throw new h("BooleanConditionRequired",t);for(;!0===r.testResult&&(r.lastAction=he(e,t.body),r.lastAction!==F)&&!(r.lastAction instanceof v);)if(r.testResult=pe(e,t.test),!0!==r.testResult&&!1!==r.testResult)throw new h("BooleanConditionRequired",t);return r.lastAction instanceof v?r.lastAction:j}function ye(e,t,r){if(null!==t.test){if(r.testResult=pe(e,t.test),!1===r.testResult)return;if(!0!==r.testResult)throw new h("BooleanConditionRequired",t)}r.lastAction=he(e,t.body),r.lastAction!==F?r.lastAction instanceof v?r.testResult=!1:null!==t.update&&pe(e,t.update):r.testResult=!1}function ve(e,t){if("CallExpression"===t.argument.type)throw new h("NeverReach",t);let r;if("MemberExpression"===t.argument.type){const n=pe(e,t.argument.object);let o;if(!0===t.argument.computed)o=pe(e,t.argument.property);else{if("Identifier"!==t.argument.property.type)throw new h("Unrecognized",t);o=t.argument.property.name}if(J(n)){if(!X(o))throw new h("ArrayAccessMustBeNumber",t);if(o<0&&(o=n.length+o),o<0||o>=n.length)throw new h("OutOfBounds",t);r=E(n[o]),n[o]="++"===t.operator?r+1:r-1}else if(n instanceof p){if(!1===Q(o))throw new h("KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h("FieldNotFound",t,{key:o});r=E(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else if(G(n)){if(!1===Q(o))throw new h("KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h("FieldNotFound",t,{key:o});r=E(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else{if(O(n))throw new h("Immutable",t);if(!(n instanceof ce))throw new h("InvalidParameter",t);if(!1===Q(o))throw new h("ModuleAccessorMustBeString",t);if(!0!==n.hasGlobal(o))throw new h("ModuleExportNotFound",t);r=E(n.global(o)),n.setGlobal(o,"++"===t.operator?r+1:r-1)}return!1===t.prefix?r:"++"===t.operator?r+1:r-1}const n=oe(e,t.argument);r=E(ne(n.var).value);const o="++"===t.operator?r+1:r-1;return n.scope[n.id]={value:o},!1===t.prefix?r:"++"===t.operator?r+1:r-1}function xe(e,t,r,n){switch(t){case"=":return e===j?null:e;case"/=":return E(r)/E(e);case"*=":return E(r)*E(e);case"-=":return E(r)-E(e);case"+=":return Q(r)||Q(e)?M(r)+M(e):E(r)+E(e);case"%=":return E(r)%E(e);default:throw new h("UnsupportedOperator",n)}}function Se(e,t){if("MemberExpression"===t.left.type){const r=pe(e,t.left.object);let n;if(!0===t.left.computed)n=pe(e,t.left.property);else{if("Identifier"!==t.left.property.type)throw new h("InvalidIdentifier",t);n=t.left.property.name}const o=pe(e,t.right);if(J(r)){if(!X(n))throw new h("ArrayAccessMustBeNumber",t);if(n<0&&(n=r.length+n),n<0||n>r.length)throw new h("OutOfBounds",t);if(n===r.length){if("="!==t.operator)throw new h("OutOfBounds",t);r[n]=xe(o,t.operator,r[n],t)}else r[n]=xe(o,t.operator,r[n],t)}else if(r instanceof p){if(!1===Q(n))throw new h("KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t));else{if("="!==t.operator)throw new h("FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t))}}else if(G(r)){if(!1===Q(n))throw new h("KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t));else{if("="!==t.operator)throw new h("FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t))}}else{if(O(r))throw new h("Immutable",t);if(!(r instanceof ce))throw new h("InvalidIdentifier",t);if(!1===Q(n))throw new h("ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(n))throw new h("ModuleExportNotFound",t);r.setGlobal(n,xe(o,t.operator,r.global(n),t))}return j}const r=oe(e,t.left),n=pe(e,t.right);return r.scope[r.id]={value:xe(n,t.operator,"="!==t.operator?ne(r.var).value:null,t)},j}function Re(e,t){const r=pe(e,t.expression);return r===j?j:new x(r)}function Fe(e,t){const r=pe(e,t.test);if(!0===r)return he(e,t.consequent);if(!1===r)return null!==t.alternate?he(e,t.alternate):j;throw new h("BooleanConditionRequired",t)}function ke(e,t){let r=j;for(let n=0;n<t.body.length;n++)if(r=he(e,t.body[n]),r instanceof v||r===F||r===k)return r;return r}function je(e,t){if(null===t.argument)return new v(j);const r=pe(e,t.argument);return new v(r)}function Ie(t,r){if(null!=t.localScope)throw ee().error("Function declarations are only valid in global scope."),new h("NeverReach",r);const n=e(r.id);if(!(n in t.globalScope))throw ee().error(`Function "${n}" not declared.`),new h("NeverReach",r);const o=s(r),i=r.params.map(t=>e(t)),a=Array.from(o.keys()).filter(e=>!i.includes(e));return t.globalScope[n]={value:new ae(r,t,i,a)},j}function Oe(e,t){const r=oe(e,t.specifiers[0].local),n=e.libraryResolver;if(null==n)throw ee().error("Internal error: module loader not initialized"),new h("NeverReach",t);const o=n.loadLibrary(r.id);let s;return n._moduleSingletons?.has(o.uri)?s=n._moduleSingletons.get(o.uri):(s=ce.load(e,o.syntax),n._moduleSingletons?.set(o.uri,s)),r.scope[r.id]={value:s},j}function Ae(e,t){return he(e,t.declaration),j}function Ce(e,t){for(let r=0;r<t.declarations.length;r++)Ne(e,t.declarations[r]);return j}function Ne(e,t){let r=null===t.init?null:pe(e,t.init);if(r===j&&(r=null),"Identifier"!==t.id.type)throw new h("InvalidIdentifier",t);const n=oe(e,t.id);n.scope[n.id]={value:r}}function Ee(e,t){return Me(e,pe(e,t.object),t)}function Me(e,t,r){const n=r.computed?pe(e,r.property):r.property.name;return f(t,n)}function Be(e,t,r){for(const n of r)switch(n.type){case"MemberExpression":t=Me(e,t,n);break;case"CallExpression":t=Ve(e,t,n);break;default:throw new h("Unrecognized",n)}return t}function Ue(e,t,r){const n=r.computed?pe(e,r.property):r.property.name;return u(t,n)}function Ge(e,t){const r=i(t);let n=pe(e,r.root);for(const o of r.sections){const t=Ue(e,n,o.checked);if(null==t)return null;n=Be(e,t,o.unchecked)}return n}function ze(e,t){try{const r=pe(e,t.argument);if(H(r)){if("!"===t.operator)return!r;if("-"===t.operator)return-1*E(r);if("+"===t.operator)return 1*E(r);if("~"===t.operator)return~E(r);throw new h("UnsupportUnaryOperator",t)}if("~"===t.operator)return~E(r);if("-"===t.operator)return-1*E(r);if("+"===t.operator)return 1*E(r);throw new h("UnsupportUnaryOperator",t)}catch(r){throw r}}function De(e,t){try{const r=[];for(let n=0;n<t.elements.length;n++){const o=pe(e,t.elements[n]);if(R(o))throw new h("NoFunctionInArray",t);o===j?r.push(null):r.push(o)}return r}catch(r){throw r}}function Le(e,t){try{const r=pe(e,t.left),n=pe(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return U(E(r),E(n),t.operator);case"==":return N(r,n);case"!=":return!N(r,n);case"<":case">":case"<=":case">=":return B(r,n,t.operator);case"+":return Q(r)||Q(n)?M(r)+M(n):E(r)+E(n);case"-":return E(r)-E(n);case"*":return E(r)*E(n);case"/":return E(r)/E(n);case"%":return E(r)%E(n);default:throw t.operator,new h("UnsupportedOperator",t)}}catch(r){throw r}}function _e(e,t){try{const r=pe(e,t.left);if(H(r))switch(t.operator){case"||":{if(!0===r)return r;const n=pe(e,t.right);if(H(n))return n;throw new h("LogicExpressionOrAnd",t)}case"&&":{if(!1===r)return r;const n=pe(e,t.right);if(H(n))return n;throw new h("LogicExpressionOrAnd",t)}default:throw t.operator,new h("LogicExpressionOrAnd",t)}throw new h("LogicalExpressionOnlyBoolean",t)}catch(r){throw r}}function Ze(e,t){if(R(e))throw new h("NoFunctionInTemplateLiteral",t);return e}function qe(e,t){let r="",n=0;for(const o of t.quasis)if(r+=o.value?o.value.cooked:"",!1===o.tail){r+=t.expressions[n]?M(Ze(pe(e,t.expressions[n]),t)):"",n++}return r}function We(e,t){return se(e,t)}function Pe(e,t){return Ve(e,"Identifier"===t.callee.type?se(e,t.callee,"FunctionNotFound"):pe(e,t.callee),t)}function Ve(e,t,r){if(R(t))return t.call(e,r);throw new h("CallNonFunction",r)}function Te(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;I(null===r?[]:r,3,3,t);const n=pe(e,r[0]);if(!1===H(n))throw new h("BooleanConditionRequired",t);return pe(e,!0===n?r[1]:r[2])}catch(r){throw r}}function Ke(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;I(null===r?[]:r,2,3,t);const n=pe(e,r[0]);if(3===r.length){const t=pe(e,r[1]),o=a(n,t);return null!=o&&""!==o?o:pe(e,r[2])}return null===n||""===n||void 0===n?pe(e,r[1]):n}catch(r){throw r}}function Ye(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;if(r.length<2)throw new h("WrongNumberOfParameters",t);if(2===r.length)return pe(e,r[1]);{if((r.length-1)%2==0)throw new h("WrongNumberOfParameters",t);const n=pe(e,r[0]);return $e(e,t,1,n)}}catch(r){throw r}}function $e(e,t,r,n){try{const o=t.arguments,s=pe(e,o[r]);if(N(s,n))return pe(e,o[r+1]);{const s=o.length-r;return 1===s?pe(e,o[r]):2===s?null:3===s?pe(e,o[r+2]):$e(e,t,r+2,n)}}catch(o){throw o}}function He(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;if(r.length<3)throw new h("WrongNumberOfParameters",t);if(r.length%2==0)throw new h("WrongNumberOfParameters",t);const n=pe(e,r[0]);if(!1===H(n))throw new h("BooleanConditionRequired",r[0]);return Je(e,t,0,n)}catch(r){throw r}}function Je(e,t,r,n){try{const o=t.arguments;if(!0===n)return pe(e,o[r+1]);if(3===o.length-r)return pe(e,o[r+2]);{const n=pe(e,o[r+2]);if(!1===H(n))throw new h("BooleanConditionRequired",o[r+2]);return Je(e,t,r+2,n)}}catch(o){throw o}}function Qe(){const e=Object.create(null);L(e,fe),V(e,fe),_(e,fe,We),W(e,fe),Z(e,fe),P(e,fe),q(e,fe),T(e,fe),e.iif=Te,e.defaultvalue=Ke,e.decode=Ye,e.when=He;const t=function(){this.textformatting={value:p.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.nan=Object.freeze({value:Number.NaN}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[r,n]of Object.entries(e))t.prototype[r]=Object.freeze({value:new m(n)});return t}const Xe=Qe();function et(e){const t={mode:"sync",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:fe,evaluateIdentifier:We};for(let r=0;r<e.length;r++)e[r].registerFunctions(t);for(const[r,n]of Object.entries(t.functions))Xe.prototype[r]=Object.freeze({value:new m(n)});for(let r=0;r<t.signatures.length;r++)z(t.signatures[r],"sync")}function tt(e){console.log(e)}function rt(r,s){const i=new Set(Object.keys(s?.vars||{}).map(t=>e(t))),a=new Set(Object.keys(s?.customfunctions||{}).map(t=>e(t))),{globals:l,exports:c}=o(r),u=new Set(l.keys());return e=>{const o=e.spatialReference??Y.WebMercator;let s=null;r.usesModules&&(s=new n(new Map,r.loadedModules));const l=new Xe;for(const t of a)null!=e.customfunctions&&t in e.customfunctions?l[t]={value:new m(e.customfunctions[t])}:l[t]=te;for(const t of i){if(null==e.vars||!(t in e.vars)){t in l||(l[t]=te);continue}const r=e.vars[t]??null;$(r)?l[t]={value:w.createFromGraphic(r,e.timeZone??null)}:l[t]={value:r}}for(const t of u)t in l||(l[t]=te);const f=ke({lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??tt,abortSignal:t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:s,exports:c,localScope:null,globalScope:l},r);if(f instanceof v||f instanceof x){const e=f.value;if(S(e))return null;if(R(e))throw new h("IllegalResult",null);return e}if(S(f))return null;if(f===F)throw new h("IllegalResult",null);if(f===k)throw new h("IllegalResult",null);throw new h("NeverReach",null)}}function nt(e,t){return rt(e,t)(t)}et([D]);export{nt as executeScript,et as extend,rt as prepareScript};
|
package/arcade/containerUtils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"./Dictionary.js";import{ArcadeExecutionError as n}from"./executionError.js";import t from"./ImmutableArray.js";import r from"./ImmutablePathArray.js";import a from"./ImmutablePointArray.js";import{P as l,g as s,
|
|
2
|
+
import e from"./Dictionary.js";import{ArcadeExecutionError as n}from"./executionError.js";import t from"./ImmutableArray.js";import r from"./ImmutablePathArray.js";import a from"./ImmutablePointArray.js";import{P as l,g as s,B as c,f as i,p as u}from"../chunks/languageUtils.js";import o from"../core/Accessor.js";import{isArray as f,isString as h,isNumber as m}from"../support/guards.js";const p={point:["hasZ","hasM","spatialReference","type","x","y","z","m"],multipoint:["hasZ","hasM","spatialReference","type","points"],polyline:["hasZ","hasM","spatialReference","type","paths"],polygon:["hasZ","hasM","spatialReference","type","rings"],extent:["hasZ","hasM","spatialReference","type","xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]};function y(e){return p[e.type]}function w(e,t,r){const a=b(e,t);if(a===d)throw new n("InvalidMemberAccessKey",r);return a}const d=Symbol("keyNotFound");let g=0;function b(n,t){switch(t=t.toLowerCase()){case"hasz":return n.hasZ??!1;case"hasm":return n.hasM??!1;case"spatialreference":{let t=n.spatialReference._arcadeCacheId;null!=t||o.isFrozen(n.spatialReference)||(g++,n.spatialReference._arcadeCacheId=g,t=g);const r=new e({__proto__:null,wkt:n.spatialReference.wkt,wkid:n.spatialReference.wkid});return null!=t&&(r._arcadeCacheId="SPREF"+t.toString()),r}}switch(n.type){case"extent":switch(t){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":return n[t]??null;case"type":return"Extent"}break;case"polygon":switch(t){case"rings":{let e=n.cache._arcadeCacheId;return null==e&&(g++,e=g,n.cache._arcadeCacheId=e),new r(n.rings,n.spatialReference,!0===n.hasZ,!0===n.hasM,e)}case"type":return"Polygon"}break;case"point":switch(t){case"x":case"y":case"z":case"m":return n[t]??null;case"type":return"Point"}break;case"polyline":switch(t){case"paths":{let e=n.cache._arcadeCacheId;return null==e&&(g++,e=g,n.cache._arcadeCacheId=e),new r(n.paths,n.spatialReference,!0===n.hasZ,!0===n.hasM,e)}case"type":return"Polyline"}break;case"multipoint":switch(t){case"points":{let e=n.cache._arcadeCacheId;return null==e&&(g++,e=g,n.cache._arcadeCacheId=e),new a(n.points,n.spatialReference,!0===n.hasZ,!0===n.hasM,e,1)}case"type":return"Multipoint"}}return d}function I(e,n){let t,r=e;if(null==r)return null;if(f(n))t=n;else if(s(n))t=n.toArray();else{if(null==n)return null;t=[n]}for(const a of t)if(r=M(r,a),null==r)return null;return r}function x(e){return!!l(e)||(f(e)?0===e.length:s(e)?0===e.length():!!c(e)&&e.isEmpty())}function M(n,t){if(null==n)return null;if(n instanceof e||c(n))return h(t)&&n.hasField(t)?n.field(t):null;if(i(n)){if(!h(t))return null;const e=b(n,t);return e===d?null:e}return f(n)||h(n)?m(t)&&Number.isInteger(t)?(t<0&&(t=n.length+t),t>=n.length||t<0?null:n[t]):null:s(n)?m(t)&&Number.isInteger(t)?(t<0&&(t=n.length()+t),t>=n.length()||t<0?null:n.get(t)):null:u(n)&&h(t)&&n.hasGlobal(t)?n.global(t):null}function A(t,r){if(null==t)throw new n("MemberOfNull",null);if(t instanceof e||c(t)){if(h(r))return t.field(r);throw new n("InvalidMemberAccessKey",null)}if(i(t)){if(h(r))return w(t,r,null);throw new n("InvalidMemberAccessKey",null)}if(f(t)||h(t)){if(m(r)&&Number.isInteger(r)){if(r<0&&(r=t.length+r),r>=t.length||r<0)throw new n("OutOfBounds",null);return t[r]}throw new n("InvalidMemberAccessKey",null)}if(s(t)){if(m(r)&&Number.isInteger(r)){if(r<0&&(r=t.length()+r),r>=t.length()||r<0)throw new n("OutOfBounds",null);return t.get(r)}throw new n("InvalidMemberAccessKey",null)}if(u(t)){if(h(r))return t.global(r);throw new n("InvalidMemberAccessKey",null)}throw new n("InvalidMemberAccessKey",null)}function R(e){return j(e,!0)}function _(e){return j(e,!1)}function j(n,r){if(null==n)return null;if("string"==typeof n||"number"==typeof n||"boolean"==typeof n)return n;if(Array.isArray(n)){const e=n.map(e=>j(e,r));return r?t.from(e):e}if("object"==typeof n){const t=Object.create(null);for(const e of Object.entries(n))void 0!==e[1]&&(t[e[0]]=j(e[1],r));const a=new e(t);return a.immutable=r,a}throw new Error(`Unsupported json value: ${n}`)}export{R as convertJsonValueToImmutableArcadeValue,_ as convertJsonValueToMutableArcadeValue,y as getGeometryKeys,w as getGeometryMember,A as getMember,I as getNestedOptionalValue,x as isEmpty,M as tryGetMember};
|
package/arcade/debug.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{neverAbortedSignal as e}from"./arcadeEnvironment.js";import{getGeometryKeys as a,getGeometryMember as t,convertJsonValueToImmutableArcadeValue as n}from"./containerUtils.js";import{ArcadeExecutionError as r}from"./executionError.js";import{
|
|
2
|
+
import{neverAbortedSignal as e}from"./arcadeEnvironment.js";import{getGeometryKeys as a,getGeometryMember as t,convertJsonValueToImmutableArcadeValue as n}from"./containerUtils.js";import{ArcadeExecutionError as r}from"./executionError.js";import{u as i,e as c,r as o,q as p,i as u,g as l,l as s,n as m,m as y,f as d,h as f,F as T,G as g,k as v,j as h,o as w,p as F}from"../chunks/languageUtils.js";import{getLocale as b}from"../intl/locale.js";import{isNumber as j,isString as x,isBoolean as S,isArray as A}from"../support/guards.js";const Z=Object.freeze({type:"primitive",arcadeType:"",value:null}),k=Object.freeze({type:"minimal",arcadeType:"Unrecognized Type"}),q=Object.freeze({type:"minimal",arcadeType:"KnowledgeGraph"}),z=Object.freeze({type:"minimal",arcadeType:"Module"});function M(e){return{type:"simple",arcadeType:"Date",render:()=>e.toFormat(e.isUnknownTimeZone?"FF":"FF ZZZZZ",{locale:b()})}}function O(e){return{type:"simple",arcadeType:"Time",render:()=>e.toString()}}function D(e){return{type:"simple",arcadeType:"DateOnly",render:()=>e.toString()}}function N(e,a){return{type:"sequence-container",arcadeType:"Array",mutable:!0,length:e.length,expand:()=>e.map(e=>V(e,a))}}function U(e,a){return{type:"sequence-container",arcadeType:"Array",mutable:!1,length:e.length(),expand:()=>e.toArray().map(e=>V(e,a))}}function B(e,a,t){return{type:"associative-container",arcadeType:a,mutable:"Dictionary"===a?!e.immutable:void 0,expand(){const a=e.values().map(e=>V(e,t));return new Map(e.keys().map((e,t)=>[e,a[t]]))}}}function G(e,n){return{type:"associative-container",arcadeType:t(e,"type",null),expand(){const r=a(e);return new Map(r.map(a=>[a,V(t(e,a,null),n)]))}}}function E(e,a){return{type:"associative-container",arcadeType:"Feature",expand(){const t=e.keys(),n=new Map(t.map(t=>[t,V(e.field(t),a)])),r=e.geometry();return null!=r&&n.set("Geometry()",G(r,a)),n}}}function P(e,a,t){return{type:"associative-container",arcadeType:a,expand:()=>new Map(e.keys().map(a=>[a,V(e.field(a),t)]))}}function C(a,t){return{type:"feature-set",arcadeType:"FeatureSet",async schema(){await a.load();return V(n(a.schema()),t)},querySample:async n=>({fields:(await a.load()).fields.map(e=>e.name),features:(await a.iterator(n??e).nextBatchAsArcadeFeatures(100,t.defaultTimeZone)??[]).map(e=>E(e,t))})}}function I(e,a,t){let n;async function i(){if(null==n){const i=await e.featureSetById(t,!0,["*"]);if(null==i)throw new r("NeverReach",null);n=C(i,a)}return n}return{type:"feature-set",arcadeType:"FeatureSet",schema:async()=>(await i()).schema(),querySample:async e=>(await i()).querySample(e)}}function K(e,a){return{type:"feature-set-collection",arcadeType:"FeatureSetCollection",load:async()=>(await e.listAll()).map(({id:t,name:n})=>({id:t,name:n,featureSet:I(e,a,t)}))}}function R(e){return null!=e.debugName?`ƒ ${e.debugName}(...)`:"ƒ <anonymous>(...)"}function V(e,a){return null==e||i(e)?Z:j(e)?{type:"primitive",arcadeType:"Number",value:e}:x(e)?{type:"primitive",arcadeType:"String",value:e}:S(e)?{type:"primitive",arcadeType:"Boolean",value:e}:c(e)?M(e):o(e)?O(e):p(e)?D(e):u(e)?{type:"simple",arcadeType:"Function",render:(a.renderFunction??R).bind(null,e)}:A(e)?N(e,a):l(e)?U(e,a):s(e)?B(e,"Dictionary",a):m(e)?B(e,"Portal",a):y(e)?B(e,"Attachment",a):d(e)?G(e,a):f(e)?E(e,a):T(e)?P(e,"Pixel",a):g(e)?P(e,"Voxel",a):v(e)?C(e,a):h(e)?K(e,a):w(e)?q:F(e)?z:k}export{R as renderFunctionDebugName,V as wrapDebugValue};
|
package/arcade/deepClone.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{e as a,b as s,f as e,g as r,h as o,j as n,k as t,l,m as u,n as p,o as m,p as c,i}from"../chunks/languageUtils.js";import{isArray as f}from"../support/guards.js";function g(a){d=a}let d;function j(g){return null==g?null:a(g)?g.clone():s(g)?g:e(g)?g.clone():r(g)?g.toArray().map(a=>j(a)):f(g)?g.map(a=>j(a)):o(g)?d.createFromArcadeFeature(g):n(g)||t(g)?g:l(g)||u(g)?g.deepClone():(p(g)||m(g)||c(g)||i(g),g)}export{g as configureDeepClone,j as deepClone};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{id as e}from"../../../kernel.js";import t from"../../../request.js";import{neverAbortedSignal as r}from"../../arcadeEnvironment.js";import a from"../../Attachment.js";import{convertJsonValueToImmutableArcadeValue as i}from"../../containerUtils.js";import{throwIfCancelled as s,FeatureSetError as l}from"../support/errorsupport.js";import{RootFeatureSet as n,emptyFeaturesResult as o,getSpatialFilterRelationRestQueryParams as u,assignSpatialReferenceOnFeatures as c}from"../support/FeatureSet.js";import{defaultMaxRecords as d,stableStringify as h,extractServiceUrl as y}from"../support/shared.js";import{toWhereClause as p,isSingleField as _}from"../support/sqlUtils.js";import{decodeStatType as f}from"../support/stats.js";import{splitIntoChunks as m,sliceEquals as F}from"../../../core/arrayUtils.js";import{createMD5Hash as w,outputTypes as g}from"../../../core/MD5.js";import{sqlAnd as b}from"../../../core/sql.js";import S from"../../../core/sql/WhereClause.js";import I from"../../../layers/FeatureLayer.js";import{toQueryStringParameters as R}from"../../../rest/query/operations/queryRelatedRecords.js";import q from"../../../rest/support/AttachmentQuery.js";import T from"../../../rest/support/Query.js";import Q from"../../../rest/support/StatisticDefinition.js";function x(e){if(0===e.length)throw new l("NeverReach");const t=[];for(let a=0;a<e.length;a++){const r=e[a],i=[`"${r.name.replaceAll('"','""')}" ${r.asc?">":"<"} @last_${a}`];for(let t=0;t<a;t++){const r=e[t];i.push(`"${r.name.replaceAll('"','""')}" = @last_${t}`)}t.push(i.join(" AND "))}const r=t.join(" OR ");return S.create(r)}function j(e,t){null==e.clause&&(e.clause=x(e.keyFields));for(let r=0;r<e.keyFields.length;r++){const a=e.keyFields[r].name;e.clause.parameters[`last_${r}`]=t.attributes[a]}}class v extends n{constructor(e){super(),this.declaredClass="esri.arcade.featureset.sources.FeatureLayerDynamic",this._removeGeometry=!1,this._overrideFields=null,this._requestStandardised=!1,this._useDefinitionExpression=!0,this._recentlyUsedQueries=null,this._featureSetQueryInterceptor=null,this._featureSetInfo=null,this._maxProcessing=1e3,this._layer=e.layer,e.spatialReference&&(this.spatialReference=e.spatialReference),void 0!==e.outFields&&(this._overrideFields=e.outFields),void 0!==e.includeGeometry&&(this._removeGeometry=!1===e.includeGeometry),e.lrucache&&(this._recentlyUsedQueries=e.lrucache),e.interceptor&&(this._featureSetQueryInterceptor=e.interceptor)}_maxQueryRate(){return d}get urlQueryPath(){return this._layer.parsedUrl.path||""}convertQueryToLruCacheKey(e){const t=this.urlQueryPath+","+h(e.toJSON());return w(t,g.String)}async loadImpl(){return!0===this._layer.loaded?(this._initialiseFeatureSet(),this):(await this._layer.load(),this._initialiseFeatureSet(),this)}_initialiseFeatureSet(){if(this.spatialReference??=this._layer.spatialReference,this.geometryType=this._layer.geometryType??"",this.fields=this._layer.fields.slice(),this.hasZ=!0===this._layer.capabilities?.data?.supportsZ,this.hasM=!0===this._layer.capabilities?.data?.supportsM,null!==this._overrideFields)if(1===this._overrideFields.length&&"*"===this._overrideFields[0])this._overrideFields=null;else{const e=new Set(this._overrideFields.map(e=>e.toLowerCase()));this.fields=this.fields.filter(({type:t,name:r})=>"oid"===t||e.has(r.toLowerCase())),this._overrideFields=this.fields.map(({name:e})=>e)}if(this._layer.source&&this._layer.source.sourceJSON){const e=this._layer.source.sourceJSON.currentVersion;!0===this._layer.source.sourceJSON.useStandardizedQueries?(this._databaseType=1,null!=e&&e>=10.61&&(this._databaseType=0)):null!=e&&(e>=10.5&&(this._databaseType=1,this._requestStandardised=!0),e>=10.61&&(this._databaseType=0))}this.objectIdField=this._layer.objectIdField;for(const e of this.fields)"global-id"===e.type&&(this.globalIdField=e.name);this.subtypeField=this._layer.subtypeField??"",this.subtypes=this._layer.subtypes,this.typeIdField=("typeIdField"in this._layer?this._layer.typeIdField:null)??"",this.types="types"in this._layer?this._layer.types:null}async _runDatabaseProbe(e){await this._ensureLoaded();const t=new T;this.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t.where=e.replace("OBJECTID",this._layer.objectIdField);try{return await this._layer.queryObjectIds(t),!0}catch{return!1}}_canUsePagination(){return!(!this._layer.capabilities||!this._layer.capabilities.query||!0!==this._layer.capabilities.query.supportsPagination)}_cacheableFeatureSetSourceKey(){return this._layer.url}get gdbVersion(){return this._layer&&this._layer.capabilities&&this._layer.capabilities.data&&this._layer.capabilities.data.isVersioned?this._layer.gdbVersion||"SDE.DEFAULT":""}nativeCapabilities(){return{title:this._layer.title??"",source:this,canQueryRelated:!0,capabilities:this._layer.capabilities,databaseType:this._databaseType,requestStandardised:this._requestStandardised}}async _queryAll(){return(await this.query({abortSignal:r})).features}async query(e){return await this._ensureLoaded(),this.isTable()&&null!=e.spatialFilter?o:this._canUsePagination()?this._queryUsingPaging(e):this._queryUsingIdSetTraversal(e)}async _queryUsingPaging(e){const t=this._layer.capabilities.query;let r=!0,a=null,i=!1;null!=e.orderBy&&(t.supportsOrderBy?(a=e.orderBy.toOrderByFields(),i=!0):r=!1);const s=await this.databaseType(),l=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,s),n=!0!==this._removeGeometry,o=this._overrideFields??this._fieldsIncludingObjectId(["*"]),c=o.includes("*")?this._layer.fields.length:o.length,d=(this.isTable()||!n?t.standardMaxRecordCountNoGeometry:void 0)??t.standardMaxRecordCount??t.maxRecordCount??this._maxQueryRate(),h=c<=50?1:c<=100?.5:c<=200?.25:.125,y=Math.max(Math.ceil(d*h),t.maxRecordCount??this._maxQueryRate());let _=this._maxQueryRate();const f=this._layer.capabilities?.query.maxRecordCount;null!=f&&f<_&&(_=f);const m=this._createQuery();if(m.where=b(m.where,l),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);m.spatialRelationship=t.spatialRelationship,m.relationParameter=t.relationParameter,m.geometry=e.spatialFilter.geometry}return m.orderByFields=a,m.outFields=o,m.returnGeometry=n,m.outSpatialReference=this.spatialReference,m.resultType="standard",{ordered:i,filterApplied:!0,spatialFilterApplied:!0,features:this._queryPaginated(m,y,_,r?e.limit:null,e.abortSignal)}}async*_queryPaginated(e,t,r,a,i){let l;e.num=Math.max(null!=a?Math.min(a,t):t,r),e.start=0;do{if(s(i),l=await this.executeQuery(e,"execute"),l.features.length<=0)break;yield*m(l.features,this._maxQueryRate()),e.start+=l.features.length;const n=null!=a?Math.min(a-e.start,t):t;if(n<=0)break;e.num=Math.max(n,r)}while(e.num>0&&!0===l.exceededTransferLimit)}async _queryUsingIdSetTraversal(e){let t=!0,r=null,a=!1;null!=e.orderBy&&(this._layer.capabilities?.query?.supportsOrderBy?(r=e.orderBy.toOrderByFields(),a=!0):t=!1);const i=await this.databaseType(),l=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,i),n=this._createQuery();if(n.where=b(n.where,l),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);n.spatialRelationship=t.spatialRelationship,n.relationParameter=t.relationParameter,n.geometry=e.spatialFilter.geometry}n.orderByFields=r,n.outSpatialReference=this.spatialReference,n.num=t?e.limit:null;const c=await this.executeQuery(n,"executeForIds");if(s(e.abortSignal),null==c||c.length<=0)return o;let d=this._maxQueryRate();const h=this._layer.capabilities?.query.maxRecordCount;null!=h&&h<d&&(d=h);const y=this._createQuery();return n.outFields=this._overrideFields??this._fieldsIncludingObjectId(["*"]),n.returnGeometry=!0!==this._removeGeometry,n.outSpatialReference=this.spatialReference,{ordered:a,filterApplied:!0,spatialFilterApplied:!0,features:this._traverseIdSet(y,c,d,e.abortSignal)}}async*_traverseIdSet(e,t,r,a){for(let i=0;i<t.length;i+=r){e.objectIds=t.slice(i,i+r),s(a);const l=await this.executeQuery(e,"execute");yield l.features}}async queryStat(e){await this._ensureLoaded();const t=this._layer.capabilities?.query,r=!!t?.supportsSqlExpression,a=!!t?.supportsStatistics,i=!!t?.supportsDistinct,s=f(e.stat);if("count"===s)return i?this._queryCount(e):{calculated:!1};const n=e.field;if(null==n)return{calculated:!1};if(!1===a||!1===_(n)&&!1===r||!1===n.isStandardized)return null!=e.spatialFilter||null!=e.where?{calculated:!1}:this._manualStat(e.stat,n,e.limit??d,e.abortSignal);if("distinct"===s)return!1===i?null!=e.spatialFilter||null!=e.where?{calculated:!1}:this._manualStat(s,n,e.limit??d,e.abortSignal):{calculated:!1};const o=await this.databaseType();if(this.isTable()&&null!=e.spatialFilter)return{calculated:!0,result:null};const c=this._createQuery();if(c.where=b(c.where,null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,o)),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);c.spatialRelationship=t.spatialRelationship,c.relationParameter=t.relationParameter,c.geometry=e.spatialFilter.geometry}const h=new Q;h.statisticType=s,h.onStatisticField=p(n,o),h.outStatisticFieldName="ARCADE_STAT_RESULT",c.returnGeometry=!1;let y="ARCADE_STAT_RESULT";c.outStatistics=[h];const m=await this.executeQuery(c,"execute");if(!m.hasOwnProperty("features")||0===m.features.length)throw new l("InvalidStatResponse");let F=!1;const w=m.fields??[];for(const l of w)if("ARCADE_STAT_RESULT"===l.name.toUpperCase()){y=l.name,"esriFieldTypeDate"===l.type&&(F=!0);break}const g=m.features[0].attributes[y];return{calculated:!0,result:F&&null!=g?new Date(g):g}}async _queryCount(e){const t=await this.databaseType();if(this.isTable()&&null!=e.spatialFilter)return{calculated:!0,result:0};const r=this._createQuery();if(r.where=b(r.where,null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,t)),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);r.spatialRelationship=t.spatialRelationship,r.relationParameter=t.relationParameter,r.geometry=e.spatialFilter.geometry}r.returnGeometry=!1;return{calculated:!0,result:await this.executeQuery(r,"executeForCount")}}async canQueryAggregate(e){await this._ensureLoaded();let t=!1;const r=this._layer.capabilities?.query,a=!0===r?.supportsSqlExpression;if(null!=r&&!0===r.supportsStatistics&&!0===r.supportsOrderBy&&(t=!0),t)for(const i of e.statistics)(!1===i.workingexpr?.isStandardized||!1===_(i.workingexpr)&&!1===a)&&(t=!1);return t}async queryAggregate(e){if(await this._ensureLoaded(),this.isTable()&&null!=e.spatialFilter)return o;const t=await this.databaseType(),r=e.groupBy,a=e.orderBy;let i=null;if(!this._layer.capabilities.query.supportsPaginationOnAggregatedQueries){const e=this.getFieldsIndex();i={keyFields:r.map((t,r)=>({name:e.normalizeFieldName(t)??t,asc:null==a||1===a._directions[r]}))}}let s=null,l=!1;null!=a&&!0===this._layer.capabilities?.query?.supportsOrderBy&&(null==i||F(r,0,r.length,a._fields,0,Math.min(a._fields.length,r.length),(e,t)=>e.toLowerCase()===t.toLowerCase()))&&(s=a.toOrderByFields(),l=!0),null==s&&(s=r.slice());const n=e.statistics.map(e=>new Q({onStatisticField:null!==e.workingexpr?p(e.workingexpr,t):"",outStatisticFieldName:e.field,statisticType:e.toStatisticsName()}));let c=this._maxQueryRate();const d=this._layer.capabilities?.query.maxRecordCount;null!=d&&d<c&&(c=d);const h=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,t),y=this._createQuery();if(y.where=b(y.where,h),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);y.spatialRelationship=t.spatialRelationship,y.relationParameter=t.relationParameter,y.geometry=e.spatialFilter.geometry}return y.orderByFields=s,y.outFields=["*"],y.outStatistics=n,y.groupByFieldsForStatistics=r,y.returnGeometry=!1,null==i?{filterApplied:!0,spatialFilterApplied:!0,ordered:l,features:this._queryPaginated(y,c,c,null,e.abortSignal)}:{filterApplied:!0,spatialFilterApplied:!0,ordered:l,features:this._queryKeysetPaginated(y,i,e.abortSignal)}}async*_queryKeysetPaginated(e,t,r){const a=e.where;for(;;){if(null!=t.clause){if(!this._layer.capabilities.query.supportsOrderBy)throw new l("NotImplemented");e.where=b(a,p(t.clause,await this.databaseType()))}const i=await this.executeQuery(e,"execute");if(s(r),!i.hasOwnProperty("features"))throw new l("InvalidStatResponse");if(yield i.features,0===i.features.length||!0!==i.exceededTransferLimit)break;j(t,i.features.at(-1))}}_createQuery(){const e=this._layer.createQuery();return e.returnZ=this.hasZ,e.returnM=this.hasM,this.datesInUnknownTimezone&&(e.timeReferenceUnknownClient=!0),this._requestStandardised&&(e.sqlFormat="standard"),this._useDefinitionExpression?"subtype-group"===this._layer.type&&(e.where=this._layer.definitionExpression):e.where=null,e}executeQuery(e,t){const r="execute"===t?async e=>{const t=await this._layer.source.queryFeaturesJSON(e);return c(t.features,t.spatialReference??this.spatialReference.toJSON()),t}:"executeForCount"===t?this._layer.queryFeatureCount.bind(this._layer):this._layer.queryObjectIds.bind(this._layer);let a=null;if(this._recentlyUsedQueries){const t=this.convertQueryToLruCacheKey(e);a=this._recentlyUsedQueries.getFromCache(t),null===a&&(a=r(e),this._recentlyUsedQueries.addToCache(t,a),a=a.catch(e=>{throw this._recentlyUsedQueries?.removeFromCache(t),e}))}return this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:e,method:t}),null===a&&(a=r(e)),a}_fieldsIncludingObjectId(e){if(null===e)return[this.objectIdField];const t=e.slice();if(t.includes("*"))return t;let r=!1;for(const a of t)if(a.toUpperCase()===this.objectIdField.toUpperCase()){r=!0;break}return r||t.push(this.objectIdField),t}isTable(){return this._layer.isTable||null===this._layer.geometryType||"table"===this._layer.type||""===this._layer.geometryType||"esriGeometryNull"===this._layer.geometryType}static create(e,t,r,a,i){const s=new I({url:e,outFields:null===t?["*"]:t});return new v({layer:s,spatialReference:r,lrucache:a,interceptor:i})}relationshipMetadata(){return this._layer&&this._layer.source&&this._layer.source.sourceJSON?.relationships?this._layer.source.sourceJSON.relationships:[]}serviceUrl(){return y(this._layer.parsedUrl.path)}async queryAttachments(e,t,r,s,l){function n(e){const t=e.capabilities;return t?.data.supportsAttachment&&t?.operations.supportsQueryAttachments}const o=this._layer;if(!n(o))return[];const u=new q({objectIds:[e],returnMetadata:l});(t&&t>0||r&&r>0)&&(u.size=[t&&t>0?t:0,r&&r>0?r:t+1]),s&&s.length>0&&(u.attachmentTypes=s),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:o,query:u,method:"attachments"});const c=await o.queryAttachments(u);return c?.[e]?c[e].map(t=>{const r=`${this._layer.parsedUrl.path}/${e}/attachments/${t.id}`;let s=null;return l&&t.exifInfo&&(s=i(t.exifInfo)),new a(t.id,t.name,t.contentType,t.size,r,s,t.keywords??null)}):[]}async queryRelatedFeatures(e){const r=R(e);r.f="json",this._requestStandardised&&(r.sqlFormat="standard"),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preRequestCallback({layer:this._layer,queryPayload:r,method:"relatedrecords",url:this._layer.parsedUrl.path+"/queryRelatedRecords"});const a=await t(this._layer.parsedUrl.path+"/queryRelatedRecords",{responseType:"json",query:r});if(a.data){const e={},t=a.data;if(t?.relatedRecordGroups){const r=t.spatialReference,a=!0===t.exceededTransferLimit;for(const i of t.relatedRecordGroups)c(i.relatedRecords,r),e[i.objectId]={features:i.relatedRecords,exceededTransferLimit:a}}return e}throw new l("InvalidRequest")}async getFeatureByObjectId(e,t){const r=this._createQuery();r.outFields=t,r.returnGeometry=!1,r.outSpatialReference=this.spatialReference,r.where=b(r.where,this.objectIdField+"="+e.toString()),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:r,method:"execute"});const a=await this._layer.source.queryFeaturesJSON(r);return 1===a.features.length?(c(a.features,a.spatialReference??this.spatialReference.toJSON()),a.features[0]):null}async getIdentityUser(){await this.load();const t=e?.findCredential(this._layer.url);return t?t.userId:null}async getOwningSystemUrl(){await this.load();const r=e?.findServerInfo(this._layer.url);if(r)return r.owningSystemUrl??"";let a=this._layer.url;const i=a.toLowerCase().indexOf("/rest/services");if(a=i>-1?a.slice(0,i):a,a){a+="/rest/info";try{const e=await t(a,{query:{f:"json"}});let r="";return e.data?.owningSystemUrl&&(r=e.data.owningSystemUrl),r}catch{return""}}return""}getDataSourceFeatureSet(){const e=new v({layer:this._layer,spatialReference:this.spatialReference??void 0,outFields:this._overrideFields??void 0,includeGeometry:!this._removeGeometry,lrucache:this._recentlyUsedQueries??void 0,interceptor:this._featureSetQueryInterceptor??void 0});return e._useDefinitionExpression=!1,e}get preferredTimeZone(){return this._layer.preferredTimeZone??null}get dateFieldsTimeZone(){return this._layer.dateFieldsTimeZone??null}get datesInUnknownTimezone(){return this._layer.datesInUnknownTimezone??!1}get editFieldsInfo(){return this._layer.editFieldsInfo??null}get timeInfo(){return this._layer.timeInfo??null}async getFeatureSetInfo(){if(this._featureSetInfo)return this._featureSetInfo;let e=null,r="serviceItemId"in this._layer?this._layer.serviceItemId:null;const a=this._layer.parsedUrl?.path??null;if(a){const i=await t(a,{responseType:"json",query:{f:"json"}});e=i?.data?.name??null,r=i?.data?.serviceItemId??null}const i=this._layer.title&&null!==(this._layer.parent??null);return this._featureSetInfo={layerId:this._layer.layerId,layerName:""===e?null:e,itemId:""===r?null:r,serviceLayerUrl:""===a?null:a,webMapLayerId:i?this._layer.id??null:null,webMapLayerTitle:i?this._layer.title??null:null,className:null,objectClassId:null},this._featureSetInfo}}export{v as default};
|
|
2
|
+
import{id as e}from"../../../kernel.js";import t from"../../../request.js";import{neverAbortedSignal as r}from"../../arcadeEnvironment.js";import a from"../../Attachment.js";import{convertJsonValueToImmutableArcadeValue as i}from"../../containerUtils.js";import{throwIfCancelled as s,FeatureSetError as l}from"../support/errorsupport.js";import{RootFeatureSet as n,emptyFeaturesResult as o,getSpatialFilterRelationRestQueryParams as u,assignSpatialReferenceOnFeatures as c}from"../support/FeatureSet.js";import{defaultMaxRecords as d,stableStringify as h,extractServiceUrl as y}from"../support/shared.js";import{toWhereClause as p,isSingleField as _}from"../support/sqlUtils.js";import{decodeStatType as f}from"../support/stats.js";import{splitIntoChunks as m,sliceEquals as F}from"../../../core/arrayUtils.js";import{createMD5Hash as w,outputTypes as g}from"../../../core/MD5.js";import{sqlAnd as S}from"../../../core/sql.js";import b from"../../../core/sql/WhereClause.js";import I from"../../../layers/FeatureLayer.js";import{toQueryStringParameters as R}from"../../../rest/query/operations/queryRelatedRecords.js";import q from"../../../rest/support/AttachmentQuery.js";import T from"../../../rest/support/Query.js";import Q from"../../../rest/support/StatisticDefinition.js";function x(e){if(0===e.length)throw new l("NeverReach");const t=[];for(let a=0;a<e.length;a++){const r=e[a],i=[`"${r.name.replaceAll('"','""')}" ${r.asc?">":"<"} @last_${a}`];for(let t=0;t<a;t++){const r=e[t];i.push(`"${r.name.replaceAll('"','""')}" = @last_${t}`)}t.push(i.join(" AND "))}const r=t.join(" OR ");return b.create(r)}function j(e,t){null==e.clause&&(e.clause=x(e.keyFields));for(let r=0;r<e.keyFields.length;r++){const a=e.keyFields[r].name;e.clause.parameters[`last_${r}`]=t.attributes[a]}}class v extends n{constructor(e){super(),this.declaredClass="esri.arcade.featureset.sources.FeatureLayerDynamic",this._removeGeometry=!1,this._overrideFields=null,this._requestStandardised=!1,this._useDefinitionExpression=!0,this._recentlyUsedQueries=null,this._featureSetQueryInterceptor=null,this._featureSetInfo=null,this._maxProcessing=1e3,this._layer=e.layer,e.spatialReference&&(this.spatialReference=e.spatialReference),void 0!==e.outFields&&(this._overrideFields=e.outFields),void 0!==e.includeGeometry&&(this._removeGeometry=!1===e.includeGeometry),e.lrucache&&(this._recentlyUsedQueries=e.lrucache),e.interceptor&&(this._featureSetQueryInterceptor=e.interceptor)}_maxQueryRate(){return d}get urlQueryPath(){return this._layer.parsedUrl.path||""}convertQueryToLruCacheKey(e){const t=this.urlQueryPath+","+h(e.toJSON());return w(t,g.String)}async loadImpl(){return!0===this._layer.loaded?(this._initialiseFeatureSet(),this):(await this._layer.load(),this._initialiseFeatureSet(),this)}_initialiseFeatureSet(){if(this.spatialReference??=this._layer.spatialReference,this.geometryType=this._layer.geometryType??"",this.fields=this._layer.fields.slice(),this.hasZ=!0===this._layer.capabilities?.data?.supportsZ,this.hasM=!0===this._layer.capabilities?.data?.supportsM,null!==this._overrideFields)if(1===this._overrideFields.length&&"*"===this._overrideFields[0])this._overrideFields=null;else{const e=new Set(this._overrideFields.map(e=>e.toLowerCase()));this.fields=this.fields.filter(({type:t,name:r})=>"oid"===t||e.has(r.toLowerCase())),this._overrideFields=this.fields.map(({name:e})=>e)}if(this._layer.source&&this._layer.source.sourceJSON){const e=this._layer.source.sourceJSON.currentVersion;!0===this._layer.source.sourceJSON.useStandardizedQueries?(this._databaseType=1,null!=e&&e>=10.61&&(this._databaseType=0)):null!=e&&(e>=10.5&&(this._databaseType=1,this._requestStandardised=!0),e>=10.61&&(this._databaseType=0))}this.objectIdField=this._layer.objectIdField;for(const e of this.fields)"global-id"===e.type&&(this.globalIdField=e.name);this.subtypeField=this._layer.subtypeField??"",this.subtypes=this._layer.subtypes,this.typeIdField=("typeIdField"in this._layer?this._layer.typeIdField:null)??"",this.types="types"in this._layer?this._layer.types:null}async _runDatabaseProbe(e){await this._ensureLoaded();const t=new T;this.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t.where=e.replace("OBJECTID",this._layer.objectIdField);try{return await this._layer.queryObjectIds(t),!0}catch{return!1}}_canUsePagination(){return!(!this._layer.capabilities||!this._layer.capabilities.query||!0!==this._layer.capabilities.query.supportsPagination)}_cacheableFeatureSetSourceKey(){return this._layer.url}get gdbVersion(){return this._layer&&this._layer.capabilities&&this._layer.capabilities.data&&this._layer.capabilities.data.isVersioned?this._layer.gdbVersion||"SDE.DEFAULT":""}nativeCapabilities(){return{title:this._layer.title??"",source:this,canQueryRelated:!0,capabilities:this._layer.capabilities,databaseType:this._databaseType,requestStandardised:this._requestStandardised}}async _queryAll(){return(await this.query({abortSignal:r})).features}async query(e){return await this._ensureLoaded(),this.isTable()&&null!=e.spatialFilter?o:this._canUsePagination()?this._queryUsingPaging(e):this._queryUsingIdSetTraversal(e)}async _queryUsingPaging(e){const t=this._layer.capabilities.query;let r=!0,a=null,i=!1;null!=e.orderBy&&(t.supportsOrderBy?(a=e.orderBy.toOrderByFields(),i=!0):r=!1);const s=await this.databaseType(),l=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,s),n=!0!==this._removeGeometry,o=this._overrideFields??this._fieldsIncludingObjectId(["*"]),c=o.includes("*")?this._layer.fields.length:o.length,d=(this.isTable()||!n?t.standardMaxRecordCountNoGeometry:void 0)??t.standardMaxRecordCount??t.maxRecordCount??this._maxQueryRate(),h=c<=50?1:c<=100?.5:c<=200?.25:.125,y=Math.max(Math.ceil(d*h),t.maxRecordCount??this._maxQueryRate());let _=this._maxQueryRate();const f=this._layer.capabilities?.query.maxRecordCount;null!=f&&f<_&&(_=f);const m=this._createQuery();if(m.where=S(m.where,l),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);m.spatialRelationship=t.spatialRelationship,m.relationParameter=t.relationParameter,m.geometry=e.spatialFilter.geometry}return m.orderByFields=a,m.outFields=o,m.returnGeometry=n,m.outSpatialReference=this.spatialReference,m.resultType="standard",{ordered:i,filterApplied:!0,spatialFilterApplied:!0,features:this._queryPaginated(m,y,_,r?e.limit:null,e.abortSignal)}}async*_queryPaginated(e,t,r,a,i){e.start=0;let l,n=null!=a?a:1/0;do{s(i),e.num=Math.max(r,Math.min(n,t)),l=await this.executeQuery(e,"execute"),e.start+=e.num,n-=l.features.length,yield*m(l.features,this._maxQueryRate())}while(n>0&&!0===l.exceededTransferLimit)}async _queryUsingIdSetTraversal(e){let t=!0,r=null,a=!1;null!=e.orderBy&&(this._layer.capabilities?.query?.supportsOrderBy?(r=e.orderBy.toOrderByFields(),a=!0):t=!1);const i=await this.databaseType(),l=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,i),n=this._createQuery();if(n.where=S(n.where,l),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);n.spatialRelationship=t.spatialRelationship,n.relationParameter=t.relationParameter,n.geometry=e.spatialFilter.geometry}n.orderByFields=r,n.outSpatialReference=this.spatialReference,n.num=t?e.limit:null;const c=await this.executeQuery(n,"executeForIds");if(s(e.abortSignal),null==c||c.length<=0)return o;let d=this._maxQueryRate();const h=this._layer.capabilities?.query.maxRecordCount;null!=h&&h<d&&(d=h);const y=this._createQuery();return n.outFields=this._overrideFields??this._fieldsIncludingObjectId(["*"]),n.returnGeometry=!0!==this._removeGeometry,n.outSpatialReference=this.spatialReference,{ordered:a,filterApplied:!0,spatialFilterApplied:!0,features:this._traverseIdSet(y,c,d,e.abortSignal)}}async*_traverseIdSet(e,t,r,a){for(let i=0;i<t.length;i+=r){e.objectIds=t.slice(i,i+r),s(a);const l=await this.executeQuery(e,"execute");yield l.features}}async queryStat(e){await this._ensureLoaded();const t=this._layer.capabilities?.query,r=!!t?.supportsSqlExpression,a=!!t?.supportsStatistics,i=!!t?.supportsDistinct,s=f(e.stat);if("count"===s)return i?this._queryCount(e):{calculated:!1};const n=e.field;if(null==n)return{calculated:!1};if(!1===a||!1===_(n)&&!1===r||!1===n.isStandardized)return null!=e.spatialFilter||null!=e.where?{calculated:!1}:this._manualStat(e.stat,n,e.limit??d,e.abortSignal);if("distinct"===s)return!1===i?null!=e.spatialFilter||null!=e.where?{calculated:!1}:this._manualStat(s,n,e.limit??d,e.abortSignal):{calculated:!1};const o=await this.databaseType();if(this.isTable()&&null!=e.spatialFilter)return{calculated:!0,result:null};const c=this._createQuery();if(c.where=S(c.where,null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,o)),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);c.spatialRelationship=t.spatialRelationship,c.relationParameter=t.relationParameter,c.geometry=e.spatialFilter.geometry}const h=new Q;h.statisticType=s,h.onStatisticField=p(n,o),h.outStatisticFieldName="ARCADE_STAT_RESULT",c.returnGeometry=!1;let y="ARCADE_STAT_RESULT";c.outStatistics=[h];const m=await this.executeQuery(c,"execute");if(!m.hasOwnProperty("features")||0===m.features.length)throw new l("InvalidStatResponse");let F=!1;const w=m.fields??[];for(const l of w)if("ARCADE_STAT_RESULT"===l.name.toUpperCase()){y=l.name,"esriFieldTypeDate"===l.type&&(F=!0);break}const g=m.features[0].attributes[y];return{calculated:!0,result:F&&null!=g?new Date(g):g}}async _queryCount(e){const t=await this.databaseType();if(this.isTable()&&null!=e.spatialFilter)return{calculated:!0,result:0};const r=this._createQuery();if(r.where=S(r.where,null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,t)),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);r.spatialRelationship=t.spatialRelationship,r.relationParameter=t.relationParameter,r.geometry=e.spatialFilter.geometry}r.returnGeometry=!1;return{calculated:!0,result:await this.executeQuery(r,"executeForCount")}}async canQueryAggregate(e){await this._ensureLoaded();let t=!1;const r=this._layer.capabilities?.query,a=!0===r?.supportsSqlExpression;if(null!=r&&!0===r.supportsStatistics&&!0===r.supportsOrderBy&&(t=!0),t)for(const i of e.statistics)(!1===i.workingexpr?.isStandardized||!1===_(i.workingexpr)&&!1===a)&&(t=!1);return t}async queryAggregate(e){if(await this._ensureLoaded(),this.isTable()&&null!=e.spatialFilter)return o;const t=await this.databaseType(),r=e.groupBy,a=e.orderBy;let i=null;if(!this._layer.capabilities.query.supportsPaginationOnAggregatedQueries){const e=this.getFieldsIndex();i={keyFields:r.map((t,r)=>({name:e.normalizeFieldName(t)??t,asc:null==a||1===a._directions[r]}))}}let s=null,l=!1;null!=a&&!0===this._layer.capabilities?.query?.supportsOrderBy&&(null==i||F(r,0,r.length,a._fields,0,Math.min(a._fields.length,r.length),(e,t)=>e.toLowerCase()===t.toLowerCase()))&&(s=a.toOrderByFields(),l=!0),null==s&&(s=r.slice());const n=e.statistics.map(e=>new Q({onStatisticField:null!==e.workingexpr?p(e.workingexpr,t):"",outStatisticFieldName:e.field,statisticType:e.toStatisticsName()}));let c=this._maxQueryRate();const d=this._layer.capabilities?.query.maxRecordCount;null!=d&&d<c&&(c=d);const h=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,t),y=this._createQuery();if(y.where=S(y.where,h),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);y.spatialRelationship=t.spatialRelationship,y.relationParameter=t.relationParameter,y.geometry=e.spatialFilter.geometry}return y.orderByFields=s,y.outFields=["*"],y.outStatistics=n,y.groupByFieldsForStatistics=r,y.returnGeometry=!1,null==i?{filterApplied:!0,spatialFilterApplied:!0,ordered:l,features:this._queryPaginated(y,c,c,null,e.abortSignal)}:{filterApplied:!0,spatialFilterApplied:!0,ordered:l,features:this._queryKeysetPaginated(y,i,e.abortSignal)}}async*_queryKeysetPaginated(e,t,r){const a=e.where;for(;;){if(null!=t.clause){if(!this._layer.capabilities.query.supportsOrderBy)throw new l("NotImplemented");e.where=S(a,p(t.clause,await this.databaseType()))}const i=await this.executeQuery(e,"execute");if(s(r),!i.hasOwnProperty("features"))throw new l("InvalidStatResponse");if(yield i.features,0===i.features.length||!0!==i.exceededTransferLimit)break;j(t,i.features.at(-1))}}_createQuery(){const e=this._layer.createQuery();return e.returnZ=this.hasZ,e.returnM=this.hasM,this.datesInUnknownTimezone&&(e.timeReferenceUnknownClient=!0),this._requestStandardised&&(e.sqlFormat="standard"),this._useDefinitionExpression?"subtype-group"===this._layer.type&&(e.where=this._layer.definitionExpression):e.where=null,e}executeQuery(e,t){const r="execute"===t?async e=>{const t=await this._layer.source.queryFeaturesJSON(e);return c(t.features,t.spatialReference??this.spatialReference.toJSON()),t}:"executeForCount"===t?this._layer.queryFeatureCount.bind(this._layer):this._layer.queryObjectIds.bind(this._layer);let a=null;if(this._recentlyUsedQueries){const t=this.convertQueryToLruCacheKey(e);a=this._recentlyUsedQueries.getFromCache(t),null===a&&(a=r(e),this._recentlyUsedQueries.addToCache(t,a),a=a.catch(e=>{throw this._recentlyUsedQueries?.removeFromCache(t),e}))}return this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:e,method:t}),null===a&&(a=r(e)),a}_fieldsIncludingObjectId(e){if(null===e)return[this.objectIdField];const t=e.slice();if(t.includes("*"))return t;let r=!1;for(const a of t)if(a.toUpperCase()===this.objectIdField.toUpperCase()){r=!0;break}return r||t.push(this.objectIdField),t}isTable(){return this._layer.isTable||null===this._layer.geometryType||"table"===this._layer.type||""===this._layer.geometryType||"esriGeometryNull"===this._layer.geometryType}static create(e,t,r,a,i){const s=new I({url:e,outFields:null===t?["*"]:t});return new v({layer:s,spatialReference:r,lrucache:a,interceptor:i})}relationshipMetadata(){return this._layer&&this._layer.source&&this._layer.source.sourceJSON?.relationships?this._layer.source.sourceJSON.relationships:[]}serviceUrl(){return y(this._layer.parsedUrl.path)}async queryAttachments(e,t,r,s,l){function n(e){const t=e.capabilities;return t?.data.supportsAttachment&&t?.operations.supportsQueryAttachments}const o=this._layer;if(!n(o))return[];const u=new q({objectIds:[e],returnMetadata:l});(t&&t>0||r&&r>0)&&(u.size=[t&&t>0?t:0,r&&r>0?r:t+1]),s&&s.length>0&&(u.attachmentTypes=s),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:o,query:u,method:"attachments"});const c=await o.queryAttachments(u);return c?.[e]?c[e].map(t=>{const r=`${this._layer.parsedUrl.path}/${e}/attachments/${t.id}`;let s=null;return l&&t.exifInfo&&(s=i(t.exifInfo)),new a(t.id,t.name,t.contentType,t.size,r,s,t.keywords??null)}):[]}async queryRelatedFeatures(e){const r=R(e);r.f="json",this._requestStandardised&&(r.sqlFormat="standard"),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preRequestCallback({layer:this._layer,queryPayload:r,method:"relatedrecords",url:this._layer.parsedUrl.path+"/queryRelatedRecords"});const a=await t(this._layer.parsedUrl.path+"/queryRelatedRecords",{responseType:"json",query:r});if(a.data){const e={},t=a.data;if(t?.relatedRecordGroups){const r=t.spatialReference,a=!0===t.exceededTransferLimit;for(const i of t.relatedRecordGroups)c(i.relatedRecords,r),e[i.objectId]={features:i.relatedRecords,exceededTransferLimit:a}}return e}throw new l("InvalidRequest")}async getFeatureByObjectId(e,t){const r=this._createQuery();r.outFields=t,r.returnGeometry=!1,r.outSpatialReference=this.spatialReference,r.where=S(r.where,this.objectIdField+"="+e.toString()),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:r,method:"execute"});const a=await this._layer.source.queryFeaturesJSON(r);return 1===a.features.length?(c(a.features,a.spatialReference??this.spatialReference.toJSON()),a.features[0]):null}async getIdentityUser(){await this.load();const t=e?.findCredential(this._layer.url);return t?t.userId:null}async getOwningSystemUrl(){await this.load();const r=e?.findServerInfo(this._layer.url);if(r)return r.owningSystemUrl??"";let a=this._layer.url;const i=a.toLowerCase().indexOf("/rest/services");if(a=i>-1?a.slice(0,i):a,a){a+="/rest/info";try{const e=await t(a,{query:{f:"json"}});let r="";return e.data?.owningSystemUrl&&(r=e.data.owningSystemUrl),r}catch{return""}}return""}getDataSourceFeatureSet(){const e=new v({layer:this._layer,spatialReference:this.spatialReference??void 0,outFields:this._overrideFields??void 0,includeGeometry:!this._removeGeometry,lrucache:this._recentlyUsedQueries??void 0,interceptor:this._featureSetQueryInterceptor??void 0});return e._useDefinitionExpression=!1,e}get preferredTimeZone(){return this._layer.preferredTimeZone??null}get dateFieldsTimeZone(){return this._layer.dateFieldsTimeZone??null}get datesInUnknownTimezone(){return this._layer.datesInUnknownTimezone??!1}get editFieldsInfo(){return this._layer.editFieldsInfo??null}get timeInfo(){return this._layer.timeInfo??null}async getFeatureSetInfo(){if(this._featureSetInfo)return this._featureSetInfo;let e=null,r="serviceItemId"in this._layer?this._layer.serviceItemId:null;const a=this._layer.parsedUrl?.path??null;if(a){const i=await t(a,{responseType:"json",query:{f:"json"}});e=i?.data?.name??null,r=i?.data?.serviceItemId??null}const i=this._layer.title&&null!==(this._layer.parent??null);return this._featureSetInfo={layerId:this._layer.layerId,layerName:""===e?null:e,itemId:""===r?null:r,serviceLayerUrl:""===a?null:a,webMapLayerId:i?this._layer.id??null:null,webMapLayerTitle:i?this._layer.title??null:null,className:null,objectClassId:null},this._featureSetInfo}}export{v as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../Dictionary.js";import{StringEnum as n}from"../enum.js";import{ArcadeExecutionError as t}from"../executionError.js";import{s as r,r as s,g as i}from"../../chunks/languageUtils.js";import{assertIsSome as o}from"../../core/maybe.js";import{isString as c,isNumber as a,isArray as u}from"../../support/guards.js";const l=e=>(n,t,r=14)=>+e(n,t).toFixed(r),d=(e,n)=>e+n,h=(e,n)=>e-n,g=(e,n)=>e*n,m=(e,n)=>e/n,f=(e,n,t)=>l(d)(e,n,t),w=(e,n,t)=>l(h)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=(e,n,t)=>l(m)(e,n,t),p=360,T=400,E=2*Math.PI,S=3600,_=3240,R=60,F=60,M=180*S/Math.PI,v=p*R*F,L=90*S,U=180*S,x=270*S,N=String.fromCharCode(7501),b="°";function O(e){if(!1===c(e))throw new t("InvalidParameter",null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function y(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}function H(e,n){switch(e){case 0:return"SHORT"===n?"N":"North";case 1:return"SHORT"===n?"E":"East";case 2:return"SHORT"===n?"S":"South";case 3:return"SHORT"===n?"W":"West"}}function k(e,n){return e-Math.floor(e/n)*n}function P(e){switch(e){case 6:case 1:return p;case 4:return E;case 5:return T;case 2:return v;case 7:return R;case 8:return F;default:throw new t("LogicError",null,{reason:"unsupported evaluations"})}}const z=new n([],[["NORTH",1],["NORTH AZIMUTH",1],["POLAR",2],["QUADRANT",3],["SOUTH",4],["SOUTH AZIMUTH",4]]);function Q(e){const n=z.lookup(e);if(null==n)throw new t("LogicError",null,{reason:"unsupported directionType"});return n}const j=new n([],[["D",1],["DD",1],["DECIMAL DEGREE",1],["DEGREE",1],["DECIMAL DEGREES",1],["DEGREES",1],["DMS",3],["DEGREES MINUTES SECONDS",3],["R",4],["RAD",4],["RADS",4],["RADIAN",4],["RADIANS",4],["G",5],["GON",5],["GONS",5],["GRAD",5],["GRADS",5],["GRADIAN",5],["GRADIANS",5]]);function C(e){const n=j.lookup(e);if(null==n)throw new t("LogicError",null,{reason:"unsupported units"});return n}class W{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case 1:case 6:return this.m_degrees;case 7:return this.m_minutes;case 2:case 8:return this.m_seconds;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=y(e).fraction;let t=y(e).integer;const r=Math.floor(t/S);t-=r*S;const s=Math.floor(t/F);return t-=s*F,new W(r,s,t+n)}static numberToDms(e){const n=y(e).fraction,t=y(e).integer,r=A(y(100*n).fraction,100),s=y(100*n).integer;return new W(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(2===e||8===e)F<=t&&(t-=F,++r),R<=r&&(r=0,++s),p<=s&&(s=0);else if(7===e)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),p<=s&&(s=0);else if(1===e||6===e){const e=D(this.m_seconds,S),n=D(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new W(s,r,t)}static dmsToSeconds(e,n,t){return e*S+n*F+t}}class B{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return 0===e?this.meridian:this.direction}}class V{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new V(new Z(V._convertDirectionFormat(e.extractAngularUnits(2),n,1)))}getAngle(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:case 4:case 2:return new Z(V._convertDirectionFormat(n,1,e));case 3:{const e=V.secondsNorthAzimuthToQuadrant(n);return new Z(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 0;case 4:return 2;case 2:return 1;case 3:return V.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 1;case 4:return 3;case 2:return 0;case 3:return V.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=x?0:2,t=0===n?Math.min(v-e,e):Math.abs(e-U);return new B(n,t,e>U?3:1)}static createFromAngleMeridianAndDirection(e,n,t){return new V(new Z(V.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(2),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return 0===n?1===t?e:v-e:1===t?U-e:U+e}static _convertDirectionFormat(e,n,r){let s=0;switch(n){case 1:s=e;break;case 2:s=L-e;break;case 3:throw new t("LogicError",null,{reason:"unexpected evaluation"});case 4:s=e+U}let i=0;switch(r){case 1:i=s;break;case 2:i=L-s;break;case 3:throw new t("LogicError",null,{reason:"unexpected evaluation"});case 4:i=s-U}return i=I(i,v),i<0?v+i:i}}function X(e,n,r){let s=null;switch(n){case 1:s=A(e,S);break;case 2:s=e;break;case 5:s=A(e,_);break;case 4:s=A(e,M);break;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}switch(r){case 1:return D(s,S);case 2:return s;case 5:return D(s,_);case 4:return s/M;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}class Z{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new Z(X(e,n,2))}extractAngularUnits(e){return X(this._seconds,2,q(e))}static createFromDegreesMinutesSeconds(e,n,t){return new Z(f(f(A(e,S),A(n,F)),t))}}function q(e){switch(o(e),e){case 1:case 6:case 3:return 1;case 5:return 5;case 7:return 7;case 4:return 4;case 2:case 8:return 2}}class J{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new J(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=6,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=ae(this.view,r,s),n=6===n?7:n,r=e.newpos;continue;case"s":e=ae(this.view,r,s),n=8,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=W.secondsToDMS(this.angle.extractAngularUnits(2)),this._formattedDms=W.secondsToDMS(this.angle.extractAngularUnits(2)).format(n,t)}}function K(e,n,r,s,i){let o=null;switch(n){case 1:case 4:case 5:return o=k(G(e.extractAngularUnits(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 6:case 7:return o=k(i.fetchFormattedDms().getField(n),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 8:return o=k(G(i.fetchDms().getField(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}function Y(e,n,r){if(3===r)throw new t("LogicError",null,{reason:"conversion error"});if(3===n){const n=W.numberToDms(e);return V.createFromAngleAndDirection(Z.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),r)}return V.createFromAngleAndDirection(Z.createFromAngleAndUnits(e,q(n)),r)}function $(e){switch(s(e)){case 1:return{first:0,second:1};case 2:return{first:2,second:1};case 3:return{first:2,second:3};case 4:return{first:0,second:3}}return null}function ee(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return 0;case"E":case"EAST":return 1;case"S":case"SOUTH":return 2;case"W":case"WEST":return 3}return null}function ne(e){const n=parseFloat(e);if(a(n)){if(isNaN(n))throw new t("LogicError",null,{reason:"invalid conversion"});return n}throw new t("LogicError",null,{reason:"invalid conversion"})}function te(e,n,s){const i=3===s;let o=null,c=null,a=0,u=0,l=0;if(i){if(e.length<2)throw new t("LogicError",null,{reason:"conversion error"});l=1;const n=$(r(e[e.length-1]));if(n?(o=n.first,c=n.second):(a=1,o=ee(r(e[0])),c=ee(r(e[e.length-1]))),null===o||null===c)throw new t("LogicError",null,{reason:"invalid conversion"})}switch(n){case 1:case 4:case 5:if(0===e.length)throw new t("LogicError",null,{reason:"invalid conversion"});return i?V.createFromAngleMeridianAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),o,c):V.createFromAngleAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),s);case 3:if(u=e.length-l-a,3===u){const n=Z.createFromDegreesMinutesSeconds(ne(e[a]),ne(e[a+1]),ne(e[a+2]));return i?V.createFromAngleMeridianAndDirection(n,o,c):V.createFromAngleAndDirection(n,s)}if(1===u){const n=ne(e[a]),t=W.numberToDms(n),r=Z.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?V.createFromAngleMeridianAndDirection(r,o,c):V.createFromAngleAndDirection(r,s)}}throw new t("LogicError",null,{reason:"invalid conversion"})}function re(e){const n=new Set([" ","-","/","'",'"',"\\","^",b,N,"\t","\r","\n","*"]);let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.has(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter(e=>""!==e)}function se(e,n,r){if(a(e))return Y(s(e),n,r);if(c(e))return te(re(e),n,r);if(u(e))return te(e,n,r);if(i(e))return te(e.toArray(),n,r);throw new t("LogicError",null,{reason:"conversion error"})}function ie(e,n,r){const s=q(r);if(s&&3!==r){return e.getAngle(n).extractAngularUnits(s)}throw new t("LogicError",null,{reason:"conversion error"})}function oe(e,n,t){const r=e.getAngle(n);if(3===n&&3===t){const t=W.secondsToDMS(r.extractAngularUnits(2));return[H(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,H(e.getDirection(n),"SHORT")]}if(3===t){const e=W.secondsToDMS(r.extractAngularUnits(2));return[e.m_degrees,e.m_minutes,e.m_seconds]}return 3===n?[H(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),H(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function ce(e,n){let r="";switch(e){case 1:r=3===n?"DD.DD"+b:"DDD.DD"+b;break;case 3:r=3===n?"dd"+b+" mm' ss\"":"ddd"+b+" mm' ss.ss\"";break;case 4:r="R.RR";break;case 5:r="GGG.GG"+N;break;default:throw new t("LogicError",null,{reason:"conversion error"})}return 3===n&&(r="p "+r+" b"),r}function ae(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const i=e[n];if(i===t)s?r.rounding++:r.padding++,n++;else{if("."!==i)break;s=!0,n++}}return r.newpos=n-1,r}function ue(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function le(e,n,t){let r="",s=null,i=null;const o=J.createFromStringAndBearing(n,e,t),c={D:1,d:6,m:7,s:8,R:4,G:5};for(let a=0;a<n.length;a++){const u=n[a];switch(u){case"[":s=ue(n,a),r+=s.escaped,a=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=ae(n,a,u),i=e.getAngle(t),r+=K(i,c[u],s.padding,s.rounding,o),a=s.newpos;continue;case"P":case"p":r+=H(o.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=H(o.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}const de=new n(["TEXT","VALUE"]);function he(n,s,i){if(!(s instanceof e))throw new t("InvalidParameter",null);if(!1===s.hasField("directionType"))throw new t("LogicError",null,{reason:"missing directionType"});if(!1===s.hasField("angleType"))throw new t("LogicError",null,{reason:"missing angleType"});const o=Q(O(s.field("directiontype"))),c=se(n,C(O(s.field("angletype"))),o);if(!(i instanceof e))throw new t("InvalidParameter",null);if(!1===i.hasField("directionType"))throw new t("LogicError",null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new t("LogicError",null,{reason:"missing angleType"});const a=Q(O(i.field("directiontype"))),u=i.hasField("angleType")?C(O(i.field("angletype"))):null,l=de.get(O(i.field("outputType")));if(!a||!l)throw new t("LogicError",null,{reason:"conversion error"});if(!(u||"TEXT"===l&&i.hasField("format")))throw new t("LogicError",null,{reason:"invalid unit"});switch(l){case"VALUE":return 3===a||3===u?oe(c,a,u):ie(c,a,u);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=ce(u,a)),le(c,e,a)}default:throw new t("InvalidParameter",null)}}export{he as convertDirection,f as preciseAdd,D as preciseDivide,w as preciseMinus,A as preciseMultiply};
|
|
2
|
+
import e from"../Dictionary.js";import{StringEnum as n}from"../enum.js";import{ArcadeExecutionError as t}from"../executionError.js";import{w as r,v as s,g as i}from"../../chunks/languageUtils.js";import{assertIsSome as o}from"../../core/maybe.js";import{isString as c,isNumber as a,isArray as u}from"../../support/guards.js";const l=e=>(n,t,r=14)=>+e(n,t).toFixed(r),d=(e,n)=>e+n,h=(e,n)=>e-n,g=(e,n)=>e*n,m=(e,n)=>e/n,f=(e,n,t)=>l(d)(e,n,t),w=(e,n,t)=>l(h)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=(e,n,t)=>l(m)(e,n,t),p=360,T=400,E=2*Math.PI,S=3600,_=3240,R=60,F=60,v=180*S/Math.PI,M=p*R*F,L=90*S,U=180*S,x=270*S,N=String.fromCharCode(7501),b="°";function O(e){if(!1===c(e))throw new t("InvalidParameter",null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function y(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}function H(e,n){switch(e){case 0:return"SHORT"===n?"N":"North";case 1:return"SHORT"===n?"E":"East";case 2:return"SHORT"===n?"S":"South";case 3:return"SHORT"===n?"W":"West"}}function k(e,n){return e-Math.floor(e/n)*n}function P(e){switch(e){case 6:case 1:return p;case 4:return E;case 5:return T;case 2:return M;case 7:return R;case 8:return F;default:throw new t("LogicError",null,{reason:"unsupported evaluations"})}}const z=new n([],[["NORTH",1],["NORTH AZIMUTH",1],["POLAR",2],["QUADRANT",3],["SOUTH",4],["SOUTH AZIMUTH",4]]);function Q(e){const n=z.lookup(e);if(null==n)throw new t("LogicError",null,{reason:"unsupported directionType"});return n}const j=new n([],[["D",1],["DD",1],["DECIMAL DEGREE",1],["DEGREE",1],["DECIMAL DEGREES",1],["DEGREES",1],["DMS",3],["DEGREES MINUTES SECONDS",3],["R",4],["RAD",4],["RADS",4],["RADIAN",4],["RADIANS",4],["G",5],["GON",5],["GONS",5],["GRAD",5],["GRADS",5],["GRADIAN",5],["GRADIANS",5]]);function C(e){const n=j.lookup(e);if(null==n)throw new t("LogicError",null,{reason:"unsupported units"});return n}class W{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case 1:case 6:return this.m_degrees;case 7:return this.m_minutes;case 2:case 8:return this.m_seconds;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=y(e).fraction;let t=y(e).integer;const r=Math.floor(t/S);t-=r*S;const s=Math.floor(t/F);return t-=s*F,new W(r,s,t+n)}static numberToDms(e){const n=y(e).fraction,t=y(e).integer,r=A(y(100*n).fraction,100),s=y(100*n).integer;return new W(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(2===e||8===e)F<=t&&(t-=F,++r),R<=r&&(r=0,++s),p<=s&&(s=0);else if(7===e)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),p<=s&&(s=0);else if(1===e||6===e){const e=D(this.m_seconds,S),n=D(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new W(s,r,t)}static dmsToSeconds(e,n,t){return e*S+n*F+t}}class B{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return 0===e?this.meridian:this.direction}}class V{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new V(new Z(V._convertDirectionFormat(e.extractAngularUnits(2),n,1)))}getAngle(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:case 4:case 2:return new Z(V._convertDirectionFormat(n,1,e));case 3:{const e=V.secondsNorthAzimuthToQuadrant(n);return new Z(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 0;case 4:return 2;case 2:return 1;case 3:return V.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 1;case 4:return 3;case 2:return 0;case 3:return V.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=x?0:2,t=0===n?Math.min(M-e,e):Math.abs(e-U);return new B(n,t,e>U?3:1)}static createFromAngleMeridianAndDirection(e,n,t){return new V(new Z(V.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(2),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return 0===n?1===t?e:M-e:1===t?U-e:U+e}static _convertDirectionFormat(e,n,r){let s=0;switch(n){case 1:s=e;break;case 2:s=L-e;break;case 3:throw new t("LogicError",null,{reason:"unexpected evaluation"});case 4:s=e+U}let i=0;switch(r){case 1:i=s;break;case 2:i=L-s;break;case 3:throw new t("LogicError",null,{reason:"unexpected evaluation"});case 4:i=s-U}return i=I(i,M),i<0?M+i:i}}function X(e,n,r){let s=null;switch(n){case 1:s=A(e,S);break;case 2:s=e;break;case 5:s=A(e,_);break;case 4:s=A(e,v);break;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}switch(r){case 1:return D(s,S);case 2:return s;case 5:return D(s,_);case 4:return s/v;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}class Z{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new Z(X(e,n,2))}extractAngularUnits(e){return X(this._seconds,2,q(e))}static createFromDegreesMinutesSeconds(e,n,t){return new Z(f(f(A(e,S),A(n,F)),t))}}function q(e){switch(o(e),e){case 1:case 6:case 3:return 1;case 5:return 5;case 7:return 7;case 4:return 4;case 2:case 8:return 2}}class J{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new J(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=6,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=ae(this.view,r,s),n=6===n?7:n,r=e.newpos;continue;case"s":e=ae(this.view,r,s),n=8,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=W.secondsToDMS(this.angle.extractAngularUnits(2)),this._formattedDms=W.secondsToDMS(this.angle.extractAngularUnits(2)).format(n,t)}}function K(e,n,r,s,i){let o=null;switch(n){case 1:case 4:case 5:return o=k(G(e.extractAngularUnits(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 6:case 7:return o=k(i.fetchFormattedDms().getField(n),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 8:return o=k(G(i.fetchDms().getField(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}function Y(e,n,r){if(3===r)throw new t("LogicError",null,{reason:"conversion error"});if(3===n){const n=W.numberToDms(e);return V.createFromAngleAndDirection(Z.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),r)}return V.createFromAngleAndDirection(Z.createFromAngleAndUnits(e,q(n)),r)}function $(e){switch(s(e)){case 1:return{first:0,second:1};case 2:return{first:2,second:1};case 3:return{first:2,second:3};case 4:return{first:0,second:3}}return null}function ee(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return 0;case"E":case"EAST":return 1;case"S":case"SOUTH":return 2;case"W":case"WEST":return 3}return null}function ne(e){const n=parseFloat(e);if(a(n)){if(isNaN(n))throw new t("LogicError",null,{reason:"invalid conversion"});return n}throw new t("LogicError",null,{reason:"invalid conversion"})}function te(e,n,s){const i=3===s;let o=null,c=null,a=0,u=0,l=0;if(i){if(e.length<2)throw new t("LogicError",null,{reason:"conversion error"});l=1;const n=$(r(e[e.length-1]));if(n?(o=n.first,c=n.second):(a=1,o=ee(r(e[0])),c=ee(r(e[e.length-1]))),null===o||null===c)throw new t("LogicError",null,{reason:"invalid conversion"})}switch(n){case 1:case 4:case 5:if(0===e.length)throw new t("LogicError",null,{reason:"invalid conversion"});return i?V.createFromAngleMeridianAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),o,c):V.createFromAngleAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),s);case 3:if(u=e.length-l-a,3===u){const n=Z.createFromDegreesMinutesSeconds(ne(e[a]),ne(e[a+1]),ne(e[a+2]));return i?V.createFromAngleMeridianAndDirection(n,o,c):V.createFromAngleAndDirection(n,s)}if(1===u){const n=ne(e[a]),t=W.numberToDms(n),r=Z.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?V.createFromAngleMeridianAndDirection(r,o,c):V.createFromAngleAndDirection(r,s)}}throw new t("LogicError",null,{reason:"invalid conversion"})}function re(e){const n=new Set([" ","-","/","'",'"',"\\","^",b,N,"\t","\r","\n","*"]);let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.has(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter(e=>""!==e)}function se(e,n,r){if(a(e))return Y(s(e),n,r);if(c(e))return te(re(e),n,r);if(u(e))return te(e,n,r);if(i(e))return te(e.toArray(),n,r);throw new t("LogicError",null,{reason:"conversion error"})}function ie(e,n,r){const s=q(r);if(s&&3!==r){return e.getAngle(n).extractAngularUnits(s)}throw new t("LogicError",null,{reason:"conversion error"})}function oe(e,n,t){const r=e.getAngle(n);if(3===n&&3===t){const t=W.secondsToDMS(r.extractAngularUnits(2));return[H(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,H(e.getDirection(n),"SHORT")]}if(3===t){const e=W.secondsToDMS(r.extractAngularUnits(2));return[e.m_degrees,e.m_minutes,e.m_seconds]}return 3===n?[H(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),H(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function ce(e,n){let r="";switch(e){case 1:r=3===n?"DD.DD"+b:"DDD.DD"+b;break;case 3:r=3===n?"dd"+b+" mm' ss\"":"ddd"+b+" mm' ss.ss\"";break;case 4:r="R.RR";break;case 5:r="GGG.GG"+N;break;default:throw new t("LogicError",null,{reason:"conversion error"})}return 3===n&&(r="p "+r+" b"),r}function ae(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const i=e[n];if(i===t)s?r.rounding++:r.padding++,n++;else{if("."!==i)break;s=!0,n++}}return r.newpos=n-1,r}function ue(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function le(e,n,t){let r="",s=null,i=null;const o=J.createFromStringAndBearing(n,e,t),c={D:1,d:6,m:7,s:8,R:4,G:5};for(let a=0;a<n.length;a++){const u=n[a];switch(u){case"[":s=ue(n,a),r+=s.escaped,a=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=ae(n,a,u),i=e.getAngle(t),r+=K(i,c[u],s.padding,s.rounding,o),a=s.newpos;continue;case"P":case"p":r+=H(o.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=H(o.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}const de=new n(["TEXT","VALUE"]);function he(n,s,i){if(!(s instanceof e))throw new t("InvalidParameter",null);if(!1===s.hasField("directionType"))throw new t("LogicError",null,{reason:"missing directionType"});if(!1===s.hasField("angleType"))throw new t("LogicError",null,{reason:"missing angleType"});const o=Q(O(s.field("directiontype"))),c=se(n,C(O(s.field("angletype"))),o);if(!(i instanceof e))throw new t("InvalidParameter",null);if(!1===i.hasField("directionType"))throw new t("LogicError",null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new t("LogicError",null,{reason:"missing angleType"});const a=Q(O(i.field("directiontype"))),u=i.hasField("angleType")?C(O(i.field("angletype"))):null,l=de.get(O(i.field("outputType")));if(!a||!l)throw new t("LogicError",null,{reason:"conversion error"});if(!(u||"TEXT"===l&&i.hasField("format")))throw new t("LogicError",null,{reason:"invalid unit"});switch(l){case"VALUE":return 3===a||3===u?oe(c,a,u):ie(c,a,u);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=ce(u,a)),le(c,e,a)}default:throw new t("InvalidParameter",null)}}export{he as convertDirection,f as preciseAdd,D as preciseDivide,w as preciseMinus,A as preciseMultiply};
|
package/arcade/functions/date.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ArcadeDate as n,createDateTimeZone as r}from"../ArcadeDate.js";import{toStringEnumKey as e,StringEnum as t}from"../enum.js";import{ArcadeExecutionError as o}from"../executionError.js";import{
|
|
2
|
+
import{ArcadeDate as n,createDateTimeZone as r}from"../ArcadeDate.js";import{toStringEnumKey as e,StringEnum as t}from"../enum.js";import{ArcadeExecutionError as o}from"../executionError.js";import{E as u,T as l,v as i,r as a,e as s,q as c,w as f,U as m,O as d,V as h,W as N}from"../../chunks/languageUtils.js";import{DateOnly as y}from"../../core/sql/DateOnly.js";import{TimeOnly as w}from"../../core/sql/TimeOnly.js";import{getLocale as g}from"../../intl/locale.js";import{DateTime as T}from"luxon";import{isString as A}from"../../support/guards.js";function D(n,r,e){return n+(k(e)?P:p)[r]}function k(n){return n%4==0&&(n%100!=0||n%400==0)}const p=[0,31,59,90,120,151,181,212,243,273,304,334],P=[0,31,60,91,121,152,182,213,244,274,305,335];function S(n){return null===n?n:!1===n.isValid?null:n}function Z(n,r){switch(e(n)){case"":case"default":return l(r);case"z":return"UTC";default:return n}}function O(n,r){return c(n)?n.toArcadeDate():m(n,l(r))}const C=new t(["days","months","minutes","seconds","hours","years","milliseconds"],[["day","days"],["d","days"],["month","months"],["minute","minutes"],["m","minutes"],["second","seconds"],["s","seconds"],["hour","hours"],["h","hours"],["year","years"],["y","years"],["millisecond","milliseconds"],["ms","milliseconds"]]);function U(n){return"M"===n?"months":C.lookup(f(n))??"milliseconds"}function j(e,t){e.today=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,e);const a=new Date;return a.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(a,l(r))})},e.time=function(r,e){return t(r,e,(t,f,m)=>{switch(u(m,0,4,e),m.length){case 0:{const e=n.nowToArcadeDate(l(r));return new w(e.hour,e.minute,e.second,e.millisecond)}case 1:{if(a(m[0]))return m[0].clone();if(s(m[0]))return new w(m[0].hour,m[0].minute,m[0].second,m[0].millisecond);if(c(m[0]))return new w(0,0,0,0);if(A(m[0]))return w.fromString(m[0]);const n=i(m[0]);return!1===isNaN(n)?w.fromMilliseconds(n):null}case 2:return A(m[0])&&A(m[1])?w.fromString(m[0],m[1]):w.fromParts(i(m[0]),i(m[1]),0,0);case 3:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),0);case 4:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),i(m[3]))}throw new o("InvalidParameter",e)})},e.dateonly=function(r,e){return t(r,e,(t,o,a)=>{if(u(a,0,3,e),3===a.length)return y.fromParts(i(a[0]),i(a[1])+1,i(a[2]));if(2===a.length){const n=f(a[1]);return""===n?null:"X"===n?y.fromSeconds(i(a[0])):"x"===n?y.fromMilliseconds(i(a[0])):y.fromString(f(a[0]),n)}if(1===a.length){if(A(a[0])){if(""===a[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(a[0]))return y.fromString(a[0]+"-01-01")}if(c(a[0]))return a[0].clone();if(s(a[0]))return y.fromParts(a[0].year,a[0].monthJS+1,a[0].day);const n=i(a[0]);return!1===isNaN(n)?y.fromMilliseconds(n):A(a[0])?y.fromString(a[0]):null}if(0===a.length){const e=n.nowToArcadeDate(l(r));return!1===e.isValid?null:y.fromParts(e.year,e.monthJS+1,e.day)}return null})},e.changetimezone=function(e,i){return t(e,i,(t,a,s)=>{if(u(s,2,2,i),null===s[0])return null;if(c(s[0]))throw new o("CannotChangeTimeZoneDateOnly",i);if(c(s[0]))throw new o("CannotChangeTimeZoneTime",i);const d=m(s[0],l(e));if(null===d)throw new o("InvalidParameter",i);const h=r(Z(f(s[1]),e),!1);if(null===h)return null;const N=n.arcadeDateAndZoneToArcadeDate(d,h);return!1===N.isValid?null:N})},e.timezone=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,1,2,e),a(i[0]))return"Unknown";if(c(i[0]))return"Unknown";const s=m(i[0],l(r));if(null===s)return null;const f=s.timeZone;return"system"===f?n.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":"unknown"===f.toLowerCase()?"Unknown":f})},e.timezoneoffset=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=m(o[0],l(n));return null===i?null:60*i.timeZoneOffset*1e3})},e.now=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,e);const a=n.nowToArcadeDate(l(r));return!1===a.isValid?null:a})},e.timestamp=function(r,e){return t(r,e,(r,t,o)=>{u(o,0,0,e);const l=n.nowUTCToArcadeDate();return!1===l.isValid?null:l})},e.toutc=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=m(o[0],l(n));return null===i?null:i.toUTC()})},e.tolocal=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=m(o[0],l(n));return null===i?null:i.toLocal()})},e.day=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.day})},e.month=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.monthJS})},e.year=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.year})},e.hour=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].hour;const i=m(o[0],l(n));return null===i?NaN:i.hour})},e.second=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].second;const i=m(o[0],l(n));return null===i?NaN:i.second})},e.millisecond=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].millisecond;const i=m(o[0],l(n));return null===i?NaN:i.millisecond})},e.minute=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].minute;const i=m(o[0],l(n));return null===i?NaN:i.minute})},e.week=function(n,r){return t(n,r,(e,t,a)=>{u(a,1,2,r);const s=O(a[0],l(n));if(null===s)return NaN;const c=i(d(a[1],0));if(c<0||c>6)throw new o("InvalidParameter",r);const f=s.day,m=s.monthJS,h=s.year,N=s.dayOfWeekJS,y=D(f,m,h)-1,w=Math.floor(y/7);return N-c+(N-c<0?7:0)<y-7*w?w+1:w})},e.weekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekJS})},e.isoweekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekISO})},e.isomonth=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.monthISO})},e.isoweek=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.weekISO})},e.isoyear=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.yearISO})},e.date=function(e,o){return t(e,o,(t,s,d)=>{if(u(d,0,8,o),3===d.length){if(c(d[0])&&a(d[1])&&A(d[2])){const t=r(Z(f(d[2])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,t))}return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),0,0,0,0,l(e)))}if(4===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),0,0,0,l(e)));if(5===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),0,0,l(e)));if(6===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),0,l(e)));if(7===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),l(e)));if(8===d.length){const t=r(Z(f(d[7])??"unknown",e),!1);return null===t?null:S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),t))}if(2===d.length){if(c(d[0])&&A(d[1])){const t=r(Z(f(d[1])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,t))}if(c(d[0])&&a(d[1]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,"unknown"));let t,o=f(d[1]);return""===o?null:(o=h(o,!0),t="X"===o?T.fromSeconds(i(d[0])):"x"===o?T.fromMillis(i(d[0])):T.fromFormat(f(d[0]),o,{locale:g(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===d.length){if(c(d[0]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,"unknown"));if(A(d[0])){if(""===d[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(d[0]))return m(d[0]+"-01-01",l(e))}const r=i(d[0]);if(!1===isNaN(r)){const t=T.fromMillis(r);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,l(e)):null}return m(d[0],l(e))}return 0===d.length?n.nowToArcadeDate(l(e)):null})},e.datediff=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,2,4,e),a(i[0]))return a(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(a(i[1]))return NaN;if(c(i[0]))return c(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(c(i[1]))return NaN;let s=m(i[0],l(r)),h=m(i[1],l(r));if(null===s||null===h)return NaN;let N=d(i[3],"");return""!==N&&null!==N?(N=Z(f(N),r),s=n.arcadeDateAndZoneToArcadeDate(s,N),h=n.arcadeDateAndZoneToArcadeDate(h,N)):s.timeZone!==h.timeZone&&(s.isUnknownTimeZone?s=n.arcadeDateAndZoneToArcadeDate(s,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,s.timeZone))),s.diff(h,U(i[2]))})},e.dateadd=function(n,r){return t(n,r,(e,t,o)=>{u(o,2,3,r);let s=i(o[1]);if(isNaN(s)||s===1/0||s===-1/0)return a(o[0])||c(o[0])?o[0].clone():m(o[0],l(n));const f=U(o[2]);if("days"!==f&&"months"!==f||(s=c(o[0])?s:N(s)),a(o[0]))return o[0].plus(f,s);if(c(o[0]))return o[0].plus(f,s);const d=m(o[0],l(n));return null===d?null:d.plus({[f]:s})})}}export{j as registerFunctions};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ArcadeDate as e}from"../ArcadeDate.js";import{toSymbolId as r}from"../arcadeEnvironment.js";import{convertJsonValueToImmutableArcadeValue as t}from"../containerUtils.js";import{ArcadeExecutionError as n}from"../executionError.js";import{Feature as o}from"../Feature.js";import{
|
|
2
|
+
import{ArcadeDate as e}from"../ArcadeDate.js";import{toSymbolId as r}from"../arcadeEnvironment.js";import{convertJsonValueToImmutableArcadeValue as t}from"../containerUtils.js";import{ArcadeExecutionError as n}from"../executionError.js";import{Feature as o}from"../Feature.js";import{E as i,h as a,X as u,w as s,Y as m,Z as d,x as f,_ as l,$ as c,e as p}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as w}from"../featureset/support/shared.js";import{SqlTimeStampOffset as y}from"../../core/sql/SqlTimestampOffset.js";import h from"../../core/sql/WhereClause.js";import{internalTimeReceivedField as v}from"../../layers/support/streamLayerUtils.js";import{isString as b,isNumber as I}from"../../support/guards.js";function F(e){const r=e?.fullSchema();return r?.datesInUnknownTimezone?"unknown":r?.dateFieldsTimeZone||"UTC"}function T(e){const r=e.fullSchema()?.fieldsIndex;return null==r&&e instanceof o?e.fieldsIndex:r}const g={getAttributeSQL(e,r){const t=e.field(r);if(null==t)return t;if(p(t)){const n=t.toDateTime(),o=T(e)?.get(r)?.type;return"esriFieldTypeTimestampOffset"===o||"timestamp-offset"===o?y.fromDateTime(n):n}return t}};function j(o,y,j){o.domain=function(e,r){return y(e,r,(e,o,m)=>{if(i(m,2,3,r),a(m[0])){const e=u(m[0],s(m[1]),void 0===m[2]?void 0:m[2]);return null==e?.domain?null:"coded-value"===e.domain.type||"codedValue"===e.domain.type?t({type:"codedValue",name:e.domain.name,dataType:w[e.field.type],codedValues:e.domain.codedValues.map(e=>({name:e.name,code:e.code}))}):t({type:"range",name:e.domain.name,dataType:w[e.field.type],min:e.domain.minValue,max:e.domain.maxValue})}throw new n("InvalidParameter",r)})},o.domaincode=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,2,4,r),a(o[0]))return m(o[0],s(o[1]),o[2],void 0===o[3]?void 0:o[3]);throw new n("InvalidParameter",r)})},o.domainname=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,2,4,r),a(o[0]))return d(o[0],s(o[1]),o[2],void 0===o[3]?void 0:o[3]);throw new n("InvalidParameter",r)})},o.expects=function(e,r){return y(e,r,(e,t,o)=>{if(o.length<1)throw new n("WrongNumberOfParameters",r);return f})},o.featureinfilter=function(e,r){return y(e,r,(e,r,t)=>{i(t,2,2,r);const[o,u]=t;if(null==o)return!1;if(""===u||null==u)return!0;if(!a(o)||!b(u))throw new n("InvalidParameter",r);const s=h.create(u,{fieldsIndex:T(o),timeZone:F(o)}),m=s.getVariables();for(const n of m)s.parameters[n]=j(e,{name:n});return s.testFeature(o,g)})},o.gdbversion=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,1,1,r),a(o[0]))return o[0].gdbVersion();throw new n("InvalidParameter",r)})},o.schema=function(e,r){return y(e,r,(e,o,i)=>{if(a(i[0]))return t(l(i[0]));throw new n("InvalidParameter",r)})},o.subtypecode=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,1,1,r),a(o[0])){const e=c(o[0]);if(!e)return null;if(e.subtypeField&&o[0].hasField(e.subtypeField)){const r=o[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.code;return null}return null}throw new n("InvalidParameter",r)})},o.subtypename=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,1,1,r),a(o[0])){const e=c(o[0]);if(!e)return"";if(e.subtypeField&&o[0].hasField(e.subtypeField)){const r=o[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.name;return""}return""}throw new n("InvalidParameter",r)})},o.subtypes=function(e,r){return y(e,r,(e,o,u)=>{if(i(u,1,1,r),a(u[0]))return t(c(u[0]));throw new n("InvalidParameter",r)})},o[r("TimeReceived")]=function(r,t){return y(r,t,(r,t,o)=>{if(i(o,1,1,t),a(o[0])){if(o[0].hasField(v)){const t=o[0].field(v);return I(t)?e.epochToArcadeDate(t,r.timeZone??"system"):p(t)?t:null}return null}throw new n("InvalidParameter",t)})}}export{j as registerFunctions};
|