@arcgis/core 5.2.0-next.6 → 5.2.0-next.8
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/07cc5743cb6a9fd68adb.js +1 -0
- package/assets/esri/core/workers/chunks/09d0e430c66788a2626f.js +640 -0
- package/assets/esri/core/workers/chunks/{829a0583b8a228c65379.js → 0b169bb1969f86232a1a.js} +1 -1
- package/assets/esri/core/workers/chunks/0cbd7f5fe24271942abd.js +1 -0
- package/assets/esri/core/workers/chunks/{20e2d11f6de438ee883e.js → 0ded58ccb83f624f1460.js} +1 -1
- package/assets/esri/core/workers/chunks/0ecc1bc1686844cdd60e.js +1 -0
- package/assets/esri/core/workers/chunks/{d1ac98f48bb6d43d97c8.js → 0f3654c8157ec8f22869.js} +3 -3
- 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/18f980465db5a86153d1.js +1 -0
- package/assets/esri/core/workers/chunks/1996f0a930abdd97b855.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/1dd06335bb2d35c66339.js +1 -0
- package/assets/esri/core/workers/chunks/1f289aa69dd6b6be534a.js +1 -0
- package/assets/esri/core/workers/chunks/2185e8a52c5e29d46680.js +1 -0
- package/assets/esri/core/workers/chunks/{bf706a5d065a357de51b.js → 2413b383b7f2bdcd4ced.js} +1 -1
- package/assets/esri/core/workers/chunks/{da29cf0e64065631a470.js → 24810c36ae09bb4e83dc.js} +1 -1
- package/assets/esri/core/workers/chunks/26583db2af1a1cc456e5.js +1 -0
- package/assets/esri/core/workers/chunks/274b82cb183ddd0042f3.js +1 -0
- package/assets/esri/core/workers/chunks/277718031c903da2b3b9.js +1 -0
- package/assets/esri/core/workers/chunks/27c6def22c2b0791ce9e.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/2c9ba638d1f31c82f9f5.js +1 -0
- 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/3172d7fc23787a287191.js +1 -0
- package/assets/esri/core/workers/chunks/31918a0d9886dedf385f.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/398eb3100a282e4736bb.js +1 -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/{a96c7432ca97cbeef4b8.js → 3db898a38a7c5f0efb48.js} +1 -1
- package/assets/esri/core/workers/chunks/3dc5fbecc427df1fd827.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/{b002304a45856b024b46.js → 4714241189c13d0db897.js} +1 -1
- package/assets/esri/core/workers/chunks/48f1c3a7c9f16d6896f6.js +1 -0
- package/assets/esri/core/workers/chunks/49308bdc36373555f1af.js +1 -0
- package/assets/esri/core/workers/chunks/5075e85e1eafd431a8c0.js +1 -0
- package/assets/esri/core/workers/chunks/5121768c70f1e03b685c.js +1 -0
- package/assets/esri/core/workers/chunks/5201105ca11a2d450460.js +1 -0
- package/assets/esri/core/workers/chunks/{0e774f14ba274832f390.js → 520e0e5307eef27becc6.js} +1 -1
- package/assets/esri/core/workers/chunks/528ed0bd8dc149ead023.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/58ac245ff7fb57c1004f.js +1 -0
- package/assets/esri/core/workers/chunks/58acc18b92533166135d.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/{c83fea0d0ebd0d8e43fd.js → 5d62d1920e3e35fc0192.js} +1 -1
- package/assets/esri/core/workers/chunks/5dd441db1e74dc9b56e9.js +1 -0
- package/assets/esri/core/workers/chunks/{c216cd5d6b5d4fe4bab3.js → 62e77e3c5ca9b4887923.js} +2 -2
- package/assets/esri/core/workers/chunks/630ad47857de3cf726d1.js +1 -0
- package/assets/esri/core/workers/chunks/64114a7d2da162987958.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/68f9b2da1fd08785320f.js +2 -0
- 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/6c6396bfcdab12e68deb.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/{fce7995c26953bfd8d3d.js → 70229007d594536ba6a3.js} +1 -1
- package/assets/esri/core/workers/chunks/71e55381fdff3fc2542e.js +1 -0
- package/assets/esri/core/workers/chunks/{5abe34bb0110694f7b42.js → 72cfb186e50537bcdd19.js} +1 -1
- package/assets/esri/core/workers/chunks/72d67cc3a382e83bf1a2.js +1 -0
- package/assets/esri/core/workers/chunks/7748743d4be047094d67.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/7cee81c5aa1e6b7d2452.js +1 -0
- package/assets/esri/core/workers/chunks/7e89cb9ff615742e0894.js +1 -0
- 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/{c319c3b85cdec73a9f45.js → 877c848beaf9a939862c.js} +1 -1
- package/assets/esri/core/workers/chunks/{ae74f722fb385e45fcf1.js → 893c0d28a5bf3f9f29f1.js} +1 -1
- package/assets/esri/core/workers/chunks/89e09276086745aa21fa.js +1 -0
- package/assets/esri/core/workers/chunks/{16b90d8f628a412ba4ba.js → 8a8c5e5ce457ca004687.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/{50dc9893e13396f5e35d.js → 9629601de5e44ffe90ea.js} +2 -2
- package/assets/esri/core/workers/chunks/976ab2be6c244768c08a.js +1 -0
- package/assets/esri/core/workers/chunks/{e785f76c1a75cb1d1e1f.js → 99101789035f1787c630.js} +1 -1
- package/assets/esri/core/workers/chunks/{fbb23db01f3cf629d32e.js → 992a90ecbab931198fd0.js} +1 -1
- package/assets/esri/core/workers/chunks/99e5296192ab98fd0d99.js +1 -0
- package/assets/esri/core/workers/chunks/9d5f7573bfe3b051daf1.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/a4d3cbc02dc1186a9a6d.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/{f5a2c28dc26c065ea355.js → a9a1293b1d5302fb3b54.js} +28 -30
- package/assets/esri/core/workers/chunks/a9fc53ae040320e49834.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/ac33b10fe65f9e9e824f.js +1 -0
- package/assets/esri/core/workers/chunks/adc32f6b45ea3026fc34.js +1 -0
- package/assets/esri/core/workers/chunks/af31e62499d45bdab3c3.js +1 -0
- package/assets/esri/core/workers/chunks/b22a1c98271c2e4d8808.js +1 -0
- 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/c0cbc50e5afd68bd485c.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/{3e3134e4bc34d4e07179.js → c424a66f1546275e2bcb.js} +1 -1
- 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/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/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/d5c35a75fd4c41def420.js +1 -0
- package/assets/esri/core/workers/chunks/{ace1899a8e5162b4018d.js → d6bb8db22ba85ad05fd7.js} +1 -1
- package/assets/esri/core/workers/chunks/{7601278ebced0c0c31cf.js → d78b7cac322755e87eb8.js} +1 -1
- package/assets/esri/core/workers/chunks/d7be278aed1fb37ad5ec.js +1 -0
- package/assets/esri/core/workers/chunks/d9695794cfaa014a55b1.js +1 -0
- package/assets/esri/core/workers/chunks/{8244b74e9c3a30d8d2f6.js → d9d4754062758789f186.js} +2 -2
- package/assets/esri/core/workers/chunks/da1e8b338ab9fe9e0a8e.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/e6a7272b59a4c2e34dca.js +1 -0
- package/assets/esri/core/workers/chunks/e912b515704e20313e53.js +1 -0
- package/assets/esri/core/workers/chunks/eac683a37339aa558455.js +1 -0
- package/assets/esri/core/workers/chunks/ec1841e6e498d54012eb.js +1 -0
- package/assets/esri/core/workers/chunks/ed3d16a5b4084ef61f8a.js +1 -0
- package/assets/esri/core/workers/chunks/ee07f54bc77fe9f8575a.js +1 -0
- package/assets/esri/core/workers/chunks/{d35c475f004367e333eb.js → eeea5710275c967e8d51.js} +1 -1
- 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/{d1ccc5f2d8892328ab01.js → f5731ad4cfbbf1cc569a.js} +2 -2
- package/assets/esri/core/workers/chunks/f590db684d88e72bd79b.js +1 -0
- 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/f9ed05d4ad1f44d033bb.js +1 -0
- 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/fc4d9be62cf5e9758842.js +1 -0
- package/assets/esri/core/workers/chunks/fd70a25ffdf2cc6c5be2.js +1 -0
- 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/promiseUtils.d.ts +3 -3
- package/core/reactiveUtils.d.ts +4 -4
- package/core/screenUtils.js +1 -1
- 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/Multipoint.d.ts +9 -0
- package/geometry/Multipoint.js +1 -1
- package/geometry/Point.d.ts +15 -71
- package/geometry/Polygon.js +1 -1
- package/geometry/support/MeshMaterial.d.ts +5 -5
- package/geometry/support/MeshTexture.d.ts +19 -19
- package/geometry/support/geometryUtils.js +1 -1
- 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 +7 -1
- package/layers/CatalogLayer.d.ts +6 -0
- package/layers/DimensionFeatureLayer.d.ts +263 -32
- package/layers/DimensionFeatureLayer.js +1 -1
- package/layers/FeatureLayer.d.ts +45 -8
- package/layers/FeatureLayer.js +1 -1
- package/layers/GeoJSONLayer.d.ts +14 -8
- package/layers/LinkChartLayer.js +1 -1
- package/layers/MapImageLayer.d.ts +5 -5
- package/layers/MediaLayer.d.ts +2 -2
- package/layers/OrientedImageryLayer.d.ts +29 -2
- package/layers/ParquetLayer.d.ts +7 -1
- 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 +7 -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/WFSLayer.d.ts +6 -0
- package/layers/WebTileLayer.d.ts +1 -1
- package/layers/catalog/CatalogFootprintLayer.d.ts +60 -11
- 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/knowledgeGraph/KnowledgeGraphSublayer.d.ts +6 -0
- package/layers/mixins/ArcGISImageService.d.ts +7 -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/FeatureReductionBinning.d.ts +12 -0
- package/layers/support/FeatureReductionCluster.d.ts +12 -0
- package/layers/support/Field.d.ts +2 -2
- package/layers/support/ImageElement.d.ts +1 -1
- package/layers/support/MosaicRule.d.ts +0 -2
- package/layers/support/NumberFieldFormat.d.ts +5 -5
- package/layers/support/StreamConnection.d.ts +1 -1
- package/layers/support/Sublayer.d.ts +2 -2
- package/layers/support/SubtypeSublayer.d.ts +14 -1
- 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 +3 -3
- 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/CreateReplicaResponse.d.ts +1 -1
- package/rest/knowledgeGraph/GraphApplyEdits.d.ts +1 -1
- package/rest/knowledgeGraph/GraphProperty.d.ts +5 -1
- package/rest/knowledgeGraph/GraphQueryStreamingResult.d.ts +2 -2
- package/rest/knowledgeGraph/wasmInterface/wasmToDataModelFactories.js +1 -1
- package/rest/knowledgeGraph/wasmInterface/wasmToQueryResponseObjFactories.js +1 -1
- package/rest/knowledgeGraph/wasmInterface/wasmToReplicaFactories.js +1 -1
- 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/AttributeBinsQuery.d.ts +16 -2
- 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 +18 -4
- package/rest/support/RouteParameters.d.ts +5 -5
- package/rest/support/ServiceAreaParameters.d.ts +6 -6
- package/rest/support/TopFeaturesQuery.d.ts +16 -2
- 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/MapViewConstraints.d.ts +29 -25
- package/views/2d/engine/flow/styles/Imagery.js +1 -1
- package/views/2d/engine/flow/styles/Particles.js +1 -1
- package/views/2d/engine/flow/styles/Streamlines.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileFeatureIndex.js +1 -1
- package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
- 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 +4 -20
- package/views/2d/layers/BaseLayerViewGL2D.d.ts +6 -22
- 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/VectorTileLayerView2D.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/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
- package/views/2d/layers/graphics/GraphicStore.js +1 -1
- package/views/2d/support/hitTestUtils.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightAggregateManipulatedObject3D.js +2 -0
- package/views/3d/analysis/LineOfSight/LineOfSightAuthoringUtils.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightConfiguration.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightManipulators.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightObserverPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightPlacementLeafPlugin.js +2 -0
- package/views/3d/analysis/LineOfSight/LineOfSightPlacementTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightReshapeTool3D.js +2 -0
- package/views/3d/analysis/LineOfSight/LineOfSightRootPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTargetPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTool2.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSnappingController.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementError.d.ts +1 -1
- package/views/3d/glTF/internal/resourceUtils.js +1 -1
- package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
- package/views/3d/interactive/editingTools/reshape/ReshapeTool3D.js +1 -1
- package/views/3d/interactive/editingTools/reshape/isSupportedObject.js +1 -1
- package/views/3d/interactive/editingTools/reshape/reshapeTooltipUtils3D.js +1 -1
- package/views/3d/interactive/editingTools/visualElementUtils.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/View2D.d.ts +62 -54
- package/views/Viewport2DMixin.d.ts +1 -1
- package/views/analysis/ElevationProfile/ElevationProfileError.d.ts +1 -1
- package/views/draw/plugins/PolygonPlugin.js +1 -1
- package/views/input/gamepad/GamepadInputDevice.d.ts +1 -1
- package/views/input/types.d.ts +15 -15
- package/views/interactive/interactiveToolUtils.js +1 -1
- package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
- package/views/interactive/snapping/LineSnapper.js +1 -1
- package/views/interactive/snapping/ParallelLineSnapper.js +1 -1
- package/views/interactive/snapping/RightAngleSnapper.js +1 -1
- package/views/interactive/snapping/RightAngleTriangleSnapper.js +1 -1
- package/views/interactive/snapping/SnappingAlgorithm.js +1 -1
- package/views/interactive/snapping/SnappingManager.js +1 -1
- package/views/interactive/snapping/snappingUtils.js +1 -1
- package/views/layers/FeatureLikeLayerView.d.ts +32 -5
- package/views/layers/FeatureLikeLayerView.js +1 -1
- package/views/layers/GraphicsLayerView.d.ts +6 -3
- package/views/layers/ImageryLayerView.d.ts +4 -0
- 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/FieldColumn.d.ts +1 -14
- 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/07a242ea908aa8e2ba28.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/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/1ddbf5f507ac153234be.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/29615df388a0df022d8c.js +0 -1
- package/assets/esri/core/workers/chunks/2bcd4d395bfe6a19ccc8.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/319ff04282dc8ae38b56.js +0 -2
- 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/3402fb9c596b582311c7.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/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/48fcc10768d93e95a04e.js +0 -1
- package/assets/esri/core/workers/chunks/49f6c9e9980b8c624fd7.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/65621650a53f69f7b05a.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/6cab67fc7044ee9b863b.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/8c5a41ae68775bac3446.js +0 -1
- package/assets/esri/core/workers/chunks/8f94c90fdb0333da2d0f.js +0 -1
- package/assets/esri/core/workers/chunks/9133c1b7cc1c9da27deb.js +0 -1
- package/assets/esri/core/workers/chunks/9a6e62ef984e9c5babc4.js +0 -1
- package/assets/esri/core/workers/chunks/9d27cc631bab8aa7479e.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/e645f992ec6f935ee3a5.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/views/3d/analysis/LineOfSight/LineOfSightAuthoringStore.js +0 -2
- /package/assets/esri/core/workers/chunks/{50dc9893e13396f5e35d.js.LICENSE.txt → 62e77e3c5ca9b4887923.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{319ff04282dc8ae38b56.js.LICENSE.txt → 68f9b2da1fd08785320f.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{c216cd5d6b5d4fe4bab3.js.LICENSE.txt → 9629601de5e44ffe90ea.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{8244b74e9c3a30d8d2f6.js.LICENSE.txt → d9d4754062758789f186.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{d1ccc5f2d8892328ab01.js.LICENSE.txt → f5731ad4cfbbf1cc569a.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{clone as e}from"../../../../../core/lang.js";import{
|
|
2
|
+
import{clone as e}from"../../../../../core/lang.js";import{isHostedAgolService as t}from"../../../../../layers/support/arcgisLayerUrl.js";import{createFeatureIdInfo as r}from"./featureServiceUtils.js";import{getServiceGeometryType as s}from"./geometryUtils.js";import{ExceedsLimitCache as i}from"../schema/ExceedsLimitCache.js";import{createSnapshotInfo as a,createFeatureSourceSchema as o}from"../schema/SourceSchema.js";import{getSortKey as n}from"../schema/processor/SimpleProcessorSchema.js";import{createStorageSchema as l}from"../schema/processor/StorageSchema.js";import{getDimensionMatcherSchema as c}from"../../support/annodime/dimensionSchema.js";import{dimensionRealFields as p,dimensionVirtualFields as u}from"../../support/annodime/fields.js";import{getReferenceScale as m}from"../../support/annodime/utils.js";class d{constructor(e){this.layer=e,this._cache=new i}getLabelingDeconflictionInfo(){return[]}async createSourceSchema(e,t){const r=this._createServiceInfo(e),s=null!=this.layer.editingInfo?.lastEditDate,i=this.layer.refreshInterval>0,n=!s&&i,l=a("isSourceHosted"in r&&r.isSourceHosted,n,this.layer.capabilities,r.metadata.geometryType,e.extent,this.layer.fullExtent);let c=[];return c=e.availableFields.concat(...p),o(r,l,{definitionExpression:this.layer.definitionExpression,queryScaleRanges:[],displayFilterEnabled:!1,displayFilterInfo:null,customParameters:this.layer.customParameters,gdbVersion:this.layer.gdbVersion,historicMoment:this.layer.historicMoment,timeExtent:this.layer.timeExtent,apiKey:this.layer.apiKey,sourceRefreshVersion:t,availableFields:c,cache:this._cache,postQueryFilter:null,returnM:!1,returnZ:!1})}async createProcessorSchema(e,t,r){const{meshes:s,referenceScale:i}=await this._fetchDimensionDataElementRequest(e,{type:"dimension-data-element-request"}),{objectIdField:a}=this.layer,o=n(null,null,a);return{storage:l(null,t.filters),mesh:{properties:{sortKey:o,timeZone:t.timeZone,returnMeshObjectId:!1,displayRefreshVersion:r,currentUser:t.currentUser},strategy:{type:"feature"},factory:{symbology:s,labels:{type:"label",classes:[]},referenceScale:i}},expressionProperties:{timeExtent:null}}}get hasRequiredSupport(){return!0}get timeOptions(){return this.layer}addFilters(e){return e}getUpdateHashProperties(){return this.layer.destroyed?[]:[()=>this.layer.apiKey,()=>this.layer.customParameters,()=>this.layer.definitionExpression,()=>this.layer.gdbVersion,()=>this.layer.historicMoment,()=>this.layer.outFields]}getRenderer(){return null}setGraphicOrigin(e){e.origin=this.layer.graphicOrigin}_createServiceInfo(i){const a=this.layer,o=a.fieldsIndex.toJSON();o.fields.push(...u);const{capabilities:n,editingInfo:l,globalIdField:c,datesInUnknownTimezone:p,dateFieldsTimeZone:m,subtypeField:d}=a,y=s(a),h=a.timeInfo?.toJSON(),f=a.spatialReference.toJSON(),g=e(this.layer.parsedUrl),S=this.layer.objectIdField,R=t(g.path),x=i.spatialReference.toJSON();return{type:"feature-service",source:g,isSourceHosted:R,orderByFields:S,outSpatialReference:x,metadata:{timeReferenceUnknownClient:p,dateFieldsTimeZone:m,subtypeField:d,globalIdField:c,fieldsIndex:o,geometryType:y,featureIdInfo:r(a),timeInfo:h,spatialReference:f,outSpatialReference:x,subtypes:this.layer.subtypes?.map(e=>e.toJSON()),typeIdField:null,types:null,layerType:a.type,hasM:!1,hasZ:!1},queryMetadata:{supportsFormatPBF:!1,supportsQuantization:!1,maxRecordCount:n.query.maxRecordCount,tileMaxRecordCount:n.query.tileMaxRecordCount,supportsCompactGeometry:n.query.supportsCompactGeometry,supportsDefaultSpatialReference:n.query.supportsDefaultSpatialReference,supportsMaxRecordCountFactor:n.query.supportsMaxRecordCountFactor,supportsCentroidOnDegeneratedQuantizedGeometry:n.query.supportsCentroidOnDegeneratedQuantizedGeometry,supportsDegeneratedQuantizedGeometry:n.query.supportsDegeneratedQuantizedGeometry,lastEditDate:l?.lastEditDate?.getTime(),supportsReturnExceededLimitGeometries:n.query.supportsReturnExceededLimitGeometries}}}async _fetchDimensionDataElementRequest(e,t){const r={cimAnalyzer:e.cimAnalyzer,cimResourceManager:e.cimResourceManager,store:e.store,scaleExpression:null},s=this.layer,i=await s.fetchDataElement(),a=m(i);return{type:"dimension-data-element-response",dataElement:i,meshes:await c(i,r),referenceScale:a}}}export{d as DimensionLayerAdapter};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import
|
|
2
|
+
import"../../../../../../core/has.js";import{notDeepEqual as t}from"../../../../../../core/object.js";import{throwIfAborted as e}from"../../../../../../core/promiseUtils.js";import{difference as s}from"../../../../../../core/SetUtils.js";import{openWithPorts as a}from"../../../../../../core/workers/workers.js";import{loadParquetModule as i}from"../../../../../../libs/parquet/loadParquetModule.js";import{ALoadStrategy as r}from"./ALoadStrategy.js";import{ParquetSnapshotSourceChunk as o}from"./chunks/ParquetSnapshotSourceChunk.js";import{FeatureSetReaderParquet as l}from"../../support/FeatureSetReaderParquet.js";class n extends r{constructor(t,e,s,a){super(t.metadata,e,s),this._service=t,this._loaded=this._load(a)}destroy(){super.destroy(),this._loaded.finally(()=>{this._client.close(),this._client=null;for(const t of this._ports)t.close()}).catch(()=>{})}get about(){return{willQueryAllFeatures:!0,willQueryFullResolutionGeometry:!0}}get availableFields(){return this._schema.partial.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}async tryUpdate(e,s){await this._loaded;let a=!0;return t(this.availableFields,s.availableFields)&&await this._updateFields(s.availableFields),this._schema.partial.dataSourceHash!==s.dataSourceHash&&(a=!1),this._schema.partial=s,a}async load(t){return this._loaded}unload(t){}_onOverride(){}async _load(t){this._ports=await t.layerView.openMemoryPorts(),this._client=await a(this._ports,{maxNumberOfConcurrentJobs:20}),this._proxy=this._client.createInvokeProxy(),this._indexMap=await this._proxy.getIndexMap(),await this._download()}async _updateFields(t){const e=new Set(t),a=s(e,new Set(this.availableFields));if(null!=this._service.metadata.fieldsIndex&&a.size){const t=Array.from(this.store.insertedChunks()).map(t=>t.updateFields(this._proxy,Array.from(a),this._options));await Promise.all(t)}}async _downloadFiles(){const t=await i();e(this._options);const s=await this._proxy.queryStream({type:"snapshot",outFields:Array.from(this.availableFields),returnGeometry:!0,outSpatialReference:this.metadata.outSpatialReference.toJSON(),where:this.definitionExpression},this._options);let a=0;for(;;){const i=await this._proxy.getStreamNext(s,this._options);if(e(this._options),null==i)break;const{fileId:r,buffer:n}=i,d=t.ParquetChunk.deserialize(new Uint8Array(n)),h=new l(this.metadata,this._indexMap,d,r),p=new o(this.metadata,h,a++,!1,r);this.store.insert(p)}}async _download(){try{await this._downloadFiles();const t=new o(this.metadata,null,-1,!0,null);this.store.insert(t)}catch(t){throw console.error(t),t}}}export{n as ParquetSnapshotLoadStrategy};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import
|
|
2
|
+
import{handlesGroup as t}from"../../../../../../core/handleUtils.js";import"../../../../../../core/has.js";import{getOrCreateMapValue as e}from"../../../../../../core/MapUtils.js";import{notDeepEqual as s}from"../../../../../../core/object.js";import{throwIfAborted as a,onAbort as i}from"../../../../../../core/promiseUtils.js";import{QueueProcessor as r}from"../../../../../../core/QueueProcessor.js";import{difference as o}from"../../../../../../core/SetUtils.js";import{openWithPorts as l}from"../../../../../../core/workers/workers.js";import{loadParquetModule as n}from"../../../../../../libs/parquet/loadParquetModule.js";import{ALoadStrategy as d}from"./ALoadStrategy.js";import{fetchQueueConcurrency as h}from"./constants.js";import{ParquetSourceChunk as c}from"./chunks/ParquetSourceChunk.js";import{FeatureSetReaderParquet as u}from"../../support/FeatureSetReaderParquet.js";class p{constructor(e,s){this.subscription=e,this.chunks=[],this.ids=[],this._controller=new AbortController,this._handles=t([i(e.signal,()=>this._controller.abort()),i(s,()=>this._controller.abort())])}destroy(){this._controller.abort(),this._handles.remove()}get options(){return{signal:this._controller.signal}}addBinaryData(t){this.chunks.push(t)}addSourceChunkId(t){this.ids.push(t)}}class m extends d{constructor(t,e,s,a){if(super(t.metadata,e,s),this._service=t,this._loadStates=new Map,this._queue=new r({concurrency:h,process:t=>this._loadTile(t)}),!t.geometryInfo.displayOptimization)throw new Error("InternalError: ParquetTileLoadStrategy only supports XZ-enabled parquet files");this._loaded=this._load(a)}destroy(){super.destroy(),this._loaded.finally(()=>{this._client.close(),this._client=null;for(const t of this._ports)t.close()}).catch(()=>{})}get about(){return{willQueryAllFeatures:!0,willQueryFullResolutionGeometry:!0}}get availableFields(){return this._schema.partial.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}async tryUpdate(t,e){await this._loaded;let a=!0;return s(this.availableFields,e.availableFields)&&await this._updateFields(e.availableFields),this._schema.partial.dataSourceHash!==e.dataSourceHash&&(a=!1),this._schema.partial=e,a}async load(t){return await this._loaded,e(this._loadStates,t.key.id,()=>new p(t,this._options)),this._queue.push(t)}unload(t){const e=this._loadStates.get(t.tile.id);if(null!=e){for(const t of e.ids)this.store.removeById(t);e.destroy(),this._loadStates.delete(t.tile.id)}}async _load(t){this._ports=await t.layerView.openMemoryPorts(),this._client=await l(this._ports,{maxNumberOfConcurrentJobs:20}),this._proxy=this._client.createInvokeProxy(),this._indexMap=await this._proxy.getIndexMap()}_onOverride(){}async _updateFields(t){const e=new Set(t),s=o(e,new Set(this.availableFields));if(null!=this._service.metadata.fieldsIndex&&s.size){const t=Array.from(this.store.insertedChunks()).map(t=>t.updateFields(this._proxy,Array.from(s),this._options));await Promise.all(t)}}async _loadTile(t){const e=t.tile,s=t.signal,i=this._loadStates.get(e.id);await this._downloadTileData(t),a(s);const r=new c(this.metadata,null,e,null,0,!0);i.addSourceChunkId(r.chunkId),this.store.insert(r)}async _downloadTileData(t){const e=await n(),s=t.tile,i=t.signal,r=this._loadStates.get(s.id),o=await this._proxy.queryStream({type:"tile",extent:s.extent,transform:s.normalizedTransform,outFields:Array.from(this.availableFields),returnGeometry:!0,outSpatialReference:this.metadata.outSpatialReference.toJSON(),scale:s.scale,where:this.definitionExpression},{signal:i});let l=0;for(;;){const t=await this._proxy.getStreamNext(o,{signal:i});if(a(i),null==t)break;const{fileId:n,buffer:d}=t,h=e.ParquetChunk.deserialize(new Uint8Array(d)),p=new u(this.metadata,this._indexMap,h,n,s.transform),m=new c(this.metadata,p,s,n,l++,!1);r.addBinaryData({data:h,fileId:n}),r.addSourceChunkId(m.chunkId),this.store.insert(m)}}}export{m as ParquetTileLoadStrategy};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ArcadeDate as e}from"../../../../../arcade/ArcadeDate.js";import has from"../../../../../core/has.js";import{estimateNumberArrayMemory as t}from"../../../../../core/memoryEstimations.js";import{DateOnly as r}from"../../../../../core/sql/DateOnly.js";import{TimeOnly as s}from"../../../../../core/sql/TimeOnly.js";import{GeometryCursor as i}from"../../../../../geometry/GeometryCursor.js";import{fromRectValues as o}from"../../../../../geometry/support/aaBoundingBox.js";import{fromJSON as a}from"../../../../../geometry/support/jsonUtils.js";import{getLabelPoint as n}from"../../../../../geometry/support/labelPoint.js";import{quantizeX as d,quantizeY as u}from"../../../../../geometry/support/quantizationUtils.js";import{zScale as c}from"../../../../../geometry/support/zscale.js";import{getCentroidOptimizedGeometry as h}from"../../../../../layers/graphics/centroid.js";import{convertToGeometry as l,generalizeOptimizedGeometry as m,quantizeOptimizedGeometry as y,unquantizeOptimizedGeometryInPlace as f}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as p}from"../../../../../layers/graphics/OptimizedFeature.js";import g from"../../../../../layers/graphics/OptimizedGeometry.js";import{system as _,unknown as b}from"../../../../../time/constants.js";import{FeatureSetCache as x}from"./FeatureSetCache.js";const T=has("featurelayer-simplify-thresholds")??[.5,.5,.5,.5],D=T[0],F=T[1],I=T[2],S=T[3],A=has("featurelayer-simplify-payload-size-factors")??[1,2,4],j=A[0],B=A[1],C=A[2],G=has("featurelayer-simplify-mobile-factor")??2,M=has("esri-mobile"),v=4294967295;function O(e,t,r){if(!(e.length>t))for(;e.length<=t;)e.push(r)}class w{constructor(e){this.metadata=e,this.type="FeatureSetReader",this._overrides=null,this._postQueryFilteredIds=new Set,this._joined=[],this._objectIdToIndex=null,this._boundsBuffer=[],this._deleted=new Set,this._caches=new Map,this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}destroy(){}[Symbol.dispose](){this.destroy()}getAreaSimplificationThreshold(e,t){let r=1;const s=M?G:1;t>4e6?r=C*s:t>1e6?r=B*s:t>5e5?r=j*s:t>1e5&&(r=s);let i=0;return e>4e3?i=S*r:e>2e3?i=I*r:e>100?i=F:e>15&&(i=D),i}getBounds(e){O(this._boundsBuffer,4*this.getIndex()+4,0);const t=this.getBoundsXMin();if(t===v||!isFinite(t))return!1;if(0===this.getBoundsXMin()){const t=this.readGeometryWorldSpace();if(t?.isPoint&&0===t.coords[0]&&0===t.coords[1])return o(e,0,0,0,0),!0;if(!t)return this.setBoundsXMin(v),!1;let r=1/0,s=1/0,i=-1/0,a=-1/0;return t.forEachVertex((e,t)=>{r=Math.min(r,e),s=Math.min(s,t),i=Math.max(i,e),a=Math.max(a,t)}),this.setBoundsXMin(r),this.setBoundsYMin(s),this.setBoundsXMax(i),this.setBoundsYMax(a),o(e,r,s,i,a),!0}const r=this.getBoundsXMin(),s=this.getBoundsYMin(),i=this.getBoundsXMax(),a=this.getBoundsYMax();return o(e,r,s,i,a),!0}getBoundsXMin(){return this._boundsBuffer[4*this.getIndex()]}setBoundsXMin(e){this._boundsBuffer[4*this.getIndex()]=e}getBoundsYMin(){return this._boundsBuffer[4*this.getIndex()+1]}setBoundsYMin(e){this._boundsBuffer[4*this.getIndex()+1]=e}getBoundsXMax(){return this._boundsBuffer[4*this.getIndex()+2]}setBoundsXMax(e){this._boundsBuffer[4*this.getIndex()+2]=e}getBoundsYMax(){return this._boundsBuffer[4*this.getIndex()+3]}setBoundsYMax(e){this._boundsBuffer[4*this.getIndex()+3]=e}readAttributeAsTimestamp(e){const t=this.readAttribute(e);return"string"==typeof t?new Date(t).getTime():"number"==typeof t||null==t?t:null}readAttribute(e,t=!1){const r=this._readAttribute(e,t);if(void 0!==r)return r;for(const s of this._joined){s.setIndex(this.getIndex());const r=s._readAttribute(e,t);if(void 0!==r)return r}}readAttributes(){const e=this._readAttributes();for(const t of this._joined){t.setIndex(this.getIndex());const r=t._readAttributes();for(const t of Object.keys(r))e[t]=r[t]}return e}joinAttributes(e){this._joined.push(e)}registerOverrides(e){this._overrides=e}withoutOverrides(){const e=this.copy();return e._overrides=null,e}readOptimizedFeatureWorldSpace(){const e=this.readGeometryWorldSpace(),t=this.readAttributes(),r=this.readCentroidWorldSpace();return new p(e,t,r,this.getObjectId(),this.getDisplayId())}readLegacyFeatureForDisplay(){const e=this.readCentroidForDisplay();return{attributes:this.readAttributes(),geometry:this.readLegacyGeometryForDisplay(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyFeatureWorldSpace(){const e=this.readCentroidWorldSpace();return{attributes:this.readAttributes(),geometry:this._readLegacyGeometryWorldSpace(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyGeometryForDisplay(){const e=this.readGeometryForDisplay();return l(e,this.geometryType,!1,!1)}readXForDisplay(){return this._readX()}readYForDisplay(){return this._readY()}readXWorldSpace(){const e=this._readX(),t=this.getInTransform();return null==t?e:e*t.scale[0]+t.translate[0]}readYWorldSpace(){const e=this._readY(),t=this.getInTransform();return null==t?e:t.translate[1]-e*t.scale[1]}readGeometryForDisplay(){const e=this._readGeometryDeltaDecoded(!0);if(!e){const e=this._createDeltaQuantizedGeometryFromServerCentroid();return e?e.deltaDecode():null}return e}readGeometryForDisplayTransformed(e){let t=this.readGeometryForDisplay();if(t&&"esriGeometryPolyline"===this.metadata.geometryType&&(t=m(t,this.metadata.geometryType,e.scale[0])),t&&(t=y(t,this.metadata.geometryType,e,t.hasZ,t.hasM,!0)),!t){const t=this.readCentroidForDisplay();if(!t)return null;const r=d(e,t.coords[0]),s=u(e,t.coords[1]);return this._createDeltaQuantizedExtrudedGeometry(r,s).deltaDecode()}return t}_transformToWorldSpace(e){if(!e)return null;e=e.clone();const t=this.getInTransform();t&&f(e,t);const r=c(this.metadata.spatialReference,this.metadata.outSpatialReference);if(e.hasZ&&1!==r){const{stride:t,coords:s}=e;for(let e=2;e<s.length;e+=t)s[e]*=r}return e}readGeometryWorldSpace(){let e=this._readGeometry();return e||(e=this._createDeltaQuantizedGeometryFromServerCentroid()),this._transformToWorldSpace(e)}readCentroidForDisplay(){const e=this.readGeometryForDisplay();return e?this._computeDisplayCentroid(e):this._readServerCentroid()}readCentroidWorldSpace(){const e=this.readGeometryForDisplay(),t=e?this._computeDisplayCentroid(e):this._readServerCentroid();return this._transformToWorldSpace(t)}setCache(e){let t=this._caches.get(e);null==t&&(t=new x(this.getSize()),this._caches.set(e,t)),this._activeCache=t}setCachedValue(e){this._activeCache.set(this.getIndex(),e)}hasCachedValue(){return this._activeCache.has(this.getIndex())}getCachedValue(){return this._activeCache.get(this.getIndex())}delete(){this._deleted.add(this.getObjectId())}getByReferenceVertexCount(){return null}get underlyingMemory(){let e=0;e+=t(this._boundsBuffer);for(const t of this._caches.values())e+=t.usedMemory;return e}_readGeometryDeltaDecoded(e){const t=this._readGeometry(e);if("esriGeometryPoint"===this.geometryType||!t)return t;const r=this.getInTransform();if(!t||!r)return t;const s=r.scale[2]??1,i=r.translate[2]??0,o=r.scale[3]??1,a=r.translate[3]??0,{hasZ:n,hasM:d,stride:u,size:c,coords:h}=t,l=n&&(1!==s||0!==i),m=d&&(1!==o||0!==a);if(l||m){const e=2,t=n?3:2;for(let r=0,n=u*c;r<n;r+=u)l&&(h[r+e]=s*h[r+e]+i),m&&(h[r+t]=o*h[r+t]+a)}return t.deltaDecode()}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this.fields.has(e)||this._joined.some(t=>t.hasField(e))}geometry(){const e=this.readGeometryWorldSpace(),t=l(e,this.geometryType,this.hasZ,this.hasM),r=a(t);if(r){if(!this.metadata.outSpatialReference)throw new Error("InternalError: Expected spatial reference to be defined");r.spatialReference=this.metadata.outSpatialReference}return r}autocastArcadeDate(t,r){return r&&r instanceof Date?this.isUnknownDateTimeField(t)?e.unknownDateJSToArcadeDate(r):e.dateJSAndZoneToArcadeDate(r,this.contextTimeZone??_):r}isUnknownDateTimeField(e){return this.metadata.fieldsIndex.getTimeZone(e)===b}field(t){let i=this.fields.get(t);if(i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return r.fromReader(this.readAttribute(t,!1));case"time-only":case"esriFieldTypeTimeOnly":return s.fromReader(this.readAttribute(t,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(this.readAttribute(t,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(t,this.readAttribute(t,!0));default:return this.readAttribute(t,!1)}for(const o of this._joined)if(o.setIndex(this.getIndex()),i=o.fields.get(t),i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return r.fromReader(o._readAttribute(t,!1));case"time-only":case"esriFieldTypeTimeOnly":return s.fromReader(o._readAttribute(t,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(o._readAttribute(t,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(t,o._readAttribute(t,!0));default:return this.readAttribute(t,!1)}throw new Error(`Field ${t} does not exist`)}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this.fields.fields.map(e=>e.name)}isEmpty(){return this.fields.fields.length<=0&&null==this.geometry()}castToText(e=!1){if(!e)return JSON.stringify(this.readLegacyFeatureForDisplay());const t=this.readLegacyFeatureForDisplay();if(!t)return JSON.stringify(null);const r={geometry:t.geometry,attributes:{...t.attributes}};for(const s in r.attributes){const e=r.attributes[s];e instanceof Date&&(r.attributes[s]=e.getTime())}return JSON.stringify(r)}gdbVersion(){return null}fullSchema(){return this.metadata.arcadeSchema}castAsJson(e=null){return{attributes:this._readAttributes(),geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}applyPostQueryFilter(e){if(this._postQueryFilteredIds.clear(),!e)return;const t=this.getCursor();for(;t.next();){e.check(t,{currentUser:null})||this._postQueryFilteredIds.add(t.getObjectId())}}_getExists(){if(this._overrides){const e=this.getObjectId();return!this._overrides.hasOverride(e)}const e=this.getObjectId();return this._deleted.has(e)||!this._postQueryFilteredIds.has(e)}_computeDisplayCentroid(e){if(null==this.getInTransform())return h(e);const t=i.fromOptimized(e,this.geometryType);t.yFactor*=-1;const r=n(t);return r?isNaN(r[0])||isNaN(r[1])?h(e):(r[1]*=-1,new g([],r)):null}copyInto(e){e._joined=this._joined,e._overrides=this._overrides,e._objectIdToIndex=this._objectIdToIndex,e._boundsBuffer=this._boundsBuffer,e._activeCache=this._activeCache,e._caches=this._caches,e._contextTimeZone=this._contextTimeZone,e._postQueryFilteredIds=this._postQueryFilteredIds,e._deleted=this._deleted}_readLegacyGeometryWorldSpace(){const e=this.readGeometryWorldSpace();return l(e,this.geometryType,!1,!1)}_createDeltaQuantizedGeometryFromServerCentroid(){const e=this._readServerCentroid();if(!e)return null;const[t,r]=e.coords;return this._createDeltaQuantizedExtrudedGeometry(t,r)}_createDeltaQuantizedExtrudedGeometry(e,t){return"esriGeometryPolyline"===this.geometryType?this._createDeltaQuantizedExtrudedLine(e,t):this._createDeltaQuantizedExtrudedQuad(e,t)}_createDeltaQuantizedExtrudedQuad(e,t){return new g([5],[e-1,t,1,-1,1,1,-1,1,-1,-1])}_createDeltaQuantizedExtrudedLine(e,t){return new g([2],[e-1,t+1,1,-1])}}export{w as FeatureSetReader};
|
|
2
|
+
import{ArcadeDate as e}from"../../../../../arcade/ArcadeDate.js";import has from"../../../../../core/has.js";import{estimateNumberArrayMemory as t}from"../../../../../core/memoryEstimations.js";import{DateOnly as r}from"../../../../../core/sql/DateOnly.js";import{TimeOnly as s}from"../../../../../core/sql/TimeOnly.js";import{GeometryCursor as i}from"../../../../../geometry/GeometryCursor.js";import{fromRectValues as o}from"../../../../../geometry/support/aaBoundingBox.js";import{fromJSON as a}from"../../../../../geometry/support/jsonUtils.js";import{getLabelPoint as n}from"../../../../../geometry/support/labelPoint.js";import{quantizeX as d,quantizeY as u}from"../../../../../geometry/support/quantizationUtils.js";import{zScale as c}from"../../../../../geometry/support/zscale.js";import{getCentroidOptimizedGeometry as h}from"../../../../../layers/graphics/centroid.js";import{convertToGeometry as l,generalizeOptimizedGeometry as m,quantizeOptimizedGeometry as y,unquantizeOptimizedGeometryInPlace as f}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as p}from"../../../../../layers/graphics/OptimizedFeature.js";import g from"../../../../../layers/graphics/OptimizedGeometry.js";import{system as _,unknown as b}from"../../../../../time/constants.js";import{FeatureSetCache as x}from"./FeatureSetCache.js";const D=has("featurelayer-simplify-thresholds")??[.5,.5,.5,.5],T=D[0],F=D[1],I=D[2],S=D[3],A=has("featurelayer-simplify-payload-size-factors")??[1,2,4],j=A[0],B=A[1],C=A[2],G=has("featurelayer-simplify-mobile-factor")??2,M=has("esri-mobile"),v=4294967295;function O(e,t,r){if(!(e.length>t))for(;e.length<=t;)e.push(r)}class w{constructor(e){this.metadata=e,this.type="FeatureSetReader",this._overrides=null,this._postQueryFilteredIds=new Set,this._joined=[],this._objectIdToIndex=null,this._boundsBuffer=[],this._deleted=new Set,this._caches=new Map,this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}destroy(){}[Symbol.dispose](){this.destroy()}getAreaSimplificationThreshold(e,t){let r=1;const s=M?G:1;t>4e6?r=C*s:t>1e6?r=B*s:t>5e5?r=j*s:t>1e5&&(r=s);let i=0;return e>4e3?i=S*r:e>2e3?i=I*r:e>100?i=F:e>15&&(i=T),i}getBounds(e){O(this._boundsBuffer,4*this.getIndex()+4,0);const t=this.getBoundsXMin();if(t===v||!isFinite(t))return!1;if(0===this.getBoundsXMin()){const t=this.readGeometryWorldSpace();if(t?.isPoint&&0===t.coords[0]&&0===t.coords[1])return o(e,0,0,0,0),!0;if(!t)return this.setBoundsXMin(v),!1;let r=1/0,s=1/0,i=-1/0,a=-1/0;return t.forEachVertex((e,t)=>{r=Math.min(r,e),s=Math.min(s,t),i=Math.max(i,e),a=Math.max(a,t)}),this.setBoundsXMin(r),this.setBoundsYMin(s),this.setBoundsXMax(i),this.setBoundsYMax(a),o(e,r,s,i,a),!0}const r=this.getBoundsXMin(),s=this.getBoundsYMin(),i=this.getBoundsXMax(),a=this.getBoundsYMax();return o(e,r,s,i,a),!0}getBoundsXMin(){return this._boundsBuffer[4*this.getIndex()]}setBoundsXMin(e){this._boundsBuffer[4*this.getIndex()]=e}getBoundsYMin(){return this._boundsBuffer[4*this.getIndex()+1]}setBoundsYMin(e){this._boundsBuffer[4*this.getIndex()+1]=e}getBoundsXMax(){return this._boundsBuffer[4*this.getIndex()+2]}setBoundsXMax(e){this._boundsBuffer[4*this.getIndex()+2]=e}getBoundsYMax(){return this._boundsBuffer[4*this.getIndex()+3]}setBoundsYMax(e){this._boundsBuffer[4*this.getIndex()+3]=e}readAttributeAsTimestamp(e){const t=this.readAttribute(e);return"string"==typeof t?new Date(t).getTime():"number"==typeof t||null==t?t:null}readAttribute(e,t=!1){const r=this._readAttribute(e,t);if(void 0!==r)return r;for(const s of this._joined){s.setIndex(this.getIndex());const r=s._readAttribute(e,t);if(void 0!==r)return r}}readAttributes(){const e=this._readAttributes();for(const t of this._joined){t.setIndex(this.getIndex());const r=t._readAttributes();for(const t of Object.keys(r))e[t]=r[t]}return e}joinAttributes(e){this._joined.push(e)}registerOverrides(e){this._overrides=e}withoutOverrides(){const e=this.copy();return e._overrides=null,e}readOptimizedFeatureWorldSpace(){const e=this.readGeometryWorldSpace(),t=this.readAttributes(),r=this.readCentroidWorldSpace();return new p(e,t,r,this.getObjectId(),this.getDisplayId())}readLegacyFeatureForDisplay(){const e=this.readCentroidForDisplay();return{attributes:this.readAttributes(),geometry:this.readLegacyGeometryForDisplay(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyFeatureWorldSpace(){const e=this.readCentroidWorldSpace();return{attributes:this.readAttributes(),geometry:this._readLegacyGeometryWorldSpace(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyGeometryForDisplay(){const e=this.readGeometryForDisplay();return l(e,this.geometryType,!1,!1)}readXForDisplay(){return this._readX()}readYForDisplay(){return this._readY()}readXWorldSpace(){const e=this._readX(),t=this.getInTransform();return null==t?e:e*t.scale[0]+t.translate[0]}readYWorldSpace(){const e=this._readY(),t=this.getInTransform();return null==t?e:t.translate[1]-e*t.scale[1]}readGeometryForDisplay(){const e=this._readGeometryDeltaDecoded(!0);if(!e){const e=this._createDeltaQuantizedGeometryFromServerCentroid();return e?e.deltaDecode():null}return e}readGeometryForDisplayTransformed(e){let t=this.readGeometryForDisplay();if(t&&"esriGeometryPolyline"===this.metadata.geometryType&&(t=m(t,this.metadata.geometryType,e.scale[0])),t&&(t=y(t,this.metadata.geometryType,e,t.hasZ,t.hasM,!0)),!t){const t=this.readCentroidForDisplay();if(!t)return null;const r=d(e,t.coords[0]),s=u(e,t.coords[1]);return this._createDeltaQuantizedExtrudedGeometry(r,s).deltaDecode()}return t}_transformToWorldSpace(e){if(!e)return null;e=e.clone();const t=this.getInTransform();t&&f(e,t);const r=c(this.metadata.spatialReference,this.metadata.outSpatialReference);if(e.hasZ&&1!==r){const{stride:t,coords:s}=e;for(let e=2;e<s.length;e+=t)s[e]*=r}return e}readGeometryWorldSpace(){let e=this._readGeometry();return e||(e=this._createDeltaQuantizedGeometryFromServerCentroid()),this._transformToWorldSpace(e)}readCentroidForDisplay(){const e=this.readGeometryForDisplay();return e?this._computeDisplayCentroid(e):this._readServerCentroid()}readCentroidWorldSpace(){const e=this.readGeometryForDisplay(),t=e?this._computeDisplayCentroid(e):this._readServerCentroid();return this._transformToWorldSpace(t)}setCache(e){let t=this._caches.get(e);null==t&&(t=new x(this.getSize()),this._caches.set(e,t)),this._activeCache=t}setCachedValue(e){this._activeCache.set(this.getIndex(),e)}hasCachedValue(){return this._activeCache.has(this.getIndex())}getCachedValue(){return this._activeCache.get(this.getIndex())}delete(){this._deleted.add(this.getObjectId())}getByReferenceVertexCount(){return null}get underlyingMemory(){let e=0;e+=t(this._boundsBuffer);for(const t of this._caches.values())e+=t.usedMemory;return e}_readGeometryDeltaDecoded(e){const t=this._readGeometry(e);if("esriGeometryPoint"===this.geometryType||!t)return t;const r=this.getInTransform();if(!t||!r)return t;const s=r.scale[2]??1,i=r.translate[2]??0,o=r.scale[3]??1,a=r.translate[3]??0,{hasZ:n,hasM:d,stride:u,size:c,coords:h}=t,l=n&&(1!==s||0!==i),m=d&&(1!==o||0!==a);if(l||m){const e=2,t=n?3:2;for(let r=0,n=u*c;r<n;r+=u)l&&(h[r+e]=s*h[r+e]+i),m&&(h[r+t]=o*h[r+t]+a)}return this.supportsDeltaEncoding()?t.deltaDecode():t}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this.fields.has(e)||this._joined.some(t=>t.hasField(e))}geometry(){const e=this.readGeometryWorldSpace(),t=l(e,this.geometryType,this.hasZ,this.hasM),r=a(t);if(r){if(!this.metadata.outSpatialReference)throw new Error("InternalError: Expected spatial reference to be defined");r.spatialReference=this.metadata.outSpatialReference}return r}autocastArcadeDate(t,r){return r&&r instanceof Date?this.isUnknownDateTimeField(t)?e.unknownDateJSToArcadeDate(r):e.dateJSAndZoneToArcadeDate(r,this.contextTimeZone??_):r}isUnknownDateTimeField(e){return this.metadata.fieldsIndex.getTimeZone(e)===b}field(t){let i=this.fields.get(t);if(i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return r.fromReader(this.readAttribute(t,!1));case"time-only":case"esriFieldTypeTimeOnly":return s.fromReader(this.readAttribute(t,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(this.readAttribute(t,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(t,this.readAttribute(t,!0));default:return this.readAttribute(t,!1)}for(const o of this._joined)if(o.setIndex(this.getIndex()),i=o.fields.get(t),i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return r.fromReader(o._readAttribute(t,!1));case"time-only":case"esriFieldTypeTimeOnly":return s.fromReader(o._readAttribute(t,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(o._readAttribute(t,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(t,o._readAttribute(t,!0));default:return this.readAttribute(t,!1)}throw new Error(`Field ${t} does not exist`)}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this.fields.fields.map(e=>e.name)}isEmpty(){return this.fields.fields.length<=0&&null==this.geometry()}castToText(e=!1){if(!e)return JSON.stringify(this.readLegacyFeatureForDisplay());const t=this.readLegacyFeatureForDisplay();if(!t)return JSON.stringify(null);const r={geometry:t.geometry,attributes:{...t.attributes}};for(const s in r.attributes){const e=r.attributes[s];e instanceof Date&&(r.attributes[s]=e.getTime())}return JSON.stringify(r)}gdbVersion(){return null}fullSchema(){return this.metadata.arcadeSchema}castAsJson(e=null){return{attributes:this._readAttributes(),geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}applyPostQueryFilter(e){if(this._postQueryFilteredIds.clear(),!e)return;const t=this.getCursor();for(;t.next();){e.check(t,{currentUser:null})||this._postQueryFilteredIds.add(t.getObjectId())}}_getExists(){if(this._overrides){const e=this.getObjectId();return!this._overrides.hasOverride(e)}const e=this.getObjectId();return this._deleted.has(e)||!this._postQueryFilteredIds.has(e)}_computeDisplayCentroid(e){if(null==this.getInTransform())return h(e);const t=i.fromOptimized(e,this.geometryType);t.yFactor*=-1;const r=n(t);return r?isNaN(r[0])||isNaN(r[1])?h(e):(r[1]*=-1,new g([],r)):null}copyInto(e){e._joined=this._joined,e._overrides=this._overrides,e._objectIdToIndex=this._objectIdToIndex,e._boundsBuffer=this._boundsBuffer,e._activeCache=this._activeCache,e._caches=this._caches,e._contextTimeZone=this._contextTimeZone,e._postQueryFilteredIds=this._postQueryFilteredIds,e._deleted=this._deleted}supportsDeltaEncoding(){return!0}_readLegacyGeometryWorldSpace(){const e=this.readGeometryWorldSpace();return l(e,this.geometryType,!1,!1)}_createDeltaQuantizedGeometryFromServerCentroid(){const e=this._readServerCentroid();if(!e)return null;const[t,r]=e.coords;return this._createDeltaQuantizedExtrudedGeometry(t,r)}_createDeltaQuantizedExtrudedGeometry(e,t){return"esriGeometryPolyline"===this.geometryType?this._createDeltaQuantizedExtrudedLine(e,t):this._createDeltaQuantizedExtrudedQuad(e,t)}_createDeltaQuantizedExtrudedQuad(e,t){return new g([5],[e-1,t,1,-1,1,1,-1,1,-1,-1])}_createDeltaQuantizedExtrudedLine(e,t){return new g([2],[e-1,t+1,1,-1])}}export{w as FeatureSetReader};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"../../../../../core/has.js";import{baseObjectMemory as e}from"../../../../../core/memoryEstimations.js";import t from"../../../../../layers/graphics/OptimizedGeometry.js";import{getParquetObjectId as r}from"../../../../../layers/graphics/sources/support/parquetIdUtils.js";import{QuantizedGeometryBuffer as s}from"../../../../../chunks/bundle2.js";import{FeatureSetReader as n}from"./FeatureSetReader.js";let i;const d=new TextDecoder;class o extends n{constructor(t,r,s,n,i,d=new Uint32Array(s.size())){super(t),this._indexMap=r,this._inner=s,this._fileId=n,this._transform=i,this._displayIds=d,this._index=-1,this.usedMemory=e,this._size=this._inner.size();t.featureIdInfo.type}destroy(){super.destroy(),this._inner.free()}get fields(){return this.metadata.fieldsIndex}get geometryType(){return this.metadata.geometryType}get hasFeatures(){return!0}get hasNext(){throw new Error("Method not implemented.")}get exceededTransferLimit(){return!1}get hasZ(){return!1}get hasM(){return!1}async updateFields(e,t,r,s){const n=this._inner.rowGroup(),i=new Uint32Array(this._inner.readIdsUnsafe()),d=await e.createPatch(t,n,i,r,s);this._inner.insertPatchBytes(new Uint8Array(d))}getInTransform(){return this._transform}getSize(){return this._size}getCursor(){return this.copy()}getAttributeHash(){let e="";for(const t of this.fields.fields)e+=this._readAttribute(t.name,!1)+".";return e}getObjectId(){return r(this._fileId,this._inner.rowId(this._index))}getDisplayId(){return this._displayIds[this._index]}setDisplayId(e){this._displayIds[this._index]=e}setIndex(e){this._index=e}getBoundsXMin(){return this._inner.boundsXMin(this._index)}getBoundsYMin(){return this._inner.boundsYMin(this._index)}getBoundsXMax(){return this._inner.boundsXMax(this._index)}getBoundsYMax(){return this._inner.boundsYMax(this._index)}setBoundsXMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsXMax(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMax(e){throw new Error("InternalError: Setting bounds is unsupported")}getIndex(){return this._index}next(){for(;++this._index<this._size&&!this._getExists(););return this._index<this._size}readGeometryArea(){return this.readGeometryForDisplay()?.area()??0}copy(){const e=new o(this.metadata,this._indexMap,this._inner,this._fileId,this._transform,this._displayIds);return this.copyInto(e),e}copyInto(e){super.copyInto(e),e._index=this._index}readGeometryForDisplayTransformed(e){const[r,n]=e.translate,[d,o]=e.scale;i||(i=s.new());return this._inner.transformGeometry(i,r,n,d,o,this._index)?new t(i.readLengthsUnsafe(),i.readCoordsUnsafe(),this.hasZ,this.hasM):null}_readGeometry(e){const r=this._inner.readCoordsUnsafe(this._index),s=this._inner.readLengthsUnsafe(this._index);return r&&s?new t(s,r,this.hasZ,this.hasM):null}_readX(){return this._inner.readX(this._index)}_readY(){return this._inner.readY(this._index)}_readServerCentroid(){return null}_readAttribute(e,t){const r=this.fields.get(e);if(!r)return;const s=this._indexMap[r.name];if(null==s)return this.getObjectId();const n=this._inner.readAttribute(this._index,s);if(null==n)return n;if("esriFieldTypeString"===r.type||"esriFieldTypeDateOnly"===r.type||"esriFieldTypeTimeOnly"===r.type||"esriFieldTypeTimestampOffset"===r.type){const e=this._inner.readAttribute(this._index,s);return d.decode(e)}const i=this.fields.isDateField(r.name);return t?null==n?n:i?new Date(n):n:n}_readAttributes(){const e={};for(const t of this.metadata.fieldsIndex.fields){if(null==this._indexMap[t.name])continue;const r=this._readAttribute(t.name,!1);void 0!==r&&(e[t.name]=r)}return e.__OBJECTID=this.getObjectId(),e}}export{o as FeatureSetReaderParquet};
|
|
2
|
+
import"../../../../../core/has.js";import{baseObjectMemory as e}from"../../../../../core/memoryEstimations.js";import t from"../../../../../layers/graphics/OptimizedGeometry.js";import{getParquetObjectId as r}from"../../../../../layers/graphics/sources/support/parquetIdUtils.js";import{QuantizedGeometryBuffer as s}from"../../../../../chunks/bundle2.js";import{FeatureSetReader as n}from"./FeatureSetReader.js";let i;const d=new TextDecoder;class o extends n{constructor(t,r,s,n,i,d=new Uint32Array(s.size())){super(t),this._indexMap=r,this._inner=s,this._fileId=n,this._transform=i,this._displayIds=d,this._index=-1,this.usedMemory=e,this._size=this._inner.size();t.featureIdInfo.type}destroy(){super.destroy(),this._inner.free()}get fields(){return this.metadata.fieldsIndex}get geometryType(){return this.metadata.geometryType}get hasFeatures(){return!0}get hasNext(){throw new Error("Method not implemented.")}get exceededTransferLimit(){return!1}get hasZ(){return!1}get hasM(){return!1}async updateFields(e,t,r,s){const n=this._inner.rowGroup(),i=new Uint32Array(this._inner.readIdsUnsafe()),d=await e.createPatch(t,n,i,r,s);this._inner.insertPatchBytes(new Uint8Array(d))}getInTransform(){return this._transform}getSize(){return this._size}getCursor(){return this.copy()}getAttributeHash(){let e="";for(const t of this.fields.fields)e+=this._readAttribute(t.name,!1)+".";return e}getObjectId(){return r(this._fileId,this._inner.rowId(this._index))}getDisplayId(){return this._displayIds[this._index]}setDisplayId(e){this._displayIds[this._index]=e}setIndex(e){this._index=e}getBoundsXMin(){return this._inner.boundsXMin(this._index)}getBoundsYMin(){return this._inner.boundsYMin(this._index)}getBoundsXMax(){return this._inner.boundsXMax(this._index)}getBoundsYMax(){return this._inner.boundsYMax(this._index)}setBoundsXMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsXMax(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMax(e){throw new Error("InternalError: Setting bounds is unsupported")}getIndex(){return this._index}next(){for(;++this._index<this._size&&!this._getExists(););return this._index<this._size}readGeometryArea(){return this.readGeometryForDisplay()?.area()??0}copy(){const e=new o(this.metadata,this._indexMap,this._inner,this._fileId,this._transform,this._displayIds);return this.copyInto(e),e}copyInto(e){super.copyInto(e),e._index=this._index}readGeometryForDisplayTransformed(e){const[r,n]=e.translate,[d,o]=e.scale;i||(i=s.new());return this._inner.transformGeometry(i,r,n,d,o,this._index)?new t(i.readLengthsUnsafe(),i.readCoordsUnsafe(),this.hasZ,this.hasM):null}_readGeometry(e){const r=this._inner.readCoordsUnsafe(this._index),s=this._inner.readLengthsUnsafe(this._index);return r&&s?new t(s,r,this.hasZ,this.hasM):null}_readX(){return this._inner.readX(this._index)}_readY(){return this._inner.readY(this._index)}_readServerCentroid(){return null}supportsDeltaEncoding(){return!1}_readAttribute(e,t){const r=this.fields.get(e);if(!r)return;const s=this._indexMap[r.name];if(null==s)return this.getObjectId();const n=this._inner.readAttribute(this._index,s);if(null==n)return n;if("esriFieldTypeString"===r.type||"esriFieldTypeDateOnly"===r.type||"esriFieldTypeTimeOnly"===r.type||"esriFieldTypeTimestampOffset"===r.type){const e=this._inner.readAttribute(this._index,s);return d.decode(e)}const i=this.fields.isDateField(r.name);return t?null==n?n:i?new Date(n):n:n}_readAttributes(){const e={};for(const t of this.metadata.fieldsIndex.fields){if(null==this._indexMap[t.name])continue;const r=this._readAttribute(t.name,!1);void 0!==r&&(e[t.name]=r)}return e.__OBJECTID=this.getObjectId(),e}}export{o as FeatureSetReaderParquet};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import has from"../../../../core/has.js";import{pt2px as t}from"../../../../core/screenUtils.js";import{r as e}from"../../../../chunks/rbush.js";import s from"../../../../geometry/Point.js";import{create as i,intersects as o,copy as
|
|
2
|
+
import has from"../../../../core/has.js";import{pt2px as t}from"../../../../core/screenUtils.js";import{r as e}from"../../../../chunks/rbush.js";import s from"../../../../geometry/Point.js";import{create as i,intersects as o,copy as n}from"../../../../geometry/support/aaBoundingRect.js";import{normalizeMapX as r}from"../../../../geometry/support/normalizeUtils.js";import{getInfo as m}from"../../../../geometry/support/spatialReferenceUtils.js";import{HittestDrawHelper as a}from"../../../../symbols/cim/CIMSymbolDrawHelper.js";import{CIMSymbolInflatedSizeHelper as l}from"../../../../symbols/cim/CIMSymbolHelper.js";import{hittestToleranceSmallSymbol as h,hittestToleranceMobile as c,hittestToleranceDesktop as u}from"../../engine/webgl/definitions.js";import{GraphicStoreItem as p}from"./GraphicStoreItem.js";import{pixelBuffer as d}from"./graphicsUtils.js";import{GraphicUpdateMessage as f}from"./GraphicUpdateMessage.js";import{getMapPointsFromScreen as _,createHittestQuery as y}from"../../support/hitTestUtils.js";const b=1e-5;function I(t,e){return e.zOrder-t.zOrder}class g{constructor(t,e,s,i,o){this._items=new Map,this._boundsDirty=!1,this._outSpatialReference=t,this._cimResourceManager=e,this._hittestDrawHelper=new a(e),this._tileInfoView=s,this._store=o;const n=s.getClosestInfoForScale(i);this._resolution=this._tileInfoView.getTileResolution(n.level)}destroy(){this._hittestDrawHelper.destroy()}items(){return this._items.values()}getItem(t){return this._items.get(t)}async update(t,e,s){const i=[],o=[],n=[],r=new Set,m=[];let a=0;const l=new Set;for(const h of t.items){const t=h.uid;if(l.has(t))continue;l.add(t),a++;const n=this._items.get(t),c=e(h);if(r.add(t),n){const t=n.update(h,c,a),e=n.updateDensificationResolution(this._resolution);t&&m.push(this._updateItem(n,s)),(t||e)&&o.push(n);continue}const u=this._store.createDisplayIdForObjectId(t),d=p.fromGraphic(h,c,a,u);d.updateDensificationResolution(this._resolution),m.push(this._updateItem(d,s)),this._items.set(d.objectId,d),i.push(d)}for(const[h,c]of this._items.entries())r.has(h)||(this._store.releaseDisplayIdForObjectId(h),this._items.delete(h),n.push(c));return await Promise.all(m),this._index=null,new f(i,o,n)}updateLevel(t){if(this._resolution===t)return!1;this._index=null,this._boundsDirty=!0,this._resolution=t;for(const e of this.items())if(e.hasCurvedGeoemtry)return!0;return!1}hitTest(t,e,n,m){const a=i();let l=i();const p=y(e);if(!p)return console.warn("Unexpected hittest input:",e),[];let f=0,b=_(t,p.input);if(b=b.map(t=>new s(r(t.x,this._tileInfoView.spatialReference),t.y,this._tileInfoView.spatialReference)),"rect"===p.hittestType){const t=Math.min(...b.map(t=>t.x)),e=Math.min(...b.map(t=>t.y)),s=Math.max(...b.map(t=>t.x)),i=Math.max(...b.map(t=>t.y));a[0]=t,a[1]=e,a[2]=s,a[3]=i,l=a}else if("point"===p.hittestType){const t=has("esri-mobile"),e=t?c:u,s=e+(t?0:h),o=b[0].x,r=b[0].y,m=n*window.devicePixelRatio*s;a[0]=o-m,a[1]=r-m,a[2]=o+m,a[3]=r+m;const p=n*window.devicePixelRatio*e,_=i();_[0]=o-p,_[1]=r-p,_[2]=o+p,_[3]=r+p;const y=.5*n*(s+d);l[0]=o-y,l[1]=r-y,l[2]=o+y,l[3]=r+y,f=_[2]-_[0]}const g=this._searchIndex(l[0],l[1],l[2],l[3]);if(!g||0===g.length)return[];const x=[],w=i(),j=i();for(const s of g){if(!s.visible)continue;const{geometryBounds:t,symbolResource:e}=s;this._getSymbolBounds(w,e,t,j,m),j[3]=j[2]=j[1]=j[0]=0,o(w,a)&&x.push(s)}if(0===x.length)return[];const R=this._hittestDrawHelper,S=[];for(const s of x){const{projectedGeometry:t,symbolResource:e}=s;if(!e)continue;const{textInfo:i,symbolInfo:o}=e,r=o.cimSymbol,a=o.linearCIM.some(t=>"alignment"in t&&0===t.alignment),l={hittestType:p.hittestType,textInfo:i,mapRotation:m,resolution:n,searchDist:f,isScreenAligned:a};R.hitTest(b,r.symbol,t,l)&&S.push(s)}return S.sort(I),S.map(t=>t.objectId)}queryItems(t){return 0===this._items.size?[]:this._searchForItems(t)}clear(){this._items.clear(),this._index=null}async _updateItem(t,e){await t.projectAndNormalize(this._outSpatialReference),await e(t);const{size:s}=t;s[0]=s[1]=s[2]=s[3]=0,this._getSymbolBounds(t.symbolBounds,t.symbolResource,t.geometryBounds,t.size,0)}_searchIndex(t,s,i,o){return this._boundsDirty&&(this._items.forEach(t=>this._getSymbolBounds(t.symbolBounds,t.symbolResource,t.geometryBounds,t.size,0)),this._boundsDirty=!1),this._index||(this._index=e(9,t=>({minX:t.symbolBounds[0],minY:t.symbolBounds[1],maxX:t.symbolBounds[2],maxY:t.symbolBounds[3]})),this._index.load(Array.from(this._items.values()))),this._index.search({minX:t,minY:s,maxX:i,maxY:o})}_searchForItems(t){const e=this._tileInfoView.spatialReference,s=t.bounds,o=m(e);if(o&&e.isWrappable){const[e,n]=o.valid,r=Math.abs(s[2]-n)<b,m=Math.abs(s[0]-e)<b;if((!r||!m)&&(r||m)){const o=t.resolution;let m;m=i(r?[e,s[1],e+o*d,s[3]]:[n-o*d,s[1],n,s[3]]);const a=this._searchIndex(s[0],s[1],s[2],s[3]),l=this._searchIndex(m[0],m[1],m[2],m[3]);return[...new Set([...a,...l])]}}return this._searchIndex(s[0],s[1],s[2],s[3])}_getSymbolBounds(e,s,o,r,m){if(!s||!s.symbolInfo.linearCIM)return null;if(e||(e=i()),n(e,o),!r||0===r[0]&&0===r[1]&&0===r[2]&&0===r[3]){const{textInfo:e,symbolInfo:i}=s,o=i.cimSymbol;r||(r=[0,0,0,0]);const n=l.getSymbolInflateSize(r,o.symbol,this._cimResourceManager,m,e);r[0]=t(n[0]),r[1]=t(n[1]),r[2]=t(n[2]),r[3]=t(n[3])}const a=this._resolution,h=l.safeSize(r);return e[0]-=h*a,e[1]-=h*a,e[2]+=h*a,e[3]+=h*a,e}}export{g as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../Graphic.js";import{isSome as t}from"../../../core/arrayUtils.js";import{isIterable as r}from"../../../core/iteratorUtils.js";import{isScreenRect as i,createScreenPoint as n,isScreenPoint as s}from"../../../core/screenUtils.js";import{computeClippedScreenRect as a,clipContainsPoint as l,clipIntersectsScreenRect as o}from"./clippingUtils.js";import{isSupportedScreenPointEvent as c,createScreenPointFromSupportedEvent as p}from"../../support/screenUtils.js";function u(e){if(i(e)){return{hittestType:"rect",input:e}}return{hittestType:"point",input:e}}async function f(e,r,n){const s=!c(r)&&i(r),a=s?r:c(r)?p(e,r):r;if(!e.ready||isNaN(a.x)||isNaN(a.y))return{screenPoint:
|
|
2
|
+
import e from"../../../Graphic.js";import{isSome as t}from"../../../core/arrayUtils.js";import{isIterable as r}from"../../../core/iteratorUtils.js";import{isScreenRect as i,createScreenPoint as n,isScreenPoint as s}from"../../../core/screenUtils.js";import{computeClippedScreenRect as a,clipContainsPoint as l,clipIntersectsScreenRect as o}from"./clippingUtils.js";import{isSupportedScreenPointEvent as c,createScreenPointFromSupportedEvent as p}from"../../support/screenUtils.js";function u(e){if(i(e)){return{hittestType:"rect",input:e}}return{hittestType:"point",input:e}}async function f(e,r,n){const s=!c(r)&&i(r),a=s?r:c(r)?p(e,r):r;if(!e.ready||isNaN(a.x)||isNaN(a.y))return{screenPoint:null,results:[]};let l=new Set;const o=new Set;let u=!1,f=null,M=null;n?.include?d(n.include,y(e,e=>{l.add(e),g(e,e=>o.add(e))},(e,t)=>{o.add(e),l.add(t)},e=>{f||(f=new Set),f.add(e)},e=>l.add(e),()=>u=!0)):(u=!0,l=new Set(e.allLayerViews),l.forEach(e=>{g(e,e=>o.add(e))})),n?.exclude&&d(n.exclude,y(e,e=>{l.delete(e),g(e,e=>o.delete(e))},e=>o.delete(e),e=>{M||(M=new Set),M.add(e)}));const V=x(e,a)[0],j=m(e,a,V).filter(e=>l.has(e)),b=u?e.graphicsView.hitTest(e,a).map(e=>({type:"graphic",graphic:e,layer:null,mapPoint:s?null:V})):[],L=Array.from(j).flatMap(t=>{if(s){const r=w(e,t,a);return null==r?[]:r.map(e=>t.hitTest(V,e))}return[t.hitTest(V,a)]});let S=[...b,...await Promise.all(L)].filter(t).flat().filter(t);S=S.filter(e=>"graphic"!==e.type||"subtype-group"!==e.layer?.type||o.has(e.graphic.layer));const T=new Set;return S=S.filter(e=>{if("graphic"!==e.type||!e.graphic)return!0;const t=h(e.graphic);return!T.has(t)&&(T.add(t),!0)}),f&&(S=S.filter(e=>!("graphic"in e)||!e.graphic||f?.has(h(e.graphic)))),M&&(S=S.filter(e=>!("graphic"in e)||!e.graphic||!M?.has(h(e.graphic)))),{screenPoint:s?null:a,results:S}}function y(t,r,i,n,s,a){return l=>{if(l instanceof e){if(l.layer===t)a?.();else{const e=t.allLayerViews.find(e=>e.layer===l.layer);e&&s?.(e)}n(h(l))}else if("layer"in l&&"element"in l);else if("subtype-sublayer"===l.type){const e=t.allLayerViews.find(e=>e.layer===l.parent);e&&i(l,e)}else{const e=t.allLayerViews.find(e=>e.layer===l);e&&r(e)}}}function d(e,t){if(e)if(r(e))for(const i of e)if(r(i))for(const e of i)t(e);else t(i);else t(e)}function h(e){const t=e.getObjectId();return t?`${e.layer?.uid??e.sourceLayer?.uid??"MapView"}/${t}`:`"MapView/${e.uid}`}function g(e,t){const r=e.layer;"subtype-group"===r?.type&&r.sublayers.forEach(e=>{t(e)})}function m(e,t,r){const i=s(t)?i=>l(e,i,t,r):r=>o(e,r,t);return e.allLayerViews.filter(e=>!e.suspended&&(!e.clips.length||e.clips.some(i))).reverse()}function w(e,t,r){if(!t.clips.length)return[r];const i=[];for(const n of t.clips){if("rect"!==n.type){i.push(r);continue}const t=a(e,n,r);t&&i.push(t)}return i}function x(e,t){if(i(t)){const r=t;return[e.toMap(n(r.x,r.y)),e.toMap(n(r.x,r.y+r.height)),e.toMap(n(r.x+r.width,r.y+r.height)),e.toMap(n(r.x+r.width,r.y))]}return[e.toMap(t)]}export{u as createHittestQuery,m as getHitTestLayerViews,x as getMapPointsFromScreen,f as hitTest};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{__decorate as t}from"tslib";import{equals as e}from"../../../../core/arrayUtils.js";import{EventedAccessor as s}from"../../../../core/Evented.js";import{destroyMaybe as r,removeMaybe as i}from"../../../../core/maybe.js";import{watch as a,initial as n,syncAndInitial as o}from"../../../../core/reactiveUtils.js";import{schedule as l}from"../../../../core/scheduling.js";import{property as u,subclass as h}from"../../../../core/accessorSupport/decorators.js";import p from"../../../../geometry/Multipoint.js";import{absoluteHeightElevationInfo as g,getConvertedElevation as c}from"../../../../support/elevationInfoUtils.js";import{restoreLineOfSightObserverState as d,restoreLineOfSightTargetState as y,snapshotLineOfSightTargetState as _,snapshotLineOfSightObserverState as m,updateLineOfSightItemFromAuthoredPoint as v}from"./LineOfSightAuthoringUtils.js";import{LineOfSightObserverManipulator as f,LineOfSightTargetManipulator as M,LineOfSightTargetManipulatorState as b}from"./LineOfSightManipulators.js";import{EditGeometryOperations as x}from"../../../interactive/editGeometry/EditGeometryOperations.js";const I=Symbol("line-of-sight-aggregate-operations");let w=class extends s{constructor(){super(...arguments),this._operations=null,this._externalGeometryStagingArea=new C(t=>this._syncOperationsFromAnalysisGeometry(t),()=>null==this._operations),this._observerManipulator=null,this._targetByPart=new Map,this._targetManipulators=new Map,this._dragIntersectionContext=null}initialize(){this.addHandles([a(()=>({observer:A(this.analysis.observer),targets:this.analysis.targets.toArray().map(t=>A(t))}),()=>this._analysisItemsChanged(),n),a(()=>this.analysisViewData.computations.toArray().map(t=>({isTargetVisible:t.computationResult.isTargetVisible,isValid:t.computationResult.isValid,target:t.target})),()=>this._updateTargetManipulatorStates(),o)])}destroy(){this._externalGeometryStagingArea.destroy(),this._replaceOperations(null),this._observerManipulator=null,this._targetManipulators.clear()}get operations(){return this._operations}get elevationInfo(){return g}get visible(){return this.analysisViewData.visible&&null!=this.origin}get isDraped(){return!1}get origin(){const t=this.analysis.observer,e=this.analysis.targets.at(0);return S(this.view,t?.position,t?.elevationInfo)??S(this.view,e?.position,e?.elevationInfo)}get updating(){return!1}createManipulator(t){return null}_createObserverReshapeManipulator(t){this._clearManipulatorDragTracking(this._observerManipulator);const e=new f(this.view,{deleting:!1,intersection:null,type:"observer"});return e.selected=t.selected,this._observerManipulator=e,this._trackManipulatorDrag(e,this.analysis.observer),e}_createTargetReshapeManipulator(t){const{part:e}=t.vertex,s=this._targetByPart.get(e);if(null==s)return t.defaultCreate();this._clearManipulatorDragTracking(this._targetManipulators.get(s));const r=new M(this.view,{deleting:!1,target:s,type:"target"});return r.selected=t.selected,this._targetManipulators.set(s,r),this._updateTargetManipulatorState(r,this._getTargetComputation(s)),this._trackManipulatorDrag(r,s),r}createReshapeManipulator(t){const{part:e}=t.vertex;return 0===e.index?this._createObserverReshapeManipulator(t):this._createTargetReshapeManipulator(t)}getReshapeMoveConfig(t){return 1===t.numSelected&&null!=this._targetByPart.get(t.vertex.part)?{xyAxisMode:"all"}:null}getTargetManipulator(t){const e=this._targetManipulators.get(t);return e?.view?e:null}getObserverManipulator(){const t=this._observerManipulator;return t?.view?t:null}toMap(t){return this.intersector.getScreenPointIntersection(t)?.mapPoint}createUndoRecord(){let t=this._snapshotState(),e=null;return{undo:()=>{e=this._snapshotState(),this._restoreSnapshot(t)},redo:()=>{null!=e&&(t=this._snapshotState(),this._restoreSnapshot(e))}}}_restoreSnapshot(t){const{observer:e}=this.analysis;null!=e&&null!=t.observer&&d(t.observer,e),this.analysis.targets.forEach((e,s)=>{const r=t.targets[s];null!=r&&y(r,e)}),this._queueAnalysisGeometryResync(),this.emit("committed")}_snapshotState(){return{observer:m(this.analysis.observer),targets:this.analysis.targets.toArray().map(t=>_(t))}}_replaceOperations(t){this.removeHandles(I),this._operations=r(this._operations),this._operations=t,this._targetByPart=null==t?new Map:T(t.data.parts,this.analysis.targets.toArray(),this._targetByPart),null==t&&(this._observerManipulator=null),null!=t&&this.addHandles(t.data.on("change",()=>this._operationsGeometryChanged()),I)}_analysisItemsChanged(){null==this.analysis.observer&&(this._clearManipulatorDragTracking(this._observerManipulator),this._observerManipulator=null),this._pruneTargetManipulators(),this._updateTargetManipulatorStates(),this._queueAnalysisGeometryResync()}_queueAnalysisGeometryResync(){this._externalGeometryStagingArea.stage(G(this.view,this.analysis))}_updateTargetManipulatorStates(){this._pruneTargetManipulators();for(const t of this.analysis.targets){const e=this._targetManipulators.get(t);null!=e&&this._updateTargetManipulatorState(e,this._getTargetComputation(t))}}_pruneTargetManipulators(){const t=new Set(this.analysis.targets.toArray());for(const[e,s]of this._targetManipulators)t.has(e)&&null!=s.view||(this._clearManipulatorDragTracking(s),this._targetManipulators.delete(e))}_getTargetComputation(t){return this.analysisViewData.computations.find(e=>e.target===t)}_updateTargetManipulatorState(t,e){null!=e&&e.computationResult.isValid?t.state=e.computationResult.isTargetVisible?b.visible:b.occluded:t.state=b.undefined}_syncOperationsFromAnalysisGeometry(t){if(null==t)return void(null!=this._operations&&(this._replaceOperations(null),this.emit("modified-externally")));const e=this._operations;if(null!=e&&e.data.geometry?.equals(t))this._syncTargetPartMapFromOperations(e);else{if(e?.trySetGeometry(t))return this._syncTargetPartMapFromOperations(e),this.emit("committed"),void this.emit("modified-externally");this._replaceOperations(x.fromGeometry(t,this.view.state.viewingMode)),this.emit("committed"),this.emit("modified-externally")}}_syncTargetPartMapFromOperations(t){this._targetByPart=T(t.data.parts,this.analysis.targets.toArray(),this._targetByPart)}_operationsGeometryChanged(){const t=this._operations,s=this.analysis.observer;if(this._externalGeometryStagingArea.inProgress||null==t||null==s)return;const{coordinateHelper:r,parts:i}=t.data,a=O(i,this._targetByPart);e(this.analysis.targets.toArray(),a)||this.analysis.targets.splice(0,this.analysis.targets.length,...a);const n=r.vectorToPoint(i[0]?.getFirstVertex()?.pos);null==n||P(this.view,s,n)||this._updateAnalysisItemFromAbsolutePoint(s,n);for(const e of i){if(0===e.index)continue;const t=this._targetByPart.get(e),s=r.vectorToPoint(e.getFirstVertex()?.pos);null!=t&&null!=s&&this.analysis.targets.includes(t)&&(P(this.view,t,s)||this._updateAnalysisItemFromAbsolutePoint(t,s))}null==this._dragIntersectionContext||this._dragIntersectionContext.dragging||(this._dragIntersectionContext=null),this.emit("committed")}_updateAnalysisItemFromAbsolutePoint(t,e){const s=this._dragIntersectionContext?.item===t?this._dragIntersectionContext.intersection:null;v(this.view,t,this.intersector,e,{sourceElevationInfo:g,preservedIntersection:s})}_trackManipulatorDrag(t,e){null!=e&&(this.removeHandles(t),this.addHandles(t.events.on("drag",t=>this._updateDragIntersectionContext(e,t)),t))}_clearManipulatorDragTracking(t){null!=t&&this.removeHandles(t)}_updateDragIntersectionContext(t,e){"cancel"!==e.action?this._dragIntersectionContext={dragging:"end"!==e.action,intersection:this.intersector.getScreenPointIntersection(e.screenPoint),item:t}:this._dragIntersectionContext=null}};function A(t){return t?[t,t.position,t.elevationInfo,t.feature]:null}function P(t,e,s){const r=S(t,e.position,e.elevationInfo);return r?.equals(s)??!1}function S(t,e,s){if(null==e)return null;const r=e.clone();return r.z=c(t,e,s??g,g),r}function T(t,e,s){const r=new Map;if(null!=s)for(const o of t){if(0===o.index||null!=o.getFirstVertex())continue;const t=s.get(o);null!=t&&r.set(o,t)}const i=new Set(r.values()),a=e.filter(t=>!i.has(t));let n=0;for(const o of t){if(0===o.index||null==o.getFirstVertex())continue;if(r.has(o))continue;const t=a[n++];if(null==t)break;r.set(o,t)}return r}function O(t,e){const s=[];for(const r of t){if(0===r.index||null==r.getFirstVertex())continue;const t=e.get(r);null!=t&&s.push(t)}return s}function G(t,e){const s=[S(t,e.observer?.position,e.observer?.elevationInfo),...e.targets.toArray().map(e=>S(t,e.position,e.elevationInfo))].filter(t=>null!=t);return 0===s.length?null:new p({hasZ:!0,points:s.map(t=>t.toArray()),spatialReference:s[0].spatialReference})}t([u({constructOnly:!0})],w.prototype,"analysisViewData",void 0),t([u({constructOnly:!0})],w.prototype,"analysis",void 0),t([u({constructOnly:!0})],w.prototype,"intersector",void 0),t([u({constructOnly:!0})],w.prototype,"view",void 0),t([u()],w.prototype,"_operations",void 0),t([u()],w.prototype,"operations",null),t([u()],w.prototype,"elevationInfo",null),t([u()],w.prototype,"visible",null),t([u()],w.prototype,"isDraped",null),t([u()],w.prototype,"origin",null),t([u()],w.prototype,"updating",null),w=t([h("esri.views.3d.analysis.LineOfSight.LineOfSightAggregateManipulatedObject3D")],w);class C{constructor(t,e){this._geometry=void 0,this._inProgressGeometry=void 0,this._scheduledHandle=null,this._apply=t,this._shouldApplyImmediately=e}destroy(){this._scheduledHandle=i(this._scheduledHandle),this._geometry=void 0,this._inProgressGeometry=void 0}get inProgress(){return null!=this._inProgressGeometry}stage(t){if(this._geometry=t,!this.inProgress&&this._shouldApplyImmediately())return this._scheduledHandle=i(this._scheduledHandle),void this._flush();this._scheduledHandle??=l(()=>{this._scheduledHandle=null,this._flush()})}_flush(){const t=this._geometry;if(void 0!==t){this._geometry=void 0,this._inProgressGeometry=t;try{this._apply(t)}finally{this._inProgressGeometry=void 0}}}}export{w as LineOfSightAggregateManipulatedObject3D};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{length as
|
|
2
|
+
import e from"../../../../analysis/LineOfSightAnalysisObserver.js";import n from"../../../../analysis/LineOfSightAnalysisTarget.js";import{length as o,normalize as t,scaleAndAdd as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromValues as r,create as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{absoluteHeightElevationInfo as i,getGraphicEffectiveElevationInfo as s,getConvertedElevation as a}from"../../../../support/elevationInfoUtils.js";import c from"../../../../symbols/support/ElevationInfo.js";function f(e){return e?.clone()??null}function p(e){return e?.clone()??null}function d(n,o=null){return m(n,o,()=>new e)}function v(e,o=null){return m(e,o,()=>new n)}function m(e,n,o){if(null==e)return null;const t=n??o();return t.position=e.position?.clone()??null,t.elevationInfo=e.elevationInfo?.clone()??null,t.feature=e.feature??null,t}function I(e,n,o=null){const t=n.clone();return t.z=a(e,n,o??i,i),t}function g(e,n,o,t=null){const l=I(n,o,t);try{return e.getMapPointIntersection(l)}catch{return null}}function h(e,n,o,{sourceElevationInfo:t=i,preservedIntersection:l=null,useSnappedAbsoluteHeight:r=!1,preferPreservedIntersection:u=!1}){const s=I(n,o,t);return null!=l&&u||null!=l&&!r||l?.mapPoint?.equals(s)?l:g(e,n,o,t)??l}function b(e,n,o,t,{defaultElevationInfo:l=null,sourceElevationInfo:r=i,preservedIntersection:u=null,useSnappedAbsoluteHeight:s=!1,preferPreservedIntersection:a=!1}={}){const c=h(o,e,t,{sourceElevationInfo:r,preservedIntersection:u,useSnappedAbsoluteHeight:s,preferPreservedIntersection:a});return null!=c&&(P(e,n,c,{snappedMapPoint:t,defaultElevationInfo:l,sourceElevationInfo:r,useSnappedAbsoluteHeight:s||!c.mapPoint?.equals(t)}),!0)}function P(e,n,o,{snappedMapPoint:t=o.mapPoint,defaultElevationInfo:l=null,sourceElevationInfo:r=i,useSnappedAbsoluteHeight:u=!1}={}){if(null==t)return n.position=null,n.elevationInfo=null,void(n.feature=null);const f=I(e,t,r),p=!("relative-to-ground"===r?.mode||"on-the-ground"===r?.mode)&&(u||"ground"!==o.context?.type&&!o.mapPoint?.equals(f));switch(o.context?.type){case"graphic":{const e=o.context.graphic,t=s(e);"on-the-ground"===t.mode&&(t.mode="relative-to-ground",t.offset=0),n.elevationInfo=new c(t),n.feature=e;break}case"gaussian-splat":return n.elevationInfo=l?.clone()??null,n.feature=null,p&&(n.elevationInfo=null),void(n.position=y(e,f,n.elevationInfo,o.normal));case"ground":n.elevationInfo=l?.clone()??new c({mode:"on-the-ground"}),n.feature=null;break;default:n.elevationInfo=l?.clone()??null,n.feature=null}p&&(n.elevationInfo=null);const d=f.clone();d.z=a(e,f,i,n.elevationInfo),n.position=d}function y(e,n,s,c){const f=n.clone(),p=r(n.x,n.y,n.z??0);if(!e.renderCoordsHelper.toRenderCoords(p,n.spatialReference,p)||0===o(c))return f.z=a(e,f,i,s),f;const d=4,v=e.state.camera.computeScreenPixelSizeAt(p)*d,m=t(u(),c);l(p,p,m,v);const I=e.renderCoordsHelper.fromRenderCoords(p,f);return null==I?(f.z=a(e,f,i,s),f):(I.z=a(e,I,i,s),I)}export{y as getGaussianSplatOffsetPosition,g as getLineOfSightMapPointIntersection,d as restoreLineOfSightObserverState,v as restoreLineOfSightTargetState,f as snapshotLineOfSightObserverState,p as snapshotLineOfSightTargetState,b as updateLineOfSightItemFromAuthoredPoint,P as updateLineOfSightItemFromIntersection};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import o from"../../../../Color.js";import{
|
|
2
|
+
import o from"../../../../Color.js";import{multiplyOpacityToUnitRGBA as n,getContrast as t}from"../../../../core/colorUtils.js";class e{constructor(){this.glowWidth=8,this.innerWidth=.75}}const r=new e;function s(o){const n=o.accentColor;return{glowColor:n,innerColor:t(n),globalAlpha:.75*n.a}}class i{constructor(){this.size=.5}}const c=new i;function l(o){return n(o.accentColor,.75)}class h{constructor(){this.size=.5,this.visibleColor=new o([3,252,111,.75]),this.occludedColor=new o([252,3,69,.75]),this.undefinedColor=new o([127,127,127,.75])}}const u=new h;class d{constructor(){this.innerWidth=2,this.outerWidth=8,this.visibleInnerColor=new o([3,252,111,1]),this.visibleOuterColor=new o([3,252,111,.15]),this.occludedInnerColor=new o([252,3,69,1]),this.occludedOuterColor=new o([252,3,69,.1]),this.undefinedInnerColor=new o([255,255,255,1]),this.undefinedOuterColor=new o([127,127,127,.2])}}const w=new d;export{s as getLaserLineColors,l as getObserverRGBA,r as laserLineConfiguration,w as lineOfSightConfiguration,c as observerConfiguration,u as targetConfiguration};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{watch as e}from"../../../../core/reactiveUtils.js";import{
|
|
2
|
+
import{watch as e}from"../../../../core/reactiveUtils.js";import{getObserverRGBA as t,observerConfiguration as o,targetConfiguration as i}from"./LineOfSightConfiguration.js";import{Manipulator3D as r}from"../../interactive/Manipulator3D.js";import{createManipulatorMaterial as s}from"../../interactive/manipulatorUtils.js";import{RenderObject as n}from"../../interactive/RenderObject.js";import{disableDisplayOnGrab as a}from"../../interactive/editingTools/manipulatorUtils.js";import{createSphereGeometry as c}from"../../webgl-engine/lib/GeometryUtil.js";const m=128,l=256,d=512;class f extends r{constructor(i,r){const m=s(t(i.effectiveTheme)),l=c(m,o.size,32,32),d=new n(l);super({view:i,renderObjects:[d],metadata:r,elevationInfo:{mode:"absolute-height",offset:0}}),a(this),this.themeHandle=e(()=>({color:t(i.effectiveTheme)}),e=>{m.setParameters(e)})}destroy(){this.themeHandle.remove(),super.destroy()}}class u extends r{constructor(e,t){const{size:o,visibleColor:r,occludedColor:s,undefinedColor:n}=i;super({view:e,renderObjects:[v(o,r,m),v(o,s,l),v(o,n,d)],metadata:t,elevationInfo:{mode:"absolute-height",offset:0}}),a(this)}}const p={visible:m,occluded:l,undefined:d};function v(e,t,o){return new n(c(s(t.toUnitRGBA()),e,32,32),o)}export{f as LineOfSightObserverManipulator,u as LineOfSightTargetManipulator,p as LineOfSightTargetManipulatorState};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import{watch as e,sync as i}from"../../../../core/reactiveUtils.js";import{property as o,subclass as n}from"../../../../core/accessorSupport/decorators.js";import{PluginBase as s}from"../../../draw/plugins/PluginBase.js";var r;const a=Symbol("line-of-sight-observer-vertex"),p=Symbol("line-of-sight-observer-plugin-marker");let l=class extends s{constructor(){super(...arguments),this[r]=!0,this.observer=null,this.defaultCaptureMode="capture-always",this.inputMapPosition=null,this._interactiveHandle=null}static{r=p}start(t){super.start(t);const{session:o,positionOfLastUserInput:n}=t,s="grabbable-object"===this.defaultCaptureMode?this.inputMapPosition??this._interactiveHandle?.outputMapPosition??n:this.inputMapPosition??n;!s||"grabbable-object"!==this.defaultCaptureMode&&this._interactiveHandle||o.appendOrReplacePoint(a,s),this._interactiveHandle||(this._interactiveHandle=t.createInteractiveHandle({defaultCaptureMode:this.defaultCaptureMode,inputMapPosition:"grabbable-object"===this.defaultCaptureMode?s??void 0:void 0}),this.addHandles(e(()=>this._interactiveHandle?.outputMapPosition,t=>{t&&!this._isComplete&&this._session?.appendOrReplacePoint(a,t)},i),this._ownHandlesKey))}};function u(t){return!!t&&p in t}function d(t={}){return{uniqueId:Symbol("line-of-sight-observer-plugin"),kind:["vertex"],geometryType:"point",hidden:!0,localizationKey:"leaf-point-segment",icon:"point",create:()=>new l(t)}}t([o({constructOnly:!0})],l.prototype,"observer",void 0),t([o()],l.prototype,"defaultCaptureMode",void 0),t([o()],l.prototype,"inputMapPosition",void 0),t([o()],l.prototype,"_interactiveHandle",void 0),l=t([n("esri.views.3d.analysis.LineOfSight.LineOfSightObserverPlugin")],l);export{l as LineOfSightObserverPlugin,d as createLineOfSightObserverPluginConfiguration,u as isLineOfSightObserverPlugin,p as lineOfSightObserverPluginMarker};
|
|
2
|
+
import{__decorate as t}from"tslib";import{watch as e,sync as i}from"../../../../core/reactiveUtils.js";import{property as o,subclass as n}from"../../../../core/accessorSupport/decorators.js";import{PluginBase as s}from"../../../draw/plugins/PluginBase.js";var r;const a=Symbol("line-of-sight-observer-vertex"),p=Symbol("line-of-sight-observer-plugin-marker");let l=class extends s{constructor(){super(...arguments),this[r]=!0,this.observer=null,this.defaultCaptureMode="capture-always",this.inputMapPosition=null,this.preservedIntersection=null,this._interactiveHandle=null}static{r=p}get usesSnappedAbsoluteHeight(){const t=this._interactiveHandle,e=t?.inputMapPosition,i=t?.outputMapPosition;return null!=e&&null!=i&&!e.equals(i)}start(t){super.start(t),this.preservedIntersection=null;const{session:o,positionOfLastUserInput:n}=t,s="grabbable-object"===this.defaultCaptureMode?this.inputMapPosition??this._interactiveHandle?.outputMapPosition??n:this.inputMapPosition??n;!s||"grabbable-object"!==this.defaultCaptureMode&&this._interactiveHandle||o.appendOrReplacePoint(a,s),this._interactiveHandle||(this._interactiveHandle=t.createInteractiveHandle({defaultCaptureMode:this.defaultCaptureMode,inputMapPosition:"grabbable-object"===this.defaultCaptureMode?s??void 0:void 0}),this.addHandles(e(()=>this._interactiveHandle?.outputMapPosition,t=>{t&&!this._isComplete&&this._session?.appendOrReplacePoint(a,t)},i),this._ownHandlesKey))}};function u(t){return!!t&&p in t}function d(t={}){return{uniqueId:Symbol("line-of-sight-observer-plugin"),kind:["vertex"],geometryType:"point",hidden:!0,localizationKey:"leaf-point-segment",icon:"point",create:()=>new l(t)}}t([o({constructOnly:!0})],l.prototype,"observer",void 0),t([o()],l.prototype,"defaultCaptureMode",void 0),t([o()],l.prototype,"inputMapPosition",void 0),t([o()],l.prototype,"preservedIntersection",void 0),t([o()],l.prototype,"_interactiveHandle",void 0),l=t([n("esri.views.3d.analysis.LineOfSight.LineOfSightObserverPlugin")],l);export{l as LineOfSightObserverPlugin,d as createLineOfSightObserverPluginConfiguration,u as isLineOfSightObserverPlugin,p as lineOfSightObserverPluginMarker};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{isLineOfSightObserverPlugin as r}from"./LineOfSightObserverPlugin.js";import{isLineOfSightTargetPlugin as i}from"./LineOfSightTargetPlugin.js";function t(t){return r(t)||i(t)}export{t as isLineOfSightPlacementLeafPlugin};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{isSome as t}from"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{watch as
|
|
2
|
+
import{__decorate as e}from"tslib";import{isSome as t}from"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{destroyMaybe as i}from"../../../../core/maybe.js";import{watch as n,syncAndInitial as s,when as a}from"../../../../core/reactiveUtils.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as p,fromPoints as c}from"../../../../geometry/support/lineSegment.js";import{absoluteHeightElevationInfo as h}from"../../../../support/elevationInfoUtils.js";import{getLaserLineColors as u,laserLineConfiguration as d}from"./LineOfSightConfiguration.js";import{LineOfSightDrawToolRenderer as m}from"./LineOfSightDrawToolRenderer.js";import{isLineOfSightPlacementLeafPlugin as g}from"./LineOfSightPlacementLeafPlugin.js";import{LineOfSightRayIntersector as v}from"./LineOfSightRayIntersector.js";import{createLineOfSightRootPluginConfiguration as f}from"./LineOfSightRootPlugin.js";import{Manipulator3D as y}from"../../interactive/Manipulator3D.js";import{LaserlineVisualElement as _}from"../../interactive/visualElements/LaserlineVisualElement.js";import{DrawTool as P}from"../../../draw/DrawTool.js";import{mouseButtons as w}from"../../../input/mouseButtons.js";import S from"../../../interactive/sketch/SketchOptions.js";import{acquire as b}from"../../../interactive/snapping/SnappingManagerPool.js";import{createScreenPointFromEvent as E}from"../../../support/screenUtils.js";const M=Symbol("hiddenManipulatorHandle"),C=Symbol("snappingManagerHandle"),L=l(),I=l(),T=p();let V=class extends P{get cursor(){return this.active?"crosshair":null}constructor(e){super({...e,enableVertexVisuals:!1,sketchOptions:new S({tooltips:{enabled:!0}}),snappingManager:null,elevationInfo:null,hasZ:!0}),this.removeIncompleteOnCancel=!1,this._lastPlacementClickScreenPoint=null,this._lastPlacementClickPromise=null,this.placementElevationInfo=null,this._snappingManagerResult=null,this._laserlineVisualElement=null,this.renderer=new m({view:e.view}),this._intersector=new v({view:e.view})}initialize(){this._createLaserLine(),this.addHandles([n(()=>[this.surfaceManager,this._snapToSceneEnabled],([e,t])=>{e&&(e.snapToSceneEnabled=t)},s),n(()=>this.manipulators.length,()=>this._hideManipulatorOnAppearance(),s),a(()=>!this.active,()=>{this.analysisViewData.cursorTarget=null},s),n(()=>this.analysisViewData.visible,e=>{this.visible=e},s),n(()=>this.parent.editable,e=>{this.editable=e},s),n(()=>this._sourceElevationInfo,e=>{this.elevationInfo=e,this.renderer.elevationInfo=e,this.renderer.refresh()},s),n(()=>this.analysis.valid,()=>this._syncCreatedState(),s),n(()=>u(this.view.effectiveTheme),({glowColor:e,innerColor:t,globalAlpha:i})=>this._updateLaserLineStyle(e,t,i),s),n(()=>({active:this.active,cursorTargetPosition:this.analysisViewData.cursorTarget?.position,observerPosition:this.analysis.observer?.position,visible:this.visible}),()=>this._updateLaserLineRenderer(),s)])}destroy(){this._intersector.destroy(),this._releaseSnappingManager(),this._laserlineVisualElement=i(this._laserlineVisualElement),this.removeHandles(M)}get state(){return this.active?"creating":null!=this.analysis.observer?.position?"created":"ready"}get activeSnappingManager(){return this.active?this.snappingManager:null}get _snapToSceneEnabled(){const e=this._sourceElevationInfo?.mode;return"relative-to-ground"!==e&&"on-the-ground"!==e&&null}get _defaultElevationInfo(){return this.placementElevationInfo}get _sourceElevationInfo(){return this.placementElevationInfo??h}deactivate(){super.deactivate(),this._releaseSnappingManager(),this.created||(this.analysis.clear(),this.analysisViewData.cursorTarget=null)}resetCreated(){this._set("created",!1),this._syncCreatedState()}_syncCreatedState(){this.analysis.valid&&this.finishToolCreation()}_createLaserLine(){this._laserlineVisualElement=i(this._laserlineVisualElement);const{glowWidth:e,innerWidth:t}=d;this._laserlineVisualElement=new _({view:this.view,attached:!0,visible:!1,style:{glowWidth:e,innerWidth:t},isDecoration:!0})}_updateLaserLineRenderer(){const e=this._laserlineVisualElement,t=this.analysis.observer?.position,i=this.analysisViewData.cursorTarget?.position;null!=e&&this.active&&this.visible&&null!=t&&null!=i&&j(this.view,t,L)&&j(this.view,i,I)?(e.visible=!0,e.heightManifoldTarget=I,e.lineVerticalPlaneSegment=c(L,I,T)):this._hideLaserLine()}_hideLaserLine(){const e=this._laserlineVisualElement;null!=e&&(e.visible=!1,e.heightManifoldTarget=null,e.lineVerticalPlaneSegment=null)}_updateLaserLineStyle(e,t,i){const n=this._laserlineVisualElement;if(null==n)return;const s=n.style;n.style={...s,glowColor:e.toUnitRGB(),innerColor:t.toUnitRGB(),globalAlpha:i}}place(){this.begin([f({analysis:this.analysis,analysisViewData:this.analysisViewData,defaultElevationInfo:this._defaultElevationInfo,sourceElevationInfo:this._sourceElevationInfo,view:this.view})])}continue(){this._ensureSnappingManager(),this.view.activeTool!==this&&(this.view.activeTool=this),0===this.pluginStack.length&&this.place()}stop(){if(!this.active)return;const e=this.mostUpstreamPlugin;e&&this.lifecycleManager.cancel(e),this.view.activeTool===this&&(this.view.activeTool=null)}get testInfo(){}onInputEvent(e){if("immediate-double-click"===e.type&&e.button!==w.Right){const t=E(e),i=this._isLastPlacementClick(t),n=i?null:this._intersector.getScreenPointIntersection(t),s=i?this._lastPlacementClickPromise:null!=n?.mapPoint?this._addPointFromClickEvent(e,t,n):null;return s?this.addPromise(s.finally(()=>this.stop())):this.stop(),void e.stopPropagation()}if("immediate-click"===e.type){const t=E(e);if(e.button===w.Right)return;if("mouse"===e.pointerType&&e.native.detail>1&&this._isLastPlacementClick(t))return void e.stopPropagation();const i=this._intersector.getScreenPointIntersection(t);return null==i?.mapPoint?void e.stopPropagation():void this._addPointFromClickEvent(e,t,i)}super.onInputEvent(e)}_addPointFromClickEvent(e,t,i){const n=this.interactiveHandleManager?.capturingHandle??this.interactiveHandleManager?.findHandleByManipulator(t,e.pointerType);if(!this.editable||null==n)return null;this.lastScreenPosition=t,this._lastPlacementClickScreenPoint=t,this._setPreservedIntersection(i),e.stopPropagation();const s=this.addPromise(n.moveTo(t,{...this.movementCommandContext,pointerType:e.pointerType,skipSnapping:"touch"===e.pointerType}).then(()=>this.forceAddVertex()));return this._lastPlacementClickPromise=s,s}_setPreservedIntersection(e){const t=this.mostDownstreamPlugin;g(t)&&(t.preservedIntersection=e)}_isLastPlacementClick(e){const t=this._lastPlacementClickScreenPoint;return null!=t&&t.x===e.x&&t.y===e.y}_hideManipulatorOnAppearance(){this.removeHandles(M),this.addHandles(this.manipulators.toArray().map(e=>e instanceof y?e.disableDisplay():null).filter(t),M)}_ensureSnappingManager(){if(this._snappingManagerResult)return;const e=b(this.view);this._snappingManagerResult=e,this.snappingManager=e.snappingManager,this.addHandles(e,C)}_releaseSnappingManager(){this._snappingManagerResult&&(this.snappingManager?.doneSnapping(),this.snappingManager=null,this.removeHandles(C),this._snappingManagerResult=null)}};function j(e,t,i){return e.renderCoordsHelper.toRenderCoords(t,i)}e([r({constructOnly:!0})],V.prototype,"view",void 0),e([r({constructOnly:!0})],V.prototype,"analysis",void 0),e([r({constructOnly:!0})],V.prototype,"analysisViewData",void 0),e([r({constructOnly:!0})],V.prototype,"parent",void 0),e([r()],V.prototype,"renderer",void 0),e([r()],V.prototype,"removeIncompleteOnCancel",void 0),e([r()],V.prototype,"placementElevationInfo",void 0),e([r()],V.prototype,"cursor",null),e([r()],V.prototype,"_snappingManagerResult",void 0),e([r()],V.prototype,"state",null),V=e([o("esri.views.3d.analysis.LineOfSight.LineOfSightPlacementTool")],V);export{V as LineOfSightPlacementTool};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{__decorate as e}from"tslib";import{EventedAccessor as t}from"../../../../core/Evented.js";import{destroyMaybe as i}from"../../../../core/maybe.js";import{watch as a,syncAndInitial as s}from"../../../../core/reactiveUtils.js";import{property as n,subclass as r}from"../../../../core/accessorSupport/decorators.js";import{create as o,fromPoints as l}from"../../../../geometry/support/lineSegment.js";import{LineOfSightAggregateManipulatedObject3D as h}from"./LineOfSightAggregateManipulatedObject3D.js";import{getLaserLineColors as p,laserLineConfiguration as u}from"./LineOfSightConfiguration.js";import{ReshapeTool3D as c}from"../../interactive/editingTools/reshape/ReshapeTool3D.js";import{LaserlineVisualElement as g}from"../../interactive/visualElements/LaserlineVisualElement.js";import d from"../../../interactive/sketch/SketchOptions.js";import{acquire as _}from"../../../interactive/snapping/SnappingManagerPool.js";const v=Symbol("line-of-sight-reshape-laser-line-manipulators"),b=Symbol("line-of-sight-reshape-tool-operations"),m=o();let L=class extends t{constructor(e){super(e),this.visible=!0,this._editing=!1,this._grabbedManipulator=null,this._laserlineVisualElement=null,this._snappingManagerResult=_(e.view),this._object=new h({analysis:e.analysis,analysisViewData:e.analysisViewData,intersector:e.intersector,view:e.view}),this._reshapeTool=new c({autoHideManipulators:!1,enableDeleteVertices:!0,enableEdgeOffset:!1,enableMidpoints:!1,enableMoveObject:!1,object:this._object,sketchOptions:new d({tooltips:{enabled:!0}}),snappingManager:this._snappingManagerResult.snappingManager,view:e.view})}initialize(){this.view.tools.add(this._reshapeTool),this._createLaserLine(),this.addHandles([this._snappingManagerResult,this._reshapeTool.events.on("manipulators-changed",()=>{this._syncLaserLineManipulatorHandles(),this._updateLaserLineRenderer()}),this._reshapeTool.events.on("reshape",e=>{"reshape-start"===e.type?this._editing=!0:"reshape-stop"===e.type&&(this._editing=!1,this._grabbedManipulator=null),this._updateLaserLineRenderer()}),this._reshapeTool.events.on("move",e=>{"move-start"===e.type?this._editing=!0:"move-stop"===e.type&&(this._editing=!1,this._grabbedManipulator=null),this._updateLaserLineRenderer()}),a(()=>this.active,e=>{e||this._cleanupAfterDeactivate()}),a(()=>p(this.view.effectiveTheme),({glowColor:e,innerColor:t,globalAlpha:i})=>this._updateLaserLineStyle(e,t,i),s),a(()=>({active:this.active,analysisVisible:this.analysisViewData.visible,targetCount:this.analysis.targets.length,visible:this.visible}),()=>{this._syncLaserLineManipulatorHandles(),this._updateLaserLineRenderer()},s),a(()=>this._object.operations,e=>{this.removeHandles(b),null!=e&&this.addHandles([e.on("can-redo-change",()=>this.notifyChange("canRedo")),e.on("can-undo-change",()=>this.notifyChange("canUndo"))],b),this.notifyChange("canUndo"),this.notifyChange("canRedo")},s)])}destroy(){this.stop(),this.removeHandles(v),this.view.tools.remove(this._reshapeTool),this._reshapeTool.destroy(),this._object.destroy(),this._laserlineVisualElement=i(this._laserlineVisualElement)}get active(){return this._reshapeTool.active}get canRedo(){return this._reshapeTool.canRedo}get canUndo(){return this._reshapeTool.canUndo}get updating(){return this._reshapeTool.updating}get snappingManager(){return this.active?this._reshapeTool.snappingManager:null}get laserLineVisualElement(){return this._laserlineVisualElement}activate(){this._reshapeTool.visible=this.visible,this.view.activeTool!==this._reshapeTool&&(this.view.activeTool=this._reshapeTool),this._reshapeTool.activate()}getTargetManipulator(e){return this._object.getTargetManipulator(e)}getObserverManipulator(){return this._object.getObserverManipulator()}redo(){this._reshapeTool.redo()}clearSelection(){this._reshapeTool.clearSelection()}applySelection(e){const t="observer"===e.type?this._object.getObserverManipulator():this._object.getTargetManipulator(e.target);return null!=t&&this._reshapeTool.selectManipulator(t)}setEditableFlag(e,t){this._reshapeTool.setEditableFlag(e,t)}stop(){this.view.activeTool===this._reshapeTool&&(this.view.activeTool=null),this._editing=!1,this._grabbedManipulator=null,this._hideLaserLine()}suspend(){this.clearSelection(),this.snappingManager?.doneSnapping(),this.stop()}undo(){this._reshapeTool.undo()}_cleanupAfterDeactivate(){this._editing=!1,this._grabbedManipulator=null,this._reshapeTool.snappingManager?.doneSnapping(),this._hideLaserLine()}_createLaserLine(){this._laserlineVisualElement=i(this._laserlineVisualElement);const{glowWidth:e,innerWidth:t}=u;this._laserlineVisualElement=new g({view:this.view,attached:!0,visible:!1,style:{glowWidth:e,innerWidth:t},isDecoration:!0})}_updateLaserLineRenderer(){const e=this._laserlineVisualElement,t=this._object.getObserverManipulator(),i=this._getLaserLineManipulator();null!=e&&this.active&&this.visible&&this.analysisViewData.visible&&null!=t&&null!=i?(e.visible=!0,e.heightManifoldTarget=i.renderLocation,e.lineVerticalPlaneSegment=i===t?null:l(t.renderLocation,i.renderLocation,m)):this._hideLaserLine()}_hideLaserLine(){const e=this._laserlineVisualElement;null!=e&&(e.visible=!1,e.heightManifoldTarget=null,e.lineVerticalPlaneSegment=null)}_updateLaserLineStyle(e,t,i){const a=this._laserlineVisualElement;if(null==a)return;const s=a.style;a.style={...s,glowColor:e.toUnitRGB(),innerColor:t.toUnitRGB(),globalAlpha:i}}_getLaserLineManipulator(){const e=this._grabbedManipulator;if(this._editing){const e=this._getSelectedManipulator();if(null!=e)return e}if(null!=e?.view)return e;for(const i of this.analysis.targets){const e=this._object.getTargetManipulator(i);if(y(e))return e}const t=this._object.getObserverManipulator();return y(t)?t:null}_getSelectedManipulator(){let e=null;for(const t of this._getLaserLineManipulators())if(t.selected){if(null!=e)return null;e=t}return e}_syncLaserLineManipulatorHandles(){this.removeHandles(v);const e=this._getLaserLineManipulators();null==this._grabbedManipulator||e.includes(this._grabbedManipulator)||(this._grabbedManipulator=null),this.addHandles(e.flatMap(e=>[e.events.on("grab-changed",t=>{"start"===t.action?this._grabbedManipulator=e:this._grabbedManipulator===e&&(this._grabbedManipulator=null),this._updateLaserLineRenderer()}),e.events.on("location-update",()=>this._updateLaserLineRenderer())]),v)}_getLaserLineManipulators(){return[this._object.getObserverManipulator(),...this.analysis.targets.toArray().map(e=>this._object.getTargetManipulator(e))].filter(e=>null!=e)}};function y(e){return null!=e&&e.grabbing}e([n({constructOnly:!0})],L.prototype,"analysisViewData",void 0),e([n({constructOnly:!0})],L.prototype,"analysis",void 0),e([n({constructOnly:!0})],L.prototype,"intersector",void 0),e([n({constructOnly:!0})],L.prototype,"view",void 0),e([n()],L.prototype,"visible",void 0),e([n()],L.prototype,"active",null),e([n()],L.prototype,"canRedo",null),e([n()],L.prototype,"canUndo",null),e([n()],L.prototype,"updating",null),L=e([r("esri.views.3d.analysis.LineOfSight.LineOfSightReshapeTool3D")],L);export{L as LineOfSightReshapeTool3D};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import e from"../../../../analysis/LineOfSightAnalysisObserver.js";import i from"../../../../analysis/LineOfSightAnalysisTarget.js";import{destroyMaybe as
|
|
2
|
+
import{__decorate as t}from"tslib";import e from"../../../../analysis/LineOfSightAnalysisObserver.js";import i from"../../../../analysis/LineOfSightAnalysisTarget.js";import s from"../../../../core/Collection.js";import{destroyMaybe as n}from"../../../../core/maybe.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{isPoint as a,isMultipoint as l}from"../../../../geometry/support/typeUtils.js";import{updateLineOfSightItemFromAuthoredPoint as u}from"./LineOfSightAuthoringUtils.js";import{isLineOfSightObserverPlugin as h,createLineOfSightObserverPluginConfiguration as c}from"./LineOfSightObserverPlugin.js";import{isLineOfSightPlacementLeafPlugin as g}from"./LineOfSightPlacementLeafPlugin.js";import{LineOfSightRayIntersector as p}from"./LineOfSightRayIntersector.js";import{isLineOfSightTargetPlugin as m,createLineOfSightTargetPluginConfiguration as _}from"./LineOfSightTargetPlugin.js";import{PluginBase as f}from"../../../draw/plugins/PluginBase.js";let d=class extends f{constructor(){super(...arguments),this.defaultElevationInfo=null,this.sourceElevationInfo=null,this._intersector=null,this._downstreamPlugin=null,this._initialObserver=null,this._operationObserver=null,this._initialTargets=new s,this._operationTargets=new s}initialize(){this._intersector=new p({view:this.view})}destroy(){this._intersector=n(this._intersector)}start(t){super.start(t),this._initialObserver=this.analysis.observer,this._operationObserver=this._initialObserver,y(this._initialTargets,this.analysis.targets.toArray()),this._operationTargets.removeAll(),t.session.appendOrReplacePart(null,[]),this._syncAnalysisFromSession(),this._restartDownstreamPlugin()}beforeAttachPlugin(t){return{geometryType:"point",useStandaloneSession:!0}}beforeComplete(){return{downstreamPluginCompletionMode:"cancel"}}attachPlugin(t){this._downstreamPlugin=t}afterUndoRedo(){this._syncAnalysisFromSession(),this._restartDownstreamPlugin()}complete(){this._clearCursorTarget(),super.complete()}cancel(){this._clearCursorTarget()}detachPlugin(t,s){if(this._downstreamPlugin===t&&(this._downstreamPlugin=null),m(t)&&this._clearCursorTarget(),"complete"!==s)return void this._syncAnalysisFromSession();const n=this._context?.getSession(t)?.generatePreviewGeometry({includeAutomaticConnection:!1,geometryType:"point"});if(!n||!a(n))return this._syncAnalysisFromSession(),void this._restartDownstreamPlugin();this._truncateItemsToSession();const r=g(t)?t.preservedIntersection:null,o=!!g(t)&&t.usesSnappedAbsoluteHeight;if(h(t)){const i=t.observer??this._operationObserver??new e;if(!this._intersector||!u(this.view,i,this._intersector,n,{defaultElevationInfo:this.defaultElevationInfo,sourceElevationInfo:this.sourceElevationInfo,preservedIntersection:r,useSnappedAbsoluteHeight:o,preferPreservedIntersection:!0}))return this._syncAnalysisFromSession(),void this._restartDownstreamPlugin();this._operationObserver=i}else if(m(t)){const e=t.target??new i;if(!this._intersector||!u(this.view,e,this._intersector,n,{defaultElevationInfo:this.defaultElevationInfo,sourceElevationInfo:this.sourceElevationInfo,preservedIntersection:r,useSnappedAbsoluteHeight:o,preferPreservedIntersection:!0}))return this._syncAnalysisFromSession(),void this._restartDownstreamPlugin();this._operationTargets.add(e)}this._appendCommittedPoint(n),this._syncAnalysisFromSession(),this._restartDownstreamPlugin(),this._clearCursorTarget()}_appendCommittedPoint(t){const e=this._session;e&&(e.appendOrReplacePoint(null,t),e.appendOrReplacePart(null,[]),e.automaticRestart=!1,e.groupGeometryChanges())}_clearCursorTarget(){this.analysisViewData.cursorTarget=n(this.analysisViewData.cursorTarget)}_truncateItemsToSession(){const t=this._getCommittedPointCount();null==this._initialObserver&&0===t&&(this._operationObserver=null),this._operationTargets.splice(this._getCommittedOperationTargetCount(t))}_restartDownstreamPlugin(){const t=null==this.analysis.observer,e=t?this._createObserverPluginConfiguration():this._createTargetPluginConfiguration();t&&h(this._downstreamPlugin)||!t&&m(this._downstreamPlugin)||this._context?.requestBeginDownstreamPlugin(e,{cancelExisting:!0})}_createObserverPluginConfiguration(t=null){return c({observer:t,defaultCaptureMode:t?"grabbable-object":"capture-always",inputMapPosition:t?.position??null})}_createTargetPluginConfiguration(t=null){return _({analysis:this.analysis,analysisViewData:this.analysisViewData,defaultCaptureMode:t?"grabbable-object":"capture-always",defaultElevationInfo:this.defaultElevationInfo,inputMapPosition:t?.position??null,sourceElevationInfo:this.sourceElevationInfo,target:t,view:this.view})}_syncAnalysisFromSession(){const t=this._getCommittedPointCount(),e=this._getCommittedOperationTargetCount(t);this.analysis.observer=this._getActiveObserver(t),y(this.analysis.targets,this._initialTargets.toArray().concat(this._operationTargets.toArray().slice(0,e)))}_getActiveObserver(t){return null!=this._initialObserver?this._operationObserver??null:t>0?this._operationObserver:null}_getCommittedOperationTargetCount(t){return Math.max(0,t-(null!=this._initialObserver?0:Math.min(t,1)))}_getCommittedPointCount(){const t=this._session?.generatePreviewGeometry({includeAutomaticConnection:!1,geometryType:"multipoint"});return t&&l(t)?t.points.length:0}};function v(t){return{uniqueId:Symbol("line-of-sight-root-plugin"),kind:["multipart"],geometryType:"multipoint",hidden:!0,localizationKey:"line-of-sight-root",icon:"point",create:()=>new d(t)}}function y(t,e){let i=-1;for(let s=0;s<Math.min(t.length,e.length);s++)if(t.getItemAt(s)!==e[s]){i=s;break}if(-1===i){if(t.length===e.length)return;i=Math.min(t.length,e.length)}t.splice(i,t.length-i,...e.slice(i))}t([r({constructOnly:!0})],d.prototype,"analysis",void 0),t([r({constructOnly:!0})],d.prototype,"analysisViewData",void 0),t([r({constructOnly:!0})],d.prototype,"view",void 0),t([r({constructOnly:!0})],d.prototype,"defaultElevationInfo",void 0),t([r({constructOnly:!0})],d.prototype,"sourceElevationInfo",void 0),t([r()],d.prototype,"_intersector",void 0),t([r()],d.prototype,"_downstreamPlugin",void 0),d=t([o("esri.views.3d.analysis.LineOfSight.LineOfSightRootPlugin")],d);export{d as LineOfSightRootPlugin,v as createLineOfSightRootPluginConfiguration};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import e from"../../../../analysis/LineOfSightAnalysisTarget.js";import{destroyMaybe as i}from"../../../../core/maybe.js";import{watch as
|
|
2
|
+
import{__decorate as t}from"tslib";import e from"../../../../analysis/LineOfSightAnalysisTarget.js";import{destroyMaybe as i}from"../../../../core/maybe.js";import{watch as s,sync as o}from"../../../../core/reactiveUtils.js";import{property as n,subclass as r}from"../../../../core/accessorSupport/decorators.js";import{updateLineOfSightItemFromIntersection as a,updateLineOfSightItemFromAuthoredPoint as l}from"./LineOfSightAuthoringUtils.js";import{LineOfSightRayIntersector as u}from"./LineOfSightRayIntersector.js";import{PluginBase as p}from"../../../draw/plugins/PluginBase.js";var c;const d=Symbol("line-of-sight-target-vertex"),h=Symbol("line-of-sight-target-plugin-marker");let v=class extends p{constructor(){super(...arguments),this[c]=!0,this.target=null,this.defaultElevationInfo=null,this.defaultCaptureMode="capture-always",this.inputMapPosition=null,this.preservedIntersection=null,this.sourceElevationInfo=null,this._interactiveHandle=null,this._intersector=null}static{c=h}initialize(){this._intersector=new u({view:this.view})}destroy(){this._intersector=i(this._intersector)}get usesSnappedAbsoluteHeight(){const t=this._interactiveHandle,e=t?.inputMapPosition,i=t?.outputMapPosition;return null!=e&&null!=i&&!e.equals(i)}start(t){super.start(t),this.preservedIntersection=null;const{positionOfLastUserInput:n,session:r}=t,u="grabbable-object"===this.defaultCaptureMode?this.inputMapPosition??this._interactiveHandle?.outputMapPosition??n:this.inputMapPosition??n;!u||"grabbable-object"!==this.defaultCaptureMode&&this._interactiveHandle||r.appendOrReplacePoint(d,u);let p="capture-always"===this.defaultCaptureMode&&null!=u;this._interactiveHandle&&this._clearCursorTarget(),this._interactiveHandle||(this._interactiveHandle=t.createInteractiveHandle({defaultCaptureMode:this.defaultCaptureMode,inputMapPosition:"grabbable-object"===this.defaultCaptureMode?u??void 0:void 0}),this.addHandles(s(()=>this._interactiveHandle?.outputMapPosition,t=>{if(!t||this._isComplete)return;const s=this.analysisViewData.cursorTarget??new e,o=this.usesSnappedAbsoluteHeight,n=this._interactiveHandle?.screenPosition,r=n&&this._intersector?this._intersector.getScreenPointIntersection(n):null;return this._session?.appendOrReplacePoint(d,t),p?(p=!1,void this._clearCursorTarget()):null!=r?(this.analysisViewData.cursorTarget=s,void a(this.view,s,r,{snappedMapPoint:t,defaultElevationInfo:this.defaultElevationInfo,sourceElevationInfo:this.sourceElevationInfo,useSnappedAbsoluteHeight:o})):null!=n&&null!=this.preservedIntersection?(this.analysisViewData.cursorTarget=s,void a(this.view,s,this.preservedIntersection,{snappedMapPoint:t,defaultElevationInfo:this.defaultElevationInfo,sourceElevationInfo:this.sourceElevationInfo,useSnappedAbsoluteHeight:o})):void(null==n&&this._intersector&&l(this.view,s,this._intersector,t,{defaultElevationInfo:this.defaultElevationInfo,sourceElevationInfo:this.sourceElevationInfo,preservedIntersection:this.preservedIntersection,useSnappedAbsoluteHeight:o,preferPreservedIntersection:!0})?this.analysisViewData.cursorTarget=s:this.analysisViewData.cursorTarget=i(this.analysisViewData.cursorTarget))},o),this._ownHandlesKey))}complete(){this._clearCursorTarget(),super.complete()}cancel(){this._clearCursorTarget()}_clearCursorTarget(){this.analysisViewData.cursorTarget=i(this.analysisViewData.cursorTarget)}};function f(t){return!!t&&h in t}function g(t){return{uniqueId:Symbol("line-of-sight-target-plugin"),kind:["vertex"],geometryType:"point",hidden:!0,localizationKey:"leaf-point-segment",icon:"point",create:()=>new v(t)}}t([n({constructOnly:!0})],v.prototype,"analysis",void 0),t([n({constructOnly:!0})],v.prototype,"analysisViewData",void 0),t([n({constructOnly:!0})],v.prototype,"view",void 0),t([n({constructOnly:!0})],v.prototype,"target",void 0),t([n({constructOnly:!0})],v.prototype,"defaultElevationInfo",void 0),t([n()],v.prototype,"defaultCaptureMode",void 0),t([n()],v.prototype,"inputMapPosition",void 0),t([n()],v.prototype,"preservedIntersection",void 0),t([n({constructOnly:!0})],v.prototype,"sourceElevationInfo",void 0),t([n()],v.prototype,"_interactiveHandle",void 0),t([n()],v.prototype,"_intersector",void 0),v=t([r("esri.views.3d.analysis.LineOfSight.LineOfSightTargetPlugin")],v);export{v as LineOfSightTargetPlugin,g as createLineOfSightTargetPluginConfiguration,f as isLineOfSightTargetPlugin,h as lineOfSightTargetPluginMarker};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../../analysis/LineOfSightAnalysisObserver.js";import n from"../../../../analysis/LineOfSightAnalysisTarget.js";import i from"../../../../core/Handles.js";import"../../../../core/has.js";import a from"../../../../core/Logger.js";import{destroyMaybe as r}from"../../../../core/maybe.js";import{memoize as s}from"../../../../core/memoize.js";import{ignoreAbortErrors as o}from"../../../../core/promiseUtils.js";import{when as l,syncAndInitial as p,initial as u}from"../../../../core/reactiveUtils.js";import{property as c,subclass as h}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as d}from"../../../../core/support/UpdatingHandles.js";import{create as g,fromPoints as _}from"../../../../geometry/support/lineSegment.js";import{hydrateGeometry as m,clonePoint as v}from"../../../../layers/graphics/hydratedFeatures.js";import{absoluteHeightElevationInfo as b,getGraphicEffectiveElevationInfo as y,getConvertedElevation as f}from"../../../../support/elevationInfoUtils.js";import M from"../../../../symbols/support/ElevationInfo.js";import{getGaussianSplatOffsetPosition as T}from"./LineOfSightAuthoringUtils.js";import{getLaserLineColors as P,laserLineConfiguration as w}from"./LineOfSightConfiguration.js";import{LineOfSightTargetManipulator as S,LineOfSightObserverManipulator as L}from"./LineOfSightManipulators.js";import{LineOfSightRayIntersector as k}from"./LineOfSightRayIntersector.js";import{SnappingVisualizer3D as C}from"../../interactive/SnappingVisualizer3D.js";import{LaserlineVisualElement as O}from"../../interactive/visualElements/LaserlineVisualElement.js";import{mouseButtons as I}from"../../../input/mouseButtons.js";import{AnalysisToolBase as H}from"../../../interactive/AnalysisToolBase.js";import{createCoordinateHelper as j}from"../../../interactive/coordinateHelper.js";import{createManipulatorDragEventPipeline as R}from"../../../interactive/dragEventPipeline.js";import{EditGeometry as E}from"../../../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as V}from"../../../interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as D}from"../../../interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as x}from"../../../interactive/snapping/SnappingDragPipelineStep.js";import{acquire as G}from"../../../interactive/snapping/SnappingManagerPool.js";import{SnappingOperation as A}from"../../../interactive/snapping/SnappingOperation.js";import{setupSnappingToggleHandles as F}from"../../../interactive/snapping/snappingUtils.js";import{createScreenPointFromEvent as U}from"../../../support/screenUtils.js";let z=class extends H{constructor(e){super(e),this._creationMode=!1,this.removeIncompleteOnCancel=!1,this.analysisViewData=null,this._latestPointerMovePointerType=null,this._laserlineVisualElement=null,this._grabbedManipulator=null,this._trackerIntersection=null,this._trackerMapPoint=null,this._snappingManagerResult=null,this._analysisHandles=new i,this._updatingHandles=new d,this._manipulatorHandles=new i,this._targetTrackerManipulator=null,this._getSnappingContext=s(e=>new D({elevationInfo:b,pointer:e,editGeometryOperations:new V(new E("point",j(!0,!1,this.view.spatialReference)),this.view.state.viewingMode),visualizer:new C}))}initialize(){this._intersector=new k({view:this.view}),this._snappingOperation=new A({view:this.view}),F(this,()=>{const e=this.view.inputManager.latestPointerInfo?.type??"mouse",t=this._getSnappingContext(e);this._updatingHandles.consumePromise(o(this._snappingOperation.snapAgainNearPreviousMapPoint(this._ensureSnappingManager(),t)))}),this.addHandles(l(()=>"created"===this.state,()=>this.finishToolCreation(),p)),this._observerManipulator=this._createObserverManipulator(),this._createLaserLine(),this.addHandles([this._updatingHandles.add(()=>this.analysisViewData?.elevationAlignedObserver,e=>this._onObserverLocationChange(e),u),this._updatingHandles.add(()=>P(this.view.effectiveTheme),({glowColor:e,innerColor:t,globalAlpha:n})=>this._updateLaserLineStyle(e,t,n),u),this._updatingHandles.add(()=>this._laserLineRendererDependencies(),e=>this._updateLaserLineRenderer(e)),this._connectComputations(),this._updatingHandles.addWhen(()=>!this._shouldRenderTracker,()=>this._clearCursorTracker(),u),this._updatingHandles.add(()=>({active:this.active,hasGrabbedManipulators:this.hasGrabbedManipulators}),({active:e,hasGrabbedManipulators:t})=>{this._creationMode=!!e&&(this._creationMode||!t)},u),this._updatingHandles.add(()=>({observerPosition:this.analysis.observer?.position,showTracker:this._showTracker,hasGrabbedManipulators:this.hasGrabbedManipulators,stagedPoint:this._snappingOperation.stagedPoint,trackerIntersection:this._trackerIntersection}),({observerPosition:e,showTracker:t,hasGrabbedManipulators:i,stagedPoint:a,trackerIntersection:r})=>{if(null==e||!t||i||null==r?.mapPoint)return;this.analysisViewData.cursorTarget??=new n;const s=null!=a?m(a):r.mapPoint,o=this._resolveIntersection(r,s);this._updateFromIntersection(this.analysisViewData.cursorTarget,o,s),this._updateLaserLineRenderer()},u)])}destroy(){this._updatingHandles=r(this._updatingHandles),this._manipulatorHandles=r(this._manipulatorHandles),this._analysisHandles=r(this._analysisHandles),this._observerManipulator=null,this._clearCursorTracker(),this._snappingOperation=r(this._snappingOperation),this._removeLaserLine(),this._intersector=null,this._set("analysis",null)}get state(){return this.active?!this.hasGrabbedManipulators||this._creationMode?"creating":"created":null!=this.analysis.observer?.position?"created":"ready"}get cursor(){return this.active&&this._showTracker?"crosshair":null}get updating(){return!!this.analysisViewData?.updating||!!this._snappingManager?.updating}get _showTracker(){return this.active&&"mouse"===this._latestPointerMovePointerType}get _shouldRenderTracker(){return this._showTracker&&null!=this.analysis.observer?.position&&!this.hasGrabbedManipulators}get _snappingManager(){return this._snappingManagerResult?.snappingManager}get snappingOptions(){return this._snappingManager?.options}continue(){this.view.activeTool=this}stop(){this.view.activeTool=null}onEditableChange(){this.analysisViewData.editable=this.internallyEditable}onInputEvent(e){switch(e.type){case"immediate-double-click":this._doubleClickHandler(e);break;case"pointer-move":this._pointerMoveHandler(e)}}onInputEventAfter(e){if("immediate-click"===e.type)this._clickHandler(e)}onShow(){}onHide(){}onDeactivate(){this._clearCursorTracker()}_connectComputations(){return this._updatingHandles.addOnCollectionChange(()=>this.analysisViewData.computations,e=>this._onComputationsCollectionChange(e),{initial:!0,final:!0})}_onComputationsCollectionChange({added:e,removed:t}){for(const n of t)this._disconnectComputation(n);for(const n of e)this._connectComputation(n)}_connectComputation(e){if(this.destroyed)return void a.getLogger(this).warn("Attempting to connect an analysis to a destroyed LineOfSight tool. Ignoring.");const t=this._analysisHandles;if(t.has(e))return;const n=this._createTargetManipulator(e.target);null==this._targetTrackerManipulator&&n.metadata.target===this.analysisViewData.cursorTarget&&(this._targetTrackerManipulator=n,this._targetTrackerManipulator.available=!1,this._targetTrackerManipulator.interactive=!1,this._updateLaserLineRenderer()),t.add([this._updatingHandles.add(()=>q(e),()=>B(n,e),u),this._updatingHandles.add(()=>e.elevationAlignedTargetLocation,e=>this._onTargetLocationChange(e,n),u)],e)}_disconnectComputation(e){if(this.destroyed)return void a.getLogger(this).warn("Attempting to disconnect an analysis from a destroyed LineOfSight tool. Ignoring.");this._analysisHandles.remove(e);const t=this._getTargetManipulator(e.target);null!=t&&(this.manipulators.remove(t),this._manipulatorHandles.remove(t),null!=this._targetTrackerManipulator&&this._targetTrackerManipulator===t&&(this._targetTrackerManipulator=null))}_clearCursorTracker(){this._trackerIntersection=null,this._trackerMapPoint=null,this._resetSnappingState(),this.analysisViewData.cursorTarget=r(this.analysisViewData.cursorTarget)}_ensureSnappingManager(){if(null==this._snappingManagerResult){const e=G(this.view);this._snappingManagerResult=e,this.addHandles(e)}return this._snappingManagerResult.snappingManager}_createTargetManipulator(e){const t={target:e,type:"target"},n=new S(this.view,t);return this._manipulatorHandles.add([this._createTargetManipulatorDragPipeline(n),n.events.on("grab-changed",e=>this._manipulatorGrabChanged(n,e)),n.events.on("immediate-click",e=>this._manipulatorClick(n,e))],n),this.manipulators.add(n),null!=e.position?n.elevationAlignedLocation=e.position:n.available=!1,n}_getTargetManipulator(e){let t=null;return this.manipulators.forEach(n=>{const i=n.manipulator;null==t&&"target"===i.metadata.type&&i.metadata.target===e&&(t=i)}),t}_createObserverManipulator(){const e=new L(this.view,{type:"observer",intersection:null});return this._manipulatorHandles.add([this._createObserverManipulatorDragPipeline(e),e.events.on("grab-changed",t=>this._manipulatorGrabChanged(e,t)),e.events.on("immediate-click",t=>this._manipulatorClick(e,t))],e),this.manipulators.add(e),e}_createTargetManipulatorDragPipeline(e){return R(e,(t,n,i,a)=>{const r=this._ensureSnappingManager(),{snappingStep:s,cancelSnapping:o}=x({snappingManager:r,snappingContext:this._getSnappingContext(a),updatingHandles:this._updatingHandles});n.next(this._screenToSnappingDragEvent()).next(...s).next(this._updateIntersectionFromSnappedPoint()).next(this._updateTargetDragStep(e)).next(()=>this._updateLaserLineRenderer()),i.next(W(e.metadata.target)).next(o).next(()=>this._updateLaserLineRenderer())})}_createObserverManipulatorDragPipeline(e){return R(e,(e,t,n,i)=>{const a=this._ensureSnappingManager(),{snappingStep:r,cancelSnapping:s}=x({snappingManager:a,snappingContext:this._getSnappingContext(i),updatingHandles:this._updatingHandles});t.next(this._screenToSnappingDragEvent()).next(...r).next(this._updateIntersectionFromSnappedPoint()).next(this._updateObserverDragStep()).next(()=>this._updateLaserLineRenderer()),n.next(this._cancelObserverDragStep()).next(s).next(()=>this._updateLaserLineRenderer())})}_screenToSnappingDragEvent(){let e=null;return t=>{"start"===t.action&&(e=this._intersector.getScreenPointIntersection(t.screenStart));const n=this._intersector.getScreenPointIntersection(t.screenEnd);return null==e?.mapPoint||null==n?.mapPoint?null:{...t,intersection:n,mapStart:v(e.mapPoint),mapEnd:v(n.mapPoint)}}}_updateIntersectionFromSnappedPoint(){return e=>(e.intersection=this._resolveIntersection(e.intersection,e.mapEnd),e)}_updateObserverDragStep(){return e=>(this.analysis.observer??=new t,this._updateFromIntersection(this.analysis.observer,e.intersection,e.mapEnd),e)}_cancelObserverDragStep(){const e=null!=this.analysis.observer?.position?this.analysis.observer.clone():null;return t=>(this.analysis.observer=e,t)}_updateTargetDragStep(e){return t=>(this._updateFromIntersection(e.metadata.target,t.intersection,t.mapEnd),e.elevationAlignedLocation=t.mapEnd,t)}_manipulatorGrabChanged(e,t){switch(t.action){case"start":this._grabbedManipulator=e;break;case"end":this._grabbedManipulator===e&&(this._grabbedManipulator=null)}}_laserLineRendererDependencies(){return{laserlineVisualElement:this._laserlineVisualElement,grabbedManipulator:this._grabbedManipulator,shouldRenderTracker:this._shouldRenderTracker,observerPosition:null!=this.analysis.observer?this.analysis.observer.position:null,visible:this.visible}}_updateLaserLineRenderer(e=this._laserLineRendererDependencies()){const{laserlineVisualElement:t,grabbedManipulator:n,shouldRenderTracker:i,observerPosition:a,visible:r}=e;if(null==t)return;const s=null!=n?n:i&&null!=a?this._targetTrackerManipulator:null;null!=s&&r?(t.visible=!0,t.heightManifoldTarget=s.renderLocation,s!==this._observerManipulator?t.lineVerticalPlaneSegment=_(this._observerManipulator.renderLocation,s.renderLocation,N):t.lineVerticalPlaneSegment=null):(t.visible=!1,t.heightManifoldTarget=null,t.lineVerticalPlaneSegment=null)}_createLaserLine(){this._removeLaserLine();const{glowWidth:e,innerWidth:t}=w;this._laserlineVisualElement=new O({view:this.view,attached:!0,visible:this.visible,style:{glowWidth:e,innerWidth:t},isDecoration:!0})}_removeLaserLine(){null!=this._laserlineVisualElement&&(this._laserlineVisualElement.destroy(),this._laserlineVisualElement=null)}_updateLaserLineStyle(e,t,n){const i=this._laserlineVisualElement;if(null==i)return;const a=i.style;i.style={...a,glowColor:e.toUnitRGB(),innerColor:t.toUnitRGB(),globalAlpha:n}}_onObserverLocationChange(e){null!=e?(this._observerManipulator.metadata.intersection=null,this._observerManipulator.available=!0,this._observerManipulator.elevationAlignedLocation=e):this._observerManipulator.available=!1}_onTargetLocationChange(e,t){null!=e?(t.elevationAlignedLocation=e,t!==this._targetTrackerManipulator&&(t.available=!0)):t.available=!1}_addPointFromClickEvent(e,i){const a=this._getPlacementLocation(e,i);if(null==a)return;const{intersection:r,point:s}=a;if(null!=this.analysis.observer?.position){this._clearCursorTracker();const e=new n;this._updateFromIntersection(e,r,s),this.analysis.targets.add(e)}else{const e=new t;this._updateFromIntersection(e,r,s),this.analysis.observer=e}}_clickHandler(e){this.active&&e.button!==I.Right&&(this._addPointFromClickEvent(U(e),e.pointerType),e.stopPropagation())}_doubleClickHandler(e){this.active&&e.button!==I.Right&&(this.stop(),e.stopPropagation())}_pointerMoveHandler(e){if(this.hasGrabbedManipulators)return;if(this._latestPointerMovePointerType=e.pointerType,this._updateLaserLineRenderer(),!this._showTracker)return void this._clearCursorTracker();const t=U(e),n=this._intersector.getScreenPointIntersection(t),i=n?.mapPoint;null!=n?.mapPoint&&null!=i?(this._trackerIntersection=n,this._trackerMapPoint=i,this._updateHoverSnapping(i,e.pointerType)):this._clearCursorTracker()}_getPlacementLocation(e,t){const n=this._intersector.getScreenPointIntersection(e);if(null==n?.mapPoint)return null;const i=n.mapPoint;if(!this._shouldUsePlacementSnapping(t))return{intersection:n,point:i};const a=n.mapPoint,r=this._trackerMapPoint?.equals(a)?this._snappingOperation.stagedPoint:null,s=m(r??this._snappingOperation.update({point:a},this._ensureSnappingManager(),this._getSnappingContext(t)));return{intersection:this._resolveIntersection(n,s),point:s}}_shouldUsePlacementSnapping(e){return"touch"!==e}_updateHoverSnapping(e,t){const n=this._getSnappingContext(t);this._updatingHandles.consumePromise(o(this._snappingOperation.snap({point:e},this._ensureSnappingManager(),n)))}_updateFromIntersection(e,t,n=t.mapPoint){if(null==n)return e.position=null,e.elevationInfo=null,void(e.feature=null);const i=!t.mapPoint?.equals(n);switch(t.context?.type){case"graphic":{const n=t.context.graphic,i=y(n);"on-the-ground"===i.mode&&(i.mode="relative-to-ground",i.offset=0),e.elevationInfo=new M(i),e.feature=n}break;case"gaussian-splat":return e.elevationInfo=null,e.feature=null,void(e.position=T(this.view,n,e.elevationInfo,t.normal));case"ground":e.elevationInfo=new M({mode:"on-the-ground"}),e.feature=null;break;default:e.elevationInfo=null,e.feature=null}i&&(e.elevationInfo=null);const a=n.clone();a.z=f(this.view,a,b,e.elevationInfo),e.position=a}_manipulatorClick(e,t){if("observer"===e.metadata.type||e.grabbing||e.dragging||t.button!==I.Right||this.analysis.targets.length<=1)return;const{target:n}=e.metadata;this.analysis.targets.remove(n),t.stopPropagation()}get testInfo(){}_resetSnappingState(){this._snappingManager?.doneSnapping(),this._snappingOperation.abort(),this._snappingOperation.stagedPoint=null}_resolveIntersection(e,t){return e.mapPoint?.equals(t)?e:this._intersector.getMapPointIntersection(t)??e}};function W(e){const t=e.position?.clone();return n=>(e.position=t,n)}function B(e,t){const{isValid:n,isTargetVisible:i}=t.computationResult;e.state=n?i?16:32:64}function q(e){const{isValid:t,isTargetVisible:n}=e.computationResult;return{isValid:t,isTargetVisible:n}}e([c({constructOnly:!0})],z.prototype,"view",void 0),e([c({constructOnly:!0})],z.prototype,"analysis",void 0),e([c()],z.prototype,"_creationMode",void 0),e([c({readOnly:!0})],z.prototype,"state",null),e([c({readOnly:!0})],z.prototype,"cursor",null),e([c()],z.prototype,"removeIncompleteOnCancel",void 0),e([c({readOnly:!0})],z.prototype,"updating",null),e([c({constructOnly:!0})],z.prototype,"analysisViewData",void 0),e([c({readOnly:!0})],z.prototype,"_showTracker",null),e([c()],z.prototype,"_latestPointerMovePointerType",void 0),e([c()],z.prototype,"_shouldRenderTracker",null),e([c()],z.prototype,"_laserlineVisualElement",void 0),e([c()],z.prototype,"_grabbedManipulator",void 0),e([c()],z.prototype,"_trackerIntersection",void 0),e([c()],z.prototype,"_trackerMapPoint",void 0),e([c()],z.prototype,"_snappingManagerResult",void 0),z=e([h("esri.views.3d.analysis.LineOfSight.LineOfSightTool")],z);const N=g();export{z as LineOfSightTool};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../analysis/LineOfSightAnalysisObserver.js";import n from"../../../../analysis/LineOfSightAnalysisTarget.js";import i from"../../../../core/Handles.js";import"../../../../core/has.js";import a from"../../../../core/Logger.js";import{destroyMaybe as r}from"../../../../core/maybe.js";import{memoize as s}from"../../../../core/memoize.js";import{ignoreAbortErrors as o}from"../../../../core/promiseUtils.js";import{when as l,syncAndInitial as p,initial as u}from"../../../../core/reactiveUtils.js";import{property as c,subclass as h}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as d}from"../../../../core/support/UpdatingHandles.js";import{create as g,fromPoints as _}from"../../../../geometry/support/lineSegment.js";import{hydrateGeometry as m,clonePoint as v}from"../../../../layers/graphics/hydratedFeatures.js";import{absoluteHeightElevationInfo as b,getGraphicEffectiveElevationInfo as y,getConvertedElevation as f}from"../../../../support/elevationInfoUtils.js";import M from"../../../../symbols/support/ElevationInfo.js";import{getGaussianSplatOffsetPosition as T}from"./LineOfSightAuthoringUtils.js";import{getLaserLineColors as P,laserLineConfiguration as w}from"./LineOfSightConfiguration.js";import{LineOfSightTargetManipulator as S,LineOfSightObserverManipulator as L,LineOfSightTargetManipulatorState as k}from"./LineOfSightManipulators.js";import{LineOfSightRayIntersector as C}from"./LineOfSightRayIntersector.js";import{SnappingVisualizer3D as O}from"../../interactive/SnappingVisualizer3D.js";import{LaserlineVisualElement as I}from"../../interactive/visualElements/LaserlineVisualElement.js";import{mouseButtons as H}from"../../../input/mouseButtons.js";import{AnalysisToolBase as j}from"../../../interactive/AnalysisToolBase.js";import{createCoordinateHelper as R}from"../../../interactive/coordinateHelper.js";import{createManipulatorDragEventPipeline as E}from"../../../interactive/dragEventPipeline.js";import{EditGeometry as V}from"../../../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as D}from"../../../interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as x}from"../../../interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as G}from"../../../interactive/snapping/SnappingDragPipelineStep.js";import{acquire as A}from"../../../interactive/snapping/SnappingManagerPool.js";import{SnappingOperation as F}from"../../../interactive/snapping/SnappingOperation.js";import{setupSnappingToggleHandles as U}from"../../../interactive/snapping/snappingUtils.js";import{createScreenPointFromEvent as z}from"../../../support/screenUtils.js";let W=class extends j{constructor(e){super(e),this._creationMode=!1,this.removeIncompleteOnCancel=!1,this.analysisViewData=null,this._latestPointerMovePointerType=null,this._laserlineVisualElement=null,this._grabbedManipulator=null,this._trackerIntersection=null,this._trackerMapPoint=null,this._snappingManagerResult=null,this._analysisHandles=new i,this._updatingHandles=new d,this._manipulatorHandles=new i,this._targetTrackerManipulator=null,this._getSnappingContext=s(e=>new x({elevationInfo:b,pointer:e,editGeometryOperations:new D(new V("point",R(!0,!1,this.view.spatialReference)),this.view.state.viewingMode),visualizer:new O}))}initialize(){this._intersector=new C({view:this.view}),this._snappingOperation=new F({view:this.view}),U(this,()=>{const e=this.view.inputManager.latestPointerInfo?.type??"mouse",t=this._getSnappingContext(e);this._updatingHandles.consumePromise(o(this._snappingOperation.snapAgainNearPreviousMapPoint(this._ensureSnappingManager(),t)))}),this.addHandles(l(()=>"created"===this.state,()=>this.finishToolCreation(),p)),this._observerManipulator=this._createObserverManipulator(),this._createLaserLine(),this.addHandles([this._updatingHandles.add(()=>this.analysisViewData?.elevationAlignedObserver,e=>this._onObserverLocationChange(e),u),this._updatingHandles.add(()=>P(this.view.effectiveTheme),({glowColor:e,innerColor:t,globalAlpha:n})=>this._updateLaserLineStyle(e,t,n),u),this._updatingHandles.add(()=>this._laserLineRendererDependencies(),e=>this._updateLaserLineRenderer(e)),this._connectComputations(),this._updatingHandles.addWhen(()=>!this._shouldRenderTracker,()=>this._clearCursorTracker(),u),this._updatingHandles.add(()=>({active:this.active,hasGrabbedManipulators:this.hasGrabbedManipulators}),({active:e,hasGrabbedManipulators:t})=>{this._creationMode=!!e&&(this._creationMode||!t)},u),this._updatingHandles.add(()=>({observerPosition:this.analysis.observer?.position,showTracker:this._showTracker,hasGrabbedManipulators:this.hasGrabbedManipulators,stagedPoint:this._snappingOperation.stagedPoint,trackerIntersection:this._trackerIntersection}),({observerPosition:e,showTracker:t,hasGrabbedManipulators:i,stagedPoint:a,trackerIntersection:r})=>{if(null==e||!t||i||null==r?.mapPoint)return;this.analysisViewData.cursorTarget??=new n;const s=null!=a?m(a):r.mapPoint,o=this._resolveIntersection(r,s);this._updateFromIntersection(this.analysisViewData.cursorTarget,o,s),this._updateLaserLineRenderer()},u)])}destroy(){this._updatingHandles=r(this._updatingHandles),this._manipulatorHandles=r(this._manipulatorHandles),this._analysisHandles=r(this._analysisHandles),this._observerManipulator=null,this._clearCursorTracker(),this._snappingOperation=r(this._snappingOperation),this._removeLaserLine(),this._intersector=null,this._set("analysis",null)}get state(){return this.active?!this.hasGrabbedManipulators||this._creationMode?"creating":"created":null!=this.analysis.observer?.position?"created":"ready"}get cursor(){return this.active&&this._showTracker?"crosshair":null}get updating(){return!!this.analysisViewData?.updating||!!this._snappingManager?.updating}get _showTracker(){return this.active&&"mouse"===this._latestPointerMovePointerType}get _shouldRenderTracker(){return this._showTracker&&null!=this.analysis.observer?.position&&!this.hasGrabbedManipulators}get _snappingManager(){return this._snappingManagerResult?.snappingManager}get snappingOptions(){return this._snappingManager?.options}continue(){this.view.activeTool=this}stop(){this.view.activeTool=null}onEditableChange(){this.analysisViewData.editable=this.internallyEditable}onInputEvent(e){switch(e.type){case"immediate-double-click":this._doubleClickHandler(e);break;case"pointer-move":this._pointerMoveHandler(e)}}onInputEventAfter(e){if("immediate-click"===e.type)this._clickHandler(e)}onShow(){}onHide(){}onDeactivate(){this._clearCursorTracker()}_connectComputations(){return this._updatingHandles.addOnCollectionChange(()=>this.analysisViewData.computations,e=>this._onComputationsCollectionChange(e),{initial:!0,final:!0})}_onComputationsCollectionChange({added:e,removed:t}){for(const n of t)this._disconnectComputation(n);for(const n of e)this._connectComputation(n)}_connectComputation(e){if(this.destroyed)return void a.getLogger(this).warn("Attempting to connect an analysis to a destroyed LineOfSight tool. Ignoring.");const t=this._analysisHandles;if(t.has(e))return;const n=this._createTargetManipulator(e.target);null==this._targetTrackerManipulator&&n.metadata.target===this.analysisViewData.cursorTarget&&(this._targetTrackerManipulator=n,this._targetTrackerManipulator.available=!1,this._targetTrackerManipulator.interactive=!1,this._updateLaserLineRenderer()),t.add([this._updatingHandles.add(()=>N(e),()=>q(n,e),u),this._updatingHandles.add(()=>e.elevationAlignedTargetLocation,e=>this._onTargetLocationChange(e,n),u)],e)}_disconnectComputation(e){if(this.destroyed)return void a.getLogger(this).warn("Attempting to disconnect an analysis from a destroyed LineOfSight tool. Ignoring.");this._analysisHandles.remove(e);const t=this._getTargetManipulator(e.target);null!=t&&(this.manipulators.remove(t),this._manipulatorHandles.remove(t),null!=this._targetTrackerManipulator&&this._targetTrackerManipulator===t&&(this._targetTrackerManipulator=null))}_clearCursorTracker(){this._trackerIntersection=null,this._trackerMapPoint=null,this._resetSnappingState(),this.analysisViewData.cursorTarget=r(this.analysisViewData.cursorTarget)}_ensureSnappingManager(){if(null==this._snappingManagerResult){const e=A(this.view);this._snappingManagerResult=e,this.addHandles(e)}return this._snappingManagerResult.snappingManager}_createTargetManipulator(e){const t={deleting:!1,target:e,type:"target"},n=new S(this.view,t);return this._manipulatorHandles.add([this._createTargetManipulatorDragPipeline(n),n.events.on("grab-changed",e=>this._manipulatorGrabChanged(n,e)),n.events.on("immediate-click",e=>this._manipulatorClick(n,e))],n),this.manipulators.add(n),null!=e.position?n.elevationAlignedLocation=e.position:n.available=!1,n}_getTargetManipulator(e){let t=null;return this.manipulators.forEach(n=>{const i=n.manipulator;null==t&&"target"===i.metadata.type&&i.metadata.target===e&&(t=i)}),t}_createObserverManipulator(){const e=new L(this.view,{deleting:!1,type:"observer",intersection:null});return this._manipulatorHandles.add([this._createObserverManipulatorDragPipeline(e),e.events.on("grab-changed",t=>this._manipulatorGrabChanged(e,t)),e.events.on("immediate-click",t=>this._manipulatorClick(e,t))],e),this.manipulators.add(e),e}_createTargetManipulatorDragPipeline(e){return E(e,(t,n,i,a)=>{const r=this._ensureSnappingManager(),{snappingStep:s,cancelSnapping:o}=G({snappingManager:r,snappingContext:this._getSnappingContext(a),updatingHandles:this._updatingHandles});n.next(this._screenToSnappingDragEvent()).next(...s).next(this._updateIntersectionFromSnappedPoint()).next(this._updateTargetDragStep(e)).next(()=>this._updateLaserLineRenderer()),i.next(B(e.metadata.target)).next(o).next(()=>this._updateLaserLineRenderer())})}_createObserverManipulatorDragPipeline(e){return E(e,(e,t,n,i)=>{const a=this._ensureSnappingManager(),{snappingStep:r,cancelSnapping:s}=G({snappingManager:a,snappingContext:this._getSnappingContext(i),updatingHandles:this._updatingHandles});t.next(this._screenToSnappingDragEvent()).next(...r).next(this._updateIntersectionFromSnappedPoint()).next(this._updateObserverDragStep()).next(()=>this._updateLaserLineRenderer()),n.next(this._cancelObserverDragStep()).next(s).next(()=>this._updateLaserLineRenderer())})}_screenToSnappingDragEvent(){let e=null;return t=>{"start"===t.action&&(e=this._intersector.getScreenPointIntersection(t.screenStart));const n=this._intersector.getScreenPointIntersection(t.screenEnd);return null==e?.mapPoint||null==n?.mapPoint?null:{...t,intersection:n,mapStart:v(e.mapPoint),mapEnd:v(n.mapPoint)}}}_updateIntersectionFromSnappedPoint(){return e=>(e.intersection=this._resolveIntersection(e.intersection,e.mapEnd),e)}_updateObserverDragStep(){return e=>(this.analysis.observer??=new t,this._updateFromIntersection(this.analysis.observer,e.intersection,e.mapEnd),e)}_cancelObserverDragStep(){const e=null!=this.analysis.observer?.position?this.analysis.observer.clone():null;return t=>(this.analysis.observer=e,t)}_updateTargetDragStep(e){return t=>(this._updateFromIntersection(e.metadata.target,t.intersection,t.mapEnd),e.elevationAlignedLocation=t.mapEnd,t)}_manipulatorGrabChanged(e,t){switch(t.action){case"start":this._grabbedManipulator=e;break;case"end":this._grabbedManipulator===e&&(this._grabbedManipulator=null)}}_laserLineRendererDependencies(){return{laserlineVisualElement:this._laserlineVisualElement,grabbedManipulator:this._grabbedManipulator,shouldRenderTracker:this._shouldRenderTracker,observerPosition:null!=this.analysis.observer?this.analysis.observer.position:null,visible:this.visible}}_updateLaserLineRenderer(e=this._laserLineRendererDependencies()){const{laserlineVisualElement:t,grabbedManipulator:n,shouldRenderTracker:i,observerPosition:a,visible:r}=e;if(null==t)return;const s=null!=n?n:i&&null!=a?this._targetTrackerManipulator:null;null!=s&&r?(t.visible=!0,t.heightManifoldTarget=s.renderLocation,s!==this._observerManipulator?t.lineVerticalPlaneSegment=_(this._observerManipulator.renderLocation,s.renderLocation,J):t.lineVerticalPlaneSegment=null):(t.visible=!1,t.heightManifoldTarget=null,t.lineVerticalPlaneSegment=null)}_createLaserLine(){this._removeLaserLine();const{glowWidth:e,innerWidth:t}=w;this._laserlineVisualElement=new I({view:this.view,attached:!0,visible:this.visible,style:{glowWidth:e,innerWidth:t},isDecoration:!0})}_removeLaserLine(){null!=this._laserlineVisualElement&&(this._laserlineVisualElement.destroy(),this._laserlineVisualElement=null)}_updateLaserLineStyle(e,t,n){const i=this._laserlineVisualElement;if(null==i)return;const a=i.style;i.style={...a,glowColor:e.toUnitRGB(),innerColor:t.toUnitRGB(),globalAlpha:n}}_onObserverLocationChange(e){null!=e?(this._observerManipulator.metadata.intersection=null,this._observerManipulator.available=!0,this._observerManipulator.elevationAlignedLocation=e):this._observerManipulator.available=!1}_onTargetLocationChange(e,t){null!=e?(t.elevationAlignedLocation=e,t!==this._targetTrackerManipulator&&(t.available=!0)):t.available=!1}_addPointFromClickEvent(e,i){const a=this._getPlacementLocation(e,i);if(null==a)return;const{intersection:r,point:s}=a;if(null!=this.analysis.observer?.position){this._clearCursorTracker();const e=new n;this._updateFromIntersection(e,r,s),this.analysis.targets.add(e)}else{const e=new t;this._updateFromIntersection(e,r,s),this.analysis.observer=e}}_clickHandler(e){this.active&&e.button!==H.Right&&(this._addPointFromClickEvent(z(e),e.pointerType),e.stopPropagation())}_doubleClickHandler(e){this.active&&e.button!==H.Right&&(this.stop(),e.stopPropagation())}_pointerMoveHandler(e){if(this.hasGrabbedManipulators)return;if(this._latestPointerMovePointerType=e.pointerType,this._updateLaserLineRenderer(),!this._showTracker)return void this._clearCursorTracker();const t=z(e),n=this._intersector.getScreenPointIntersection(t),i=n?.mapPoint;null!=n?.mapPoint&&null!=i?(this._trackerIntersection=n,this._trackerMapPoint=i,this._updateHoverSnapping(i,e.pointerType)):this._clearCursorTracker()}_getPlacementLocation(e,t){const n=this._intersector.getScreenPointIntersection(e);if(null==n?.mapPoint)return null;const i=n.mapPoint;if(!this._shouldUsePlacementSnapping(t))return{intersection:n,point:i};const a=n.mapPoint,r=this._trackerMapPoint?.equals(a)?this._snappingOperation.stagedPoint:null,s=m(r??this._snappingOperation.update({point:a},this._ensureSnappingManager(),this._getSnappingContext(t)));return{intersection:this._resolveIntersection(n,s),point:s}}_shouldUsePlacementSnapping(e){return"touch"!==e}_updateHoverSnapping(e,t){const n=this._getSnappingContext(t);this._updatingHandles.consumePromise(o(this._snappingOperation.snap({point:e},this._ensureSnappingManager(),n)))}_updateFromIntersection(e,t,n=t.mapPoint){if(null==n)return e.position=null,e.elevationInfo=null,void(e.feature=null);const i=!t.mapPoint?.equals(n);switch(t.context?.type){case"graphic":{const n=t.context.graphic,i=y(n);"on-the-ground"===i.mode&&(i.mode="relative-to-ground",i.offset=0),e.elevationInfo=new M(i),e.feature=n}break;case"gaussian-splat":return e.elevationInfo=null,e.feature=null,void(e.position=T(this.view,n,e.elevationInfo,t.normal));case"ground":e.elevationInfo=new M({mode:"on-the-ground"}),e.feature=null;break;default:e.elevationInfo=null,e.feature=null}i&&(e.elevationInfo=null);const a=n.clone();a.z=f(this.view,a,b,e.elevationInfo),e.position=a}_manipulatorClick(e,t){if("observer"===e.metadata.type||e.grabbing||e.dragging||t.button!==H.Right||this.analysis.targets.length<=1)return;const{target:n}=e.metadata;this.analysis.targets.remove(n),t.stopPropagation()}get testInfo(){}_resetSnappingState(){this._snappingManager?.doneSnapping(),this._snappingOperation.abort(),this._snappingOperation.stagedPoint=null}_resolveIntersection(e,t){return e.mapPoint?.equals(t)?e:this._intersector.getMapPointIntersection(t)??e}};function B(e){const t=e.position?.clone();return n=>(e.position=t,n)}function q(e,t){const{isValid:n,isTargetVisible:i}=t.computationResult;e.state=n?i?k.visible:k.occluded:k.undefined}function N(e){const{isValid:t,isTargetVisible:n}=e.computationResult;return{isValid:t,isTargetVisible:n}}e([c({constructOnly:!0})],W.prototype,"view",void 0),e([c({constructOnly:!0})],W.prototype,"analysis",void 0),e([c()],W.prototype,"_creationMode",void 0),e([c({readOnly:!0})],W.prototype,"state",null),e([c({readOnly:!0})],W.prototype,"cursor",null),e([c()],W.prototype,"removeIncompleteOnCancel",void 0),e([c({readOnly:!0})],W.prototype,"updating",null),e([c({constructOnly:!0})],W.prototype,"analysisViewData",void 0),e([c({readOnly:!0})],W.prototype,"_showTracker",null),e([c()],W.prototype,"_latestPointerMovePointerType",void 0),e([c()],W.prototype,"_shouldRenderTracker",null),e([c()],W.prototype,"_laserlineVisualElement",void 0),e([c()],W.prototype,"_grabbedManipulator",void 0),e([c()],W.prototype,"_trackerIntersection",void 0),e([c()],W.prototype,"_trackerMapPoint",void 0),e([c()],W.prototype,"_snappingManagerResult",void 0),W=e([h("esri.views.3d.analysis.LineOfSight.LineOfSightTool")],W);const J=g();export{W as LineOfSightTool};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import"../../../../core/has.js";import{onAbort as e}from"../../../../core/promiseUtils.js";import{watch as
|
|
2
|
+
import{__decorate as t}from"tslib";import"../../../../core/has.js";import{onAbort as e}from"../../../../core/promiseUtils.js";import{watch as i,syncAndInitial as s,on as o}from"../../../../core/reactiveUtils.js";import{property as a,subclass as n}from"../../../../core/accessorSupport/decorators.js";import{LineOfSightPlacementTool as l}from"./LineOfSightPlacementTool.js";import{LineOfSightRayIntersector as r}from"./LineOfSightRayIntersector.js";import{LineOfSightReshapeTool3D as h}from"./LineOfSightReshapeTool3D.js";import{ExclusiveOperationManager as c}from"../../../analysis/ExclusiveOperationManager.js";import{ViewEventPriorities as p}from"../../../input/InputManager.js";import{AnalysisToolBase as v}from"../../../interactive/AnalysisToolBase.js";import{deactivevateTool as d}from"../../../interactive/interactiveToolUtils.js";import{sketchKeys as y}from"../../../interactive/keybindings.js";const _={ready:"ready",created:"created"};let m=class extends v{constructor(t){super(t),this._operationManager=new c,this._syncingActiveTool=!1,this.analysisViewData=null,this.removeIncompleteOnCancel=!1,this._reshapeIntersector=new r({view:t.view}),this._reshapeTool=new h({analysis:t.analysis,analysisViewData:t.analysisViewData,intersector:this._reshapeIntersector,view:t.view}),this._placementTool=new l({...t,parent:this})}get active(){return this._reshapeTool.active||this._placementTool.active}get canRedo(){return this._activeUndoRedoComponent?.canRedo??!1}get canUndo(){return this._activeUndoRedoComponent?.canUndo??!1}get state(){return this._placementTool.active?this._placementTool.state:null!=this.analysis.observer?.position?_.created:_.ready}get cursor(){return this._placementTool.cursor}get updating(){return this._reshapeTool.updating||this._placementTool.updating}initialize(){this.view.tools.add(this._placementTool),this.addHandles([this.view.on("key-down",t=>this._onKeyDown(t),p.WIDGET),i(()=>({editable:this.editable,interactive:this.analysisViewData.interactive,placementActive:this._placementTool.active,valid:this.analysis.valid,visible:this.visible}),()=>this._syncActiveTool(),s),i(()=>this.state===_.created,t=>{t?this.finishToolCreation():this._set("created",!1)},s),i(()=>this.analysisViewData.visible,t=>{this.visible=t},s),i(()=>{const{analysis:t}=this,{observer:e,targets:i}=t;return{observer:e,observerPosition:e?.position,observerElevationInfo:e?.elevationInfo,observerFeature:e?.feature,targets:i.toArray().map(t=>[t,t.position,t.elevationInfo,t.feature])}},()=>this._syncItemsFromAnalysis(),s),i(()=>this.editable,t=>{this.analysisViewData.editable=t},s)])}destroy(){this._operationManager.destroy(),this._reshapeTool.stop(),this._placementTool.stop(),this.view.tools.remove(this._placementTool),this._reshapeTool.destroy(),this._placementTool.destroy(),this._reshapeIntersector.destroy()}place(t){return this.analysisViewData.interactive=!0,this._operationManager.start("place",async(t,a)=>{const n=this.analysis.clone();let l=!1,r=!1;const h=()=>{r||(r=!0,this.stop(),a.aborted||!this.analysis.valid||this.analysis.equals(n)?t.reject():t.resolve({}))};t.handles.push(e(a,()=>this.stop()),o(()=>this._placementTool,"cancel",()=>h()),i(()=>this._placementTool.active,t=>{t?l=!0:l&&h()},s)),this.resetCreated(),this.continue()},t)}activate(){this.view.focus(),this.analysisViewData.interactive=!0,this._syncActiveTool(),this.analysis.valid||this._placementTool.active||this.continue()}deactivate(){this.onDeactivate()}continue(){this.analysisViewData.interactive=!0,this._placementTool.continue()}stop(){this._placementTool.stop(),this._placementTool.placementElevationInfo=null,this._syncActiveTool()}redo(){this._activeUndoRedoComponent?.redo()}resetCreated(){this._placementTool.resetCreated()}undo(){this._activeUndoRedoComponent?.undo()}get testInfo(){}onEditableChange(){this.analysisViewData.editable=this.editable,this._reshapeTool.setEditableFlag(1,!0),this._reshapeTool.setEditableFlag(0,this.editable),this._placementTool.setEditableFlag(1,!0),this._placementTool.setEditableFlag(0,this.editable),this._syncActiveTool()}_hideReshapeTool(){this._reshapeTool.suspend(),this._reshapeTool.visible=!1}_onKeyDown(t){const e=t.key;e===y.undo&&this.canUndo?(t.stopPropagation(),this.undo()):e===y.redo&&this.canRedo&&(t.stopPropagation(),this.redo())}get _activeUndoRedoComponent(){return this.analysisViewData.interactive?this._placementTool.active||!this._canActivateReshapeTool?this._placementTool.active?this._placementTool:null:this._reshapeTool:null}get _canActivateReshapeTool(){return this.visible&&this.editable&&this.analysis.valid&&null!=this.analysis.observer?.position}_syncActiveTool(){if(!this._syncingActiveTool){this._syncingActiveTool=!0;try{const t=this.analysisViewData.interactive,e=this._canActivateReshapeTool;if(this._placementTool.visible=this.visible&&t,!t)return this._placementTool.stop(),this._hideReshapeTool(),this.analysisViewData.cursorTarget=null,void d(this.view,this);if(this._placementTool.active||!e)return this._hideReshapeTool(),void d(this.view,this);if(this._reshapeTool.visible=!0,this.analysisViewData.cursorTarget=null,!this._reshapeTool.active){const t=this.analysis.targets.at(-1);null!=t&&this._reshapeTool.applySelection({type:"target",target:t})}d(this.view,this)}finally{this._syncingActiveTool=!1}}}_syncItemsFromAnalysis(){this._syncActiveTool()}};t([a({constructOnly:!0})],m.prototype,"view",void 0),t([a({constructOnly:!0})],m.prototype,"analysis",void 0),t([a({constructOnly:!0})],m.prototype,"analysisViewData",void 0),t([a()],m.prototype,"active",null),t([a()],m.prototype,"canRedo",null),t([a()],m.prototype,"canUndo",null),t([a()],m.prototype,"state",null),t([a()],m.prototype,"cursor",null),t([a()],m.prototype,"updating",null),t([a()],m.prototype,"removeIncompleteOnCancel",void 0),t([a()],m.prototype,"_canActivateReshapeTool",null),m=t([n("esri.views.3d.analysis.LineOfSight.LineOfSightTool2")],m);export{m as LineOfSightTool2};
|