@arcgis/core 5.1.0-next.120 → 5.1.0-next.122
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/WebLinkChart.d.ts +1 -1
- package/WebMap.d.ts +2 -2
- package/WebScene.d.ts +3 -3
- package/arcade.d.ts +9 -9
- package/arcgisGlobal.d.ts +8 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/04895de94657e7f3d7e1.js +1 -0
- package/assets/esri/core/workers/chunks/{d1ac98f48bb6d43d97c8.js → 06858a0e1033e4a95337.js} +2 -2
- package/assets/esri/core/workers/chunks/{d35c475f004367e333eb.js → 06df187a116709f69952.js} +1 -1
- package/assets/esri/core/workers/chunks/{829a0583b8a228c65379.js → 0b169bb1969f86232a1a.js} +1 -1
- package/assets/esri/core/workers/chunks/0ecc1bc1686844cdd60e.js +1 -0
- package/assets/esri/core/workers/chunks/0f75c19d8e296a32e329.js +1 -0
- package/assets/esri/core/workers/chunks/174cc2e69e5b5a13d880.js +1 -0
- package/assets/esri/core/workers/chunks/{163ce1be8bfe20e77f97.js → 184d896fe66340129acd.js} +1 -1
- package/assets/esri/core/workers/chunks/18f980465db5a86153d1.js +1 -0
- package/assets/esri/core/workers/chunks/1996f0a930abdd97b855.js +1 -0
- package/assets/esri/core/workers/chunks/19dcae83be0fc0aced02.js +1 -0
- package/assets/esri/core/workers/chunks/1c8436b27a3d3cde5cfc.js +1 -0
- package/assets/esri/core/workers/chunks/1cb1f125dccbf8c8cac9.js +1 -0
- package/assets/esri/core/workers/chunks/1d7e1bbd321d6f99776c.js +1 -0
- package/assets/esri/core/workers/chunks/1f289aa69dd6b6be534a.js +1 -0
- package/assets/esri/core/workers/chunks/{da29cf0e64065631a470.js → 24810c36ae09bb4e83dc.js} +1 -1
- package/assets/esri/core/workers/chunks/274b82cb183ddd0042f3.js +1 -0
- package/assets/esri/core/workers/chunks/{7ed5b669010db58845f8.js → 294f2803aac000c99693.js} +1 -1
- package/assets/esri/core/workers/chunks/{093f27e4e4781870b431.js → 297ae764445e6f73a5ea.js} +1 -1
- package/assets/esri/core/workers/chunks/{be0eab592db0e651b023.js → 2b814bb51704a5b4fdc2.js} +6 -6
- package/assets/esri/core/workers/chunks/2d2895f1fdf44d212a4d.js +1 -0
- package/assets/esri/core/workers/chunks/2dbc2fd0f2dde505c465.js +1 -0
- package/assets/esri/core/workers/chunks/2dbcdfdf000226bfe746.js +1 -0
- package/assets/esri/core/workers/chunks/2e6382d50bf012064eae.js +1 -0
- package/assets/esri/core/workers/chunks/30f1909c5ef1835b8507.js +1 -0
- package/assets/esri/core/workers/chunks/313773bd9c82d1858929.js +1 -0
- package/assets/esri/core/workers/chunks/3172d7fc23787a287191.js +1 -0
- package/assets/esri/core/workers/chunks/{1c029b03ed836f393a50.js → 3248001d9dfb9153699e.js} +1 -1
- package/assets/esri/core/workers/chunks/3297658ccd8d4b9ce733.js +1 -0
- package/assets/esri/core/workers/chunks/{716a4d7e8b908b81870b.js → 32f26757e36704923286.js} +1 -1
- package/assets/esri/core/workers/chunks/3529afab0c2444275d91.js +1 -0
- package/assets/esri/core/workers/chunks/36dac6ab51d9dbdd091d.js +1 -0
- package/assets/esri/core/workers/chunks/{a2159df718a7f2f59271.js → 38a2f34661563c7c29c1.js} +1 -1
- package/assets/esri/core/workers/chunks/390fda094fa8695d98cf.js +1 -0
- package/assets/esri/core/workers/chunks/39596715e84d0da2f803.js +30 -0
- package/assets/esri/core/workers/chunks/{6af77529c977d034d287.js → 3b15933f65f59625a650.js} +1 -1
- package/assets/esri/core/workers/chunks/3b3f91a61e3f29af1fb2.js +1 -0
- package/assets/esri/core/workers/chunks/{f815106d439ff1f76e51.js → 3b837b512999e6ab24bc.js} +1 -1
- package/assets/esri/core/workers/chunks/3d20c86f1fe877bf884b.js +1 -0
- package/assets/esri/core/workers/chunks/3e65b4b18760bde8ceee.js +1 -0
- package/assets/esri/core/workers/chunks/3ff7aa216cd794d951e8.js +1 -0
- package/assets/esri/core/workers/chunks/{8e1865392681d390ab2e.js → 401ee7fa500adad77db1.js} +1 -1
- package/assets/esri/core/workers/chunks/{60915a3708a34da1977e.js → 426156137f279d979ddd.js} +1 -1
- package/assets/esri/core/workers/chunks/4517630bf869205bab87.js +1 -0
- package/assets/esri/core/workers/chunks/{16b90d8f628a412ba4ba.js → 4894997bfa438f66da36.js} +1 -1
- package/assets/esri/core/workers/chunks/48f1c3a7c9f16d6896f6.js +1 -0
- package/assets/esri/core/workers/chunks/4e293c4006bdc7cc4c08.js +1 -0
- package/assets/esri/core/workers/chunks/{e246c3663f2645248f17.js → 4efbe879d06013168f54.js} +28 -30
- package/assets/esri/core/workers/chunks/5121768c70f1e03b685c.js +1 -0
- package/assets/esri/core/workers/chunks/52f354bf80ee5ab0379a.js +1 -0
- package/assets/esri/core/workers/chunks/538537f9bc866d9caa75.js +1 -0
- package/assets/esri/core/workers/chunks/53d165b4f30fd64e5d8a.js +1 -0
- package/assets/esri/core/workers/chunks/58a7cdebc3d182c15ec6.js +1 -0
- package/assets/esri/core/workers/chunks/597aa39cdb5366ef9a74.js +1 -0
- package/assets/esri/core/workers/chunks/5bfae465872760e7af6d.js +1 -0
- package/assets/esri/core/workers/chunks/{cda99b543a0e1979346c.js → 5cb1b950249d651f3837.js} +1 -1
- package/assets/esri/core/workers/chunks/5cb274e5759f7ca0d4ed.js +1 -0
- package/assets/esri/core/workers/chunks/5d3ddbf94539cb4f493e.js +1 -0
- package/assets/esri/core/workers/chunks/5dd441db1e74dc9b56e9.js +1 -0
- package/assets/esri/core/workers/chunks/64114a7d2da162987958.js +1 -0
- package/assets/esri/core/workers/chunks/661f7e3f88727dc4801c.js +1 -0
- package/assets/esri/core/workers/chunks/6821462e5c1e9c76010a.js +1 -0
- package/assets/esri/core/workers/chunks/684d3cb4fb233180b2d0.js +1 -0
- package/assets/esri/core/workers/chunks/686c51fd2144e132783e.js +1 -0
- package/assets/esri/core/workers/chunks/{49f6c9e9980b8c624fd7.js → 688fe64be39e9ac35ffd.js} +1 -1
- package/assets/esri/core/workers/chunks/69e98de578f467a35054.js +1 -0
- package/assets/esri/core/workers/chunks/6a3d207308b29651f397.js +1 -0
- package/assets/esri/core/workers/chunks/6aabde21b0b376d95888.js +1 -0
- package/assets/esri/core/workers/chunks/6d616b66fb32904b55a1.js +1 -0
- package/assets/esri/core/workers/chunks/{bcb021a167580bb1619f.js → 6ef3b8d67b498d655a99.js} +1 -1
- package/assets/esri/core/workers/chunks/6f125b4ed06c0022dee6.js +1 -0
- package/assets/esri/core/workers/chunks/6f4825c3ef1fe202ab82.js +1 -0
- package/assets/esri/core/workers/chunks/6f5d61f734ec40dafabb.js +1 -0
- package/assets/esri/core/workers/chunks/72d67cc3a382e83bf1a2.js +1 -0
- package/assets/esri/core/workers/chunks/77a4f6f224d7ca4b69f4.js +1 -0
- package/assets/esri/core/workers/chunks/78c53aeb0a408ab3c80c.js +1 -0
- package/assets/esri/core/workers/chunks/7b5c1030a7cf0f382cc4.js +1 -0
- package/assets/esri/core/workers/chunks/{c83fea0d0ebd0d8e43fd.js → 7cb1afb32ec043e23ec2.js} +1 -1
- package/assets/esri/core/workers/chunks/7cee81c5aa1e6b7d2452.js +1 -0
- package/assets/esri/core/workers/chunks/7e89cb9ff615742e0894.js +1 -0
- package/assets/esri/core/workers/chunks/{8c5a41ae68775bac3446.js → 7f5ecb67fa459f92d067.js} +1 -1
- package/assets/esri/core/workers/chunks/80f4f686ce403cb2693f.js +1 -0
- package/assets/esri/core/workers/chunks/{8477b5fdd99c6ac5c27b.js → 851705cf276eae8d4d37.js} +1 -1
- package/assets/esri/core/workers/chunks/{1f55d60d3adc31283296.js → 8b0a01ebc86ab226f01f.js} +1 -1
- package/assets/esri/core/workers/chunks/{452c01cecbbd1e370098.js → 8f93e6fc11a158d4f1ee.js} +1 -1
- package/assets/esri/core/workers/chunks/93bd56396b8cd020f965.js +1 -0
- package/assets/esri/core/workers/chunks/{359d3acb3953e64e5a78.js → 93ceb74ac88ef460fe5f.js} +1 -1
- package/assets/esri/core/workers/chunks/{4e676e888a935c507d90.js → 93d4bda22bde33fafa57.js} +1 -1
- package/assets/esri/core/workers/chunks/957f7b8de4aecb6f644e.js +1 -0
- package/assets/esri/core/workers/chunks/96e46424c3fb1dd9ce3b.js +1 -0
- package/assets/esri/core/workers/chunks/976ab2be6c244768c08a.js +1 -0
- package/assets/esri/core/workers/chunks/985fceacd6ec137bd490.js +1 -0
- package/assets/esri/core/workers/chunks/{e785f76c1a75cb1d1e1f.js → 99101789035f1787c630.js} +1 -1
- package/assets/esri/core/workers/chunks/99e5296192ab98fd0d99.js +1 -0
- package/assets/esri/core/workers/chunks/9c251f762df7a430cc0c.js +1 -0
- package/assets/esri/core/workers/chunks/9d5f7573bfe3b051daf1.js +1 -0
- package/assets/esri/core/workers/chunks/a043e8c49ac8e4d1d0a6.js +1 -0
- package/assets/esri/core/workers/chunks/a0c00c6fe60db49b3ab9.js +1 -0
- package/assets/esri/core/workers/chunks/a2247f4c3116efb16c4f.js +1 -0
- package/assets/esri/core/workers/chunks/a4245bd4e67a428fd835.js +1 -0
- package/assets/esri/core/workers/chunks/a442534ac0956a68b769.js +1 -0
- package/assets/esri/core/workers/chunks/a4e9a17dacbb52444d75.js +1 -0
- package/assets/esri/core/workers/chunks/{8bdca6f06c8b5fedd917.js → a5abba59e738c3240c22.js} +1 -1
- package/assets/esri/core/workers/chunks/a8ec5b85c2fa6fb4f391.js +1 -0
- package/assets/esri/core/workers/chunks/aa118c1bcd922b8ac328.js +1 -0
- package/assets/esri/core/workers/chunks/aae0049c2c3e15a813e8.js +1 -0
- package/assets/esri/core/workers/chunks/ab62724b80b3c478a597.js +1 -0
- package/assets/esri/core/workers/chunks/ac33b10fe65f9e9e824f.js +1 -0
- package/assets/esri/core/workers/chunks/adc32f6b45ea3026fc34.js +1 -0
- package/assets/esri/core/workers/chunks/aef0ac417b282a90d214.js +640 -0
- package/assets/esri/core/workers/chunks/{7601278ebced0c0c31cf.js → af75e91b88e747aa76ac.js} +1 -1
- package/assets/esri/core/workers/chunks/b22a1c98271c2e4d8808.js +1 -0
- package/assets/esri/core/workers/chunks/b44cf254585210578eab.js +1 -0
- package/assets/esri/core/workers/chunks/{2bcd4d395bfe6a19ccc8.js → b606af35a4fb893b762c.js} +1 -1
- package/assets/esri/core/workers/chunks/{9f4681713f03365a2a53.js → b666027b9022fa346a79.js} +1 -1
- package/assets/esri/core/workers/chunks/b73c146d3e550eaf07eb.js +1 -0
- package/assets/esri/core/workers/chunks/b9bdb1f05e904c3655e4.js +1 -0
- package/assets/esri/core/workers/chunks/bb867fec068e26bb0c8e.js +1 -0
- package/assets/esri/core/workers/chunks/c2a65de34f6a6c89c652.js +1 -0
- package/assets/esri/core/workers/chunks/c357c0a08b99c1e7f290.js +1 -0
- package/assets/esri/core/workers/chunks/{4a23b27bfbcfa08fd9a7.js → c3cf9e6e91f71c9cc5f3.js} +1 -1
- package/assets/esri/core/workers/chunks/c3ff2ff0a86a9143d7a5.js +1 -0
- package/assets/esri/core/workers/chunks/c4fc85281ca83af7abaf.js +1 -0
- package/assets/esri/core/workers/chunks/c60b4f2dd5fccdf362a7.js +1 -0
- package/assets/esri/core/workers/chunks/c6d0b4875b6b8d6bc25a.js +1 -0
- package/assets/esri/core/workers/chunks/c80fc1b3048e8d58a1f8.js +1 -0
- package/assets/esri/core/workers/chunks/c911f0b5bdd43b66b731.js +1 -0
- package/assets/esri/core/workers/chunks/c983e5ce0ff952b65d7f.js +1 -0
- package/assets/esri/core/workers/chunks/c9a4601073e1a3eee9d0.js +1 -0
- package/assets/esri/core/workers/chunks/ccffaba50674adba7a0f.js +1 -0
- package/assets/esri/core/workers/chunks/{24646a1176ce34039155.js → cdf6ad970dc1893dac58.js} +1 -1
- package/assets/esri/core/workers/chunks/{fbb23db01f3cf629d32e.js → d05088622cf232fe5dc3.js} +1 -1
- package/assets/esri/core/workers/chunks/d13e003c9293cb7e2852.js +1 -0
- package/assets/esri/core/workers/chunks/d24e027bb8b2c09f25c8.js +1 -0
- package/assets/esri/core/workers/chunks/d2df8c328054dc6cb7b7.js +1 -0
- package/assets/esri/core/workers/chunks/d52864823067e57a719a.js +1 -0
- package/assets/esri/core/workers/chunks/d5c35a75fd4c41def420.js +1 -0
- package/assets/esri/core/workers/chunks/d7be278aed1fb37ad5ec.js +1 -0
- package/assets/esri/core/workers/chunks/d9d0a07245ee5117d2a0.js +1 -0
- package/assets/esri/core/workers/chunks/da1e8b338ab9fe9e0a8e.js +1 -0
- package/assets/esri/core/workers/chunks/dd920a6f6422fa213eba.js +1 -0
- package/assets/esri/core/workers/chunks/e1505ec80b068011bdc5.js +1 -0
- package/assets/esri/core/workers/chunks/e16b7ff4bf24fb99f7ea.js +1 -0
- package/assets/esri/core/workers/chunks/e1bf87077541da6853c6.js +1 -0
- package/assets/esri/core/workers/chunks/e279bcbe4f10e87bde6c.js +1 -0
- package/assets/esri/core/workers/chunks/e33d2ede6c9f1527d51b.js +1 -0
- package/assets/esri/core/workers/chunks/e4406baf206b9e4c7e4f.js +1 -0
- package/assets/esri/core/workers/chunks/e499252cb52f7aed49a0.js +1 -0
- package/assets/esri/core/workers/chunks/{e178cd0e9178d6716410.js → e5837e5ac6ef761f26a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{50dc9893e13396f5e35d.js → e69d03917e28c8213b27.js} +2 -2
- package/assets/esri/core/workers/chunks/e6a7272b59a4c2e34dca.js +1 -0
- package/assets/esri/core/workers/chunks/e912b515704e20313e53.js +1 -0
- package/assets/esri/core/workers/chunks/eabeaab5c4810f999a4d.js +1 -0
- package/assets/esri/core/workers/chunks/ec1841e6e498d54012eb.js +1 -0
- package/assets/esri/core/workers/chunks/ec723f8777b935c5e81a.js +1 -0
- package/assets/esri/core/workers/chunks/ed3d16a5b4084ef61f8a.js +1 -0
- package/assets/esri/core/workers/chunks/ef46ef4f0ee9f2aeaa4a.js +1 -0
- package/assets/esri/core/workers/chunks/efb4aa5886730ea377bd.js +1 -0
- package/assets/esri/core/workers/chunks/f2a268c69f2a5566381b.js +1 -0
- package/assets/esri/core/workers/chunks/f590db684d88e72bd79b.js +1 -0
- package/assets/esri/core/workers/chunks/{fea74a2bbb67d381e837.js → f622ae3887c85535e8ab.js} +1 -1
- package/assets/esri/core/workers/chunks/f69df22a5c64389ebe28.js +1 -0
- package/assets/esri/core/workers/chunks/{f60292d97bcdbf19165b.js → f6d047358d14328f3622.js} +1 -1
- package/assets/esri/core/workers/chunks/f7fca88d120d45bb782a.js +1 -0
- package/assets/esri/core/workers/chunks/f819854098d63fe4ccdb.js +1 -0
- package/assets/esri/core/workers/chunks/f8f3579d0c1b65762902.js +1 -0
- package/assets/esri/core/workers/chunks/f98118127469449ca145.js +1 -0
- package/assets/esri/core/workers/chunks/{5abe34bb0110694f7b42.js → faad127dc07e54e7f6d1.js} +1 -1
- package/assets/esri/core/workers/chunks/fb6605be0c5e36785543.js +1 -0
- package/assets/esri/core/workers/chunks/fbe7dae0b4bf2d172487.js +1 -0
- package/assets/esri/core/workers/chunks/fd70a25ffdf2cc6c5be2.js +1 -0
- package/assets/esri/core/workers/chunks/{319ff04282dc8ae38b56.js → fde12f5b7989c0fac67b.js} +2 -2
- package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
- package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
- package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
- package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +38 -8
- package/assets/esri/themes/base/widgets/_DatePicker.scss +1 -1
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/GlowComposition.glsl.js +2 -2
- package/chunks/RealisticTree.glsl.js +17 -15
- package/chunks/bundle2.js +1 -1
- package/chunks/lyr3DMain.js +1 -1
- package/chunks/lyr3DWorker.js +1 -1
- package/chunks/vxlLayer.js +1 -1
- package/config.d.ts +2 -2
- package/config.js +1 -1
- package/core/Collection.d.ts +25 -25
- package/core/Error.d.ts +1 -1
- package/core/JSONSupport.d.ts +1 -1
- package/core/has.js +1 -1
- package/core/promiseUtils.d.ts +3 -3
- package/core/reactiveUtils.d.ts +4 -4
- package/core/sql/WhereClause.d.ts +1 -1
- package/core/sql.d.ts +1 -1
- package/core/timeUtils.d.ts +1 -1
- package/core/workers/Connection.d.ts +9 -9
- package/core/workers.d.ts +1 -1
- package/editing/types.d.ts +3 -3
- package/geometry/Extent.d.ts +0 -13
- package/geometry/Geometry.d.ts +10 -8
- package/geometry/Mesh.d.ts +9 -2
- package/geometry/Mesh.js +1 -1
- package/geometry/Point.d.ts +15 -71
- package/geometry/support/MeshMaterial.d.ts +5 -5
- package/geometry/support/MeshTexture.d.ts +19 -19
- package/geometry/support/jsonUtils.d.ts +1 -1
- package/geometry/support/meshUtils.d.ts +130 -2
- package/geometry/support/meshUtils.js +1 -1
- package/graphic/AnnotationGraphicOrigin.d.ts +34 -0
- package/graphic/AnnotationGraphicOrigin.js +2 -0
- package/graphic/DimensionFeatureGraphicOrigin.d.ts +34 -0
- package/graphic/DimensionFeatureGraphicOrigin.js +2 -0
- package/identity/Credential.d.ts +1 -1
- package/identity/IdentityManager.d.ts +1 -1
- package/identity/IdentityManagerBase.js +1 -1
- package/identity/OAuthInfo.d.ts +1 -1
- package/identity/ServerInfo.d.ts +2 -2
- package/interfaces.d.ts +23 -0
- package/intl/number.d.ts +3 -3
- package/intl/substitute.d.ts +2 -2
- package/intl.d.ts +28 -28
- package/kernel.js +1 -1
- package/layers/AnnotationLayer.d.ts +263 -32
- package/layers/AnnotationLayer.js +1 -1
- package/layers/BaseDynamicLayer.d.ts +5 -5
- package/layers/BaseTileLayer.d.ts +4 -4
- package/layers/BuildingSceneLayer.d.ts +1 -1
- package/layers/CSVLayer.d.ts +1 -1
- package/layers/DimensionFeatureLayer.d.ts +263 -32
- package/layers/DimensionFeatureLayer.js +1 -1
- package/layers/FeatureLayer.d.ts +8 -7
- package/layers/FeatureLayer.js +1 -1
- package/layers/GeoJSONLayer.d.ts +8 -8
- package/layers/MapImageLayer.d.ts +5 -5
- package/layers/MediaLayer.d.ts +2 -2
- package/layers/OrientedImageryLayer.d.ts +1 -1
- package/layers/ParquetLayer.d.ts +22 -2
- package/layers/SceneLayer.d.ts +5 -3
- package/layers/SceneLayer.js +1 -1
- package/layers/StreamLayer.d.ts +1 -1
- package/layers/SubtypeGroupLayer.d.ts +1 -1
- package/layers/TileLayer.d.ts +2 -2
- package/layers/VideoLayer.d.ts +8 -2
- package/layers/VideoLayer.js +1 -1
- package/layers/VoxelLayer.d.ts +4 -4
- package/layers/WCSLayer.d.ts +2 -2
- package/layers/WebTileLayer.d.ts +1 -1
- package/layers/catalog/CatalogFootprintLayer.d.ts +40 -10
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/parquet/FileProvider.js +1 -1
- package/layers/graphics/sources/parquet/ParquetFileInfo.js +2 -0
- package/layers/graphics/sources/parquet/ParquetFileStatistics.js +2 -0
- package/layers/graphics/sources/parquet/PortalParquetFileProvider.js +1 -1
- package/layers/graphics/sources/parquet/PortalParquetLayerFileProvider.js +1 -1
- package/layers/graphics/sources/parquet/UrlsFileProvider.js +1 -1
- package/layers/graphics/sources/parquet/createFileProvider.js +1 -1
- package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
- package/layers/mixins/BlendLayer.d.ts +1 -1
- package/layers/mixins/DataSeriesLayer.d.ts +161 -0
- package/layers/mixins/DataSeriesLayer.js +2 -0
- package/layers/mixins/FeatureLayerBase.d.ts +43 -19
- package/layers/mixins/TemporalLayer.d.ts +4 -2
- package/layers/orientedImagery/core/coverageUtils.js +1 -1
- package/layers/support/AnnotationSublayer.d.ts +44 -0
- package/layers/support/AnnotationSublayer.js +2 -0
- package/layers/support/DateTimeFieldFormat.d.ts +10 -10
- package/layers/support/FeatureEffect.d.ts +22 -22
- package/layers/support/Field.d.ts +2 -2
- package/layers/support/GeometryEncodingLocation.d.ts +1 -1
- package/layers/support/GeometryEncodingWkb.d.ts +3 -2
- package/layers/support/ImageElement.d.ts +1 -1
- package/layers/support/NumberFieldFormat.d.ts +5 -5
- package/layers/support/ParquetFilesData.d.ts +13 -3
- package/layers/support/ParquetPortalItemData.d.ts +12 -1
- package/layers/support/StreamConnection.d.ts +1 -1
- package/layers/support/Sublayer.d.ts +2 -2
- package/layers/support/TimeSeriesFieldTimeMapping.d.ts +30 -0
- package/layers/support/TimeSeriesFieldTimeMapping.js +2 -0
- package/layers/support/TimeSeriesInfo.d.ts +149 -0
- package/layers/support/TimeSeriesInfo.js +2 -0
- package/layers/support/VideoElement.d.ts +1 -1
- package/layers/support/commonProperties.js +1 -1
- package/layers/support/dataSeriesUtils.d.ts +18 -0
- package/layers/support/dataSeriesUtils.js +2 -0
- package/layers/support/featureLayerUtils.js +1 -1
- package/layers/support/kmlUtils.js +1 -1
- package/layers/support/layerUtils.js +1 -1
- package/layers/support/parquetUtils.js +1 -1
- package/layers/support/tiles3DUtils.js +1 -1
- package/layers/support/timeSeriesUtils.d.ts +27 -0
- package/layers/support/timeSeriesUtils.js +2 -0
- package/layers/types.d.ts +1 -1
- package/layers/video/types.d.ts +61 -1
- package/libs/parquet/parquet.js +1 -1
- package/linkChart/ChronologicalLayoutSettings.d.ts +1 -1
- package/networks/CircuitManager.d.ts +1 -1
- package/networks/Network.d.ts +1 -1
- package/networks/UnitIdentifierManager.d.ts +1 -1
- package/networks/support/NamedTraceConfiguration.d.ts +1 -1
- package/networks/support/TraceConfiguration.d.ts +2 -2
- package/networks/support/UNTraceConfiguration.d.ts +3 -3
- package/networks/support/jsonTypes.d.ts +7 -1
- package/networks/support/utils.js +1 -1
- package/package.json +2 -2
- package/popup/content/CustomContent.d.ts +1 -1
- package/portal/Portal.d.ts +2 -2
- package/portal/jsonTypes.d.ts +2 -2
- package/renderers/support/AuthoringInfo.d.ts +14 -1
- package/renderers/support/AuthoringInfo.js +1 -1
- package/renderers/support/AuthoringInfoVisualVariable.d.ts +14 -1
- package/renderers/support/AuthoringInfoVisualVariable.js +1 -1
- package/renderers/support/jsonUtils.d.ts +1 -1
- package/renderers/support/utils.d.ts +1 -1
- package/renderers/visualVariables/RotationVariable.d.ts +16 -1
- package/renderers/visualVariables/RotationVariable.js +1 -1
- package/request/types.d.ts +41 -43
- package/rest/geometryService.d.ts +1 -1
- package/rest/knowledgeGraph/GraphApplyEdits.d.ts +1 -1
- package/rest/knowledgeGraph/GraphQueryStreamingResult.d.ts +2 -2
- package/rest/knowledgeGraphService.d.ts +13 -13
- package/rest/layerSources/DynamicDataLayer.d.ts +1 -1
- package/rest/print.d.ts +1 -1
- package/rest/support/ClosestFacilityParameters.d.ts +6 -6
- package/rest/support/LastMileDeliveryParameters.d.ts +4 -4
- package/rest/support/LocationToAddressParameters.d.ts +1 -1
- package/rest/support/PrintTemplate.d.ts +5 -5
- package/rest/support/Query.d.ts +2 -2
- package/rest/support/RouteParameters.d.ts +5 -5
- package/rest/support/ServiceAreaParameters.d.ts +6 -6
- package/rest/support/meshFeatureSet.js +1 -1
- package/smartMapping/renderers/color.d.ts +40 -0
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/opacity.d.ts +8 -0
- package/smartMapping/renderers/opacity.js +1 -1
- package/smartMapping/renderers/size.d.ts +38 -0
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/regenerateUtils.js +1 -1
- package/smartMapping/renderers/support/timeSeriesUtils.js +2 -0
- package/smartMapping/renderers/type.d.ts +20 -1
- package/smartMapping/renderers/type.js +1 -1
- package/smartMapping/renderers/univariateColorSize.d.ts +19 -0
- package/smartMapping/renderers/univariateColorSize.js +1 -1
- package/support/revision.js +1 -1
- package/support/tests/setupServiceMocksMesh.js +1 -1
- package/support/timeUtils.d.ts +3 -3
- package/symbols/Font.d.ts +7 -7
- package/symbols/WebStyleSymbol.d.ts +11 -11
- package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
- package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
- package/symbols/support/Symbol3DEmissive.d.ts +8 -2
- package/symbols/support/jsonUtils.d.ts +1 -1
- package/time/TimeExtent.d.ts +2 -2
- package/versionManagement/VersionManagementService.d.ts +8 -8
- package/versionManagement/VersionManager.d.ts +13 -3
- package/versionManagement/VersioningState.d.ts +4 -4
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/BaseLayerView2D.d.ts +1 -1
- package/views/2d/layers/BaseLayerViewGL2D.d.ts +3 -3
- package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
- package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
- package/views/2d/layers/GraphicsLayerView2D.js +1 -1
- package/views/2d/layers/ImageryLayerView2D.js +1 -1
- package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
- package/views/2d/layers/KMLLayerView2D.js +1 -1
- package/views/2d/layers/MapNotesLayerView2D.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/RouteLayerView2D.js +1 -1
- package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
- package/views/2d/layers/features/sources/strategies/ParquetSnapshotLoadStrategy.js +1 -1
- package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
- package/views/2d/layers/graphics/GraphicStore.js +1 -1
- package/views/2d/support/hitTestUtils.js +1 -1
- package/views/3d/glTF/internal/resourceUtils.js +1 -1
- package/views/3d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles3D.js +1 -1
- package/views/3d/layers/FlowSubView3D.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/webgl/RenderNode.d.ts +32 -11
- package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ToneMapping.glsl.js +6 -10
- package/views/BreakpointsOwner.d.ts +1 -1
- package/views/DOMContainer.d.ts +6 -6
- package/views/Magnifier.d.ts +1 -1
- package/views/MapView.d.ts +1 -1
- package/views/SceneView.d.ts +2 -2
- package/views/Viewport2DMixin.d.ts +1 -1
- package/views/input/gamepad/GamepadInputDevice.d.ts +1 -1
- package/views/input/types.d.ts +15 -15
- package/views/layers/FeatureLikeLayerView.d.ts +25 -1
- package/views/layers/FeatureLikeLayerView.js +1 -1
- package/views/navigation/Navigation.d.ts +1 -1
- package/views/support/WebAssemblyRequirements.js +1 -1
- package/views/types.d.ts +5 -5
- package/webdoc/support/webdocSaveUtils.js +1 -1
- package/webscene/Glow.d.ts +0 -4
- package/widgets/BasemapGallery.d.ts +1 -1
- package/widgets/BasemapLayerList.d.ts +1 -1
- package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +10 -2
- package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
- package/widgets/BatchAttributeForm/ReactiveContingentValuesManager.js +1 -1
- package/widgets/BatchAttributeForm/attachmentUtils.d.ts +14 -0
- package/widgets/BatchAttributeForm/attachmentUtils.js +1 -1
- package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
- package/widgets/BatchAttributeForm/css.js +1 -1
- package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.d.ts +8 -6
- package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
- package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
- package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/attachmentValidationCriteriaState.d.ts +5 -0
- package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
- package/widgets/BatchAttributeForm/inputs/types.d.ts +8 -1
- package/widgets/BatchAttributeForm/interfaceUtils.js +1 -1
- package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +1 -1
- package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
- package/widgets/BatchAttributeForm.d.ts +10 -2
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/Bookmarks.d.ts +1 -1
- package/widgets/BuildingExplorer.d.ts +1 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +2 -2
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
- package/widgets/CoordinateConversion.d.ts +2 -2
- package/widgets/Daylight.d.ts +1 -1
- package/widgets/Directions.d.ts +1 -1
- package/widgets/Editor.d.ts +1 -1
- package/widgets/Feature.d.ts +1 -1
- package/widgets/FeatureForm.d.ts +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/Column.d.ts +1 -1
- package/widgets/FeatureTable/Grid/Column.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/GroupColumn.js +1 -1
- package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/FeatureTemplates.d.ts +1 -1
- package/widgets/FloorFilter.d.ts +1 -1
- package/widgets/Fullscreen/FullscreenViewModel.d.ts +3 -3
- package/widgets/Fullscreen/FullscreenViewModel.js +1 -1
- package/widgets/Fullscreen.d.ts +3 -3
- package/widgets/LayerList/ListItemPanel.d.ts +5 -5
- package/widgets/Legend.d.ts +1 -1
- package/widgets/Locate/LocateViewModel.d.ts +2 -2
- package/widgets/Locate.d.ts +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/PanoramicViewer/utils.js +1 -1
- package/widgets/Popup.d.ts +1 -1
- package/widgets/Print/PrintViewModel.d.ts +2 -2
- package/widgets/Print/PrintViewModel.js +1 -1
- package/widgets/Print/TemplateOptions.d.ts +4 -4
- package/widgets/Print.d.ts +6 -6
- package/widgets/Search/SearchViewModel.d.ts +5 -5
- package/widgets/Search.d.ts +4 -4
- package/widgets/ShadowCast.d.ts +1 -1
- package/widgets/Sketch/SketchViewModel.d.ts +1 -1
- package/widgets/Slice.d.ts +1 -1
- package/widgets/TableList/ListItemPanel.d.ts +5 -5
- package/widgets/Track/TrackViewModel.d.ts +3 -3
- package/widgets/Track.d.ts +3 -3
- package/widgets/UtilityNetworkTrace.d.ts +1 -1
- package/widgets/VersionManagement/VersionManagementViewModel.d.ts +2 -2
- package/widgets/VideoPlayer/VideoPlayerViewModel.d.ts +7 -1
- package/widgets/VideoPlayer/VideoPlayerViewModel.js +1 -1
- package/widgets/Weather.d.ts +1 -1
- package/widgets/Widget.d.ts +1 -1
- package/widgets/support/ContingentValuesManager.js +1 -1
- package/widgets/support/forms/formUtils.js +1 -1
- package/widgets/support/types.d.ts +1 -1
- package/widgets/support/widget.d.ts +6 -6
- package/assets/esri/core/workers/chunks/02aaeaa988e9e7d65a7f.js +0 -1
- package/assets/esri/core/workers/chunks/08feff1d2f67cbfdc707.js +0 -1
- package/assets/esri/core/workers/chunks/0a780a883abfcdf0b900.js +0 -1
- package/assets/esri/core/workers/chunks/0fbf9bf52ecb4cd8293b.js +0 -1
- package/assets/esri/core/workers/chunks/106fc271e0b9300ef97c.js +0 -1
- package/assets/esri/core/workers/chunks/119d352dd586f2bb61ec.js +0 -1
- package/assets/esri/core/workers/chunks/130784a27661de6b52a5.js +0 -1
- package/assets/esri/core/workers/chunks/145364aa20b4435294c2.js +0 -1
- package/assets/esri/core/workers/chunks/14c6419568d8a7a15cd6.js +0 -1
- package/assets/esri/core/workers/chunks/153dc2a0b08a0e44a881.js +0 -1
- package/assets/esri/core/workers/chunks/1595dc499a06b23b6a96.js +0 -1
- package/assets/esri/core/workers/chunks/16713986893adfbc9331.js +0 -1
- package/assets/esri/core/workers/chunks/1765042635084f75d2b3.js +0 -1
- package/assets/esri/core/workers/chunks/179c9fe4ac83b42e5976.js +0 -1
- package/assets/esri/core/workers/chunks/1c1515e020e32e177b54.js +0 -1
- package/assets/esri/core/workers/chunks/1c64e10f966e26af6fed.js +0 -1
- package/assets/esri/core/workers/chunks/201007cf1a91e2b126fc.js +0 -1
- package/assets/esri/core/workers/chunks/20d0adc678f11981059c.js +0 -1
- package/assets/esri/core/workers/chunks/227eff8aa4a6f5f03bc2.js +0 -1
- package/assets/esri/core/workers/chunks/233ff588798c8a5eedf4.js +0 -1
- package/assets/esri/core/workers/chunks/24647e7424798dccdaf5.js +0 -1
- package/assets/esri/core/workers/chunks/249616ea2d90d40a8299.js +0 -1
- package/assets/esri/core/workers/chunks/24d9e4f1c7b8ff0d2cce.js +0 -1
- package/assets/esri/core/workers/chunks/24eaf1349ffe10e616e6.js +0 -1
- package/assets/esri/core/workers/chunks/2bd334f9ab89334df713.js +0 -1
- package/assets/esri/core/workers/chunks/2c8584ec1c3c9fd5aba2.js +0 -1
- package/assets/esri/core/workers/chunks/2d374cc8c54a722a7afe.js +0 -1
- package/assets/esri/core/workers/chunks/2e11b4e9d66474a60064.js +0 -1
- package/assets/esri/core/workers/chunks/2fa080539d039c92ce08.js +0 -1
- package/assets/esri/core/workers/chunks/3109b05fe4fc40d4f25b.js +0 -1
- package/assets/esri/core/workers/chunks/31442f25d550ead58fc4.js +0 -1
- package/assets/esri/core/workers/chunks/32323b0e0fcecd8f640e.js +0 -1
- package/assets/esri/core/workers/chunks/330da3828eefd8d72d3f.js +0 -1
- package/assets/esri/core/workers/chunks/388e71e8f2ec41bfa5a9.js +0 -1
- package/assets/esri/core/workers/chunks/3a6678ee9990d7e83e15.js +0 -1
- package/assets/esri/core/workers/chunks/3aacaa1be5efeac23a37.js +0 -1
- package/assets/esri/core/workers/chunks/3b3986276e70297d573b.js +0 -1
- package/assets/esri/core/workers/chunks/3b765a8cac9e92f644f2.js +0 -1
- package/assets/esri/core/workers/chunks/3bf6d55511cd7722eb93.js +0 -1
- package/assets/esri/core/workers/chunks/3e012cd3ca4451f89f59.js +0 -1
- package/assets/esri/core/workers/chunks/40910c69307e2d2d3f28.js +0 -1
- package/assets/esri/core/workers/chunks/423a9882abd4a6dadf86.js +0 -1
- package/assets/esri/core/workers/chunks/428561df7ba6f02e2d80.js +0 -1
- package/assets/esri/core/workers/chunks/45323491f9005629c602.js +0 -1
- package/assets/esri/core/workers/chunks/45a8d80f1328b0b4b055.js +0 -1
- package/assets/esri/core/workers/chunks/46d0a25d33b5b328cfce.js +0 -1
- package/assets/esri/core/workers/chunks/46fbd519cc1a37923bfc.js +0 -1
- package/assets/esri/core/workers/chunks/47dd2bfecc5c4b5f10f0.js +0 -1
- package/assets/esri/core/workers/chunks/4845df00f6ebcce6ea3e.js +0 -1
- package/assets/esri/core/workers/chunks/4a9dd9f8aa98882218f3.js +0 -1
- package/assets/esri/core/workers/chunks/4bfffdfbe6d467f143a4.js +0 -1
- package/assets/esri/core/workers/chunks/4ef53455c8bc6efee80e.js +0 -1
- package/assets/esri/core/workers/chunks/518046d2b95a7590a092.js +0 -1
- package/assets/esri/core/workers/chunks/51ee6102f5f4840a5b47.js +0 -1
- package/assets/esri/core/workers/chunks/54dad475dc806a38c287.js +0 -1
- package/assets/esri/core/workers/chunks/552945a73a95cd2a9f54.js +0 -1
- package/assets/esri/core/workers/chunks/58155f24f8ed6aca7a21.js +0 -1
- package/assets/esri/core/workers/chunks/5838f46d341d2fde42ee.js +0 -1
- package/assets/esri/core/workers/chunks/58994b6bfcda5f2ada80.js +0 -1
- package/assets/esri/core/workers/chunks/592a599f514de373dead.js +0 -1
- package/assets/esri/core/workers/chunks/5aba23584e0b230c75f5.js +0 -1
- package/assets/esri/core/workers/chunks/5f9bacee6fbf9ac1bca0.js +0 -1
- package/assets/esri/core/workers/chunks/62206d5d497b95fc4caf.js +0 -1
- package/assets/esri/core/workers/chunks/624b1bb269744142b835.js +0 -1
- package/assets/esri/core/workers/chunks/64daa2a714e59d22bbd4.js +0 -1
- package/assets/esri/core/workers/chunks/6637f19b82555738a1d5.js +0 -1
- package/assets/esri/core/workers/chunks/6c9933f948efd7923aa1.js +0 -1
- package/assets/esri/core/workers/chunks/6db274f6767102a39021.js +0 -1
- package/assets/esri/core/workers/chunks/7014e73dfd3c8baa704c.js +0 -1
- package/assets/esri/core/workers/chunks/76589434d573111a8fb4.js +0 -1
- package/assets/esri/core/workers/chunks/767ea5b455b3823afd09.js +0 -1
- package/assets/esri/core/workers/chunks/77769663cd712822d33e.js +0 -1
- package/assets/esri/core/workers/chunks/77859a61d059738d057f.js +0 -1
- package/assets/esri/core/workers/chunks/7b564226def99fcf79d8.js +0 -1
- package/assets/esri/core/workers/chunks/7bbffe07e62897928773.js +0 -1
- package/assets/esri/core/workers/chunks/7cadfd7444a2a05cf2fb.js +0 -1
- package/assets/esri/core/workers/chunks/823789261ca3338f0fa8.js +0 -1
- package/assets/esri/core/workers/chunks/84b0b6e099d949e0fea5.js +0 -1
- package/assets/esri/core/workers/chunks/8f94c90fdb0333da2d0f.js +0 -1
- package/assets/esri/core/workers/chunks/9a6e62ef984e9c5babc4.js +0 -1
- package/assets/esri/core/workers/chunks/9dcfaca1f4fa8c8026ac.js +0 -1
- package/assets/esri/core/workers/chunks/9f23a61c60949459c14f.js +0 -30
- package/assets/esri/core/workers/chunks/a03c4c0bf138734a002e.js +0 -1
- package/assets/esri/core/workers/chunks/a0fa60a24e58f7a47e41.js +0 -1
- package/assets/esri/core/workers/chunks/a806ac351ef5da04c250.js +0 -1
- package/assets/esri/core/workers/chunks/ab94c9f62462d7a98f6a.js +0 -1
- package/assets/esri/core/workers/chunks/abdb05754c50776c3edd.js +0 -1
- package/assets/esri/core/workers/chunks/ad488985824fbb830ed6.js +0 -1
- package/assets/esri/core/workers/chunks/b08a1255dacf6cfcf139.js +0 -640
- package/assets/esri/core/workers/chunks/b098469e0010a6b44df9.js +0 -1
- package/assets/esri/core/workers/chunks/b0ac4b0b7aec70cfe6eb.js +0 -1
- package/assets/esri/core/workers/chunks/b1f1271434af302938e8.js +0 -1
- package/assets/esri/core/workers/chunks/bfbd1ca28ed2f263e58f.js +0 -1
- package/assets/esri/core/workers/chunks/c1b6de0d728d25d7905a.js +0 -1
- package/assets/esri/core/workers/chunks/c27cb2a83a1d2e004501.js +0 -1
- package/assets/esri/core/workers/chunks/c44be4aaba829e6d149d.js +0 -1
- package/assets/esri/core/workers/chunks/ca1b0cb14ea9ae1bf2a3.js +0 -1
- package/assets/esri/core/workers/chunks/ca4245414d8ecd217f9d.js +0 -1
- package/assets/esri/core/workers/chunks/cc479daacd2cf715baa8.js +0 -1
- package/assets/esri/core/workers/chunks/ce0e627a5e1cb78adce8.js +0 -1
- package/assets/esri/core/workers/chunks/cf7acf5acb6d322fd996.js +0 -1
- package/assets/esri/core/workers/chunks/d3af51a6d9014ff46170.js +0 -1
- package/assets/esri/core/workers/chunks/d561dc933d8fe1672d85.js +0 -1
- package/assets/esri/core/workers/chunks/d81291dac1932350eccd.js +0 -1
- package/assets/esri/core/workers/chunks/da3c54e27a808f4fcc18.js +0 -1
- package/assets/esri/core/workers/chunks/dc6d50e1097a920ff820.js +0 -1
- package/assets/esri/core/workers/chunks/dd58286dde3b20356f84.js +0 -1
- package/assets/esri/core/workers/chunks/dfeddb7b17fa9eaae64c.js +0 -1
- package/assets/esri/core/workers/chunks/e38836bfcc7a15a2fd1f.js +0 -1
- package/assets/esri/core/workers/chunks/e4e0c5a45cf32973d5d5.js +0 -1
- package/assets/esri/core/workers/chunks/e638391801ad83fe4a68.js +0 -1
- package/assets/esri/core/workers/chunks/e755477dc78e9d6038d4.js +0 -1
- package/assets/esri/core/workers/chunks/e7712467db46e1385cf4.js +0 -1
- package/assets/esri/core/workers/chunks/e9dcc3e9dbafe9bbed84.js +0 -1
- package/assets/esri/core/workers/chunks/ea8f642b1db933d2c26f.js +0 -1
- package/assets/esri/core/workers/chunks/eabd4a78221b7e733793.js +0 -1
- package/assets/esri/core/workers/chunks/ed2cb60e4f17f46fb78d.js +0 -1
- package/assets/esri/core/workers/chunks/edb55329305becdb204f.js +0 -1
- package/assets/esri/core/workers/chunks/eedee0af459e6b8a6116.js +0 -1
- package/assets/esri/core/workers/chunks/f05932aea4eb267cba4d.js +0 -1
- package/assets/esri/core/workers/chunks/f1fb2f12371f4c562079.js +0 -1
- package/assets/esri/core/workers/chunks/f3dfe1bd1146a6927407.js +0 -1
- package/assets/esri/core/workers/chunks/f79bd469b25099a31274.js +0 -1
- package/assets/esri/core/workers/chunks/ff48334528d2554db4fe.js +0 -1
- /package/assets/esri/core/workers/chunks/{50dc9893e13396f5e35d.js.LICENSE.txt → e69d03917e28c8213b27.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{319ff04282dc8ae38b56.js.LICENSE.txt → fde12f5b7989c0fac67b.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../config.js";import r from"../../../request.js";import{isSome as s,remove as a}from"../../../core/arrayUtils.js";import i from"../../../core/Error.js";import has from"../../../core/has.js";import{JSONMap as n}from"../../../core/jsonMap.js";import{Loadable as o}from"../../../core/Loadable.js";import u from"../../../core/Logger.js";import{setDeepValue as l}from"../../../core/object.js";import{debounce as c,after as d,throwIfAbortError as p}from"../../../core/promiseUtils.js";import{watch as y}from"../../../core/reactiveUtils.js";import{join as h}from"../../../core/urlUtils.js";import{generateBracedUUID as m}from"../../../core/uuid.js";import{property as f,subclass as g}from"../../../core/accessorSupport/decorators.js";import q from"../../../geometry/Extent.js";import w from"../../../geometry/SpatialReference.js";import S from"../../../geometry/support/MeshGeoreferencedVertexSpace.js";import{isRelativeVertexSpace as E}from"../../../geometry/support/meshVertexSpaceUtils.js";import{isOriginalExternal as O}from"../../../geometry/support/meshUtils/External.js";import{createFeatureEditResult as b,getFeatureJSON as _,getFeatureIds as R,getAttachmentEditsJSON as A,isProtectedOrPrivateVersionError as F,unpackEditResultData as I,createEditedFeatures as v}from"../applyEditsUtils.js";import{createDrawingInfo as x}from"./support/clientSideDefaults.js";import j from"./support/QueryTask.js";import{isHostedAgolService as T}from"../../support/arcgisLayerUrl.js";import{ensureLayerCredential as M}from"../../support/featureLayerUtils.js";import{getAssetMapTable as N}from"../../support/infoFor3D.js";import{executeQueryJSON as U}from"../../../rest/query/executeQueryJSON.js";import{unapplyEditsZUnitScaling as C}from"../../../rest/query/operations/editsZScale.js";import D from"../../../rest/support/Query.js";import L from"../../../time/TimeExtent.js";import{isSafeToEditVersion as J,isVersionInEditSession as k,isHistoricVersion as Q,currentSessionId as P}from"../../../versionManagement/support/versionManagementUtils.js";const V=new n({originalAndCurrentFeatures:"original-and-current-features",none:"none"}),$=new n({Started:"published",Publishing:"publishing",Stopped:"unavailable"});let B=class extends o{constructor(e){super(e),this.type="feature-layer",this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer","Annotation Layer","Dimension Layer","Annotation SubLayer","Dimension SubLayer"]),this.refresh=c(async()=>{await this.load();const e=this.sourceJSON.editingInfo?.lastEditDate;if(null==e)return{dataChanged:!0,updates:{}};try{await this._fetchService(null)}catch{return{dataChanged:!0,updates:{}}}const t=e!==this.sourceJSON.editingInfo?.lastEditDate;return{dataChanged:t,updates:t?{editingInfo:this.sourceJSON.editingInfo,extent:this.sourceJSON.extent}:null}}),this._ongoingAssetUploads=new Map}load(e){const t=this.layer.sourceJSON,r=this._fetchService(t,{...e}).then(()=>this.layer.setUserPrivileges(this.sourceJSON.serviceItemId,e)).then(()=>this._ensureLatestMetadata(e));return this.addResolvingPromise(r),Promise.resolve(this)}initialize(){this.addHandles([y(()=>{const e=this.layer;return e&&"lastEditsEventDate"in e?e.lastEditsEventDate:null},e=>this._handleLastEditsEventChange(e))])}destroy(){this._removeEditInterceptor()}get queryTask(){const{capabilities:e,parsedUrl:t,gdbVersion:r,spatialReference:s,fieldsIndex:a,uniqueIdFields:i}=this.layer,n="infoFor3D"in this.layer?this.layer.infoFor3D:null,o="dynamicDataSource"in this.layer?this.layer.dynamicDataSource:null,u=has("featurelayer-pbf")&&e?.query.supportsFormatPBF&&null==n,l=u&&e?.query.supportsFormatPBFWithCurves,c=e?.operations?.supportsQueryAttachments??!1,d=e?.query?.relativeTimeBinWindow??0,p=t.path;return new j({dynamicDataSource:o,fieldsIndex:a,gdbVersion:r,infoFor3D:n,pbfSupported:u,pbfSupportedWithCurves:l,queryAttachmentsSupported:c,relativeTimeBinWindow:d,sourceSpatialReference:s,uniqueIdFields:i,url:p})}async addAttachment(e,t){await this.load();const{layer:s}=this;await M(s,"editing");const a=e.attributes[s.objectIdField],i=s.parsedUrl.path+"/"+a+"/addAttachment",n=this._getLayerRequestOptions(),o=this._getFormDataForAttachment(t,n.query);try{const e=await r(i,{body:o});return b(e.data.addAttachmentResult)}catch(u){throw this._createAttachmentErrorResult(a,u)}}async updateAttachment(e,t,s){await this.load();const{layer:a}=this;await M(a,"editing");const i=e.attributes[a.objectIdField],n=a.parsedUrl.path+"/"+i+"/updateAttachment",o=this._getLayerRequestOptions({query:{attachmentId:t}}),u=this._getFormDataForAttachment(s,o.query);try{const e=await r(n,{body:u});return b(e.data.updateAttachmentResult)}catch(l){throw this._createAttachmentErrorResult(i,l)}}async applyEdits(e,t){await this.load();const{layer:a}=this;await M(a,"editing");const n="infoFor3D"in a?a.infoFor3D:null,o=null!=n,u=o||(t?.globalIdUsed??!1),l=o?await this._uploadMeshesAndGetAssetMapEditsJSON(e):null,c=e.addFeatures?.map(e=>_(this.layer,e,n))??[],d=(await Promise.all(c)).filter(s),p=e.updateFeatures?.map(e=>_(this.layer,e,n))??[],y=(await Promise.all(p)).filter(s),h=R(this.layer,e.deleteFeatures,u);C(d,y,a.spatialReference);const m=await A(this.layer,e),f=a.capabilities.editing.supportsAsyncApplyEdits&&o,g=t?.gdbVersion||a.gdbVersion,q={gdbVersion:g,rollbackOnFailure:t?.rollbackOnFailureEnabled,useGlobalIds:u,returnEditMoment:t?.returnEditMoment,trueCurveClient:t?.editsRespectTrueCurves,usePreviousEditMoment:t?.usePreviousEditMoment,async:f};await J(this.layer.url,g,!0);const w=k(this.layer.url,g||null);if(await Q(a.url,g,a.historicMoment))throw new i("feature-layer-source:historic-version","Editing a historic version is not allowed");t?.returnServiceEditsOption?(q.edits=JSON.stringify([{id:a.layerId,adds:d.length?d:null,updates:y.length?y:null,deletes:h.length?h:null,attachments:m,assetMaps:l}]),q.returnServiceEditsOption=V.toJSON(t?.returnServiceEditsOption),q.returnServiceEditsInSourceSR=t?.returnServiceEditsInSourceSR):(q.adds=d.length?JSON.stringify(d):null,q.updates=y.length?JSON.stringify(y):null,q.deletes=h.length?u?JSON.stringify(h):h.join(","):null,q.attachments=m&&JSON.stringify(m),q.assetMaps=null!=l?JSON.stringify(l):void 0);const S=this._getLayerRequestOptions({method:"post",query:q});w&&(S.authMode="immediate",S.query.returnEditMoment=!0,S.query.sessionId=P);const E=t?.returnServiceEditsOption?a.url:a.parsedUrl.path;let O;try{O=f?await this._asyncApplyEdits(E+"/applyEdits",S):await r(E+"/applyEdits",S)}catch(b){if(!F(b))throw b;S.authMode="immediate",O=f?await this._asyncApplyEdits(E+"/applyEdits",S):await r(E+"/applyEdits",S)}return this._createEditsResult(O)}async deleteAttachments(e,t){await this.load();const{layer:s}=this;await M(s,"editing");const a=e.attributes[s.objectIdField],i=s.parsedUrl.path+"/"+a+"/deleteAttachments";try{return(await r(i,this._getLayerRequestOptions({query:{attachmentIds:t.join(",")},method:"post"}))).data.deleteAttachmentResults.map(b)}catch(n){throw this._createAttachmentErrorResult(a,n)}}fetchRecomputedExtents(e={}){const t=e.signal;return this.load({signal:t}).then(async()=>{const t=this._getLayerRequestOptions({...e,query:{returnUpdates:!0}}),{layerId:s,url:a}=this.layer,{data:i}=await r(`${a}/${s}`,t),{id:n,extent:o,fullExtent:u,timeExtent:l}=i,c=o||u;return{id:n,fullExtent:c&&q.fromJSON(c),timeExtent:l&&L.fromJSON({start:l[0],end:l[1]})}})}async queryAttachments(e,t={}){await this.load();const r=this._getLayerRequestOptions(t);return this.queryTask.executeAttachmentQuery(e,r)}async queryFeatures(e,t){await this.load();const r=await this.queryTask.execute(e,{...t,query:this._createRequestQueryOptions(t)});if(e.outStatistics?.length&&r.features.length){const t=new Map;if(r.features.forEach(r=>{const s=r.attributes;e.outStatistics?.forEach(({outStatisticFieldName:e})=>{if(e){const r=e.toLowerCase();r&&r in s&&e!==r&&(s[e]=s[r],delete s[r],t.set(r,e))}})}),null!=r.fields)for(const e of r.fields){const r=t.get(e.name.toLowerCase());null!=r&&(e.name=r)}}return r}async queryFeaturesJSON(e,t){return await this.load(),this.queryTask.executeJSON(e,{...t,query:this._createRequestQueryOptions(t)})}async queryObjectIds(e,t){return await this.load(),this.queryTask.executeForIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryFeatureCount(e,t){return await this.load(),this.queryTask.executeForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryExtent(e,t){return await this.load(),this.queryTask.executeForExtent(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeatures(e,t){return await this.load(),this.queryTask.executeRelationshipQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeaturesCount(e,t){return await this.load(),this.queryTask.executeRelationshipQueryForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryPivot(e,t){return await this.load(),this.queryTask.executePivotQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopFeatures(e,t){return await this.load(),this.queryTask.executeTopFeaturesQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryAttributeBins(e,t){return await this.load(),this.queryTask.executeAttributeBinsQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopObjectIds(e,t){return await this.load(),this.queryTask.executeForTopIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopExtents(e,t){return await this.load(),this.queryTask.executeForTopExtents(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopCount(e,t){return await this.load(),this.queryTask.executeForTopCount(e,{...t,query:this._createRequestQueryOptions(t)})}async fetchPublishingStatus(){if(!T(this.layer.url))return"unavailable";const e=h(this.layer.url,"status"),t=await r(e,{query:{f:"json"}});return $.fromJSON(t.data.status)}async uploadAssets(e,t){const{uploadAssets:r}=await import("./support/uploadAssets.js");return r(e,{layer:this.layer,ongoingUploads:this._ongoingAssetUploads},t)}_handleLastEditsEventChange(e){const t=this.layer;if(null==e||!("capabilities"in t)||!("effectiveCapabilities"in t))return;if(!(!t.capabilities?.operations?.supportsEditing&&t.effectiveCapabilities?.operations?.supportsEditing))return;const r=t.url;if(null==r)return;"layerId"in t&&h(r,t.layerId.toString());this._getOrCreateEditInterceptor(r).before=t=>{const r=t.requestOptions.method??"auto";if("auto"===r||"head"===r){const r=t.requestOptions.query??{};r._ts=e.getTime(),t.requestOptions.query=r}}}_getOrCreateEditInterceptor(e){return null==this._editInterceptor&&(this._editInterceptor={urls:e},t.request.internalInterceptors.push(this._editInterceptor)),this._editInterceptor}_removeEditInterceptor(){null!=this._editInterceptor&&(a(t.request.internalInterceptors,this._editInterceptor),this._editInterceptor=null)}async _asyncApplyEdits(e,t){const s=(await r(e,t)).data.statusUrl;for(;;){const e=(await r(s,{query:{f:"json"},responseType:"json"})).data;switch(e.status){case"Completed":return r(e.resultUrl,{query:{f:"json"},responseType:"json"});case"CompletedWithErrors":throw new i("async-applyEdits-failed","asynchronous applyEdits call failed.");case"Failed ImportChanges":case"InProgress":case"Pending":case"ExportAttachments":case"ExportChanges":case"ExportingData":case"ExportingSnapshot":case"ImportAttachments":case"ProvisioningReplica":case"UnRegisteringReplica":break;default:throw new i("async-applyEdits-failed","asynchronous applyEdits call failed (undefined response status)")}await d(G)}}_createRequestQueryOptions(e){const t={...this.layer.customParameters,token:this.layer.apiKey,...e?.query};return this.layer.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t}async _fetchService(e,t){if(!e){const s={};has("featurelayer-advanced-symbols")&&(s.returnAdvancedSymbols=!0),t?.cacheBust&&(s._ts=Date.now());const{data:a}=await r(this.layer.parsedUrl.path,this._getLayerRequestOptions({query:s,signal:t?.signal}));e=a}this.layer.applyPreferredHost(e),this.sourceJSON=await this._patchServiceJSON(e,t?.signal);const s=e.type;if(!this.supportedSourceTypes.has(s))throw new i("feature-layer-source:unsupported-type",`Source type "${s}" is not supported`)}async _patchServiceJSON(e,t){if("Table"!==e.type&&e.geometryType&&!e?.drawingInfo?.renderer&&!e.defaultSymbol){const t=x(e.geometryType).renderer;l("drawingInfo.renderer",t,e)}if("esriGeometryMultiPatch"===e.geometryType&&e.infoFor3D&&(e.geometryType="mesh"),null==e.extent)try{const{data:s}=await r(this.layer.url,this._getLayerRequestOptions({signal:t}));s.spatialReference&&(e.extent={xmin:0,ymin:0,xmax:0,ymax:0,spatialReference:s.spatialReference})}catch(s){p(s)}return e}async _ensureLatestMetadata(e){if(this.layer.userHasUpdateItemPrivileges&&this.sourceJSON.cacheMaxAge>0)return this._fetchService(null,{...e,cacheBust:!0})}async _uploadMeshesAndGetAssetMapEditsJSON(e){const{addAssetFeatures:t}=e;if(!t?.length)return null;if(await this._areAllAssetsAlreadyMapped(t))return null;const r=e.addFeatures.filter(e=>e.geometry);if(t.length!==r.length+e.updateFeatures.length)throw new i("feature-layer-source:unsupported-mesh-edits","Mixing attribute only edits with mesh geometry edits is not currently supported");const s=new Array,a=new Map;for(const i of t){const{geometry:e}=i,{vertexSpace:t}=e;if(E(t))s.push(e);else{const t=e.origin,{convertMeshVertexSpace:r}=await import("../../../geometry/support/meshUtils/convertMeshVertexSpace.js"),n=await r(e,new S({origin:[t.x,t.y,t.z??0]}));a.set(n,e),i.geometry=n,s.push(n)}}await this.uploadAssets(s);for(const[i,n]of a)n.addExternalSources(i.metadata.externalSources.items);return{adds:this._getAssetMapEditsJSON(t),updates:[],deletes:[]}}_getAssetMapEditsJSON(e){const t=new Array,r=this.layer.globalIdField,s=this.layer.parsedUrl;for(const a of e){const e=a.geometry,{metadata:i}=e,n=i.getExternalSourcesOnService(s),o=a.getAttribute(r);if(0===n.length){u.getLogger(this).error(`Skipping feature ${o}. The mesh it is associated with has not been uploaded to the service and cannot be mapped to it.`);continue}const{source:l}=n.find(O)??n[0];for(const r of l.assets)1===r.parts.length?t.push({globalId:m(),parentGlobalId:o,assetName:r.assetName,assetHash:r.parts[0].partHash,flags:[]}):u.getLogger(this).error(`Skipping asset ${r.assetName}. It does not have exactly one part, so we cannot map it to a feature.`)}return t}_createEditsResult(e){const t=e.data,{layerId:r}=this.layer,s=[];let a=null;if(Array.isArray(t))for(const n of t)s.push({id:n.id,editedFeatures:n.editedFeatures}),n.id===r&&(a={addResults:n.addResults??[],updateResults:n.updateResults??[],deleteResults:n.deleteResults??[],attachments:n.attachments,editMoment:n.editMoment});else a=t;const i=I(a);if(s.length>0){i.editedFeatureResults=[];for(const e of s){const{editedFeatures:t}=e,r=t?.spatialReference?new w(t.spatialReference):null;i.editedFeatureResults.push({layerId:e.id,editedFeatures:v(t,r)})}}return i}_createAttachmentErrorResult(e,t){const r=t.details.messages?.[0]||t.message,s=t.details.httpStatus||t.details.messageCode;return{objectId:e,globalId:null,error:new i("feature-layer-source:attachment-failure",r,{code:s})}}_getFormDataForAttachment(e,t){const r=e instanceof FormData?e:e&&e.elements?new FormData(e):null;if(r)for(const s in t){const e=t[s];null!=e&&(r.set?r.set(s,e):r.append(s,e))}return r}_getLayerRequestOptions(e={}){const{layer:t,layer:{parsedUrl:r,gdbVersion:s}}=this;return{...e,query:{gdbVersion:s,layer:"dynamicDataSource"in t&&t.dynamicDataSource?JSON.stringify({source:t.dynamicDataSource}):void 0,...r.query,f:"json",...this._createRequestQueryOptions(e)},responseType:"json"}}async _areAllAssetsAlreadyMapped(e){const{layer:t}=this,{globalIdField:r,parsedUrl:a}=t,i="infoFor3D"in t?t.infoFor3D:null;if(null==i||null==r)return!1;const n=N(i);if(null==n)return!1;const o=h(a.path,`../${n.id}`),u=new Array;for(const s of e){if(!(s.geometry.metadata.getExternalSourcesOnService(a).length>0))return!1;u.push(s)}const l=u.map(e=>e.getAttribute(r)).filter(s);if(0===l.length)return!1;const{assetMapFieldRoles:{parentGlobalId:c,assetHash:d}}=i,p=new D({where:`${c} IN (${l.map(e=>`'${e}'`)})`,outFields:[d,c],returnGeometry:!1}),y=await U(o,p),{features:m}=y;return 0!==m.length&&!u.some(e=>{const t=e.getAttribute(r);if(!t)return!0;const{metadata:s}=e.geometry,i=m.filter(e=>e.getAttribute(c)===t);if(0===i.length)return!0;const n=i.map(e=>e.getAttribute(d));return s.getExternalSourcesOnService(a).flatMap(({source:e})=>e.assets.flatMap(e=>e.parts.map(e=>e.partHash))).some(e=>n.every(t=>e!==t))})}};e([f()],B.prototype,"type",void 0),e([f({constructOnly:!0})],B.prototype,"layer",void 0),e([f({constructOnly:!0})],B.prototype,"supportedSourceTypes",void 0),e([f({readOnly:!0})],B.prototype,"queryTask",null),B=e([g("esri.layers.graphics.sources.FeatureLayerSource")],B);const G=1e3;export{B as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../config.js";import r from"../../../request.js";import{isSome as s,remove as a}from"../../../core/arrayUtils.js";import i from"../../../core/Error.js";import has from"../../../core/has.js";import{JSONMap as n}from"../../../core/jsonMap.js";import{Loadable as o}from"../../../core/Loadable.js";import u from"../../../core/Logger.js";import{setDeepValue as l}from"../../../core/object.js";import{debounce as c,after as d,throwIfAbortError as p}from"../../../core/promiseUtils.js";import{watch as y}from"../../../core/reactiveUtils.js";import{join as h}from"../../../core/urlUtils.js";import{generateBracedUUID as m}from"../../../core/uuid.js";import{property as f,subclass as g}from"../../../core/accessorSupport/decorators.js";import q from"../../../geometry/Extent.js";import w from"../../../geometry/SpatialReference.js";import S from"../../../geometry/support/MeshGeoreferencedVertexSpace.js";import{isRelativeVertexSpace as E}from"../../../geometry/support/meshVertexSpaceUtils.js";import{isOriginalExternal as O}from"../../../geometry/support/meshUtils/External.js";import{createFeatureEditResult as _,getFeatureJSON as b,getFeatureIds as R,getAttachmentEditsJSON as F,isProtectedOrPrivateVersionError as A,unpackEditResultData as I,createEditedFeatures as v}from"../applyEditsUtils.js";import{createDrawingInfo as x}from"./support/clientSideDefaults.js";import j from"./support/QueryTask.js";import{isHostedAgolService as T}from"../../support/arcgisLayerUrl.js";import{ensureLayerCredential as M}from"../../support/featureLayerUtils.js";import{getAssetMapTable as N}from"../../support/infoFor3D.js";import{executeQueryJSON as U}from"../../../rest/query/executeQueryJSON.js";import{unapplyEditsZUnitScaling as C}from"../../../rest/query/operations/editsZScale.js";import D from"../../../rest/support/Query.js";import J from"../../../time/TimeExtent.js";import{isSafeToEditVersion as L,isVersionInEditSession as k,isHistoricVersion as Q,currentSessionId as P}from"../../../versionManagement/support/versionManagementUtils.js";const V=new n({originalAndCurrentFeatures:"original-and-current-features",none:"none"}),$=new n({Started:"published",Publishing:"publishing",Stopped:"unavailable"});let B=class extends o{constructor(e){super(e),this.type="feature-layer",this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer","Annotation Layer","Dimension Layer"]),this.refresh=c(async()=>{await this.load();const e=this.sourceJSON.editingInfo?.lastEditDate;if(null==e)return{dataChanged:!0,updates:{}};try{await this._fetchService(null)}catch{return{dataChanged:!0,updates:{}}}const t=e!==this.sourceJSON.editingInfo?.lastEditDate;return{dataChanged:t,updates:t?{editingInfo:this.sourceJSON.editingInfo,extent:this.sourceJSON.extent}:null}}),this._ongoingAssetUploads=new Map}load(e){const t=this.layer.sourceJSON,r=this._fetchService(t,{...e}).then(()=>this.layer.setUserPrivileges(this.sourceJSON.serviceItemId,e)).then(()=>this._ensureLatestMetadata(e));return this.addResolvingPromise(r),Promise.resolve(this)}initialize(){this.addHandles([y(()=>{const e=this.layer;return e&&"lastEditsEventDate"in e?e.lastEditsEventDate:null},e=>this._handleLastEditsEventChange(e))])}destroy(){this._removeEditInterceptor()}get queryTask(){const{capabilities:e,parsedUrl:t,gdbVersion:r,spatialReference:s,fieldsIndex:a,uniqueIdFields:i}=this.layer,n="infoFor3D"in this.layer?this.layer.infoFor3D:null,o="dynamicDataSource"in this.layer?this.layer.dynamicDataSource:null,u=has("featurelayer-pbf")&&e?.query.supportsFormatPBF&&null==n,l=u&&e?.query.supportsFormatPBFWithCurves,c=e?.operations?.supportsQueryAttachments??!1,d=e?.query?.relativeTimeBinWindow??0,p=t.path;return new j({dynamicDataSource:o,fieldsIndex:a,gdbVersion:r,infoFor3D:n,pbfSupported:u,pbfSupportedWithCurves:l,queryAttachmentsSupported:c,relativeTimeBinWindow:d,sourceSpatialReference:s,uniqueIdFields:i,url:p})}async addAttachment(e,t){await this.load();const{layer:s}=this;await M(s,"editing");const a=e.attributes[s.objectIdField],i=s.parsedUrl.path+"/"+a+"/addAttachment",n=this._getLayerRequestOptions(),o=this._getFormDataForAttachment(t,n.query);try{const e=await r(i,{body:o});return _(e.data.addAttachmentResult)}catch(u){throw this._createAttachmentErrorResult(a,u)}}async updateAttachment(e,t,s){await this.load();const{layer:a}=this;await M(a,"editing");const i=e.attributes[a.objectIdField],n=a.parsedUrl.path+"/"+i+"/updateAttachment",o=this._getLayerRequestOptions({query:{attachmentId:t}}),u=this._getFormDataForAttachment(s,o.query);try{const e=await r(n,{body:u});return _(e.data.updateAttachmentResult)}catch(l){throw this._createAttachmentErrorResult(i,l)}}async applyEdits(e,t){await this.load();const{layer:a}=this;await M(a,"editing");const n="infoFor3D"in a?a.infoFor3D:null,o=null!=n,u=o||(t?.globalIdUsed??!1),l=o?await this._uploadMeshesAndGetAssetMapEditsJSON(e):null,c=e.addFeatures?.map(e=>b(this.layer,e,n))??[],d=(await Promise.all(c)).filter(s),p=e.updateFeatures?.map(e=>b(this.layer,e,n))??[],y=(await Promise.all(p)).filter(s),h=R(this.layer,e.deleteFeatures,u);C(d,y,a.spatialReference);const m=await F(this.layer,e),f=a.capabilities.editing.supportsAsyncApplyEdits&&o,g=t?.gdbVersion||a.gdbVersion,q={gdbVersion:g,rollbackOnFailure:t?.rollbackOnFailureEnabled,useGlobalIds:u,returnEditMoment:t?.returnEditMoment,trueCurveClient:t?.editsRespectTrueCurves,usePreviousEditMoment:t?.usePreviousEditMoment,async:f};await L(this.layer.url,g,!0);const w=k(this.layer.url,g||null);if(await Q(a.url,g,a.historicMoment))throw new i("feature-layer-source:historic-version","Editing a historic version is not allowed");t?.returnServiceEditsOption?(q.edits=JSON.stringify([{id:a.layerId,adds:d.length?d:null,updates:y.length?y:null,deletes:h.length?h:null,attachments:m,assetMaps:l}]),q.returnServiceEditsOption=V.toJSON(t?.returnServiceEditsOption),q.returnServiceEditsInSourceSR=t?.returnServiceEditsInSourceSR):(q.adds=d.length?JSON.stringify(d):null,q.updates=y.length?JSON.stringify(y):null,q.deletes=h.length?u?JSON.stringify(h):h.join(","):null,q.attachments=m&&JSON.stringify(m),q.assetMaps=null!=l?JSON.stringify(l):void 0);const S=this._getLayerRequestOptions({method:"post",query:q});w&&(S.authMode="immediate",S.query.returnEditMoment=!0,S.query.sessionId=P);const E=t?.returnServiceEditsOption?a.url:a.parsedUrl.path;let O;try{O=f?await this._asyncApplyEdits(E+"/applyEdits",S):await r(E+"/applyEdits",S)}catch(_){if(!A(_))throw _;S.authMode="immediate",O=f?await this._asyncApplyEdits(E+"/applyEdits",S):await r(E+"/applyEdits",S)}return this._createEditsResult(O)}async deleteAttachments(e,t){await this.load();const{layer:s}=this;await M(s,"editing");const a=e.attributes[s.objectIdField],i=s.parsedUrl.path+"/"+a+"/deleteAttachments";try{return(await r(i,this._getLayerRequestOptions({query:{attachmentIds:t.join(",")},method:"post"}))).data.deleteAttachmentResults.map(_)}catch(n){throw this._createAttachmentErrorResult(a,n)}}fetchRecomputedExtents(e={}){const t=e.signal;return this.load({signal:t}).then(async()=>{const t=this._getLayerRequestOptions({...e,query:{returnUpdates:!0}}),{layerId:s,url:a}=this.layer,{data:i}=await r(`${a}/${s}`,t),{id:n,extent:o,fullExtent:u,timeExtent:l}=i,c=o||u;return{id:n,fullExtent:c&&q.fromJSON(c),timeExtent:l&&J.fromJSON({start:l[0],end:l[1]})}})}async queryAttachments(e,t={}){await this.load();const r=this._getLayerRequestOptions(t);return this.queryTask.executeAttachmentQuery(e,r)}async queryFeatures(e,t){await this.load();const r=await this.queryTask.execute(e,{...t,query:this._createRequestQueryOptions(t)});if(e.outStatistics?.length&&r.features.length){const t=new Map;if(r.features.forEach(r=>{const s=r.attributes;e.outStatistics?.forEach(({outStatisticFieldName:e})=>{if(e){const r=e.toLowerCase();r&&r in s&&e!==r&&(s[e]=s[r],delete s[r],t.set(r,e))}})}),null!=r.fields)for(const e of r.fields){const r=t.get(e.name.toLowerCase());null!=r&&(e.name=r)}}return r}async queryFeaturesJSON(e,t){return await this.load(),this.queryTask.executeJSON(e,{...t,query:this._createRequestQueryOptions(t)})}async queryObjectIds(e,t){return await this.load(),this.queryTask.executeForIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryFeatureCount(e,t){return await this.load(),this.queryTask.executeForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryExtent(e,t){return await this.load(),this.queryTask.executeForExtent(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeatures(e,t){return await this.load(),this.queryTask.executeRelationshipQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeaturesCount(e,t){return await this.load(),this.queryTask.executeRelationshipQueryForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryPivot(e,t){return await this.load(),this.queryTask.executePivotQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopFeatures(e,t){return await this.load(),this.queryTask.executeTopFeaturesQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryAttributeBins(e,t){return await this.load(),this.queryTask.executeAttributeBinsQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopObjectIds(e,t){return await this.load(),this.queryTask.executeForTopIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopExtents(e,t){return await this.load(),this.queryTask.executeForTopExtents(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopCount(e,t){return await this.load(),this.queryTask.executeForTopCount(e,{...t,query:this._createRequestQueryOptions(t)})}async fetchPublishingStatus(){if(!T(this.layer.url))return"unavailable";const e=h(this.layer.url,"status"),t=await r(e,{query:{f:"json"}});return $.fromJSON(t.data.status)}async uploadAssets(e,t){const{uploadAssets:r}=await import("./support/uploadAssets.js");return r(e,{layer:this.layer,ongoingUploads:this._ongoingAssetUploads},t)}_handleLastEditsEventChange(e){const t=this.layer;if(null==e||!("capabilities"in t)||!("effectiveCapabilities"in t))return;if(!(!t.capabilities?.operations?.supportsEditing&&t.effectiveCapabilities?.operations?.supportsEditing))return;const r=t.url;if(null==r)return;"layerId"in t&&h(r,t.layerId.toString());this._getOrCreateEditInterceptor(r).before=t=>{const r=t.requestOptions.method??"auto";if("auto"===r||"head"===r){const r=t.requestOptions.query??{};r._ts=e.getTime(),t.requestOptions.query=r}}}_getOrCreateEditInterceptor(e){return null==this._editInterceptor&&(this._editInterceptor={urls:e},t.request.internalInterceptors.push(this._editInterceptor)),this._editInterceptor}_removeEditInterceptor(){null!=this._editInterceptor&&(a(t.request.internalInterceptors,this._editInterceptor),this._editInterceptor=null)}async _asyncApplyEdits(e,t){const s=(await r(e,t)).data.statusUrl;for(;;){const e=(await r(s,{query:{f:"json"},responseType:"json"})).data;switch(e.status){case"Completed":return r(e.resultUrl,{query:{f:"json"},responseType:"json"});case"CompletedWithErrors":throw new i("async-applyEdits-failed","asynchronous applyEdits call failed.");case"Failed ImportChanges":case"InProgress":case"Pending":case"ExportAttachments":case"ExportChanges":case"ExportingData":case"ExportingSnapshot":case"ImportAttachments":case"ProvisioningReplica":case"UnRegisteringReplica":break;default:throw new i("async-applyEdits-failed","asynchronous applyEdits call failed (undefined response status)")}await d(G)}}_createRequestQueryOptions(e){const t={...this.layer.customParameters,token:this.layer.apiKey,...e?.query};return this.layer.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t}async _fetchService(e,t){if(!e){const s={};has("featurelayer-advanced-symbols")&&(s.returnAdvancedSymbols=!0),t?.cacheBust&&(s._ts=Date.now());const{data:a}=await r(this.layer.parsedUrl.path,this._getLayerRequestOptions({query:s,signal:t?.signal}));e=a}this.layer.applyPreferredHost(e),this.sourceJSON=await this._patchServiceJSON(e,t?.signal);const s=e.type;if(!this.supportedSourceTypes.has(s))throw new i("feature-layer-source:unsupported-type",`Source type "${s}" is not supported`)}async _patchServiceJSON(e,t){if("Table"!==e.type&&e.geometryType&&!e?.drawingInfo?.renderer&&!e.defaultSymbol){const t=x(e.geometryType).renderer;l("drawingInfo.renderer",t,e)}if("esriGeometryMultiPatch"===e.geometryType&&e.infoFor3D&&(e.geometryType="mesh"),null==e.extent)try{const{data:s}=await r(this.layer.url,this._getLayerRequestOptions({signal:t}));s.spatialReference&&(e.extent={xmin:0,ymin:0,xmax:0,ymax:0,spatialReference:s.spatialReference})}catch(s){p(s)}return e}async _ensureLatestMetadata(e){if(this.layer.userHasUpdateItemPrivileges&&this.sourceJSON.cacheMaxAge>0)return this._fetchService(null,{...e,cacheBust:!0})}async _uploadMeshesAndGetAssetMapEditsJSON(e){const{addAssetFeatures:t}=e;if(!t?.length)return null;if(await this._areAllAssetsAlreadyMapped(t))return null;const r=e.addFeatures.filter(e=>e.geometry);if(t.length!==r.length+e.updateFeatures.length)throw new i("feature-layer-source:unsupported-mesh-edits","Mixing attribute only edits with mesh geometry edits is not currently supported");const s=new Array,a=new Map;for(const i of t){const{geometry:e}=i,{vertexSpace:t}=e;if(E(t))s.push(e);else{const t=e.origin,{convertMeshVertexSpace:r}=await import("../../../geometry/support/meshUtils/convertMeshVertexSpace.js"),n=await r(e,new S({origin:[t.x,t.y,t.z??0]}));a.set(n,e),i.geometry=n,s.push(n)}}await this.uploadAssets(s);for(const[i,n]of a)n.addExternalSources(i.metadata.externalSources.items);return{adds:this._getAssetMapEditsJSON(t),updates:[],deletes:[]}}_getAssetMapEditsJSON(e){const t=new Array,r=this.layer.globalIdField,s=this.layer.parsedUrl;for(const a of e){const e=a.geometry,{metadata:i}=e,n=i.getExternalSourcesOnService(s),o=a.getAttribute(r);if(0===n.length){u.getLogger(this).error(`Skipping feature ${o}. The mesh it is associated with has not been uploaded to the service and cannot be mapped to it.`);continue}const{source:l}=n.find(O)??n[0];for(const r of l.assets)1===r.parts.length?t.push({globalId:m(),parentGlobalId:o,assetName:r.assetName,assetHash:r.parts[0].partHash,flags:[]}):u.getLogger(this).error(`Skipping asset ${r.assetName}. It does not have exactly one part, so we cannot map it to a feature.`)}return t}_createEditsResult(e){const t=e.data,{layerId:r}=this.layer,s=[];let a=null;if(Array.isArray(t))for(const n of t)s.push({id:n.id,editedFeatures:n.editedFeatures}),n.id===r&&(a={addResults:n.addResults??[],updateResults:n.updateResults??[],deleteResults:n.deleteResults??[],attachments:n.attachments,editMoment:n.editMoment});else a=t;const i=I(a);if(s.length>0){i.editedFeatureResults=[];for(const e of s){const{editedFeatures:t}=e,r=t?.spatialReference?new w(t.spatialReference):null;i.editedFeatureResults.push({layerId:e.id,editedFeatures:v(t,r)})}}return i}_createAttachmentErrorResult(e,t){const r=t.details.messages?.[0]||t.message,s=t.details.httpStatus||t.details.messageCode;return{objectId:e,globalId:null,error:new i("feature-layer-source:attachment-failure",r,{code:s})}}_getFormDataForAttachment(e,t){const r=e instanceof FormData?e:e&&e.elements?new FormData(e):null;if(r)for(const s in t){const e=t[s];null!=e&&(r.set?r.set(s,e):r.append(s,e))}return r}_getLayerRequestOptions(e={}){const{layer:t,layer:{parsedUrl:r,gdbVersion:s}}=this;return{...e,query:{gdbVersion:s,layer:"dynamicDataSource"in t&&t.dynamicDataSource?JSON.stringify({source:t.dynamicDataSource}):void 0,...r.query,f:"json",...this._createRequestQueryOptions(e)},responseType:"json"}}async _areAllAssetsAlreadyMapped(e){const{layer:t}=this,{globalIdField:r,parsedUrl:a}=t,i="infoFor3D"in t?t.infoFor3D:null;if(null==i||null==r)return!1;const n=N(i);if(null==n)return!1;const o=h(a.path,`../${n.id}`),u=new Array;for(const s of e){if(!(s.geometry.metadata.getExternalSourcesOnService(a).length>0))return!1;u.push(s)}const l=u.map(e=>e.getAttribute(r)).filter(s);if(0===l.length)return!1;const{assetMapFieldRoles:{parentGlobalId:c,assetHash:d}}=i,p=new D({where:`${c} IN (${l.map(e=>`'${e}'`)})`,outFields:[d,c],returnGeometry:!1}),y=await U(o,p),{features:m}=y;return 0!==m.length&&!u.some(e=>{const t=e.getAttribute(r);if(!t)return!0;const{metadata:s}=e.geometry,i=m.filter(e=>e.getAttribute(c)===t);if(0===i.length)return!0;const n=i.map(e=>e.getAttribute(d));return s.getExternalSourcesOnService(a).flatMap(({source:e})=>e.assets.flatMap(e=>e.parts.map(e=>e.partHash))).some(e=>n.every(t=>e!==t))})}};e([f()],B.prototype,"type",void 0),e([f({constructOnly:!0})],B.prototype,"layer",void 0),e([f({constructOnly:!0})],B.prototype,"supportedSourceTypes",void 0),e([f({readOnly:!0})],B.prototype,"queryTask",null),B=e([g("esri.layers.graphics.sources.FeatureLayerSource")],B);const G=1e3;export{B as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import e from"../../../../request.js";import has from"../../../../core/has.js";import{QueueProcessor as
|
|
2
|
+
import{__addDisposableResource as t,__disposeResources as e}from"tslib";import a from"../../../../request.js";import has from"../../../../core/has.js";import{QueueProcessor as s}from"../../../../core/QueueProcessor.js";import{isBlobProtocol as r}from"../../../../core/urlUtils.js";import{ParquetFileInfo as n}from"./ParquetFileInfo.js";import{parseFileStatisticsMap as i}from"./ParquetFileStatistics.js";import{createParquetFile as o,readMetadata as c}from"../../../../libs/parquet/parquet.js";const h="parquet.v1",u="_spatial.json",f=new s({concurrency:12,process:async t=>{const{data:e}=await a(t.url,t.options);return e}});class l{constructor(t,e=()=>{}){this._geometryInfo=t,this._getCustomParameters=e}async destroy(){await this.clear()}async clear(){if(this._infos){const t=await this._infos;for(const e of t.values())e.destroy();t.clear(),this._infos=null}}async getMetadata(){const a={stack:[],error:void 0,hasError:!1};try{const e=(await this._getParquetFileNames()).at(0);if(!e)return null;const s=t(a,await o(e,{provider:this}),!1);return c(s)}catch(s){a.error=s,a.hasError=!0}finally{e(a)}}getGeometryInfo(){return this._geometryInfo}async getFiles(){const t=await this._getInfoMap();return Array.from(t.values())}async updateGeometryInfo(t){if(this._geometryInfo)throw new Error("GeometryInfo already set");await this.clear(),this._geometryInfo=t}async fetchLength(t){const{byteLength:e,cacheTag:a}=await this._fetchLengthAndTag(t);if(!has("parquetlayer-cache-enabled"))return e;try{await this._createOrResetCache(t,a)}catch(s){}return e}async fetchRange(t,e,a,s){if(!has("parquetlayer-cache-enabled"))return this._fetchRange(t,e,a,s);const r=new URL(this._getCacheFileName(t));r.searchParams.append("range",`${e}-${a}`);try{const n=await this._openCache(t),i=await n.match(r);if(i)return await i.arrayBuffer();const o=await this._fetchRange(t,e,a,s);return await n.put(r,new Response(o,{headers:{"Content-Type":"application/octet-stream","Content-Length":o.byteLength.toString()}})),o}catch(n){return this._fetchRange(t,e,a,s)}}_getCacheFileName(t){return t}async _requestStatistics(t){const{data:e}=await a(t,{responseType:"json",query:this._getCustomParameters()});return e}async _fetchRange(t,e,a,s){const r={url:t,options:{responseType:"array-buffer",query:this._getCustomParameters()??{},cacheMode:"no-store",useQueue:!0,headers:{range:`bytes=${e}-${a}`}}};return f.push(r)}async _fetchLengthAndTag(t){if(r(t)){const{data:e}=await a(t,{responseType:"blob"});return{byteLength:e.size,cacheTag:null}}const e=await this._requestHead(t),s=e.headers.get("Content-Length");if(null==s)throw new Error("Unable to parse content length");const n=e.headers.get("etag")??e.headers.get("Last-Modified");return{byteLength:parseInt(s,10),cacheTag:n}}async _getInfoMap(){return this._infos||(this._infos=this._fetchParquetFiles()),this._infos}async _updateParquetFileInfos(t){const e=await this._getInfoMap(),a=new Set(t);for(const s of a)if(!e.get(s)){const t=e.size,a=await n.create(this.getGeometryInfo(),this,s,t,null);e.set(s,a)}for(const s of e.keys())if(!a.has(s))throw new Error("Deletion not supported")}async _getFileStatistics(t){this._statistics||(this._statistics=this._fetchStatistics());const e=await this._statistics,a=p(t);return e.get(a)}async _fetchParquetFiles(){const t=(await this._getParquetFileNames()).map(async(t,e)=>{const a=e,s=await this._getFileStatistics(t);return n.create(this.getGeometryInfo(),this,t,a,s)}),e=await Promise.all(t),a=new Map;for(const s of e)a.set(s.url,s);return a}async _fetchStatistics(){const t=await this._getStatisticsFileName();if(null==t)return new Map;const e=await this._resolveFileUrl(t),a=await this._requestStatistics(e);return i(a)}async _requestHead(t){const{data:e}=await a(t,{responseType:"native",method:"head",query:this._getCustomParameters()});return e}async _openCache(t){return caches.open(this._getCacheName(t))}_getCacheName(t){return`${h}:${this._getCacheFileName(t)}`}async _createOrResetCache(t,e){const a=this._getCacheName(t),s=new URL(this._getCacheFileName(t));if(s.searchParams.append("metadata","true"),null==e)return void await caches.delete(a);let r=await caches.open(a);const n=await r.match(s),i=await(n?.json());i?.tag!==e&&(await caches.delete(a),r=await caches.open(a));const o=JSON.stringify({tag:e});await r.put(s,new Response(o,{headers:{"Content-Type":"application/json","Content-Length":o.length.toString()}}))}}function g(t){const e=t.split(/[?#]/)[0];return e===u||e.endsWith(u)}function p(t){return t.split(/[?#]/)[0].split("/").at(-1)??t}export{l as FileProvider,g as isStatisticsFileName,u as spatialFileName};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import{FileStatistics as t}from"./ParquetFileStatistics.js";import{createParquetFile as e}from"../../../../libs/parquet/parquet.js";class i{static async create(r,s,o,l,f){if(!f){const f=await e(o,{geometryInfo:r,provider:s}),n=t.fromFile(f);return new i(r,s,o,l,n,Promise.resolve(f))}return new i(r,s,o,l,f,null)}constructor(t,e,i,r,s,o){this._geometryInfo=t,this._provider=e,this.url=i,this.id=r,this.statistics=s,this._file=o}destroy(){null!=this._file&&this._file.then(t=>t.free())}get file(){return null==this._file&&(this._file=e(this.url,{geometryInfo:this._geometryInfo,provider:this._provider})),this._file}}export{i as ParquetFileInfo};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
function n(n){const u=new Map;for(const o of n.files){const n=t(o);u.set(o.name,n)}return u}function t(n){const t=new Map;for(const u of n.statistics??[]){const n=u.column.at(-1);null!=n&&t.set(n,{minValue:u.minValue,maxValue:u.maxValue,nullCount:u.nullCount??0,distinctCount:u.distinctCount??null})}return new u(0,0,t)}class u{static fromFile(n){const t=n.numRows(),o=n.byteLength(),l=new Map;for(const u of n.getColumnDescriptors()){const n=u.minValue(),t=u.maxValue(),o=u.distinctCount(),s=u.nullCount();null!=n&&null!=t&&null!=o&&null!=s&&l.set(u.name(),{minValue:n,maxValue:t,distinctCount:o,nullCount:s}),u.free()}return new u(t,o,l)}constructor(n,t,u){this.rowCount=n,this.byteSize=t,this.statistics=u}}export{u as FileStatistics,t as parseFileStatistics,n as parseFileStatisticsMap};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import e from"../../../../request.js";import{FileProvider as
|
|
2
|
+
import e from"../../../../request.js";import{FileProvider as t}from"./FileProvider.js";import{parseKnownArcGISOnlineDomain as r}from"../../../../portal/support/urlUtils.js";class s extends t{constructor(e,t,s){super(t,s),this._schema=e,this._isAgol=!!r(this._schema.itemUrl)}async update(e){throw new Error("Unsupported")}async _getParquetFileNames(){return[`${this._baseUrl}/data`]}async _getStatisticsFileName(){return null}_getCacheFileName(e){return`${this._baseUrl}/data`}async _resolveFileUrl(e){return this._resolvedUrl||(this._resolvedUrl=this._fetchResolvedUrl()),this._resolvedUrl}async _fetchLengthAndTag(e){const t=await super._fetchLengthAndTag(e);return t.cacheTag=this._schema.modified.getTime().toString(),t}async _fetchRange(e,t,r,s){try{const a=await this._resolveFileUrl(e);return await super._fetchRange(a,t,r,s)}catch{this._resolvedUrl=null}const a=await this._resolveFileUrl(e);return super._fetchRange(a,t,r,s)}get _baseUrl(){return this._schema.itemCdnUrl??this._schema.itemUrl}async _fetchResolvedUrl(){if(!this._isAgol)return`${this._baseUrl}/data`;return(await e(`${this._baseUrl}/data`,{query:{signedurl:!0,expiration:9,f:"json"}})).data.signedUrl}}export{s as PortalParquetFileProvider};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import e from"../../../../request.js";import{FileProvider as t}from"./FileProvider.js";const r=100;class
|
|
2
|
+
import e from"../../../../request.js";import{FileProvider as t,isStatisticsFileName as s}from"./FileProvider.js";const r=100;class a extends t{constructor(e,t,s){super(t,s),this._schema=e}get _baseUrl(){return this._schema.itemCdnUrl??this._schema.itemUrl}async update(e){throw new Error("Unsupported")}async _getParquetFileNames(){const e=await this._getResources();return Array.from(e.keys()).filter(e=>e.endsWith(".parquet"))}async _getStatisticsFileName(){const e=await this._getResources();return Array.from(e.keys()).find(s)??null}_getCacheFileName(e){return`${this._baseUrl}/resources/${e}`}async _resolveFileUrl(e){const t=await this._getResource(e);return t.signedUrl?t.signedUrl:`${this._baseUrl}/resources/${e}`}async _fetchLengthAndTag(e){const t=await this._getResource(e),s=this._schema.itemMetadata.modified.getTime().toString();return{byteLength:t.size,cacheTag:s}}async _fetchRange(e,t,s,r){try{const a=await this._resolveFileUrl(e);return await super._fetchRange(a,t,s,r)}catch{this._invalidate()}const a=await this._resolveFileUrl(e);return super._fetchRange(a,t,s,r)}_invalidate(){this._resources=null}async _getResources(){return this._resources||(this._resources=this._fetchResources()),await this._resources}async _getResource(e){const t=(await this._getResources()).get(e);if(!t)throw new Error(`Resource ${e} not found.`);return t}async _fetchResources(){const t=new Map;let s=1;const a=n(this._schema.itemMetadata.url);for(;-1!==s;){const n=await e(`${this._baseUrl}/resources`,{query:{f:"json",start:s,num:r}});for(const e of n.data.resources)e.resource.startsWith(a)&&t.set(e.resource,e);s=n.data.nextStart}return t}}function n(e){const t=e.split("/").filter(Boolean),s=t.indexOf("resources");if(-1===s||s===t.length-1)throw new Error(`URL does not contain a resources directory name: ${e}`);return`${t.slice(s+1).map(e=>decodeURIComponent(e)).join("/")}/`}export{a as PortalParquetResourcesFileProvider};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{FileProvider as e}from"./FileProvider.js";class
|
|
2
|
+
import{FileProvider as e,isStatisticsFileName as s}from"./FileProvider.js";class t extends e{constructor(e,s=null,t=()=>{}){super(s,t),this._schema=e}async update(e){await this._updateParquetFileInfos(await this._getParquetFileNames()),this._schema=e}async _resolveFileUrl(e){return e}async _getParquetFileNames(){return this._schema.urls.filter(e=>!e.endsWith(".json"))}async _getStatisticsFileName(){return this._schema.urls.find(s)??null}}export{t as UrlsFileProvider};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{PortalParquetFileProvider as r}from"./PortalParquetFileProvider.js";import{PortalParquetResourcesFileProvider as e}from"./PortalParquetLayerFileProvider.js";import{UrlsFileProvider as t}from"./UrlsFileProvider.js";function o(o,a){switch(o.type){case"urls":return new t(o,a);case"portal-parquet-file":return new r(o,a);case"portal-parquet-layer":return new e(o,a)}}export{o as createFileProvider};
|
|
2
|
+
import{PortalParquetFileProvider as r}from"./PortalParquetFileProvider.js";import{PortalParquetResourcesFileProvider as e}from"./PortalParquetLayerFileProvider.js";import{UrlsFileProvider as t}from"./UrlsFileProvider.js";function o(o,a,i){switch(o.type){case"urls":return new t(o,a,i);case"portal-parquet-file":return new r(o,a,i);case"portal-parquet-layer":return new e(o,a,i)}}export{o as createFileProvider};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as r}from"../../../../core/compilerUtils.js";import s from"../../../../core/Error.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{onAbortOrThrow as o,throwIfAborted as a}from"../../../../core/promiseUtils.js";import{QueueProcessor as n}from"../../../../core/QueueProcessor.js";import{parseWhereClause as u}from"../../../../core/sql.js";import p from"../../../../geometry/SpatialReference.js";import{set as l,create as c,expandWithRect as d,expandWithAABB as f,negativeInfinity as m,fromRect as y}from"../../../../geometry/support/aaBoundingBox.js";import{getQueryResultExtent as h,QueryEngine as g}from"../../data/QueryEngine.js";import{QueryEngineResult as w}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as _}from"../../data/queryUtils.js";import{createFileProvider as I}from"../parquet/createFileProvider.js";import{createDrawingInfo as F}from"./clientSideDefaults.js";import{getParquetFileId as x,getParquetRowId as R}from"./parquetIdUtils.js";import S from"../../../support/Field.js";import v from"../../../support/FieldsIndex.js";import{fromParquetGeometryEncodingJSON as q}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as C,fromParquetJSONGeometryType as E,toParquetJSONGeometryType as b}from"../../../support/parquetUtils.js";import{loadParquetModule as O}from"../../../../libs/parquet/loadParquetModule.js";import{createParquetFile as Q,readGeoMetadata as P}from"../../../../libs/parquet/parquet.js";import{FeatureStoreQueryAdapter as T}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as j}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as M}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as A}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as B}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const G=new T,D=4,z="__OBJECTID",W=new TextDecoder;class U{constructor(){this._fileInfos=new Map,this._queue=new n({concurrency:D,process:(e,t)=>this._executeQuery(e,t)}),this._indexMap={}}async load(r){const o=r.spatialReference?p.fromJSON(r.spatialReference):void 0;if(o&&!o.isWGS84&&!o.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");this._customParameters=r.customParameters,this._provider=I(r.provider,()=>this._customParameters);const a=await C(this._provider,{fields:r.fields?.map(e=>S.fromJSON(e)),geometryEncoding:r.geometryEncoding?q(r.geometryEncoding):null,geometryType:r.geometryType?E(r.geometryType):null,displayOptimization:r.displayOptimization,spatialReference:o});if(!a.fields)throw new s("parquet:unsupported","Fields must be defined");let n;if(a.spatialReference&&a.geometryType){if(!a.spatialReference)throw new s("parquet:unsupported","SpatialReference must be defined");if(!a.spatialReference.isGeographic&&!a.spatialReference.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");a.spatialReference.isGeographic&&!a.spatialReference.isWGS84&&(i.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:a.spatialReference}),a.spatialReference=p.WGS84),n={geometry:a.geometryEncoding?{geometryType:b(a.geometryType),spatialReference:a.spatialReference.toJSON(),encoding:a.geometryEncoding.toJSON()}:null,displayOptimization:a.displayOptimization}}this.setCustomParameters(r.customParameters),this._geometryInfo=n;const u=await this._provider.getFileList();for(const e of u)this._addFile(e);this._capabilities=H(await this._getFileStatistics());const f=this._fileInfos.values().next().value;if(!f)return{layerDefinition:{},capabilities:H(null)};const y=await f,{fields:h}=a;if(null==h)throw new s("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",h);h.push(new S({name:z,type:"oid",alias:z}));for(const e of h){const t=y.file.columnForFieldName(e.name);null!=t&&(this._indexMap[e.name]=t)}const g=new v(h.map(e=>e.toJSON()));this._fieldsIndex=g;const w=b(a.geometryType??"point");if(this._metadata=A.createFeature({fieldsIndex:g.toJSON(),geometryType:w,hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:"rowId"},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:a.spatialReference,outSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:w,featureIdInfo:{type:"object-id",fieldName:"rowId"},hasM:!1,hasZ:!1,spatialReference:a.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},a.spatialReference){const e=await this._getFileInfos();this._fullExtent=V(e,a.spatialReference.toJSON())}if(null==this._fullExtent&&"location"===a.geometryEncoding?.type){const{xField:r,yField:s}=a.geometryEncoding,i=l(c(),m);for(const o of await this._getFileInfos())for(const a of o.file.rowGroups()){const o={stack:[],error:void 0,hasError:!1};try{const t=e(o,a.columnDescriptorForAttribute(r),!1),n=e(o,a.columnDescriptorForAttribute(s),!1),u=[t.minValue(),n.minValue(),t.maxValue(),n.maxValue()];d(i,u),a.free()}catch(_){o.error=_,o.hasError=!0}finally{t(o)}}this._fullExtent={xmin:i[0],ymin:i[1],xmax:i[3],ymax:i[4],spatialReference:a.spatialReference?.toJSON()}}return{capabilities:this._capabilities,layerDefinition:{fields:a.fields?.map(e=>e.toJSON()),drawingInfo:F(w),extent:this._fullExtent??void 0,geometryType:w,geometryEncoding:a.geometryEncoding?.toJSON(),displayOptimization:a.displayOptimization}}}destroy(){for(const e of this._fileInfos.values())e.then(e=>e.file.free);this._fileInfos.clear(),this._queue.destroy()}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async getFilesIds(){const e=[];for await(const t of this._fileInfos.values())e.push(t.id);return e}async getFileId(e){const t=this._fileInfos.get(e);if(!t)throw new Error(`InternalError: File ${e} does not exist`);return(await t).id}async updateFileProvider(e){const t=I(e,()=>this._customParameters),r=await t.getFileList();this._provider=t,await this._updateFiles(new Set(r))}async queryFeatures(e,t){this._validateQuery(e),L(e)||(e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,8e3):8e3,e.resultOffset=e.resultOffset??0),(e.outStatistics||e.returnDistinctValues)&&(e.returnGeometry=void 0);return(await this._enqueueQuery(e,t)).createQueryResponse()}async queryFeatureCount(e,t){const r=await _(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!N(r))return this._getFeatureCount();r.outFields=void 0,r.returnGeometry=void 0;return(await this._enqueueQuery(r,t)).createQueryResponseForCount()}async queryObjectIds(e,t){const r=await _(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!N(r))return Array.from({length:await this._getFeatureCount()},(e,t)=>t);r.resultRecordCount=r.resultRecordCount?Math.min(r.resultRecordCount,8e3):8e3,r.resultOffset=r.resultOffset??0,r.returnGeometry=void 0,r.outFields=void 0;return(await this._enqueueQuery(r,t)).items.map(e=>e.getObjectId())}async queryExtent(e,t){const s=await _(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),this._fullExtent&&!N(s))return{count:await this._getFeatureCount(),extent:this._fullExtent};const i=r(this._metadata.spatialReference);s.returnGeometry=!0,s.outFields=void 0;const o=l(c(),m),a=c(),n=await this._enqueueQuery(s,t);let u=0;for(const r of n.items)r.getBounds(a)&&(f(o,a),u+=1);return{count:u,extent:h(o,i,s.outSR?r(s.outSR):i,i,!1)}}async queryStream(e,t,r){if(!r.signal)throw new Error("InternalError: AbortSignal must be passed");const s=await this._getFileInfoById(e),i=(await O()).Query.new();"tile"===t.type&&(i.setExtent(t.extent),i.setQuantizationTransform(t.transform),i.setScale(t.scale)),i.setOutFields(t.outFields.filter(e=>null!=this._indexMap[e])),i.setOutSpatialReference(t.outSpatialReference.wkid),i.setReturnGeometry(!0),t.where&&await this._setWhereClause(i,s.file,t.where);const a=await s.file.executeQuery(i,r.signal),n=s.streamIdCounter++,u=o(r.signal,e=>{const t=s.streams.get(n);null!=t&&(t.handle.remove(),s.streams.delete(n))});return s.streams.set(n,{stream:a,handle:u}),n}async getStreamNext(e,t,r){if(!r.signal)throw new Error("InternalError: AbortSignal must be passed");const s=await this._getFileInfoById(e),i=s.streams.get(t);if(!i)return null;const o=await i.stream.next(r.signal);return null==o&&(i.handle.remove(),s.streams.delete(t)),o?.serialize().buffer}async createPatch(e,t,r,s,i){if(!i.signal)throw new Error("InternalError: AbortSignal must be passed");const o=await this._getFileInfoById(e);return(await o.file.createChunkPatch(t,r,s,i.signal)).serialize().buffer}async _updateFiles(e){for(const[t,r]of this._fileInfos.entries())e.has(t)?e.delete(t):(r.then(e=>e.file.free()),this._fileInfos.delete(t));await Promise.all(Array.from(e.values(),e=>this._addFile(e)))}async _getFileInfos(){return Promise.all(Array.from(this._fileInfos.values()))}async _getFileInfoById(e){for await(const t of this._fileInfos.values())if(t.id===e)return t;throw new Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){if(!this._fileInfos.size)return null;const e=(await this._getFileInfos()).reduce((e,t)=>e+t.file.byteLength(),0);return{featureCount:await this._getFeatureCount(),byteLength:e}}async _getFile(e){for(const t of await this._getFileInfos())if(t.id===e)return t.file;throw new Error(`InternalError: File ${e} does not exist`)}_addFile(e){const t=this._fileInfos.size;this._fileInfos.set(e,this._createFileInfo(e,t))}async _createFileInfo(e,t){return{id:t,file:await Q(e,{geometryInfo:this._geometryInfo,provider:this._provider}),streamIdCounter:0,streams:new Map}}async _getFeatureCount(){return(await this._getFileInfos()).reduce((e,t)=>e+t.file.numRows(),0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new s("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new s("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new s("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async _setWhereClause(e,t,r){const i=this._indexMap,o=this._fieldsIndex,a={getAttribute(e,r){const s=t.readAttribute(e.rowGroup,e.row,i[r]);if(null==s)return null;const a=o.get(r);return"esriFieldTypeString"===a.type||"esriFieldTypeDateOnly"===a.type||"esriFieldTypeTimeOnly"===a.type||"esriFieldTypeTimestampOffset"===a.type?W.decode(s):s}},n=await u(r,this._fieldsIndex);if(!n.isStandardized)throw new s("sql-parse-error","expression is not standardized");const p=(e,t)=>n.testFeatureCompiled({rowGroup:e,row:t},a,null);e.setWhere(r),e.setWhereEvaluator(p),e.setWhereFields(n.fieldNames)}async*_fetchChunks(e,t){const r=await O();for(const s of await this._getFileInfos()){const i=r.Query.new();i.setOutFields(e.fields),i.setReturnGeometry(e.returnGeometry),e.where&&await this._setWhereClause(i,s.file,e.where);const o=await s.file.executeQuery(i),n=[],u=o.next(t);for(let e=0;e<D;e++)n.push(o.next(t));let p=await u;for(;null!=p;){a(t);const e=new B(this._metadata,this._indexMap,p,s.id),r=k([new j(e,null,0,!1)],this._queryEngineParams),i=n.shift();n.push(o.next(t)),yield r,p=await i}}}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){const r=await this._getReadParams(e);if(e.where=void 0,e.objectIds?.length){const r=new Map;for(const t of e.objectIds){const e=x(t),s=R(t);let i=r.get(e);i||(i=[],r.set(e,i)),i.push(s)}const s=[];for(const[i,o]of r.entries()){const r=await this._executeFileIdQuery(e,i,o,t);for(const e of r)s.push(e)}return new w(s,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:G,featureIdInfo:this._queryEngineParams.featureIdInfo})}let s=e.resultRecordCount??await this._getFeatureCount(),i=e.resultOffset??0;e.resultRecordCount=void 0,e.resultOffset=void 0;const o=[];for await(const a of this._fetchChunks(r,t)){const r=await a.executeQueryForOpaqueFeatures(e,t);if(r.length>i){const t=r.slice(i,Math.min(i+s,r.length));for(const e of t)o.push(e);if(i=0,s-=t.length,0===s)return new w(o,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:G,featureIdInfo:this._queryEngineParams.featureIdInfo})}else i-=r.length}return new w(o,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:G,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,r,s){const i=await this._getReadParams(e),o=(await O()).Query.new();o.setOutFields(i.fields),o.setReturnGeometry(i.returnGeometry),o.setIds(new Uint32Array(r));const a=await this._getFile(t),n=await a.executeQuery(o,s);let u=await n.next(s),p=0;const l=[];for(;null!=u;){const e=new B(this._metadata,this._indexMap,u,t),r=new j(e,null,p++,!1);l.push(r),u=await n.next(s)}return k(l,this._queryEngineParams).executeQueryForOpaqueFeatures(e,s)}async _getReadParams(e){const t=new Set;if(e.outStatistics)for(const r of e.outStatistics)null!=r.onStatisticField&&t.add(r.onStatisticField);if(e.outFields)for(const r of e.outFields)t.add(r);return{fields:(t.has("*")?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>null!=this._indexMap[e]),returnGeometry:!!e.returnGeometry||!!e.geometry,where:e.where}}}function N(e){for(const t in e){const r=t;switch(r){case"resultOffset":case"resultRecordCount":case"aggregateIds":case"distance":case"gdbVersion":case"geometry":case"having":case"timeExtent":case"objectIds":case"historicMoment":case"where":return null!=e[r]}}return!1}function k(e,t){const r=new M;for(const s of e)r.insert(s);return new g({...t,featureStore:r})}function J(e){switch(e.length){case 4:return y(c(),e);case 6:return e;default:throw new s("parquet:protocol-violation","Invalid Geoparquet file. BoundingBox size must be 4 or 6.",{bbox:e})}}function V(e,t){const r=l(c(),m);for(const s of e){const e=P(s.file);if(!e)return null;const t=e.columns[e.primary_column];if(!t.bbox)return null;const i=J(t.bbox);f(r,i)}return{xmin:r[0],ymin:r[1],xmax:r[3],ymax:r[4],spatialReference:t}}function H(e){const t=e?.featureCount;let r=!1;return null!=t&&t<has("parquetlayer-full-query-feature-count")&&(r=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:8e3,maxRecordCountFactor:void 0,maxUniqueIDCount:void 0,relativeTimeBinWindow:void 0,standardMaxRecordCount:void 0,standardMaxRecordCountNoGeometry:void 0,supportsStatisticsAggregatedIds:!1,supportsCacheHint:!1,supportsCentroid:!0,supportsCentroidOnDegeneratedQuantizedGeometry:!1,supportsCurrentUser:!1,supportsDegeneratedQuantizedGeometry:!1,supportsDisjointSpatialRelationship:!1,supportsDistance:!1,supportsOutDistance:!1,supportsDistinct:r,supportsExtent:!1,supportsFormatPBF:!1,supportsFormatPBFWithCurves:!1,supportsGeometryProperties:!1,supportsHavingClause:!1,supportsHistoricMoment:!1,supportsMaxRecordCountFactor:!1,supportsOrderBy:r,supportsPagination:!0,supportsPaginationOnAggregatedQueries:!1,supportsPercentileStatistics:!1,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsReturnMesh:!1,supportsReturnExceededLimitGeometries:!1,supportsStandardizedQueriesOnly:!1,supportsTopFeaturesQuery:!1,supportsStatistics:r,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,supportsSqlExpression:!1,supportsTrueCurve:!1,tileMaxRecordCount:void 0},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function L(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{U as default};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as r}from"../../../../core/compilerUtils.js";import s from"../../../../core/Error.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{onAbortOrThrow as a,throwIfAborted as n}from"../../../../core/promiseUtils.js";import{QueueProcessor as o}from"../../../../core/QueueProcessor.js";import{parseWhereClause as u}from"../../../../core/sql.js";import l from"../../../../geometry/SpatialReference.js";import{set as p,create as c,expandWithAABB as d,expandWithRect as f,negativeInfinity as m}from"../../../../geometry/support/aaBoundingBox.js";import{getQueryResultExtent as h,QueryEngine as y}from"../../data/QueryEngine.js";import{queryBinsCapabilities as g,queryCapabilities as _}from"../../data/QueryEngineCapabilities.js";import{QueryEngineResult as w}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as x}from"../../data/queryUtils.js";import{createFileProvider as I}from"../parquet/createFileProvider.js";import{createDrawingInfo as F}from"./clientSideDefaults.js";import{getParquetFileId as S,getParquetRowId as R}from"./parquetIdUtils.js";import q from"../../../support/Field.js";import v from"../../../support/FieldsIndex.js";import{fromParquetGeometryEncodingJSON as C}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as E,fromParquetJSONGeometryType as O,toParquetJSONGeometryType as b}from"../../../support/parquetUtils.js";import{loadParquetModule as P}from"../../../../libs/parquet/loadParquetModule.js";import{FeatureStoreQueryAdapter as Q}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as T}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as j}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as N}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as A}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const M=new Q,B=4,G="__OBJECTID",D=new TextDecoder,z=8e3,k=8,V=2,W=20;class U{constructor(e,t){this._files=e,this._createFileStream=t,this._fileIndex=0,this._streamIndex=0,this._streams=[],this._pending=new Set,this._resolvedCount=0}async next(e){for(await this._fill(e);this._pending.size>0;){n(e),await this._fill(e);const t=await J(this._pending);if(this._pending.delete(t.read),this._resolvedCount++,null!=t.chunk)return t.chunk}return null}async _fill(e){for(this._removeDone();this._pending.size<k;){const t=this._getOrCreateNextStream(e);if(null==t)return;this._pending.add(t.read(e))}}_getOrCreateNextStream(e){const t=this._resolvedCount>=k?k:V;if(this._fileIndex<this._files.length&&this._streams.length<t){const t=this._files[this._fileIndex++],r=new Z(t.id,this._createFileStream(t,e));return this._streams.push(r),r}return this._getNextStream()}_getNextStream(){const e=this._streams.length;for(let t=0;t<e;t++){const r=(this._streamIndex+t)%e,s=this._streams[r];if(s.canRead)return this._streamIndex=(r+1)%e,s}return null}_removeDone(){let e=this._streamIndex;for(let t=this._streams.length-1;t>=0;t--)this._streams[t].done&&(this._streams.splice(t,1),t<e&&e--);this._streamIndex=this._streams.length>0?e%this._streams.length:0}}function J(e){return Promise.race(Array.from(e,async e=>({read:e,chunk:await e})))}class Z{constructor(e,t){this._fileId=e,this._stream=t,this._readCount=0,this._reachedEnd=!1}get canRead(){return!this._reachedEnd}get done(){return this._reachedEnd&&0===this._readCount}async read(e){this._readCount++;try{const t=await this._stream,r=await t.next(e);return null==r?(this._reachedEnd=!0,null):{fileId:this._fileId,chunk:r}}finally{this._readCount--}}}class L{constructor(){this._queue=new o({concurrency:B,process:(e,t)=>this._executeQuery(e,t)}),this._streams=new Map,this._streamIdCounter=0,this._indexMap={}}async load(e){const t=e.spatialReference?l.fromJSON(e.spatialReference):void 0;if(t&&!t.isWGS84&&!t.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");this._customParameters=e.customParameters,this._provider=I(e.provider,null,()=>this._customParameters);const r=await this._provider.getMetadata(),a=await E(r,{fields:e.fields?.map(e=>q.fromJSON(e)),geometryEncoding:e.geometryEncoding?C(e.geometryEncoding):null,geometryType:e.geometryType?O(e.geometryType):null,displayOptimization:e.displayOptimization,spatialReference:t});if(!a.fields)throw new s("parquet:unsupported","Fields must be defined");let n;if(a.spatialReference&&a.geometryType){if(!a.spatialReference)throw new s("parquet:unsupported","SpatialReference must be defined");if(!a.spatialReference.isGeographic&&!a.spatialReference.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");a.spatialReference.isGeographic&&!a.spatialReference.isWGS84&&(i.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:a.spatialReference}),a.spatialReference=l.WGS84),n={geometry:a.geometryEncoding?{geometryType:b(a.geometryType),spatialReference:a.spatialReference.toJSON(),encoding:a.geometryEncoding.toJSON()}:null,displayOptimization:a.displayOptimization}}this.setCustomParameters(e.customParameters),this._displayOptimization=a.displayOptimization,await this._provider.updateGeometryInfo(n),this._capabilities=ie(await this._getFileStatistics());const o=await this._provider.getFiles();if(!o.length)return{layerDefinition:{},capabilities:ie(null)};const u=await o[0].file;a.file=u;const{fields:p}=a;if(null==p)throw new s("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",p);p.push(new q({name:G,type:"oid",alias:G}));for(const s of p){const e=u.getColumnId(s.name);null!=e&&(this._indexMap[s.name]=e)}const c=new v(p.map(e=>e.toJSON()));this._fieldsIndex=c;const d=b(a.geometryType??"point");return this._metadata=N.createFeature({fieldsIndex:c.toJSON(),geometryType:d,hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:"rowId"},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:a.spatialReference,outSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:d,featureIdInfo:{type:"object-id",fieldName:"rowId"},hasM:!1,hasZ:!1,spatialReference:a.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},this._fullExtent=r?.extent?r.extent:await this._tryDeriveParquetFullExtent(a),{capabilities:this._capabilities,layerDefinition:{fields:a.fields?.map(e=>e.toJSON()),drawingInfo:F(d),extent:this._fullExtent??void 0,geometryType:d,geometryEncoding:a.geometryEncoding?.toJSON(),displayOptimization:a.displayOptimization}}}destroy(){this._provider.destroy(),this._queue.destroy();for(const{handle:e}of this._streams.values())e.remove();this._streams.clear()}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async updateFileProvider(e){this._provider=I(e,this._provider.getGeometryInfo(),()=>this._customParameters)}async queryFeatures(e,t){this._validateQuery(e),ae(e)||(e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,z):z,e.resultOffset=e.resultOffset??0),(e.outStatistics||e.returnDistinctValues)&&(e.returnGeometry=void 0);return(await this._enqueueQuery(e,t)).createQueryResponse()}async queryFeatureCount(e,t){const r=await x(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!H(r))return this._getFeatureCount();r.outFields=void 0,r.returnGeometry=void 0;return(await this._enqueueQuery(r,t)).createQueryResponseForCount()}async queryObjectIds(e,t){const r=await x(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!H(r))return Array.from({length:await this._getFeatureCount()},(e,t)=>t);r.resultRecordCount=r.resultRecordCount?Math.min(r.resultRecordCount,8e3):8e3,r.resultOffset=r.resultOffset??0,r.returnGeometry=void 0,r.outFields=void 0;return(await this._enqueueQuery(r,t)).items.map(e=>e.getObjectId())}async queryExtent(e,t){const s=await x(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),this._fullExtent&&!H(s))return{count:await this._getFeatureCount(),extent:this._fullExtent};const i=r(this._metadata.spatialReference);s.returnGeometry=!0,s.outFields=void 0;const a=p(c(),m),n=c(),o=await this._enqueueQuery(s,t);let u=0;for(const r of o.items)r.getBounds(n)&&(d(a,n),u+=1);return{count:u,extent:h(a,i,s.outSR?r(s.outSR):i.toJSON(),i,!1)}}async queryStream(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const r=await this._getCandidateFiles(e),s=new U(r,async(t,r)=>{const s=await t.file,i=await this._createParquetQuery(s,e);return s.executeQuery(i,r)}),i=this._streamIdCounter++,n=a(t.signal,e=>{const t=this._streams.get(i);null!=t&&(t.handle.remove(),this._streams.delete(i))});return this._streams.set(i,{stream:s,handle:n}),i}async getStreamNext(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const r=this._streams.get(e);if(!r)return{result:null};const s=await r.stream.next(t.signal);if(null==s)return r.handle.remove(),this._streams.delete(e),{result:null};const i=s.chunk.serialize().buffer,a={fileId:s.fileId,buffer:i};return i instanceof ArrayBuffer?{result:a,transferList:[i]}:{result:a}}async createPatch(e,t,r,s,i){if(!i.signal)throw new Error("InternalError: AbortSignal must be passed");const a=await this._getFileInfoById(e),n=await a.file;return(await n.createChunkPatch(t,r,s,i.signal)).serialize().buffer}async _getCandidateFiles(e){const t=await this._provider.getFiles(),r=await this._getSpatialFilePruning(e);if(null==r)return t;const s=t.filter(e=>this._mayIncludeFileForSpatialPruning(e,r));return"xz"===r.type?$(s,r):s}async _getSpatialFilePruning(e){if("tile"!==e.type)return null;const t=this._displayOptimization,r=t?.index;if(null==r)return null;const s=e.outSpatialReference.wkid;if(null==r.wkid||null==s)return null;const i=r.wkid,a=await P();switch(r.type){case"xz":return{type:"xz",fieldName:r.code,intersects:(t,n)=>a.queryIntersectsXZStatistics(r.fullExtent,e.extent,s,i,W,t,n)};case"z":return{type:"xy",xFieldName:r.xColumn,yFieldName:r.yColumn,intersects:(t,r,n,o)=>a.queryIntersectsXYStatistics(e.extent,s,i,t,r,n,o)}}}_mayIncludeFileForSpatialPruning(e,t){switch(t.type){case"xz":{const r=X(e,t);return null==r||te(r,t)}case"xy":{const{xStatistics:r,yStatistics:s}=ee(e,t);return null==r||null==s||re(r,s,t)}}}async _tryDeriveParquetFullExtent(r){if(!r.spatialReference)return null;if(null==this._fullExtent&&"location"===r.geometryEncoding?.type){const i=await this._provider.getFiles(),{xField:a,yField:n}=r.geometryEncoding,o=p(c(),m);for(const r of i){const i=await r.file;for(const r of i.rowGroups()){const i={stack:[],error:void 0,hasError:!1};try{const t=e(i,r.columnDescriptorForAttribute(a),!1),s=e(i,r.columnDescriptorForAttribute(n),!1),u=[t.minValue(),s.minValue(),t.maxValue(),s.maxValue()];f(o,u),r.free()}catch(s){i.error=s,i.hasError=!0}finally{t(i)}}}return{xmin:o[0],ymin:o[1],xmax:o[3],ymax:o[4],spatialReference:r.spatialReference?.toJSON()}}return null}async _getFileInfoById(e){const t=await this._provider.getFiles();for(const r of t)if(r.id===e)return r;throw new Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){return{featureCount:await this._getFeatureCount(),byteLength:await this._getByteLength()}}async _getFile(e){return(await this._getFileInfoById(e)).file}async _createParquetQuery(e,t){const r=(await P()).Query.new();return"tile"===t.type&&(r.setExtent(t.extent),r.setQuantizationTransform(t.transform),r.setScale(t.scale)),r.setOutFields(t.outFields.filter(e=>null!=this._indexMap[e])),r.setOutSpatialReference(t.outSpatialReference.wkid),r.setReturnGeometry(t.returnGeometry),t.where&&await this._setWhereClause(r,e,t.where),r}async _getFeatureCount(){return(await this._provider.getFiles()).map(e=>e.statistics.rowCount).reduce((e,t)=>e+t,0)}async _getByteLength(){return(await this._provider.getFiles()).map(e=>e.statistics.byteSize).reduce((e,t)=>e+t,0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new s("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new s("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new s("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async _setWhereClause(e,t,r){const i=this._indexMap,a=this._fieldsIndex,n={getAttribute(e,r){const s=t.readAttribute(e.rowGroup,e.row,i[r]);if(null==s)return null;const n=a.get(r);return"esriFieldTypeString"===n.type||"esriFieldTypeDateOnly"===n.type||"esriFieldTypeTimeOnly"===n.type||"esriFieldTypeTimestampOffset"===n.type?D.decode(s):s}},o=await u(r,this._fieldsIndex);if(!o.isStandardized)throw new s("sql-parse-error","expression is not standardized");const l=(e,t)=>o.testFeatureCompiled({rowGroup:e,row:t},n,null);e.setWhere(r),e.setWhereEvaluator(l),e.setWhereFields(o.fieldNames)}async*_fetchChunks(e,t){const r=await P(),s=await this._provider.getFiles();for(const i of s){const s=await i.file,a=r.Query.new();a.setOutFields(e.fields),a.setReturnGeometry(e.returnGeometry),e.where&&await this._setWhereClause(a,s,e.where);const o=await s.executeQuery(a),u=[],l=o.next(t);for(let e=0;e<B;e++)u.push(o.next(t));let p=await l;for(;null!=p;){n(t);const e=new A(this._metadata,this._indexMap,p,i.id),r=Y([new T(e,null,0,!1)],this._queryEngineParams),s=u.shift();u.push(o.next(t)),yield r,p=await s}}}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){const r=await this._getReadParams(e);if(e.where=void 0,e.objectIds?.length){const r=new Map;for(const t of e.objectIds){const e=S(t),s=R(t);let i=r.get(e);i||(i=[],r.set(e,i)),i.push(s)}const s=[];for(const[i,a]of r.entries()){const r=await this._executeFileIdQuery(e,i,a,t);for(const e of r)s.push(e)}return new w(s,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:M,featureIdInfo:this._queryEngineParams.featureIdInfo})}let s=e.resultRecordCount??await this._getFeatureCount(),i=e.resultOffset??0;e.resultRecordCount=void 0,e.resultOffset=void 0;const a=[];for await(const n of this._fetchChunks(r,t)){const r=await n.executeQueryForOpaqueFeatures(e,t);if(r.length>i){const t=r.slice(i,Math.min(i+s,r.length));for(const e of t)a.push(e);if(i=0,s-=t.length,0===s)return new w(a,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:M,featureIdInfo:this._queryEngineParams.featureIdInfo})}else i-=r.length}return new w(a,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:M,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,r,s){const i=await this._getReadParams(e),a=(await P()).Query.new();a.setOutFields(i.fields),a.setReturnGeometry(i.returnGeometry),a.setIds(new Uint32Array(r));const n=await this._getFile(t),o=await n.executeQuery(a,s);let u=await o.next(s),l=0;const p=[];for(;null!=u;){const e=new A(this._metadata,this._indexMap,u,t),r=new T(e,null,l++,!1);p.push(r),u=await o.next(s)}return Y(p,this._queryEngineParams).executeQueryForOpaqueFeatures(e,s)}async _getReadParams(e){const t=new Set;if(e.outStatistics)for(const r of e.outStatistics)null!=r.onStatisticField&&t.add(r.onStatisticField);if(e.outFields)for(const r of e.outFields)t.add(r);return{fields:(t.has("*")?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>null!=this._indexMap[e]),returnGeometry:!!e.returnGeometry||!!e.geometry,where:e.where}}}function H(e){for(const t in e){const r=t;switch(r){case"resultOffset":case"resultRecordCount":case"aggregateIds":case"distance":case"gdbVersion":case"geometry":case"having":case"timeExtent":case"objectIds":case"historicMoment":case"where":return null!=e[r]}}return!1}function Y(e,t){const r=new j;for(const s of e)r.insert(s);return new y({...t,featureStore:r})}function X(e,t){return e.statistics.statistics.get(t.fieldName)??null}function $(e,t){return e.slice().sort((e,r)=>{const s=K(e,t),i=K(r,t);return s===i?0:s<i?-1:1})}function K(e,t){const r=X(e,t);if(null==r)return Number.POSITIVE_INFINITY;const s=se(r.minValue),i=se(r.maxValue);return null==s||null==i||i<s?Number.POSITIVE_INFINITY:i-s}function ee(e,t){return{xStatistics:e.statistics.statistics.get(t.xFieldName)??null,yStatistics:e.statistics.statistics.get(t.yFieldName)??null}}function te(e,t){const r=se(e.minValue),s=se(e.maxValue);return null==r||null==s||t.intersects(r,s)}function re(e,t,r){const s=se(e.minValue),i=se(e.maxValue),a=se(t.minValue),n=se(t.maxValue);return null==s||null==i||null==a||null==n||r.intersects(s,i,a,n)}function se(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function ie(e){const t=e?.featureCount;let r=!1;return null!=t&&t<has("parquetlayer-full-query-feature-count")&&(r=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{..._,maxRecordCount:z,supportsDistinct:r,supportsOrderBy:r,supportsStatistics:r,supportsSpatialAggregationStatistics:r,supportedSpatialAggregationStatistics:{envelope:r,centroid:r,convexHull:r}},queryAttributeBins:r?g:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function ae(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{L as default};
|
|
@@ -194,7 +194,7 @@ export abstract class BlendLayer {
|
|
|
194
194
|
accessor blendMode: BlendMode;
|
|
195
195
|
/**
|
|
196
196
|
* Effect provides various filter functions that can be performed on the layer to achieve different visual effects similar to
|
|
197
|
-
* how image filters work. This powerful capability allows you to apply [css filter-like](https://developer.mozilla.org/
|
|
197
|
+
* how image filters work. This powerful capability allows you to apply [css filter-like](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/filter)
|
|
198
198
|
* functions to layers to create custom visual effects to enhance the cartographic quality of your maps. This is done by applying the desired
|
|
199
199
|
* effect to the layer's `effect` property as a string or an array of objects to set scale dependent effects.
|
|
200
200
|
*
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type TimeSeriesInfo from "../support/TimeSeriesInfo.js";
|
|
2
|
+
import type { TimeSeriesInfoProperties } from "../support/TimeSeriesInfo.js";
|
|
3
|
+
|
|
4
|
+
export interface DataSeriesLayerProperties {
|
|
5
|
+
/**
|
|
6
|
+
* An array of objects that define data series configurations for the layer. A data series
|
|
7
|
+
* describes a series of fields that represent a sequence of related data points over time or other dimensions.
|
|
8
|
+
* Client applications can use the information in a data series info to generate expressions for renderers,
|
|
9
|
+
* labels, popups, charts, or for other representations of the data to display in the web map. These may be
|
|
10
|
+
* defined and referenced by name in client applications for use in various contexts.
|
|
11
|
+
*
|
|
12
|
+
* @default null
|
|
13
|
+
* @example
|
|
14
|
+
* layer.dataSeriesInfos = [{
|
|
15
|
+
* type: "time-series-fields",
|
|
16
|
+
* name: "ts0",
|
|
17
|
+
* title: "U.S. National Park Annual Visitation Numbers (10 year increments, 1910-2020)",
|
|
18
|
+
* fieldTimeMappings: [
|
|
19
|
+
* {
|
|
20
|
+
* fieldName: "F1910",
|
|
21
|
+
* timeValue: "1910"
|
|
22
|
+
* },
|
|
23
|
+
* {
|
|
24
|
+
* fieldName: "F1920",
|
|
25
|
+
* timeValue: "1920"
|
|
26
|
+
* },
|
|
27
|
+
* {
|
|
28
|
+
* fieldName: "F1930",
|
|
29
|
+
* timeValue: "1930"
|
|
30
|
+
* },
|
|
31
|
+
* {
|
|
32
|
+
* fieldName: "F1940",
|
|
33
|
+
* timeValue: "1940"
|
|
34
|
+
* },
|
|
35
|
+
* {
|
|
36
|
+
* fieldName: "F1950",
|
|
37
|
+
* timeValue: "1950"
|
|
38
|
+
* },
|
|
39
|
+
* {
|
|
40
|
+
* fieldName: "F1960",
|
|
41
|
+
* timeValue: "1960"
|
|
42
|
+
* },
|
|
43
|
+
* {
|
|
44
|
+
* fieldName: "F1970",
|
|
45
|
+
* timeValue: "1970"
|
|
46
|
+
* },
|
|
47
|
+
* {
|
|
48
|
+
* fieldName: "F1980",
|
|
49
|
+
* timeValue: "1980"
|
|
50
|
+
* },
|
|
51
|
+
* {
|
|
52
|
+
* fieldName: "F1990",
|
|
53
|
+
* timeValue: "1990"
|
|
54
|
+
* },
|
|
55
|
+
* {
|
|
56
|
+
* fieldName: "F2000",
|
|
57
|
+
* timeValue: "2000"
|
|
58
|
+
* },
|
|
59
|
+
* {
|
|
60
|
+
* fieldName: "F2010",
|
|
61
|
+
* timeValue: "2010"
|
|
62
|
+
* },
|
|
63
|
+
* {
|
|
64
|
+
* fieldName: "F2020",
|
|
65
|
+
* timeValue: "2020"
|
|
66
|
+
* }
|
|
67
|
+
* ],
|
|
68
|
+
* timeInterval: 1,
|
|
69
|
+
* timeValueUnits: "years",
|
|
70
|
+
* timeIntervalUnits: "decades",
|
|
71
|
+
* timeExtent: {
|
|
72
|
+
* start: new Date("1910-01-01"),
|
|
73
|
+
* end: new Date("2020-01-01")
|
|
74
|
+
* }
|
|
75
|
+
* }];
|
|
76
|
+
*/
|
|
77
|
+
dataSeriesInfos?: TimeSeriesInfoProperties[] | null;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Mixin for layers that support data series configurations.
|
|
82
|
+
*
|
|
83
|
+
* @since 5.1
|
|
84
|
+
*/
|
|
85
|
+
export abstract class DataSeriesLayer {
|
|
86
|
+
constructor(...args: any[]);
|
|
87
|
+
/**
|
|
88
|
+
* An array of objects that define data series configurations for the layer. A data series
|
|
89
|
+
* describes a series of fields that represent a sequence of related data points over time or other dimensions.
|
|
90
|
+
* Client applications can use the information in a data series info to generate expressions for renderers,
|
|
91
|
+
* labels, popups, charts, or for other representations of the data to display in the web map. These may be
|
|
92
|
+
* defined and referenced by name in client applications for use in various contexts.
|
|
93
|
+
*
|
|
94
|
+
* @default null
|
|
95
|
+
* @example
|
|
96
|
+
* layer.dataSeriesInfos = [{
|
|
97
|
+
* type: "time-series-fields",
|
|
98
|
+
* name: "ts0",
|
|
99
|
+
* title: "U.S. National Park Annual Visitation Numbers (10 year increments, 1910-2020)",
|
|
100
|
+
* fieldTimeMappings: [
|
|
101
|
+
* {
|
|
102
|
+
* fieldName: "F1910",
|
|
103
|
+
* timeValue: "1910"
|
|
104
|
+
* },
|
|
105
|
+
* {
|
|
106
|
+
* fieldName: "F1920",
|
|
107
|
+
* timeValue: "1920"
|
|
108
|
+
* },
|
|
109
|
+
* {
|
|
110
|
+
* fieldName: "F1930",
|
|
111
|
+
* timeValue: "1930"
|
|
112
|
+
* },
|
|
113
|
+
* {
|
|
114
|
+
* fieldName: "F1940",
|
|
115
|
+
* timeValue: "1940"
|
|
116
|
+
* },
|
|
117
|
+
* {
|
|
118
|
+
* fieldName: "F1950",
|
|
119
|
+
* timeValue: "1950"
|
|
120
|
+
* },
|
|
121
|
+
* {
|
|
122
|
+
* fieldName: "F1960",
|
|
123
|
+
* timeValue: "1960"
|
|
124
|
+
* },
|
|
125
|
+
* {
|
|
126
|
+
* fieldName: "F1970",
|
|
127
|
+
* timeValue: "1970"
|
|
128
|
+
* },
|
|
129
|
+
* {
|
|
130
|
+
* fieldName: "F1980",
|
|
131
|
+
* timeValue: "1980"
|
|
132
|
+
* },
|
|
133
|
+
* {
|
|
134
|
+
* fieldName: "F1990",
|
|
135
|
+
* timeValue: "1990"
|
|
136
|
+
* },
|
|
137
|
+
* {
|
|
138
|
+
* fieldName: "F2000",
|
|
139
|
+
* timeValue: "2000"
|
|
140
|
+
* },
|
|
141
|
+
* {
|
|
142
|
+
* fieldName: "F2010",
|
|
143
|
+
* timeValue: "2010"
|
|
144
|
+
* },
|
|
145
|
+
* {
|
|
146
|
+
* fieldName: "F2020",
|
|
147
|
+
* timeValue: "2020"
|
|
148
|
+
* }
|
|
149
|
+
* ],
|
|
150
|
+
* timeInterval: 1,
|
|
151
|
+
* timeValueUnits: "years",
|
|
152
|
+
* timeIntervalUnits: "decades",
|
|
153
|
+
* timeExtent: {
|
|
154
|
+
* start: new Date("1910-01-01"),
|
|
155
|
+
* end: new Date("2020-01-01")
|
|
156
|
+
* }
|
|
157
|
+
* }];
|
|
158
|
+
*/
|
|
159
|
+
get dataSeriesInfos(): TimeSeriesInfo[] | null | undefined;
|
|
160
|
+
set dataSeriesInfos(value: TimeSeriesInfoProperties[] | null | undefined);
|
|
161
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import{__decorate as e}from"tslib";import{property as r,subclass as o}from"../../core/accessorSupport/decorators.js";import{excludeTables as s}from"../../core/accessorSupport/layerContainerType.js";import t from"../support/TimeSeriesInfo.js";const i=i=>{const a=i;let n=class extends a{constructor(){super(...arguments),this.dataSeriesInfos=null}};return e([r({type:[t],json:{write:{enabled:!0,allowNull:!0,layerContainerTypes:s},origins:{"web-scene":{write:!1,read:!1}}}})],n.prototype,"dataSeriesInfos",void 0),n=e([o("esri.layers.mixins.DataSeriesLayer")],n),n};export{i as DataSeriesLayer};
|
|
@@ -147,8 +147,8 @@ export abstract class FeatureLayerBase {
|
|
|
147
147
|
* @default false
|
|
148
148
|
* @since 4.21
|
|
149
149
|
* @see [ArcGIS REST API - New in 10.9](https://developers.arcgis.com/rest/services-reference/enterprise/layer-table/#new-in-109)
|
|
150
|
-
* @see [What's new in ArcGIS Server](https://
|
|
151
|
-
* @see [Edit map service settings](https://
|
|
150
|
+
* @see [What's new in ArcGIS Server](https://doc.esri.com/en/arcgis-enterprise/latest/introduction/what-s-new-in-arcgis-enterprise.html)
|
|
151
|
+
* @see [Edit map service settings](https://doc.esri.com/en/arcgis-enterprise/latest/administer/edit-map-service-settings.html#LI_A5825E4A9A3A42E991C662CD7B76A860)
|
|
152
152
|
* @example
|
|
153
153
|
* // Only download data for the year 2020.
|
|
154
154
|
* // if the layer supports unknown time zone then create
|
|
@@ -296,7 +296,7 @@ export abstract class FeatureLayerBase {
|
|
|
296
296
|
set fullExtent(value: ExtentProperties | null | undefined);
|
|
297
297
|
/**
|
|
298
298
|
* The version of the geodatabase of the feature service data. Read
|
|
299
|
-
* the [Overview of versioning](https://
|
|
299
|
+
* the [Overview of versioning](https://doc.esri.com/en/arcgis-pro/latest/help/data/geodatabases/overview/overview-of-versioning-in-arcgis-pro.html) topic for more details
|
|
300
300
|
* about this capability.
|
|
301
301
|
*/
|
|
302
302
|
accessor gdbVersion: string | null | undefined;
|
|
@@ -329,17 +329,29 @@ export abstract class FeatureLayerBase {
|
|
|
329
329
|
*/
|
|
330
330
|
accessor globalIdField: string | null | undefined;
|
|
331
331
|
/**
|
|
332
|
-
* Indicates whether the
|
|
333
|
-
*
|
|
334
|
-
*
|
|
332
|
+
* Indicates whether the layer has m aware geometries.
|
|
333
|
+
* Use the `supportsM` property in the layer's [DataCapabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/types/#DataCapabilities)
|
|
334
|
+
* to verify if m-values are supported by the layer.
|
|
335
|
+
*
|
|
336
|
+
* - When `true`: The layer has m aware features. M-values are part of the geometry.
|
|
337
|
+
* - When `false`: The layer does not have m aware features. M-values are not part of the geometry.
|
|
338
|
+
*
|
|
339
|
+
* @see [returnM](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#returnM) for details regarding fetching m-values with features from a layer
|
|
340
|
+
* @see [Linear referencing](https://pro.arcgis.com/en/pro-app/latest/help/data/linear-referencing/introduction-to-linear-referencing.htm)
|
|
335
341
|
*/
|
|
336
342
|
accessor hasM: boolean;
|
|
337
343
|
/**
|
|
338
|
-
* Indicates whether the
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
*
|
|
344
|
+
* Indicates whether the layer has z aware geometries. Use the `supportsZ` property in the layer's [DataCapabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/types/#DataCapabilities)
|
|
345
|
+
* to verify if z-values are supported by the layer.
|
|
346
|
+
*
|
|
347
|
+
* - When `true`: The layer has z aware features. Z-values are part of the geometry.
|
|
348
|
+
* - When `false`: The layer does not have z aware features. Z-values are not part of the geometry.
|
|
349
|
+
* > [!NOTE]
|
|
350
|
+
* > - Refer to [elevationInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#elevationInfo) for details regarding placement and rendering
|
|
351
|
+
* > of features with z-values in 3D [SceneViews](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
|
|
352
|
+
*
|
|
353
|
+
* @see [returnZ](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#returnZ) for details regarding fetching z-values with features from a layer
|
|
354
|
+
* @see [Point.z](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/#z) for more information on how z-values are represented in geometries
|
|
343
355
|
*/
|
|
344
356
|
accessor hasZ: boolean;
|
|
345
357
|
/**
|
|
@@ -452,17 +464,29 @@ export abstract class FeatureLayerBase {
|
|
|
452
464
|
*/
|
|
453
465
|
get relationships(): Relationship[] | null | undefined;
|
|
454
466
|
/**
|
|
455
|
-
*
|
|
456
|
-
* `
|
|
457
|
-
*
|
|
458
|
-
*
|
|
467
|
+
* Determines whether m-values (measure) are returned in feature geometries. For 2D views, support was added at version 5.1 and the behavior is as follows:
|
|
468
|
+
* - When `undefined` (default): Fetches m-values if they are needed for rendering or labeling, or layer property interacts with the geometry.
|
|
469
|
+
* Otherwise, m-values are excluded from feature queries.
|
|
470
|
+
* - When `true`: Fetches m-values with the geometry, ensuring they are available on the client.
|
|
471
|
+
* - When `false`: Excludes m-values from feature queries. M-values are not part of geometries.
|
|
472
|
+
*
|
|
473
|
+
* > [!WARNING]
|
|
474
|
+
* >
|
|
475
|
+
* > 3D views do not support m-values. They will not be fetched or returned in 3D scene queries, regardless of this setting.
|
|
476
|
+
*
|
|
477
|
+
* @see [FeatureLayerBase.hasM](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#hasM)
|
|
459
478
|
*/
|
|
460
479
|
accessor returnM: boolean | null | undefined;
|
|
461
480
|
/**
|
|
462
|
-
*
|
|
463
|
-
*
|
|
464
|
-
*
|
|
465
|
-
*
|
|
481
|
+
* Determines whether z-values (elevation) are returned in feature geometries. For 3D views, z-values are always fetched regardless of the `returnZ` setting.
|
|
482
|
+
* For 2D views, support was added at version 5.1 and the behavior is as follows:
|
|
483
|
+
* - When `undefined` (default): Fetches z-values if they are needed for rendering or labeling, or layer property interacts with the geometry.
|
|
484
|
+
* Otherwise, z-values are excluded from feature queries.
|
|
485
|
+
* - When `true`: Fetches z-values with the geometry, ensuring they are available on the client.
|
|
486
|
+
* - When `false`: Excludes z-values from feature queries. Z-values are not part of geometries.
|
|
487
|
+
*
|
|
488
|
+
* @see [FeatureLayerBase.hasZ](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#hasZ)
|
|
489
|
+
* @see [Geometry.hasZ](https://developers.arcgis.com/javascript/latest/references/core/geometry/Geometry/#hasZ)
|
|
466
490
|
*/
|
|
467
491
|
accessor returnZ: boolean | null | undefined;
|
|
468
492
|
/**
|
|
@@ -64,7 +64,8 @@ export interface TemporalLayerProperties extends Partial<Pick<TemporalLayer, "us
|
|
|
64
64
|
* for the layer. The `timeInfo` property, along with its `startField` and `endField` properties, must be set at the
|
|
65
65
|
* time of layer initialization if it is being set for a
|
|
66
66
|
* [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
|
|
67
|
-
* [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/)
|
|
67
|
+
* [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/),
|
|
68
|
+
* [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/) or
|
|
68
69
|
* [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
|
|
69
70
|
* initialized from [client-side features](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#creating-a-featurelayer).
|
|
70
71
|
* The [fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is
|
|
@@ -201,7 +202,8 @@ export abstract class TemporalLayer {
|
|
|
201
202
|
* for the layer. The `timeInfo` property, along with its `startField` and `endField` properties, must be set at the
|
|
202
203
|
* time of layer initialization if it is being set for a
|
|
203
204
|
* [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
|
|
204
|
-
* [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/)
|
|
205
|
+
* [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/),
|
|
206
|
+
* [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/) or
|
|
205
207
|
* [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
|
|
206
208
|
* initialized from [client-side features](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#creating-a-featurelayer).
|
|
207
209
|
* The [fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is
|