@arcgis/core 5.2.0-next.127 → 5.2.0-next.129
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/WebScene.js +1 -1
- package/applications/Components/imageryUtils.js +1 -1
- package/applications/SceneViewer/sceneViewerUtils.d.ts +14 -1
- package/applications/SceneViewer/sceneViewerUtils.js +1 -1
- package/applications/WebEditor/sketchUtils.js +1 -1
- package/arcade/batchExec.js +1 -1
- package/arcade/geometry/adapters/dehydrated.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/06da350b4ea25732f52b.js +1 -0
- package/assets/esri/core/workers/chunks/{67dcf9b873cb037b2647.js → 081c9ccaa5884c730a91.js} +1 -1
- package/assets/esri/core/workers/chunks/094102031cc77b20db74.js +1 -0
- package/assets/esri/core/workers/chunks/0b85c844af97b2fb0ba8.js +1 -0
- package/assets/esri/core/workers/chunks/{86d7a3ae672a51b75fcc.js → 0d44f793d3b0d33153ac.js} +1 -1
- package/assets/esri/core/workers/chunks/0de140199161fcd15a0c.js +1 -0
- package/assets/esri/core/workers/chunks/0deceece4b465f653f58.js +1 -0
- package/assets/esri/core/workers/chunks/111dc5653daa7f3e1001.js +1 -0
- package/assets/esri/core/workers/chunks/139e3da8ea081e21539e.js +1 -0
- package/assets/esri/core/workers/chunks/142bedebd37d747f84ba.js +1 -0
- package/assets/esri/core/workers/chunks/15dc28b4fa5b5110472b.js +1 -0
- package/assets/esri/core/workers/chunks/{dd02cc18ebebb90778c6.js → 17e2bfc7468c23e43bef.js} +1 -1
- package/assets/esri/core/workers/chunks/196d33f4d8e3a256ad94.js +1 -0
- package/assets/esri/core/workers/chunks/1a02c68de65a67ab6a67.js +1 -0
- package/assets/esri/core/workers/chunks/{4165eb86471ea3bbf364.js → 1aecf7106a21320e054e.js} +1 -1
- package/assets/esri/core/workers/chunks/1bc03b8065cbbbb06c87.js +1 -0
- package/assets/esri/core/workers/chunks/1beb32170d659bc43977.js +1 -0
- package/assets/esri/core/workers/chunks/20ee32fee219afbcfee3.js +1 -0
- package/assets/esri/core/workers/chunks/{9467744cb7d094a5067a.js → 21d2f5324db0b199060c.js} +1 -1
- package/assets/esri/core/workers/chunks/22abb9a74f6594f9db2a.js +1 -0
- package/assets/esri/core/workers/chunks/237795866c075880531b.js +1 -0
- package/assets/esri/core/workers/chunks/25e4da9c6837ab0fa585.js +1 -0
- package/assets/esri/core/workers/chunks/2a5fde737dc99627142e.js +1 -0
- package/assets/esri/core/workers/chunks/3412050ae63ff7dcaf36.js +1 -0
- package/assets/esri/core/workers/chunks/35316724c8d3cc39cf80.js +1 -0
- package/assets/esri/core/workers/chunks/354cc6cd2a56937f1747.js +1 -0
- package/assets/esri/core/workers/chunks/365ae479765ca9e47de4.js +1 -0
- package/assets/esri/core/workers/chunks/{8190fcb1dd10ad20feed.js → 36ef86701883a20dd6f6.js} +1 -1
- package/assets/esri/core/workers/chunks/3759e272a1d43534a190.js +1 -0
- package/assets/esri/core/workers/chunks/397ddcf0b8e858a17b70.js +1 -0
- package/assets/esri/core/workers/chunks/3a7a558e30b5cb81c801.js +1 -0
- package/assets/esri/core/workers/chunks/3c9405d310a1b08c901e.js +1 -0
- package/assets/esri/core/workers/chunks/{e10fe4c77b8dc4492092.js → 3ce53562926b05e71af5.js} +1 -1
- package/assets/esri/core/workers/chunks/3d174a84b785fc633a5a.js +1 -0
- package/assets/esri/core/workers/chunks/3d67fed3e53993c38b58.js +1 -0
- package/assets/esri/core/workers/chunks/42bdeeff55fb1a3f735f.js +1 -0
- package/assets/esri/core/workers/chunks/48f1532520b76fa7f0c2.js +1 -0
- package/assets/esri/core/workers/chunks/{00d9e41deecf5828975c.js → 4adc3822ed9f498f5653.js} +1 -1
- package/assets/esri/core/workers/chunks/{d5f0fed415b5b155d57c.js → 51741ef8225d470716fe.js} +1 -1
- package/assets/esri/core/workers/chunks/5191e481d0e19a7f3888.js +1 -0
- package/assets/esri/core/workers/chunks/{7fcee3a1b900ddc9a5e3.js → 540acf6abdee9dbd453e.js} +1 -1
- package/assets/esri/core/workers/chunks/{d9b63cf111035b05cd2e.js → 5484b89adc53430226d5.js} +1 -1
- package/assets/esri/core/workers/chunks/55361b50ecfc98db2ffb.js +1 -0
- package/assets/esri/core/workers/chunks/58da7c41c1bcef2f4141.js +1 -0
- package/assets/esri/core/workers/chunks/5979bbefb09d132c008f.js +1 -0
- package/assets/esri/core/workers/chunks/{84db05e872dbf35c80a2.js → 5982c6a8459c1237b298.js} +1 -1
- package/assets/esri/core/workers/chunks/{0a20f84b5f004a77a9f9.js → 5abfc4f447b01d6bf287.js} +1 -1
- package/assets/esri/core/workers/chunks/{4c0dba437de0969a5b63.js → 5b9f88194433410bad5b.js} +1 -1
- package/assets/esri/core/workers/chunks/5f794f4e0113d5dd50ba.js +1 -0
- package/assets/esri/core/workers/chunks/62a30692e2a7612bafc1.js +1 -0
- package/assets/esri/core/workers/chunks/62aa7daad4ca7332854e.js +1 -0
- package/assets/esri/core/workers/chunks/66926c3686d5ef2d4692.js +29 -0
- package/assets/esri/core/workers/chunks/6994ba168465b77a36af.js +1 -0
- package/assets/esri/core/workers/chunks/6d0c6fda9100fe89f3cb.js +1 -0
- package/assets/esri/core/workers/chunks/72a898894438f177cd62.js +1 -0
- package/assets/esri/core/workers/chunks/78d4455237120103f639.js +1 -0
- package/assets/esri/core/workers/chunks/7fccf53aa751cd9dae57.js +1 -0
- package/assets/esri/core/workers/chunks/{26995de0c18bef8db590.js → 81327e10200065a0ccef.js} +1 -1
- package/assets/esri/core/workers/chunks/84a3fbe5d85a357f4e82.js +1 -0
- package/assets/esri/core/workers/chunks/862479729f2d036f606b.js +1 -0
- package/assets/esri/core/workers/chunks/89dad6c1bfd81e4d7f8e.js +1 -0
- package/assets/esri/core/workers/chunks/8a9aa6db11d0f643961c.js +1 -0
- package/assets/esri/core/workers/chunks/8dfea65341991e13ab71.js +1 -0
- package/assets/esri/core/workers/chunks/8e92925043dc49ed1018.js +1 -0
- package/assets/esri/core/workers/chunks/8f0b2b0ca239b01f44d0.js +1 -0
- package/assets/esri/core/workers/chunks/93a89168c18db88f60e7.js +1 -0
- package/assets/esri/core/workers/chunks/991c854a4459c82d4d93.js +1 -0
- package/assets/esri/core/workers/chunks/{f90cad9f007a11154c0d.js → 9b080d07699b56f06c5f.js} +1 -1
- package/assets/esri/core/workers/chunks/9cd69aa3880838a834f8.js +1 -0
- package/assets/esri/core/workers/chunks/{2ca49fb4590cc34a02bd.js → 9d87f38b16dda1ff7978.js} +1 -1
- package/assets/esri/core/workers/chunks/9fd1e5a2c0a261ed2a33.js +1 -0
- package/assets/esri/core/workers/chunks/a0a9c41400ae98df1912.js +1 -0
- package/assets/esri/core/workers/chunks/a189e520da39919cdcca.js +1 -0
- package/assets/esri/core/workers/chunks/a3a5cb664bdb1db190dd.js +1 -0
- package/assets/esri/core/workers/chunks/a63c456ecf018ec06778.js +1 -0
- package/assets/esri/core/workers/chunks/{842f993fa60b410cb613.js → a8322a978e33c7349fdf.js} +1 -1
- package/assets/esri/core/workers/chunks/{f479b4a4cee4bb2e046c.js → aa96eea0899757ab38c7.js} +1 -1
- package/assets/esri/core/workers/chunks/ab0b2a76247dfd56b92d.js +1 -0
- package/assets/esri/core/workers/chunks/ab7337b076d152a8eb9e.js +1 -0
- package/assets/esri/core/workers/chunks/ac0de274853a42d518a1.js +1 -0
- package/assets/esri/core/workers/chunks/ad372e399e20d5a3262d.js +1 -0
- package/assets/esri/core/workers/chunks/ae75b3e5320d03dff64c.js +1 -0
- package/assets/esri/core/workers/chunks/ae98530d5816306216b3.js +1 -0
- package/assets/esri/core/workers/chunks/afc94c4b9bc007fe310f.js +1 -0
- package/assets/esri/core/workers/chunks/afe54923339e957b71b9.js +1 -0
- package/assets/esri/core/workers/chunks/bbcac00362fef5e3956d.js +1 -0
- package/assets/esri/core/workers/chunks/{1302bf9718747cd9fdd9.js → bcee161dd1c4781d1998.js} +1 -1
- package/assets/esri/core/workers/chunks/{d1f54b0079fb71a15612.js → bd231bc0624eb889ac14.js} +1 -1
- package/assets/esri/core/workers/chunks/c0075715fbe7bec10fc3.js +1 -0
- package/assets/esri/core/workers/chunks/c4e1e864fb8c119b2520.js +1 -0
- package/assets/esri/core/workers/chunks/c93cedf9e53da5aaa35b.js +1 -0
- package/assets/esri/core/workers/chunks/{2d592c935571de80a2e2.js → c9690810b198a97bc16d.js} +1 -1
- package/assets/esri/core/workers/chunks/cada517cc25fa37f778c.js +1 -0
- package/assets/esri/core/workers/chunks/cd1821bf601949674e02.js +1 -0
- package/assets/esri/core/workers/chunks/{1b42d163ef22e3565bb7.js → cf7b7e54cd87422ca62a.js} +1 -1
- package/assets/esri/core/workers/chunks/d1187ad6cc4959683819.js +1 -0
- package/assets/esri/core/workers/chunks/d195c57fc6de3560653d.js +1 -0
- package/assets/esri/core/workers/chunks/d7f830a06ded11f2fc80.js +1 -0
- package/assets/esri/core/workers/chunks/d877783815afd21dbe98.js +1 -0
- package/assets/esri/core/workers/chunks/db5181fcea96cc2ede3e.js +1 -0
- package/assets/esri/core/workers/chunks/{6e8187a77846239ed112.js → de28a86775235bd5d3c4.js} +2 -2
- package/assets/esri/core/workers/chunks/df6992416cba9539f1ed.js +1 -0
- package/assets/esri/core/workers/chunks/e4005d95a396e1af9ac2.js +1 -0
- package/assets/esri/core/workers/chunks/{668ec0bdfb2095e90c9e.js → e495697860f7207da4c7.js} +1 -1
- package/assets/esri/core/workers/chunks/ec187933b42fe65594b7.js +1 -0
- package/assets/esri/core/workers/chunks/eec5a93dbc258a90b6de.js +1 -0
- package/assets/esri/core/workers/chunks/f163502c513205c892e7.js +1 -0
- package/assets/esri/core/workers/chunks/f287ec0fcb611f82ebb0.js +1 -0
- package/assets/esri/core/workers/chunks/{37ae52c71bf9c70fbb92.js → f2d45d15d0ba2537a4eb.js} +1 -1
- package/assets/esri/core/workers/chunks/{d507d7d7a7282fc38e8d.js → f652d1db26fbdea1a79b.js} +1 -1
- package/assets/esri/core/workers/chunks/f6b38ed75baae198c19b.js +1 -0
- package/assets/esri/core/workers/chunks/{168b45c5d8233f23793e.js → f6cfc901267a229de7a1.js} +2 -2
- package/assets/esri/core/workers/chunks/f6d04d14323b926f1025.js +1 -0
- package/assets/esri/core/workers/chunks/f7ab606be37373312ebe.js +1 -0
- package/assets/esri/core/workers/chunks/{3b7dff15a0058ea29886.js → f92178ac6dc9abff304f.js} +1 -1
- package/assets/esri/core/workers/chunks/fc39593febef74a036f1.js +1 -0
- package/assets/esri/libs/librust-parquet/pkg/parquet_bg.wasm +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-arabic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-georgian.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-thai.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-arabic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-georgian.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-thai.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-arabic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-georgian.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-thai.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/3ae1e25e-3aa6-4061-a016-a079159f9d65.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/41331c3c-3759-4462-8695-33c9a21b6a5b.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/94aa531e-7746-4df0-bb6e-349891f2eda5.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-arabic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-georgian.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-thai.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts.scss +0 -0
- package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +7 -0
- package/assets/esri/themes/base/widgets/_Tooltip.scss +5 -3
- 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/assets/esri/views/interactive/tooltip/t9n/messages.ar.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.bg.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.bs.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ca.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.cs.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.da.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.de.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.el.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.es.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.et.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.fi.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.fr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.he.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.hr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.hu.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.id.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.it.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ja.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ko.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.lt.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.lv.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.nl.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.no.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.pl.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ro.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ru.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.sk.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.sl.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.sr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.sv.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.th.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.tr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.uk.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.vi.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
- package/chunks/batchExec.js +2 -0
- package/config.js +1 -1
- package/core/units.js +1 -1
- package/geometry/HeightModelInfo.js +1 -1
- package/geometry/ellipsoidUtils.js +1 -1
- package/geometry/support/heightModelInfoUtils.js +1 -1
- package/geometry/support/intersects.js +1 -1
- package/geometry/support/intersectsBase.js +1 -1
- package/interfaces.d.ts +1 -0
- package/kernel.js +1 -1
- package/layers/ElevationLayer.js +1 -1
- package/layers/GeospatialPDFLayer.js +1 -1
- package/layers/ImageryTileLayer.js +1 -1
- package/layers/OrientedImageryLayer.js +1 -1
- package/layers/graphics/dehydratedFeatures.js +1 -1
- package/layers/graphics/hydrateGeometryJSON.js +2 -0
- package/layers/graphics/hydratedFeatures.js +1 -1
- package/layers/graphics/hydratedSpatialReference.js +2 -0
- package/layers/graphics/transferFeatures.js +2 -0
- package/layers/mixins/FeatureLayerBase.js +1 -1
- package/layers/mixins/HeightModelInfoMixin.js +2 -0
- package/layers/mixins/SceneService.js +1 -1
- package/layers/orientedImagery/core/ExposurePoint.js +1 -1
- package/layers/raster/datasets/DBFParser.js +1 -1
- package/layers/raster/datasets/ImageAuxRaster.js +1 -1
- package/layers/raster/datasets/RasterFactory.js +1 -1
- package/layers/raster/datasets/TIFFRaster.js +1 -1
- package/layers/raster/formats/JpgPlus.js +1 -1
- package/layers/raster/formats/RasterCodec.js +1 -1
- package/layers/raster/formats/Raw.js +1 -1
- package/layers/support/arcadeUtils.js +1 -1
- package/package.json +3 -3
- package/popup/FeatureContent.js +1 -1
- package/popup/FeatureContentCollection.d.ts +2 -0
- package/popup/FeatureContentCollection.js +1 -1
- package/popup/support/featureUtils.js +1 -1
- package/rest/imageService.js +1 -1
- package/rest/query/operations/pbfDehydratedFeatureSet.js +1 -1
- package/rest/query/operations/pbfFeatureServiceParser.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/loadArcade.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/views/2d/engine/vectorTiles/GeometryUtils.js +1 -1
- package/views/2d/engine/vectorTiles/TileManager.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileFeatureIndex.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/util.js +1 -1
- package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
- package/views/2d/layerViewModuleImportUtils.js +1 -1
- package/views/2d/layers/GeospatialPDFLayerView2D.js +1 -1
- package/views/2d/layers/VectorTileLayerView2D.js +1 -1
- package/views/2d/layers/features/schema/processor/MatcherSchema.js +1 -1
- package/views/2d/layers/graphics/GraphicStore.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
- package/views/2d/support/hitTestUtils.js +1 -1
- package/views/3d/camera/constraintUtils/surfaceCollision.js +1 -1
- package/views/3d/camera/intersectionUtils.js +1 -1
- package/views/3d/interactive/Manipulator3D.js +1 -1
- package/views/3d/layers/GeospatialPDFLayerView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/i3s/I3SClientMaterialUtil.js +1 -1
- package/views/3d/layers/support/featureReference.js +1 -1
- package/views/3d/navigation/modes/GroundNavigationMode3D.js +1 -1
- package/views/3d/state/Constraints.js +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +1 -1
- package/views/3d/support/PBFDecoder.js +1 -1
- package/views/3d/support/PBFDecoderWorker.js +1 -1
- package/views/3d/support/QualityProfile.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/webgl-engine/lib/TriangleIntersectionData.js +1 -1
- package/views/DOMContainer.d.ts +18 -8
- package/views/SceneView.js +1 -1
- package/views/ToolViewManager.js +1 -1
- package/views/VideoView.d.ts +38 -0
- package/views/VideoView.js +1 -1
- package/views/View.d.ts +20 -2
- package/views/View.js +1 -1
- package/views/input/types.d.ts +19 -6
- package/views/interactive/dragEventPipeline.js +1 -1
- package/views/interactive/options/TooltipVisibleElements.d.ts +11 -1
- package/views/interactive/options/TooltipVisibleElements.js +1 -1
- package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
- package/views/layers/ImageryTileLayerView.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/DynamicChoiceController.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/utils.js +1 -1
- package/widgets/Search/SearchViewModel.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/assets/esri/core/workers/chunks/025da54eef112d7e8f66.js +0 -1
- package/assets/esri/core/workers/chunks/02f94f9d704f03ddb5c6.js +0 -1
- package/assets/esri/core/workers/chunks/04d4cd66485b622403d0.js +0 -1
- package/assets/esri/core/workers/chunks/05afa8c2b5929ce0545a.js +0 -1
- package/assets/esri/core/workers/chunks/09676cfa99b90fe0cc63.js +0 -1
- package/assets/esri/core/workers/chunks/0a2b7c691a577cb3d189.js +0 -1
- package/assets/esri/core/workers/chunks/0aadee0437fa061e4ff5.js +0 -1
- package/assets/esri/core/workers/chunks/0ccd4200c5a2a5de6e16.js +0 -1
- package/assets/esri/core/workers/chunks/1262918b2161d79851c0.js +0 -1
- package/assets/esri/core/workers/chunks/1406a884241809b62bff.js +0 -1
- package/assets/esri/core/workers/chunks/1c33aa349beea9a3792f.js +0 -1
- package/assets/esri/core/workers/chunks/1f135269aea3931e11b2.js +0 -1
- package/assets/esri/core/workers/chunks/2146c25c01c9fc11b16c.js +0 -1
- package/assets/esri/core/workers/chunks/24014f3701c31ee74bc2.js +0 -1
- package/assets/esri/core/workers/chunks/25a2e02677a74834c8b5.js +0 -1
- package/assets/esri/core/workers/chunks/2afce71e8b6ae86e0792.js +0 -1
- package/assets/esri/core/workers/chunks/2c7bb5c9751524687002.js +0 -1
- package/assets/esri/core/workers/chunks/2c7fc24649d91552e68a.js +0 -1
- package/assets/esri/core/workers/chunks/2ebad7e588b26e74cefe.js +0 -1
- package/assets/esri/core/workers/chunks/319434415d2c0561bc59.js +0 -1
- package/assets/esri/core/workers/chunks/39d71e83261bff46f6bf.js +0 -1
- package/assets/esri/core/workers/chunks/3aceedec9abfb2fdfa18.js +0 -1
- package/assets/esri/core/workers/chunks/3c6ee445e49da0076ac1.js +0 -1
- package/assets/esri/core/workers/chunks/4327d2c39a660bd89da7.js +0 -1
- package/assets/esri/core/workers/chunks/462fd57af8ed7921d6ba.js +0 -1
- package/assets/esri/core/workers/chunks/4678a8170d8a3ccd1a7b.js +0 -1
- package/assets/esri/core/workers/chunks/474d9541d387b31ad275.js +0 -1
- package/assets/esri/core/workers/chunks/48a2f68e06a2e90b77d0.js +0 -1
- package/assets/esri/core/workers/chunks/4a73f73f1698fad2df20.js +0 -1
- package/assets/esri/core/workers/chunks/4f464047c6f6c9486efd.js +0 -1
- package/assets/esri/core/workers/chunks/50c29d10ec53f0e48e8a.js +0 -1
- package/assets/esri/core/workers/chunks/526cc64ae46dec3fbeda.js +0 -1
- package/assets/esri/core/workers/chunks/550d4df0732352fa48b5.js +0 -1
- package/assets/esri/core/workers/chunks/56e97b98dcb8a3f2bcb7.js +0 -1
- package/assets/esri/core/workers/chunks/581285e4d7bbe1b7c27a.js +0 -1
- package/assets/esri/core/workers/chunks/58fb92775d668cfd295c.js +0 -1
- package/assets/esri/core/workers/chunks/5adf2792416b22cd602f.js +0 -1
- package/assets/esri/core/workers/chunks/5aee7739afb5160d4ace.js +0 -1
- package/assets/esri/core/workers/chunks/6006bd8a5ed945fa2776.js +0 -1
- package/assets/esri/core/workers/chunks/64ee22134fda2f09c094.js +0 -1
- package/assets/esri/core/workers/chunks/66ef6c034455abd61f39.js +0 -1
- package/assets/esri/core/workers/chunks/67678054342178b601cf.js +0 -1
- package/assets/esri/core/workers/chunks/6c82cbcd504c711a7450.js +0 -1
- package/assets/esri/core/workers/chunks/6e75f09fb9452bd5f9fb.js +0 -1
- package/assets/esri/core/workers/chunks/7441d121f00ce747c08e.js +0 -1
- package/assets/esri/core/workers/chunks/75879ae88fd87b089a87.js +0 -1
- package/assets/esri/core/workers/chunks/76548469fe1b9c3b2051.js +0 -1
- package/assets/esri/core/workers/chunks/78085f804969c9282700.js +0 -1
- package/assets/esri/core/workers/chunks/7d6da4e89aa951e6523f.js +0 -1
- package/assets/esri/core/workers/chunks/80f16f5f15518013f7d0.js +0 -1
- package/assets/esri/core/workers/chunks/82ce034b5ba54de9b970.js +0 -29
- package/assets/esri/core/workers/chunks/8465e2c7221125fd3cc4.js +0 -1
- package/assets/esri/core/workers/chunks/87aaed3dfa903bdf853c.js +0 -1
- package/assets/esri/core/workers/chunks/892dc038d569cffd26dc.js +0 -1
- package/assets/esri/core/workers/chunks/8daed13400d9e63e65ae.js +0 -1
- package/assets/esri/core/workers/chunks/8f1c5f5e70d4b33d021d.js +0 -1
- package/assets/esri/core/workers/chunks/9020bd7a0e488d55ef14.js +0 -1
- package/assets/esri/core/workers/chunks/9d6a96e4c7ccedcb0c13.js +0 -1
- package/assets/esri/core/workers/chunks/9ec04faad97be55309b8.js +0 -1
- package/assets/esri/core/workers/chunks/a08385ebf1715414c1a6.js +0 -1
- package/assets/esri/core/workers/chunks/a3a33ffa34f4d645ddfe.js +0 -1
- package/assets/esri/core/workers/chunks/b396c4b4bb144200acc7.js +0 -1
- package/assets/esri/core/workers/chunks/b9c834e3c0701e9b14a2.js +0 -1
- package/assets/esri/core/workers/chunks/ba435cc73956d9c64a11.js +0 -1
- package/assets/esri/core/workers/chunks/bbfb80a6983574007ce5.js +0 -1
- package/assets/esri/core/workers/chunks/bcf2e5cf6b9c6d0442bb.js +0 -1
- package/assets/esri/core/workers/chunks/c35e9dee87937f483a3d.js +0 -1
- package/assets/esri/core/workers/chunks/c5b733c3a5b2680042a2.js +0 -1
- package/assets/esri/core/workers/chunks/c77496c350004ee66eb2.js +0 -1
- package/assets/esri/core/workers/chunks/cbeba973ef5593ffbba3.js +0 -1
- package/assets/esri/core/workers/chunks/ccaeabc3be07f3c96f50.js +0 -1
- package/assets/esri/core/workers/chunks/d25fb32a233d2128afbe.js +0 -1
- package/assets/esri/core/workers/chunks/d371d9279b30548efa02.js +0 -1
- package/assets/esri/core/workers/chunks/d5ef269ab0ee3744b05d.js +0 -1
- package/assets/esri/core/workers/chunks/dc92710a8fdfb9135e55.js +0 -1
- package/assets/esri/core/workers/chunks/dd4ecf81250cc001d040.js +0 -1
- package/assets/esri/core/workers/chunks/e0894a308c84d5c158b0.js +0 -1
- package/assets/esri/core/workers/chunks/e4016ae9cb8f16e3efc3.js +0 -1
- package/assets/esri/core/workers/chunks/e5ee64e2fb5bfcb716d8.js +0 -1
- package/assets/esri/core/workers/chunks/e6637f9176566382ed3e.js +0 -1
- package/assets/esri/core/workers/chunks/e6a4cef0af9be30ffe3d.js +0 -1
- package/assets/esri/core/workers/chunks/eaa7cb3ffa8c11706a09.js +0 -1
- package/assets/esri/core/workers/chunks/ed31ec586b754241474d.js +0 -1
- package/assets/esri/core/workers/chunks/ef6e52f9b656751eebaf.js +0 -1
- package/assets/esri/core/workers/chunks/f2fca9a3a40170996ea2.js +0 -1
- package/assets/esri/core/workers/chunks/f5d06cd6d30a5f742f73.js +0 -1
- package/assets/esri/core/workers/chunks/f71ec8a260405ed07958.js +0 -1
- package/assets/esri/core/workers/chunks/f91cab9904020cf25d50.js +0 -1
- package/assets/esri/core/workers/chunks/fb11ff3f2eae5f072560.js +0 -1
- package/assets/esri/core/workers/chunks/ff0e9f8d323eb1729650.js +0 -1
- /package/assets/esri/core/workers/chunks/{6e8187a77846239ed112.js.LICENSE.txt → de28a86775235bd5d3c4.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{168b45c5d8233f23793e.js.LICENSE.txt → f6cfc901267a229de7a1.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Logger.js";import{replace as t}from"../../core/string.js";import{getGraphicLayer as n}from"../../graphic/graphicOriginUtils.js";import{formatDate as r,convertDateFormatToIntlOptions as i}from"../../intl/date.js";import{convertNumberFieldFormatToIntlOptions as o,convertNumberFormatToIntlOptions as a,formatNumber as l}from"../../intl/number.js";import{typesHaveUniqueIdsAndNames as u}from"../../layers/support/featureLayerUtils.js";import{fieldFormatFromFieldInfo as s}from"../../layers/support/fieldFormatUtils.js";import{isRasterPixelValueField as f,featureHasFields as d,isTimeOnlyField as c}from"../../layers/support/fieldUtils.js";import{getFieldConfigurationsContainer as p,getEffectiveLayerCapabilities as y}from"../../layers/support/layerUtils.js";import{formatAnyDate as m,isAnyDateField as g}from"../../smartMapping/support/utils.js";import{loadArcade as I}from"../../support/loadArcade.js";import{getTimeZoneFormattingOptions as b}from"../../time/timeZoneUtils.js";const h="esri.popup.support.featureUtils",F=()=>e.getLogger(h),T=/href=(""|'')/gi,w=/(\{([^{\r\n]+)\})/g,N=/'/g,C=/^\s*expression\//i,j=/(\n)/gi,Z=/[\u00A0-\u9999<>&]/gim,v=/href\s*=\s*(?:"([^"]+)"|'([^']+)')/gi,L=/^(?:mailto:|tel:)/,U="relationships/",q=i("short-date-short-time");function x(e){if(null!=e)return(e.sourceLayer||e.layer)??void 0}async function A({type:e,value:t,event:n}){try{return"function"==typeof t?t(n):await t}catch(r){return void F().error("error",`An error occurred when calling the "${e}" function`,{error:r,graphic:n.graphic,value:t})}}function E(e=""){if(e)return!L.test(e.trim().toLowerCase())}function M(e){return!!e&&C.test(e)}function k(e,t){if(!t||!M(t)||!e)return;const n=t.replace(C,"").toLowerCase();return e.find(({name:e})=>e.toLowerCase()===n)}function R(e){const{fieldInfo:t,graphic:n,layer:r}=e;return $({fieldInfo:t,graphic:n})?p(r,{graphic:n}):null}function $({fieldInfo:e,graphic:t}){return!(!e?.fieldName||M(e.fieldName)||we(e.fieldName)||t?.popupTemplate)}function D({expressionInfos:e,fieldInfo:t,graphic:n,isContentFieldInfos:r,layer:i}){if(!t?.fieldName)return null;const o=k(e,t.fieldName);if(o)return o.title||null;const a=R({fieldInfo:t,graphic:n,layer:i});if(a){const e=a.getFieldAlias(t.fieldName);return r?t.label||e||t.fieldName:e||t.fieldName}return t.label||t.fieldName}function z(e){const{configurableFieldsContainer:t,fieldInfo:n,isContentFieldInfos:r}=e;if(!n?.fieldName)return null;const i=t.popupTemplate||t.fieldConfigurations?t.getFieldConfiguration(n.fieldName)?.fieldFormat:s(n,t.getField(n.fieldName));return r&&n.fieldFormat||i}function O(e,t){const n=t.get(e.toLowerCase());return`{${n?.fieldName||e}}`}function S(e){return e.replaceAll(T,"")}function G(e,t){const n=P(t,e);return n?n.name:e}function Q(e,t){return e&&e.map(e=>G(e,t))}function P(e,t){return e&&"function"==typeof e.getField&&t?e.getField(t)??null:null}function _(e){return`${e}`.trim()}function H({attributes:e,globalAttributes:t,layer:n,text:r,expressionAttributes:i,fieldInfoMap:o}){return r?W({formattedAttributes:t,template:X(r,{...t,...i,...e},n),fieldInfoMap:o}):""}function W({formattedAttributes:e,template:n,fieldInfoMap:r}){return _(S(t(t(n,e=>O(e,r)),e)))}function B(e,t,n=!1){const r=t[e];if("string"==typeof r){const i="%27",o=(n?encodeURIComponent(r):r).replaceAll(N,i);t[e]=o}}function J(e,t=!1){const n={...e};return Object.keys(n).forEach(e=>B(e,n,t)),n}function K(e,n,r){const i=(n=_(n))&&!n.startsWith("{");return t(e,J(r,i||!1))}function V(e,t){return e.replaceAll(w,(e,n,r)=>{const i=P(t,r);return i?`{${i.name}}`:n})}function X(e,t,n){const r=V(e,n);return r?r.replaceAll(v,(e,n,r)=>K(e,n||r,t)):r}function Y(e,t){const n="number"===t?.fieldFormat?.type||t?.format&&null==t.format.dateFormat&&(null!=t.format.places||null!=t.format.digitSeparator);if("string"==typeof e&&n){const t=Number(e);if(!isNaN(t))return t}return e}function ee(e){return null!=e&&"object"==typeof e&&"fieldsIndex"in e&&"geometryType"in e&&"getField"in e&&"load"in e&&"loaded"in e&&"objectIdField"in e&&"spatialReference"in e&&"type"in e&&("feature"===e.type||"scene"===e.type||"subtype-group"===e.type||"subtype-sublayer"===e.type||"sublayer"===e.type)&&"when"in e}function te(e){return null!=e&&"object"==typeof e&&"createQuery"in e&&"queryFeatureCount"in e&&"queryObjectIds"in e&&"queryRelatedFeatures"in e&&"queryRelatedFeaturesCount"in e&&"relationships"in e}function ne(e){return ee(e)&&te(e)}function re(e){return!(!(e&&"object"==typeof e&&"createQuery"in e&&"getField"in e&&"queryFeatureCount"in e&&"queryFeatures"in e&&"queryObjectIds"in e&&"capabilities"in e&&"fields"in e&&"fieldsIndex"in e&&"type"in e)||"feature"!==e.type&&"subtype-group"!==e.type&&"subtype-sublayer"!==e.type&&"sublayer"!==e.type||!("when"in e))&&("subtype-sublayer"===e.type&&"parent"in e&&e.parent&&"object"==typeof e.parent?"globalIdField"in e.parent:"globalIdField"in e)}function ie(e){if(!e||"object"!=typeof e)return!1;return ne(n(e))}function oe(e,t){const{fieldInfos:n,fieldName:r,graphic:i,isContentFieldInfos:u,layer:s,preventPlacesFormatting:d,timeZone:c}=t,p=ue(n,r),y=R({fieldInfo:p,graphic:i,layer:s}),g=P(y||s,r),I=y?null:p?.format,b=y?z({configurableFieldsContainer:y,fieldInfo:p,isContentFieldInfos:u}):null,h="number"===b?.type;if(p&&!f(r)){const t=g?.type,n="date-time"===b?.type,r=I?.dateFormat;if("date"===t||"date-only"===t||"time-only"===t||"timestamp-offset"===t||n||r)return m(e,{format:n?void 0:r,fieldFormat:n?b:void 0,fieldType:t,timeZoneOptions:{layerTimeZone:s&&"preferredTimeZone"in s?s.preferredTimeZone:null,viewTimeZone:c,datesInUnknownTimezone:!(!s||!("datesInUnknownTimezone"in s))&&!!s.datesInUnknownTimezone}})}if("string"==typeof e&&f(r)&&I)return ae(e,I);if("string"==typeof(e=Y(e,{format:h?void 0:I,fieldFormat:h?b:void 0}))||null==e||null==I&&null==b)return me(e);const F=h?o(b):I?a(I):void 0;return l(e,d?{...F,minimumFractionDigits:0,maximumFractionDigits:20}:F)}function ae(e,t){return e=e.trim(),/\d{2}-\d{2}/.test(e)?e:e.includes(",")?le(e,",",", ",t):e.includes(";")?le(e,";","; ",t):e.includes(" ")?le(e," "," ",t):l(Number(e),a(t))}function le(e,t,n,r){return e.trim().split(t).map(e=>l(Number(e),a(r))).join(n)}function ue(e,t){if(e?.length&&t)return e.find(e=>e.fieldName?.toLowerCase()===t.toLowerCase())}function se({fieldName:e,graphic:t,layer:n}){if(we(e))return null;if(!n||"function"!=typeof n.getFeatureType)return null;const{typeIdField:r}=n;if(!r||e!==r)return null;const i=n.getFeatureType(t);return i?i.name:null}function fe({fieldName:e,value:t,graphic:n,layer:r}){if(we(e))return null;if(!r||"function"!=typeof r.getFieldDomain)return null;const i=n&&r.getFieldDomain(e,{feature:n});return i&&"coded-value"===i.type?i.getName(t):null}function de(e,t,n,i){const{creatorField:o,creationDateField:a,editorField:l,editDateField:u}=e;if(!t)return;const s=b(i&&"preferredTimeZone"in i?i.preferredTimeZone:null,!(!i||!("datesInUnknownTimezone"in i))&&!!i.datesInUnknownTimezone,n,q,"date"),f={...q,...s},d=t[u];if("number"==typeof d){const e=t[l];return{type:"edit",date:r(d,f),user:e}}const c=t[a];if("number"==typeof c){const e=t[o];return{type:"create",date:r(c,f),user:e}}return null}function ce(e,t){const n=new Map;if(!e)return n;for(const r of e){if(!r.fieldName)continue;const e=G(r.fieldName,t);r.fieldName=e,n.set(e.toLowerCase(),r)}return n}function pe(e){const t=[];if(!e)return t;const{fieldInfos:n,content:r}=e;return n&&t.push(...n),r&&Array.isArray(r)?(r.forEach(e=>{if("fields"===e.type){const n=e?.fieldInfos;n&&t.push(...n)}}),t):t}function ye(e){return e.replaceAll(Z,e=>`&#${e.charCodeAt(0)};`)}function me(e){return"string"==typeof e?e.replaceAll(j,'<br class="esri-text-new-line" />'):e}function ge(e){const{fieldInfoMap:t,fieldInfos:n,fieldName:r,graphic:i,isContentFieldInfos:o,layer:a,timeZone:l,value:s}=e;if(null==s)return"";const f=fe({fieldName:r,value:s,graphic:i,layer:a});if(f)return f;const d=a?.types&&u(a.types)?se({fieldName:r,graphic:i,layer:a}):null;if(d)return d;if(t.get(r.toLowerCase()))return oe(s,{fieldInfos:n||Array.from(t.values()),fieldName:r,graphic:i,isContentFieldInfos:o,layer:a,timeZone:l});const p=a?.fieldsIndex?.get(r);return p&&(g(p)||c(p))?m(s,{fieldType:p.type,timeZoneOptions:{layerTimeZone:a&&"preferredTimeZone"in a?a.preferredTimeZone:null,viewTimeZone:l,datesInUnknownTimezone:!(!a||!("datesInUnknownTimezone"in a))&&!!a.datesInUnknownTimezone}}):me(s)}function Ie({attributes:e,fieldInfoMap:t,fieldInfos:n,graphic:r,isContentFieldInfos:i,layer:o,relatedInfos:a,timeZone:l}){const u={};return a?.forEach(e=>je({attributes:u,relatedInfo:e,fieldInfoMap:t,fieldInfos:n,layer:o,timeZone:l})),e&&Object.keys(e).forEach(a=>{const s=e[a];u[a]=ge({fieldInfoMap:t,fieldInfos:n,fieldName:a,graphic:r,isContentFieldInfos:i,layer:o,timeZone:l,value:s})}),u}async function be(e,t){const{layer:n,graphic:r,outFields:i,objectIds:o,returnGeometry:a,spatialReference:l}=e,u=o[0];if("number"!=typeof u&&"string"!=typeof u){const e="Could not query required fields for the specified feature. The feature's ID is invalid.",t={layer:n,graphic:r,objectId:u,requiredFields:i};return F().warn(e,t),null}if(!y(n)?.operations?.supportsQuery){const e="The specified layer cannot be queried. The following fields will not be available.",t={layer:n,graphic:r,requiredFields:i,returnGeometry:a};return F().warn(e,t),null}const s=n.createQuery();s.objectIds=o,s.outFields=i?.length?i:[n.objectIdField],s.returnGeometry=!!a,s.returnZ=!!a,s.returnM=!!a,s.outSpatialReference=l;return(await n.queryFeatures(s,t)).features[0]}async function he(e){if(!e.expressionInfos?.length)return!1;const t=await I(),{arcadeUtils:{hasGeometryFunctions:n}}=t;return n(e)}async function Fe(e){if(!e.expressionInfos?.length)return!1;const t=await I(),{arcadeUtils:{requiresTrack:n}}=t;return n(e)}async function Te({graphic:e,popupTemplate:t,layer:n,spatialReference:r},i){if(!n||!t)return;if("function"==typeof n.load&&await n.load(i),!e.attributes)return;const o=n.objectIdField,a=e.attributes[o];if(null==a)return;const l=[a],u=new Set(await t.getRequiredFields(n.fieldsIndex));null==n.timeInfo?.trackIdField||u.has(n.timeInfo.trackIdField)||await Fe(t)&&u.add(n.timeInfo.trackIdField);const s=d(e,u),f=s?[]:u.has(o)?[...u]:[...u,o],c=t.returnGeometry||await he(t);if(s&&!c)return;const p=await be({layer:n,graphic:e,outFields:f,objectIds:l,returnGeometry:c,spatialReference:r},i);p&&(p.geometry&&(e.geometry=p.geometry),p.attributes&&(e.attributes={...e.attributes,...p.attributes}))}function we(e=""){return!!e&&e.includes(U)}function Ne(e){return e?`${U}${e.layerId}/${e.fieldName}`:""}function Ce({attributes:e,graphic:t,relatedInfo:n,fieldInfos:r,fieldInfoMap:i,layer:o,timeZone:a}){e&&t&&n&&Object.keys(t.attributes).forEach(l=>{const u=Ne({layerId:n.relation.id.toString(),fieldName:l}),s=t.attributes[l];e[u]=ge({fieldName:u,fieldInfos:r,fieldInfoMap:i,layer:o,value:s,graphic:t,timeZone:a})})}function je({attributes:e,relatedInfo:t,fieldInfoMap:n,fieldInfos:r,layer:i,timeZone:o}){e&&t&&(t.relatedFeatures?.forEach(a=>Ce({attributes:e,graphic:a,relatedInfo:t,fieldInfoMap:n,fieldInfos:r,layer:i,timeZone:o})),t.relatedStatsFeatures?.forEach(a=>Ce({attributes:e,graphic:a,relatedInfo:t,fieldInfoMap:n,fieldInfos:r,layer:i,timeZone:o})))}const Ze=e=>{if(!e)return!1;const t=e.toUpperCase();return t.includes("CURRENT_TIMESTAMP")||t.includes("CURRENT_DATE")||t.includes("CURRENT_TIME")},ve=({layer:e,method:t,query:n,definitionExpression:r})=>{if(!e.capabilities?.query?.supportsCacheHint||"attachments"===t)return;const i=null!=n.where?n.where:null,o=null!=n.geometry?n.geometry:null;Ze(r)||Ze(i)||"extent"===o?.type||"tile"===n.resultType||(n.cacheHint=!0)},Le=({query:e,layer:t,method:n})=>{ve({layer:t,method:n,query:e,definitionExpression:`${t.definitionExpression} ${t.serviceDefinitionExpression??""}`})},Ue=({queryPayload:e,layer:t,method:n})=>{ve({layer:t,method:n,query:e,definitionExpression:`${t.definitionExpression} ${t.serviceDefinitionExpression??""}`})};function qe(e,t,n){return e&&t&&n?"sublayer"===t.type?Ee({layers:t.layer?.allSublayers,map:e,relatedLayer:t,relationship:n})||Ee({layers:t.layer?.subtables,map:e,relatedLayer:t,relationship:n}):Ee({layers:e.allLayers,map:e,relatedLayer:t,relationship:n})||Ee({layers:e.allTables,map:e,relatedLayer:t,relationship:n}):null}function xe(e,t){return e&&"utilityNetworks"in e&&t?e.utilityNetworks?.find(e=>e.isUtilityLayer(t)):null}function Ae(e,t){return e?.allTables.find(e=>"feature"===e.type&&e.layerId===t.id&&e.url===t.layer?.url)}function Ee({map:e,relationship:t,relationship:{relatedTableId:n},relatedLayer:r,layers:i}){if(!i)return null;for(const o of i){if("map-image"===o.type){const n=Ee({layers:o.sublayers,map:e,relatedLayer:r,relationship:t})||Ee({layers:o.subtables,map:e,relatedLayer:r,relationship:t});if(n)return n;continue}if(!ne(o))continue;if("sublayer"===r.type){if(o!==r&&o.id===n)return o.isTable?Ae(e,o):o;continue}const i="scene"===r.type&&r.associatedLayer?r.associatedLayer.url:r.url;if(!i)return null;if("sublayer"!==o.type){if(o!==r&&o.url===i&&o.layerId===n)return o}else if(o!==r&&o.layer?.url===i&&o.id===n)return o.isTable?Ae(e,o):o}return null}export{me as applyTextFormattingHTML,ce as createFieldInfoMap,qe as findRelatedLayer,xe as findUtilityNetwork,V as fixTokens,Ie as formatAttributes,de as formatEditInfo,oe as formatValueToFieldInfo,pe as getAllFieldInfos,R as getConfigurableFieldsContainer,z as getFieldFormat,ue as getFieldInfo,D as getFieldInfoLabel,G as getFixedFieldName,Q as getFixedFieldNames,x as getSourceLayer,A as graphicCallback,ye as htmlEntities,re as isAssociatedFeatureSupportedLayer,M as isExpressionField,ee as isFeatureSupportedLayer,ie as isGraphicForRelatableFeatureSupportedLayer,ne as isRelatableFeatureSupportedLayer,te as isRelatableLayer,we as isRelatedField,Le as preLayerQueryCallback,Ue as preRequestCallback,be as querySourceLayer,Te as queryUpdatedFeature,E as shouldOpenInNewTab,W as substituteAttributes,H as substituteFieldsInLinksAndAttributes};
|
|
2
|
+
import e from"../../core/Logger.js";import{replace as t}from"../../core/string.js";import{getGraphicLayer as n}from"../../graphic/graphicOriginUtils.js";import{formatDate as r,convertDateFormatToIntlOptions as i}from"../../intl/date.js";import{convertNumberFieldFormatToIntlOptions as o,convertNumberFormatToIntlOptions as a,formatNumber as l}from"../../intl/number.js";import{typesHaveUniqueIdsAndNames as u}from"../../layers/support/featureLayerUtils.js";import{fieldFormatFromFieldInfo as s}from"../../layers/support/fieldFormatUtils.js";import{isRasterPixelValueField as f,featureHasFields as d,isTimeOnlyField as c}from"../../layers/support/fieldUtils.js";import{getFieldConfigurationsContainer as p,getEffectiveLayerCapabilities as y}from"../../layers/support/layerUtils.js";import{formatAnyDate as m,isAnyDateField as g}from"../../smartMapping/support/utils.js";import{loadArcade as I}from"../../support/loadArcade.js";import{getTimeZoneFormattingOptions as b}from"../../time/timeZoneUtils.js";const h="esri.popup.support.featureUtils",F=()=>e.getLogger(h),w=/href=(""|'')/gi,T=/(\{([^{\r\n]+)\})/g,N=/'/g,C=/^\s*expression\//i,j=/(\n)/gi,v=/[\u00A0-\u9999<>&]/gim,Z=/href\s*=\s*(?:"([^"]+)"|'([^']+)')/gi,L=/^(?:mailto:|tel:)/,U="relationships/",q=i("short-date-short-time");function x(e){if(null!=e)return(e.sourceLayer||e.layer)??void 0}const A=new Set(["building","knowledge-graph","link-chart","map-image","map-notes","subtype-group","tile"]);function E(e){const t=e?.origin;return(null==t?void 0:A.has(t.type??"")?t.sublayer:t.layer)??e?.layer}async function k({type:e,value:t,event:n}){try{return"function"==typeof t?t(n):await t}catch(r){return void F().error("error",`An error occurred when calling the "${e}" function`,{error:r,graphic:n.graphic,value:t})}}function M(e=""){if(e)return!L.test(e.trim().toLowerCase())}function R(e){return!!e&&C.test(e)}function $(e,t){if(!t||!R(t)||!e)return;const n=t.replace(C,"").toLowerCase();return e.find(({name:e})=>e.toLowerCase()===n)}function D(e){const{fieldInfo:t,graphic:n,layer:r}=e;return z({fieldInfo:t,graphic:n})?p(r,{graphic:n}):null}function z({fieldInfo:e,graphic:t}){return!(!e?.fieldName||R(e.fieldName)||Ce(e.fieldName)||t?.popupTemplate)}function O({expressionInfos:e,fieldInfo:t,graphic:n,isContentFieldInfos:r,layer:i}){if(!t?.fieldName)return null;const o=$(e,t.fieldName);if(o)return o.title||null;const a=D({fieldInfo:t,graphic:n,layer:i});if(a){const e=a.getFieldAlias(t.fieldName);return r?t.label||e||t.fieldName:e||t.fieldName}return t.label||t.fieldName}function S(e){const{configurableFieldsContainer:t,fieldInfo:n,isContentFieldInfos:r}=e;if(!n?.fieldName)return null;const i=t.popupTemplate||t.fieldConfigurations?t.getFieldConfiguration(n.fieldName)?.fieldFormat:s(n,t.getField(n.fieldName));return r&&n.fieldFormat||i}function G(e,t){const n=t.get(e.toLowerCase());return`{${n?.fieldName||e}}`}function Q(e){return e.replaceAll(w,"")}function P(e,t){const n=H(t,e);return n?n.name:e}function _(e,t){return e&&e.map(e=>P(e,t))}function H(e,t){return e&&"function"==typeof e.getField&&t?e.getField(t)??null:null}function W(e){return`${e}`.trim()}function B({attributes:e,globalAttributes:t,layer:n,text:r,expressionAttributes:i,fieldInfoMap:o}){return r?J({formattedAttributes:t,template:ee(r,{...t,...i,...e},n),fieldInfoMap:o}):""}function J({formattedAttributes:e,template:n,fieldInfoMap:r}){return W(Q(t(t(n,e=>G(e,r)),e)))}function K(e,t,n=!1){const r=t[e];if("string"==typeof r){const i="%27",o=(n?encodeURIComponent(r):r).replaceAll(N,i);t[e]=o}}function V(e,t=!1){const n={...e};return Object.keys(n).forEach(e=>K(e,n,t)),n}function X(e,n,r){const i=(n=W(n))&&!n.startsWith("{");return t(e,V(r,i||!1))}function Y(e,t){return e.replaceAll(T,(e,n,r)=>{const i=H(t,r);return i?`{${i.name}}`:n})}function ee(e,t,n){const r=Y(e,n);return r?r.replaceAll(Z,(e,n,r)=>X(e,n||r,t)):r}function te(e,t){const n="number"===t?.fieldFormat?.type||t?.format&&null==t.format.dateFormat&&(null!=t.format.places||null!=t.format.digitSeparator);if("string"==typeof e&&n){const t=Number(e);if(!isNaN(t))return t}return e}function ne(e){return null!=e&&"object"==typeof e&&"fieldsIndex"in e&&"geometryType"in e&&"getField"in e&&"load"in e&&"loaded"in e&&"objectIdField"in e&&"spatialReference"in e&&"type"in e&&("feature"===e.type||"scene"===e.type||"subtype-group"===e.type||"subtype-sublayer"===e.type||"sublayer"===e.type)&&"when"in e}function re(e){return null!=e&&"object"==typeof e&&"createQuery"in e&&"queryFeatureCount"in e&&"queryObjectIds"in e&&"queryRelatedFeatures"in e&&"queryRelatedFeaturesCount"in e&&"relationships"in e}function ie(e){return ne(e)&&re(e)}function oe(e){return!(!(e&&"object"==typeof e&&"createQuery"in e&&"getField"in e&&"queryFeatureCount"in e&&"queryFeatures"in e&&"queryObjectIds"in e&&"capabilities"in e&&"fields"in e&&"fieldsIndex"in e&&"type"in e)||"feature"!==e.type&&"subtype-group"!==e.type&&"subtype-sublayer"!==e.type&&"sublayer"!==e.type||!("when"in e))&&("subtype-sublayer"===e.type&&"parent"in e&&e.parent&&"object"==typeof e.parent?"globalIdField"in e.parent:"globalIdField"in e)}function ae(e){if(!e||"object"!=typeof e)return!1;return ie(n(e))}function le(e,t){const{fieldInfos:n,fieldName:r,graphic:i,isContentFieldInfos:u,layer:s,preventPlacesFormatting:d,timeZone:c}=t,p=fe(n,r),y=D({fieldInfo:p,graphic:i,layer:s}),g=H(y||s,r),I=y?null:p?.format,b=y?S({configurableFieldsContainer:y,fieldInfo:p,isContentFieldInfos:u}):null,h="number"===b?.type;if(p&&!f(r)){const t=g?.type,n="date-time"===b?.type,r=I?.dateFormat;if("date"===t||"date-only"===t||"time-only"===t||"timestamp-offset"===t||n||r)return m(e,{format:n?void 0:r,fieldFormat:n?b:void 0,fieldType:t,timeZoneOptions:{layerTimeZone:s&&"preferredTimeZone"in s?s.preferredTimeZone:null,viewTimeZone:c,datesInUnknownTimezone:!(!s||!("datesInUnknownTimezone"in s))&&!!s.datesInUnknownTimezone}})}if("string"==typeof e&&f(r)&&I)return ue(e,I);if("string"==typeof(e=te(e,{format:h?void 0:I,fieldFormat:h?b:void 0}))||null==e||null==I&&null==b)return Ie(e);const F=h?o(b):I?a(I):void 0;return l(e,d?{...F,minimumFractionDigits:0,maximumFractionDigits:20}:F)}function ue(e,t){return e=e.trim(),/\d{2}-\d{2}/.test(e)?e:e.includes(",")?se(e,",",", ",t):e.includes(";")?se(e,";","; ",t):e.includes(" ")?se(e," "," ",t):l(Number(e),a(t))}function se(e,t,n,r){return e.trim().split(t).map(e=>l(Number(e),a(r))).join(n)}function fe(e,t){if(e?.length&&t)return e.find(e=>e.fieldName?.toLowerCase()===t.toLowerCase())}function de({fieldName:e,graphic:t,layer:n}){if(Ce(e))return null;if(!n||"function"!=typeof n.getFeatureType)return null;const{typeIdField:r}=n;if(!r||e!==r)return null;const i=n.getFeatureType(t);return i?i.name:null}function ce({fieldName:e,value:t,graphic:n,layer:r}){if(Ce(e))return null;if(!r||"function"!=typeof r.getFieldDomain)return null;const i=n&&r.getFieldDomain(e,{feature:n});return i&&"coded-value"===i.type?i.getName(t):null}function pe(e,t,n,i){const{creatorField:o,creationDateField:a,editorField:l,editDateField:u}=e;if(!t)return;const s=b(i&&"preferredTimeZone"in i?i.preferredTimeZone:null,!(!i||!("datesInUnknownTimezone"in i))&&!!i.datesInUnknownTimezone,n,q,"date"),f={...q,...s},d=t[u];if("number"==typeof d){const e=t[l];return{type:"edit",date:r(d,f),user:e}}const c=t[a];if("number"==typeof c){const e=t[o];return{type:"create",date:r(c,f),user:e}}return null}function ye(e,t){const n=new Map;if(!e)return n;for(const r of e){if(!r.fieldName)continue;const e=P(r.fieldName,t);r.fieldName=e,n.set(e.toLowerCase(),r)}return n}function me(e){const t=[];if(!e)return t;const{fieldInfos:n,content:r}=e;return n&&t.push(...n),r&&Array.isArray(r)?(r.forEach(e=>{if("fields"===e.type){const n=e?.fieldInfos;n&&t.push(...n)}}),t):t}function ge(e){return e.replaceAll(v,e=>`&#${e.charCodeAt(0)};`)}function Ie(e){return"string"==typeof e?e.replaceAll(j,'<br class="esri-text-new-line" />'):e}function be(e){const{fieldInfoMap:t,fieldInfos:n,fieldName:r,graphic:i,isContentFieldInfos:o,layer:a,timeZone:l,value:s}=e;if(null==s)return"";const f=ce({fieldName:r,value:s,graphic:i,layer:a});if(f)return f;const d=a?.types&&u(a.types)?de({fieldName:r,graphic:i,layer:a}):null;if(d)return d;if(t.get(r.toLowerCase()))return le(s,{fieldInfos:n||Array.from(t.values()),fieldName:r,graphic:i,isContentFieldInfos:o,layer:a,timeZone:l});const p=a?.fieldsIndex?.get(r);return p&&(g(p)||c(p))?m(s,{fieldType:p.type,timeZoneOptions:{layerTimeZone:a&&"preferredTimeZone"in a?a.preferredTimeZone:null,viewTimeZone:l,datesInUnknownTimezone:!(!a||!("datesInUnknownTimezone"in a))&&!!a.datesInUnknownTimezone}}):Ie(s)}function he({attributes:e,fieldInfoMap:t,fieldInfos:n,graphic:r,isContentFieldInfos:i,layer:o,relatedInfos:a,timeZone:l}){const u={};return a?.forEach(e=>Ze({attributes:u,relatedInfo:e,fieldInfoMap:t,fieldInfos:n,layer:o,timeZone:l})),e&&Object.keys(e).forEach(a=>{const s=e[a];u[a]=be({fieldInfoMap:t,fieldInfos:n,fieldName:a,graphic:r,isContentFieldInfos:i,layer:o,timeZone:l,value:s})}),u}async function Fe(e,t){const{layer:n,graphic:r,outFields:i,objectIds:o,returnGeometry:a,spatialReference:l}=e,u=o[0];if("number"!=typeof u&&"string"!=typeof u){const e="Could not query required fields for the specified feature. The feature's ID is invalid.",t={layer:n,graphic:r,objectId:u,requiredFields:i};return F().warn(e,t),null}if(!y(n)?.operations?.supportsQuery){const e="The specified layer cannot be queried. The following fields will not be available.",t={layer:n,graphic:r,requiredFields:i,returnGeometry:a};return F().warn(e,t),null}const s=n.createQuery();s.objectIds=o,s.outFields=i?.length?i:[n.objectIdField],s.returnGeometry=!!a,s.returnZ=!!a,s.returnM=!!a,s.outSpatialReference=l;return(await n.queryFeatures(s,t)).features[0]}async function we(e){if(!e.expressionInfos?.length)return!1;const t=await I(),{arcadeUtils:{hasGeometryFunctions:n}}=t;return n(e)}async function Te(e){if(!e.expressionInfos?.length)return!1;const t=await I(),{arcadeUtils:{requiresTrack:n}}=t;return n(e)}async function Ne({graphic:e,popupTemplate:t,layer:n,spatialReference:r},i){if(!n||!t)return;if("function"==typeof n.load&&await n.load(i),!e.attributes)return;const o=n.objectIdField,a=e.attributes[o];if(null==a)return;const l=[a],u=new Set(await t.getRequiredFields(n.fieldsIndex));null==n.timeInfo?.trackIdField||u.has(n.timeInfo.trackIdField)||await Te(t)&&u.add(n.timeInfo.trackIdField);const s=d(e,u),f=s?[]:u.has(o)?[...u]:[...u,o],c=t.returnGeometry||await we(t);if(s&&!c)return;const p=await Fe({layer:n,graphic:e,outFields:f,objectIds:l,returnGeometry:c,spatialReference:r},i);p&&(p.geometry&&(e.geometry=p.geometry),p.attributes&&(e.attributes={...e.attributes,...p.attributes}))}function Ce(e=""){return!!e&&e.includes(U)}function je(e){return e?`${U}${e.layerId}/${e.fieldName}`:""}function ve({attributes:e,graphic:t,relatedInfo:n,fieldInfos:r,fieldInfoMap:i,layer:o,timeZone:a}){e&&t&&n&&Object.keys(t.attributes).forEach(l=>{const u=je({layerId:n.relation.id.toString(),fieldName:l}),s=t.attributes[l];e[u]=be({fieldName:u,fieldInfos:r,fieldInfoMap:i,layer:o,value:s,graphic:t,timeZone:a})})}function Ze({attributes:e,relatedInfo:t,fieldInfoMap:n,fieldInfos:r,layer:i,timeZone:o}){e&&t&&(t.relatedFeatures?.forEach(a=>ve({attributes:e,graphic:a,relatedInfo:t,fieldInfoMap:n,fieldInfos:r,layer:i,timeZone:o})),t.relatedStatsFeatures?.forEach(a=>ve({attributes:e,graphic:a,relatedInfo:t,fieldInfoMap:n,fieldInfos:r,layer:i,timeZone:o})))}const Le=e=>{if(!e)return!1;const t=e.toUpperCase();return t.includes("CURRENT_TIMESTAMP")||t.includes("CURRENT_DATE")||t.includes("CURRENT_TIME")},Ue=({layer:e,method:t,query:n,definitionExpression:r})=>{if(!e.capabilities?.query?.supportsCacheHint||"attachments"===t)return;const i=null!=n.where?n.where:null,o=null!=n.geometry?n.geometry:null;Le(r)||Le(i)||"extent"===o?.type||"tile"===n.resultType||(n.cacheHint=!0)},qe=({query:e,layer:t,method:n})=>{Ue({layer:t,method:n,query:e,definitionExpression:`${t.definitionExpression} ${t.serviceDefinitionExpression??""}`})},xe=({queryPayload:e,layer:t,method:n})=>{Ue({layer:t,method:n,query:e,definitionExpression:`${t.definitionExpression} ${t.serviceDefinitionExpression??""}`})};function Ae(e,t,n){return e&&t&&n?"sublayer"===t.type?Me({layers:t.layer?.allSublayers,map:e,relatedLayer:t,relationship:n})||Me({layers:t.layer?.subtables,map:e,relatedLayer:t,relationship:n}):Me({layers:e.allLayers,map:e,relatedLayer:t,relationship:n})||Me({layers:e.allTables,map:e,relatedLayer:t,relationship:n}):null}function Ee(e,t){return e&&"utilityNetworks"in e&&t?e.utilityNetworks?.find(e=>e.isUtilityLayer(t)):null}function ke(e,t){return e?.allTables.find(e=>"feature"===e.type&&e.layerId===t.id&&e.url===t.layer?.url)}function Me({map:e,relationship:t,relationship:{relatedTableId:n},relatedLayer:r,layers:i}){if(!i)return null;for(const o of i){if("map-image"===o.type){const n=Me({layers:o.sublayers,map:e,relatedLayer:r,relationship:t})||Me({layers:o.subtables,map:e,relatedLayer:r,relationship:t});if(n)return n;continue}if(!ie(o))continue;if("sublayer"===r.type){if(o!==r&&o.id===n)return o.isTable?ke(e,o):o;continue}const i="scene"===r.type&&r.associatedLayer?r.associatedLayer.url:r.url;if(!i)return null;if("sublayer"!==o.type){if(o!==r&&o.url===i&&o.layerId===n)return o}else if(o!==r&&o.layer?.url===i&&o.id===n)return o.isTable?ke(e,o):o}return null}export{Ie as applyTextFormattingHTML,ye as createFieldInfoMap,Ae as findRelatedLayer,Ee as findUtilityNetwork,Y as fixTokens,he as formatAttributes,pe as formatEditInfo,le as formatValueToFieldInfo,me as getAllFieldInfos,D as getConfigurableFieldsContainer,S as getFieldFormat,fe as getFieldInfo,O as getFieldInfoLabel,P as getFixedFieldName,_ as getFixedFieldNames,E as getPopupLayer,x as getSourceLayer,k as graphicCallback,ge as htmlEntities,oe as isAssociatedFeatureSupportedLayer,R as isExpressionField,ne as isFeatureSupportedLayer,ae as isGraphicForRelatableFeatureSupportedLayer,ie as isRelatableFeatureSupportedLayer,re as isRelatableLayer,Ce as isRelatedField,qe as preLayerQueryCallback,xe as preRequestCallback,Fe as querySourceLayer,Ne as queryUpdatedFeature,M as shouldOpenInNewTab,J as substituteAttributes,B as substituteFieldsInLinksAndAttributes};
|
package/rest/imageService.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import t from"../request.js";import{ensureClass as e}from"../core/accessorSupport/ensureType.js";import
|
|
2
|
+
import t from"../request.js";import{ensureClass as e}from"../core/accessorSupport/ensureType.js";import r from"../geometry/SpatialReference.js";import{fromJSON as o}from"../geometry/support/jsonUtils.js";import{normalizeCentralMeridian as a}from"../geometry/support/normalizeUtils.js";import{srToRESTValue as s}from"../geometry/support/spatialReferenceUtils.js";import{parseUrl as n,encode as m,asValidOptions as i}from"./utils.js";import p from"./support/FindImagesParameters.js";import u from"./support/FindImagesResult.js";import c from"./support/ImageAngleParameters.js";import f from"./support/ImageAngleResult.js";import l from"./support/ImageAreaParameters.js";import g from"./support/ImageAreaResult.js";import y from"./support/ImageBoundaryParameters.js";import j from"./support/ImageBoundaryResult.js";import d from"./support/ImageDistanceParameters.js";import S from"./support/ImageDistanceResult.js";import I from"./support/ImageGPSInfoParameters.js";import N from"./support/ImageGPSInfoResult.js";import R from"./support/ImageHeightParameters.js";import O from"./support/ImageHeightResult.js";import w from"./support/ImageHistogramParameters.js";import h from"./support/ImageIdentifyParameters.js";import J from"./support/ImageIdentifyResult.js";import P from"./support/ImagePixelLocationParameters.js";import q from"./support/ImagePixelLocationResult.js";import G from"./support/ImagePointParameters.js";import $ from"./support/ImagePointResult.js";import v from"./support/ImageSampleParameters.js";import b from"./support/ImageSampleResult.js";import C from"./support/ImageToMapMultirayParameters.js";import M from"./support/ImageToMapParameters.js";import F from"./support/ImageUrlParameters.js";import T from"./support/ImageUrlResult.js";import A from"./support/ImageVolumeParameters.js";import L from"./support/ImageVolumeResult.js";import U from"./support/MapToImageParameters.js";import x from"./support/MeasureAreaFromImageResult.js";import H from"./support/MeasureFromImageParameters.js";import V from"./support/MeasureLengthFromImageResult.js";function B(t){const e=t?.time;if(e&&(null!=e.start||null!=e.end)){const r=[];null!=e.start&&r.push(e.start),null==e.end||r.includes(e.end)||r.push(e.end),t.time=r.join(",")}}async function D(t,r,o){const s=e(w,r),p=n(t),u=s.geometry?[s.geometry]:[],c=await a(u),f=s.toJSON();B(f);const l=c?.[0];null!=l&&(f.geometry=st(l));const g=m({...p.query,f:"json",...f});return i(g,o)}async function k(r,o,a){const s=e(A,o).toJSON();s.geometries=JSON.stringify(s.geometries);const p=n(r),u=m({...p.query,f:"json",...s}),c=i(u,a),{data:f}=await t(`${p.path}/calculateVolume`,c);return L.fromJSON({volumes:f.results})}async function z(o,a,s){const p=e(c,a),u=p.toJSON();null!=u.angleName&&(u.angleName=u.angleName.join(",")),p?.point?.spatialReference?.imageCoordinateSystem&&(u.point.spatialReference=nt(p.point.spatialReference)),p?.spatialReference?.imageCoordinateSystem&&(u.spatialReference=mt(p.spatialReference));const l=n(o),g=m({...l.query,f:"json",...u}),y=i(g,s),{data:j}=await t(`${l.path}/computeAngles`,y);return j.spatialReference=j.spatialReference?null!=j.spatialReference.geodataXform?new r({wkid:0,imageCoordinateSystem:j.spatialReference}):r.fromJSON(j.spatialReference):null,"NaN"===j.north&&(j.north=null),"NaN"===j.up&&(j.up=null),new f(j)}async function E(r,o,a){const s=e(P,o),p=s.toJSON(),{geometries:u}=s;if(u)for(let t=0;t<u.length;t++)u[t].spatialReference?.imageCoordinateSystem&&(p.geometries.geometries[t].spatialReference=nt(u[t].spatialReference));const c=n(r),f=m({...c.query,f:"json",...p}),l=i(f,a),{data:g}=await t(`${c.path}/computePixelLocation`,l);return q.fromJSON(g)}async function X(e,r,o){const a=await D(e,r,o),s=n(e),{data:m}=await t(`${s.path}/computeStatisticsHistograms`,a),{statistics:i}=m;return i?.length&&i.forEach(t=>{t.avg=t.mean,t.stddev=t.standardDeviation;const e=t.covariances?.trim();e&&(t.covariances=e.split(",").map(Number))}),{statistics:i,histograms:m.histograms}}async function K(e,r,o){const a=await D(e,r,o),s=n(e),{data:m}=await t(`${s.path}/computeHistograms`,a);return{histograms:m.histograms}}async function Q(r,o,s){const p=e(v,o),u=p.toJSON();B(u),u.outFields?.length&&(u.outFields=u.outFields.join(","));const c=await a(p.geometry),f=c?.[0];null!=f&&(u.geometry=st(f));const l=n(r),g=m({...l.query,f:"json",...u}),y=i(g,s),{data:j}=await t(`${l.path}/getSamples`,y),d=j.samples.map(t=>{const e="NaN"===t.value||""===t.value?null:t.value.split(" ").map(t=>Number(t));return{...t,pixelValue:e}});return b.fromJSON({samples:d})}async function W(r,o,s){const p=e(h,o),u=n(r),c=p.geometry?[p.geometry]:[],f=await a(c),l=p.toJSON(),g=f?.[0];null!=g&&(l.geometry=JSON.stringify(st(g)));const y=m({...u.query,f:"json",...l}),j=i(y,s),d=await t(u.path+"/identify",j);return J.fromJSON(d.data)}async function Y(t,r,o){const a=e(R,r),s=await et(t,a,[a.fromGeometry,a.toGeometry],o);return O.fromJSON(s)}async function Z(t,r,o){const a=e(l,r),s=await et(t,a,[a.geometry],o);return g.fromJSON(s)}async function _(t,r,o){const a=e(G,r),s=await et(t,a,[a.geometry],o);return $.fromJSON(s)}async function tt(t,r,o){const a=e(d,r),s=await et(t,a,[a.fromGeometry,a.toGeometry],o);return S.fromJSON(s)}async function et(e,r,o,s){const p=n(e),u=await a(o),c=r.toJSON();null!=u[0]&&(c.fromGeometry=JSON.stringify(st(u[0]))),null!=u[1]&&(c.toGeometry=JSON.stringify(st(u[1])));const f=m({...p.query,f:"json",...c}),l=i(f,s),{data:g}=await t(p.path+"/measure",l);return g}async function rt(t,r,o){const a=e(H,r),s=await at(t,a,o);return V.fromJSON(s)}async function ot(t,r,o){const a=e(H,r),s=await at(t,a,o);return x.fromJSON(s)}async function at(r,o,a){o=e(H,o);const s=n(r),p=o.toJSON(),u=m({...s.query,f:"json",...p}),c=i(u,a),{data:f}=await t(s.path+"/measureFromImage",c);return f}function st(t){const e=t.toJSON();return t.spatialReference?.imageCoordinateSystem&&(e.spatialReference=nt(t.spatialReference)),e}function nt(t){const{imageCoordinateSystem:e}=t;if(e){const{id:t,referenceServiceName:r}=e;return null!=t?r?{icsid:t,icsns:r}:{icsid:t}:{ics:e}}return t.toJSON()}function mt(t,e){if(!t.imageCoordinateSystem)return s(t);const r=nt(t),{icsid:o,icsns:a}=r;return null==o||null!=a&&!e?.toLowerCase().includes("/"+a.toLowerCase()+"/")?JSON.stringify(r):`0:${o}`}async function it(r,o,a){const s=e(y,o),p=n(r),u=s.toJSON();s.outSpatialReference&&(u.outSR=mt(s.outSpatialReference));const c=m({...p.query,f:"json",...u}),f=i(c,a),{data:l}=await t(p.path+"/queryBoundary",f);return j.fromJSON(l)}async function pt(r,o,s){const p=e(I,o),u=p.toJSON();B(u),u.objectIds?.length&&(u.objectIds=u.objectIds.join(",")),u.geometry||u.objectIds||u.time||u.where||(u.where="1=1");const c=await a(p.geometry),f=c?.[0];null!=f&&(u.geometry=st(f));const l=f?.spatialReference??p.geometry?.spatialReference;l&&(u.inSR=mt(l));const g=n(r),y=m({...g.query,f:"json",...u}),j=i(y,s),{data:d}=await t(`${g.path}/queryGPSInfo`,j);return N.fromJSON(d)}async function ut(r,a,s){const p=e(M,a),u=p.toJSON();p.geometry.spatialReference.imageCoordinateSystem&&(u.geometry=st(p.geometry)),p.depthOffset&&p.adjust||delete u.options;const c=n(r),f=m({...c.query,f:"json",...u}),l=i(f,s),{data:g}=await t(`${c.path}/imageToMap`,l);return o(g)}async function ct(r,a,s){const p=e(C,a),u=p.toJSON();p.rasterIds?.length&&(u.rasterIds=p.rasterIds.join(","));const c=n(r),f=m({...c.query,f:"json",...u}),l=i(f,s),{data:g}=await t(`${c.path}/imageToMapMultiray`,l);return o(g)}async function ft(r,s,p){const u=e(U,s),c=u.toJSON(),f=await a(u.geometry),l=f?.[0];null!=l&&(c.geometry=st(l)),u.visibleOnly||delete c.options;const g=l?.spatialReference??u.geometry?.spatialReference;g&&(c.inSR=mt(g));const y=n(r),j=m({...y.query,f:"json",...c}),d=i(j,p),{data:S}=await t(`${y.path}/mapToImage`,d);return o(S)}async function lt(r,o,a){const s=e(F,o).toJSON(),p=n(r),u=m({...p.query,f:"json",...s}),c=i(u,a),{data:f}=await t(`${p.path}/getImageUrl`,c);return T.fromJSON(f)}async function gt(r,o,s){const c=e(p,o),f=c.toJSON(),l=await a([c.fromGeometry,c.toGeometry]);null!=l[0]&&(f.fromGeometry=st(l[0]),l[0].spatialReference&&(f.inSR=mt(l[0].spatialReference))),null!=l[1]&&(f.toGeometry=st(l[1])),c.objectIds?.length&&(f.objectIds=f.objectIds.join(","));const g=n(r),y=m({...g.query,f:"json",...f}),j=i(y,s),{data:d}=await t(`${g.path}/find`,j);return u.fromJSON(d)}export{k as calculateVolume,z as computeAngles,K as computeHistograms,E as computePixelSpaceLocations,X as computeStatisticsHistograms,gt as findImages,nt as getImageSpatialReferenceJSON,mt as getImageSpatialReferenceQueryParameter,lt as getImageUrl,Q as getSamples,W as identify,ut as imageToMap,ct as imageToMapMultiray,ft as mapToImage,Z as measureAreaAndPerimeter,ot as measureAreaFromImage,tt as measureDistanceAndAngle,Y as measureHeight,rt as measureLengthFromImage,_ as measurePointOrCentroid,it as queryBoundary,pt as queryGPSInfo};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{generateUID as t}from"../../../core/uid.js";import
|
|
2
|
+
import{generateUID as t}from"../../../core/uid.js";import{zScale as e}from"../../../geometry/support/zscale.js";import{DehydratedFeatureSetClass as s,DehydratedFeatureClass as i,removeLargeStringAttributes as r}from"../../../layers/graphics/dehydratedFeatures.js";import{makeVertexTransformer as n,makeAttributesClass as o}from"./pbfFeatureSetUtils.js";class a{constructor(t){this._options=t,this.featureSet=new s,this.usesShortGeometryTypes=!0,this.transferList=[],this.coordinates=[],this._queryGeometryType=null,this._queryGeometry=null,this._queryCoordinates=null,this.parseOnly=null,this.missingAttributes=[],this._transformInPlace=null,this._attributesClass=null,this._previousX=0,this._previousY=0,this._point=null,this._lengths=null,this._coords=null,this._coordinateIndex=0,this._partIndex=0,this._partEnd=0,this._vertex=[],this._i=0,this._finishVertex=null}queryGeometryType(){return this._queryGeometryType}queryGeometry(){return this._queryGeometry}queryCoordinates(){return this._queryCoordinates}idField(t){"string"==typeof t&&(this.featureSet.objectIdFieldName=t)}finish(){this._options.applyTransform&&(this.featureSet.transform=null)}_setVertexTransformer(){const{sourceSpatialReference:t}=this._options,{spatialReference:s,hasZ:i}=this.featureSet,r=i?e(t,s):1;this._transformInPlace??=n(this.featureSet,r)}feature(){this._attributesClass??=o(this.featureSet.fields?.map(t=>t.name)??[]),this.featureSet.features.push(new i(t(),null,new this._attributesClass)),this.coordinates.push(null),this._options.applyTransform&&this._setVertexTransformer()}finishFeature(){const{maxStringAttributeLength:t,maxStringAttributeFields:e}=this._options,{attributes:s}=this.featureSet.features.at(-1),i=s[this.featureSet.objectIdFieldName];r(s,e,t,t=>{null!=i&&this.missingAttributes.push({objectId:i,attribute:t})})}_createPoint(){const{hasZ:t,hasM:e}=this.featureSet,s={type:"point",x:0,y:0,spatialReference:null,hasZ:t,hasM:e};return t&&(s.z=0),e&&(s.m=0),s}centroid(t){const{hasZ:e,hasM:s}=this.featureSet,i={type:"point",x:0,y:0,spatialReference:null,hasZ:e,hasM:s};[i.x,i.y]=t,e&&(i.z=t[2]),s&&(i.m=t.at(-1)),this.featureSet.features.at(-1).centroid=i}geometry(t,e,s){this._previousX=this._previousY=0,this._lengths=s;let i,{hasZ:r,hasM:n}=this.featureSet;r??=!1,n??=!1,this._vertex=[0,0],r&&this._vertex.push(0),n&&this._vertex.push(0);let o=null;switch(e){case"esriGeometryPoint":this._point=this._createPoint(),i=this._point,this._finishVertex=r?n?a._finishVertexPointXYZM:a._finishVertexPointXYZ:n?a._finishVertexPointXYM:a._finishVertexPointXY;break;case"esriGeometryMultipoint":this._createPackedCoordinates(s),o={coords:this._coords,lengths:s.slice()},i={type:"multipoint",points:null,spatialReference:null,hasZ:r,hasM:n};break;case"esriGeometryPolyline":case"esriGeometryPolygon":this._createPackedCoordinates(s),o={coords:this._coords,lengths:s.slice()},i="esriGeometryPolygon"===e?{type:"polygon",rings:null,spatialReference:null,hasZ:r,hasM:n}:{type:"polyline",paths:null,spatialReference:null,hasZ:r,hasM:n}}1===t?(this._queryGeometry=i,this._queryCoordinates=o,this._queryGeometryType=e,this._options.applyTransform||this._setVertexTransformer()):(this.featureSet.features.at(-1).geometry=i,this.coordinates[this.coordinates.length-1]=o)}_createPackedCoordinates(t){const e=this._vertex.length;for(this._coords=new Float64Array(t.reduce((t,e)=>t+e,0)*e),this._coordinateIndex=this._partIndex=0,this._partEnd=(t[0]??0)*e;0===this._partEnd&&++this._partIndex<t.length;)this._partEnd+=t[this._partIndex]*e;this._finishVertex=a._finishVertexPacked,this.transferList.push(this._coords.buffer)}coord(t){const e=this._vertex;e[this._i++]=t,this._i<e.length||(this._i=0,this._transformInPlace&&(e[0]+=this._previousX,e[1]+=this._previousY,[this._previousX,this._previousY]=e,this._transformInPlace(e)),this._finishVertex(this))}static _finishVertexPointXY({_point:t,_vertex:e}){[t.x,t.y]=e}static _finishVertexPointXYZ({_point:t,_vertex:e}){[t.x,t.y,t.z]=e}static _finishVertexPointXYM({_point:t,_vertex:e}){[t.x,t.y,t.m]=e}static _finishVertexPointXYZM({_point:t,_vertex:e}){[t.x,t.y,t.z,t.m]=e}static _finishVertexPacked(t){const{_vertex:e,_coords:s,_lengths:i}=t;if(s.set(e,t._coordinateIndex),t._coordinateIndex+=e.length,t._coordinateIndex===t._partEnd)for(t._previousX=t._previousY=0;t._coordinateIndex===t._partEnd&&++t._partIndex<i.length;)t._partEnd+=i[t._partIndex]*e.length}}export{a as DehydratedFeatureSetParserContext};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import s from"../../../core/Error.js";import r from"../../../core/pbf.js";import{featureGeometryTypeKebabDictionary as n}from"../../../geometry/support/typeUtils.js";const a=["esriGeometryPoint","esriGeometryMultipoint","esriGeometryPolyline","esriGeometryPolygon"],o=["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeString","esriFieldTypeDate","esriFieldTypeOID","esriFieldTypeGeometry","esriFieldTypeBlob","esriFieldTypeRaster","esriFieldTypeGUID","esriFieldTypeGlobalID","esriFieldTypeXML","esriFieldTypeBigInteger","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"],i=["sqlTypeBigInt","sqlTypeBinary","sqlTypeBit","sqlTypeChar","sqlTypeDate","sqlTypeDecimal","sqlTypeDouble","sqlTypeFloat","sqlTypeGeometry","sqlTypeGUID","sqlTypeInteger","sqlTypeLongNVarchar","sqlTypeLongVarbinary","sqlTypeLongVarchar","sqlTypeNChar","sqlTypeNVarchar","sqlTypeOther","sqlTypeReal","sqlTypeSmallInt","sqlTypeSqlXml","sqlTypeTime","sqlTypeTimestamp","sqlTypeTimestamp2","sqlTypeTinyInt","sqlTypeVarbinary","sqlTypeVarchar"],c=["upperLeft","lowerLeft"];function l(e,t){const s=e.getEnum();return s<t.length?t[s]:void 0}function u(e,t){e.featureSet.geometryType=e.usesShortGeometryTypes?n.fromJSON(t):t}function g(e,t=e.featureSet.geometryType){return e.usesShortGeometryTypes?n.toJSON(t):t}function p(e){const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:return t.getString();case 2:return t.getFloat();case 3:return t.getDouble();case 4:return t.getSInt32();case 5:return t.getUInt32();case 6:return t.getInt64();case 7:return t.getUInt64();case 8:return t.getSInt64();case 9:return t.getBool();default:return t.skip(),null}return null}function f(e){const t=e.asUnsafe(),s={type:o[0]};for(;t.next();)switch(t.tag()){case 1:s.name=t.getString();break;case 2:s.type=l(t,o);break;case 3:s.alias=t.getString();break;case 4:s.sqlType=l(t,i);break;case 5:default:t.skip();break;case 6:s.defaultValue=t.getString()}return s}function y(e){const t={},s=e.asUnsafe();for(;s.next();)switch(s.tag()){case 1:t.name=s.getString();break;case 2:t.isSystemMaintained=s.getBool();break;default:s.skip()}return t}let d=[];function h(e,t,s){let r=g(t),n=0;const o=e.asUnsafe();for(;o.next();)switch(o.tag()){case 1:1===s?r=
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import s from"../../../core/Error.js";import r from"../../../core/pbf.js";import{featureGeometryTypeKebabDictionary as n}from"../../../geometry/support/typeUtils.js";const a=["esriGeometryPoint","esriGeometryMultipoint","esriGeometryPolyline","esriGeometryPolygon"],o=["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeString","esriFieldTypeDate","esriFieldTypeOID","esriFieldTypeGeometry","esriFieldTypeBlob","esriFieldTypeRaster","esriFieldTypeGUID","esriFieldTypeGlobalID","esriFieldTypeXML","esriFieldTypeBigInteger","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"],i=["sqlTypeBigInt","sqlTypeBinary","sqlTypeBit","sqlTypeChar","sqlTypeDate","sqlTypeDecimal","sqlTypeDouble","sqlTypeFloat","sqlTypeGeometry","sqlTypeGUID","sqlTypeInteger","sqlTypeLongNVarchar","sqlTypeLongVarbinary","sqlTypeLongVarchar","sqlTypeNChar","sqlTypeNVarchar","sqlTypeOther","sqlTypeReal","sqlTypeSmallInt","sqlTypeSqlXml","sqlTypeTime","sqlTypeTimestamp","sqlTypeTimestamp2","sqlTypeTinyInt","sqlTypeVarbinary","sqlTypeVarchar"],c=["upperLeft","lowerLeft"];function l(e,t){const s=e.getEnum();return s<t.length?t[s]:void 0}function u(e,t){e.featureSet.geometryType=e.usesShortGeometryTypes?n.fromJSON(t):t}function g(e,t=e.featureSet.geometryType){return e.usesShortGeometryTypes?n.toJSON(t):t}function p(e){const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:return t.getString();case 2:return t.getFloat();case 3:return t.getDouble();case 4:return t.getSInt32();case 5:return t.getUInt32();case 6:return t.getInt64();case 7:return t.getUInt64();case 8:return t.getSInt64();case 9:return t.getBool();default:return t.skip(),null}return null}function f(e){const t=e.asUnsafe(),s={type:o[0]};for(;t.next();)switch(t.tag()){case 1:s.name=t.getString();break;case 2:s.type=l(t,o);break;case 3:s.alias=t.getString();break;case 4:s.sqlType=l(t,i);break;case 5:default:t.skip();break;case 6:s.defaultValue=t.getString()}return s}function y(e){const t={},s=e.asUnsafe();for(;s.next();)switch(s.tag()){case 1:t.name=s.getString();break;case 2:t.isSystemMaintained=s.getBool();break;default:s.skip()}return t}let d=[];function h(e,t,s){let r=g(t),n=0;const o=e.asUnsafe();for(;o.next();)switch(o.tag()){case 1:1===s?r=l(o,a):o.skip();continue;case 2:for(const e=o.getPackedEnd();o.pos()<e;)d[n++]=o.getUInt32();continue;case 3:n>0?(d.length=n,null!=t.geometry(s,r,d)&&(d=[])):t.geometry(s,r,[]);for(const e=o.getPackedEnd();o.pos()<e;)t.coord(o.getSInt64());continue;default:o.skip()}}function m(e,t){const s=[],r=e.asUnsafe();for(;r.next();)if(3!==r.tag())r.skip();else for(const e=r.getPackedEnd();r.pos()<e;)s.push(r.getSInt64());t.centroid(s)}let k=[],b=[],T=[];function S(s,r){const n={stack:[],error:void 0,hasError:!1};try{let o=0;const i=d;let c=0;const l=s.asUnsafe(),u=e(n,l.clonePooled().asUnsafe(),!1);for(;l.next();)switch(l.tag()){case 2:for(const p=l.getPackedEnd();l.pos()<p;)i[o++]=l.getUInt32();continue;case 3:if(!("curvedGeometry"in r))throw new Error(`Tried to parse curved geometry in a ${r.constructor.name}, which doesn't support them.`);l.processMessageWithArgs(I,c++);continue;case 4:{const f=l.getUInt32(),y=l.pos()+f;if(0===c||0===o||0===f){l.move(y);continue}i.length=o,T.length=b.length=c,r.curvedGeometry(g(r),i,b,T);const{hasZ:h,hasM:m}=r.featureSet,S=[],q=[0,0];function w(){for(let e=0;e<q.length;++e)S[e]=q[e],q[e]=l.getSInt64()}h&&q.push(0),m&&q.push(0);const F=[0,0],D=[0,0],U=F,M=F;let x=0;for(let G=0;G<o;++G){w(),S.fill(0),r.startCurvedPart(q);for(const E=x+i[G];x<E;++x){const v=b[x],A=T[x];switch(v){case 0:for(let P=0;P<A;++P)w(),q[0]+=S[0],q[1]+=S[1],r.lineSegment(S,q);continue;case 1:for(let W=0;W<A;++W)w(),U[0]=l.getSInt64(),U[1]=l.getSInt64(),r.circularArcSegment(S,q,U);continue;case 2:for(let O=0;O<A;++O)w(),F[0]=l.getSInt64(),F[1]=l.getSInt64(),D[0]=l.getSInt64(),D[1]=l.getSInt64(),r.bezierSegment(S,q,F,D);continue;case 3:u.move(k[x]);if(u.getUInt32()<7*A)throw new Error("Not implemented: compressed full circle encoding");for(let B=0;B<A;++B){w(),M[0]=u.getDouble(),M[1]=u.getDouble();const N=u.getDouble(),V=u.getDouble(),L=u.getDouble(),C=u.getDouble(),R=u.getDouble();r.ellipticArcSegment(S,q,M,N,V,L,C,R)}continue}}r.finishCurvedPart(q)}continue}default:l.skip()}}catch(a){n.error=a,n.hasError=!0}finally{t(n)}}function I(e,t){const s=e.asUnsafe();let r=0,n=0,a=0;for(;s.next();)switch(s.tag()){case 1:r=s.getEnum();continue;case 2:n=s.getUInt32();continue;case 3:a=s.pos(),s.skip();continue;default:s.skip()}if(3===r&&0===a)throw new Error("An elliptic arc segment set did not include a parameters array");b[t]=r,T[t]=n,k[t]=a}function q(e,t){t.feature();const s=t.featureSet.features.at(-1);let r=0;const{fields:n}=t.featureSet;for(;e.next();)switch(e.tag()){case 1:if(null==n)throw new Error("A Feature had attributes but the FeatureResult didn't include any fields");s.attributes[n[r++].name]=e.processMessage(p);continue;case 2:e.processMessageWithArgs(h,t,0);continue;case 4:e.processMessageWithArgs(m,t);continue;case 7:e.processMessageWithArgs(S,t);continue;case 11:s.distance=e.getDouble();continue;default:e.skip();continue}t.finishFeature?.()}function w(e){const t=[1,1,1,1],s=e.asUnsafe();for(;s.next();)switch(s.tag()){case 1:t[0]=s.getDouble();break;case 2:t[1]=s.getDouble();break;case 4:t[2]=s.getDouble();break;case 3:t[3]=s.getDouble();break;default:s.skip()}return t}function F(e){const t=[0,0,0,0],s=e.asUnsafe();for(;s.next();)switch(s.tag()){case 1:t[0]=s.getDouble();break;case 2:t[1]=s.getDouble();break;case 4:t[2]=s.getDouble();break;case 3:t[3]=s.getDouble();break;default:s.skip()}return t}function D(e){const t={originPosition:c[0]},s=e.asUnsafe();for(;s.next();)switch(s.tag()){case 1:t.originPosition=l(s,c);break;case 2:t.scale=s.processMessage(w);break;case 3:t.translate=s.processMessage(F);break;default:s.skip()}return t}function U(e){const t={},s=e.asUnsafe();for(;s.next();)switch(s.tag()){case 1:t.shapeAreaFieldName=s.getString();break;case 2:t.shapeLengthFieldName=s.getString();break;case 3:t.units=s.getString();break;default:s.skip()}return t}function M(e){const t={};for(;e.next();)switch(e.tag()){case 1:t.wkid=e.getUInt32();break;case 5:t.wkt=e.getString();break;case 2:t.latestWkid=e.getUInt32();break;case 3:t.vcsWkid=e.getUInt32();break;case 4:t.latestVcsWkid=e.getUInt32();break;default:e.skip()}return t}function x(e,t){const s=e.asUnsafe();if(t.featureSet.features.length=0,"features"===t.parseOnly?.type){const e=t.parseOnly.indices.values();let r=0,n=e.next().value;for(;s.next();)15===s.tag()&&r++===n?(n=e.next().value,s.processMessageWithArgs(q,t)):s.skip();return}let r=!1;for("metadata"===t.parseOnly?.type&&(r=!0,t.parseOnly.featureCount=0),u(t,"esriGeometryPoint");s.next();)switch(s.tag()){case 1:t.idField(s.getString());continue;case 3:t.featureSet.globalIdFieldName=s.getString();continue;case 4:t.featureSet.geohashFieldName=s.getString();continue;case 5:t.featureSet.geometryProperties=s.processMessage(U);continue;case 7:u(t,l(s,a));continue;case 8:t.featureSet.spatialReference=s.processMessageWithArgs(M);continue;case 10:t.featureSet.hasZ=s.getBool();continue;case 11:t.featureSet.hasM=s.getBool();continue;case 12:t.featureSet.transform=s.processMessage(D);continue;case 9:t.featureSet.exceededTransferLimit=s.getBool();continue;case 13:t.featureSet.fields??=[],t.featureSet.fields.push(s.processMessage(f));continue;case 15:if(r){++t.parseOnly.featureCount,s.skip();continue}s.processMessageWithArgs(q,t);continue;case 2:t.idField(s.processMessage(y));continue;default:s.skip()}}function G(e,t,s){let r=-1;for(;e.next();)switch(e.tag()){case 4:r=e.pos(),e.skip();continue;case 1:e.processMessageWithArgs(x,t);continue;default:e.skip()}if(-1!==r){if(!t.queryGeometry()){const s=e.pos();e.move(r),e.processMessageWithArgs(h,t,1),e.move(s)}s.queryGeometryType=t.queryGeometryType(),s.queryGeometry=t.queryGeometry()}t.finish(),s.featureResult=t.featureSet}function E(n,a){const o={stack:[],error:void 0,hasError:!1};try{e(o,{[Symbol.dispose](){d=[],k=[],b=[],T=[]}},!1);try{const s={stack:[],error:void 0,hasError:!1};try{const t=e(s,r.constructPooled(new Uint8Array(n),new DataView(n)),!1);let o;for(;t.next();)if(2===t.tag())o={},t.processMessageWithArgs(G,a,o);else t.skip();return o}catch(i){s.error=i,s.hasError=!0}finally{t(s)}}catch(c){throw new s("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:c})}}catch(l){o.error=l,o.hasError=!0}finally{t(o)}}export{E as parseFeatureQuery,f as parseField,D as parseTransform};
|
package/support/arcadeUtils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{isPopupTemplate as e}from"../popupTemplateUtils.js";import{c as r,p as n,r as t,e as o,a,b as u,d as
|
|
2
|
+
import{isPopupTemplate as e}from"../popupTemplateUtils.js";import{c as r,p as n,r as t,e as o,a,b as u,d as l,l as c,f,s as p,g as m,h as d}from"../chunks/arcade.js";export{i as arcade}from"../chunks/arcade.js";import{ArcadeDate as y}from"../arcade/ArcadeDate.js";import{toSymbolId as v}from"../arcade/arcadeEnvironment.js";export{b as batchExec}from"../chunks/batchExec.js";import x from"../arcade/Dictionary.js";import{Feature as g}from"../arcade/Feature.js";export{s as languageUtils}from"../chunks/languageUtils.js";import{Pixel as h}from"../arcade/Pixel.js";import{Voxel as j}from"../arcade/Voxel.js";export{A as aiServices}from"../chunks/aiServices.js";import{clone as S}from"../core/lang.js";import{isLabelClass as w}from"../layers/support/labelUtils.js";import{isSizeVariable as E}from"../renderers/visualVariables/support/sizeVariableUtils.js";export{createArcadeGeometryFromAccessorGeometry}from"../arcade/geometry/adapters/accessor.js";export{createArcadeGeometryFromDehydratedGeometry}from"../arcade/geometry/adapters/dehydrated.js";const $={vars:{$feature:"any",$view:"any"}};function F(e){return e.replaceAll(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function I(e){if(!e)return null;try{return n(e)}catch(r){}return null}function _(e,n){const t="string"==typeof e?I(e):e;if(!t)return null;try{return n=n||S($),r(t,n)}catch(o){}return null}function D(e,r,n){return{vars:{$feature:null==e?new g:g.createFromGraphic(e,n),$view:r?.view},spatialReference:r?.sr,timeZone:n??null}}function M(e,r){null!=e.vars&&(e.vars.$feature=r)}function R(e,r){let n;try{n=u(e,r)}catch(t){n=null}return n}function k(e,r){let n;try{n=e?e(r):null}catch(t){n=null}return n}function z(e,r){try{return e?e(r):Promise.resolve(null)}catch(n){return Promise.resolve(null)}}const G=["$feature","$aggregatedFeatures","$voxel"].map(e=>v(e));function P(e,r){if(!e)return[];const n="string"==typeof e?I(e):e;if(!n)return[];const t=new Map;if(Array.isArray(r)||null==r)for(const a of G)t.set(a,r);else for(const[a,s]of r)t.set(v(a),s);const o=l(n).flatMap(({varId:e,memberNamePattern:r})=>{if(!t.has(e))return[];if(r.includes("*")){const n=t.get(e);if(null==n)return[];const o=new RegExp(`^${r.split(/\*+/).map(F).join(".*")}$`,"i");return n.filter(e=>o.test(e))}return r.toLowerCase()});return[...new Set(o.sort())]}function T(e){return t(e,"$view")}function U(e,r){return!!e&&t(e,r)}function J(e){if(!e||null==e.spatialReference&&(null==e.scale||null==e.viewingMode))return;let r,n;const{timeProperties:t,timeZone:o}=e;if(null!=t){const{currentStart:e,currentEnd:a}=t;null!=o?(r=null!=e?y.dateJSAndZoneToArcadeDate(e,o):null,n=null!=a?y.dateJSAndZoneToArcadeDate(a,o):null):(r=null!=e?y.dateJSToArcadeDate(e):null,n=null!=a?y.dateJSToArcadeDate(a):null)}return{view:e.viewingMode&&null!=e.scale?new x({__proto__:null,viewingMode:e.viewingMode,scale:e.scale,timeProperties:null!=r||null!=n?new x({__proto__:null,currentStart:r,currentEnd:n,startIncluded:!0,endIncluded:!0}):null}):null,sr:e.spatialReference}}function V({url:e,spatialReference:r,lrucache:n,interceptor:t}){const o=f();return o?o.createFeatureSetCollectionFromService(e,r,n,t):null}function Z({layer:e,spatialReference:r,outFields:n,returnGeometry:t,lrucache:o,interceptor:a}){if(null===e)return null;const s=f();return s?s.constructFeatureSet(e,r,n,t??!0,o,a):null}function C(e){if(null===e?.map)return null;const r=f();return r?r.createFeatureSetCollectionFromMap(e.map,e.spatialReference,e.lrucache,e.interceptor):null}function q(e,r,n=[]){return c(e,r,n)}function L(){return a()}function N(){return o()}function B(e){return"type"in e&&("class-breaks"===e.type||"dictionary"===e.type||"dot-density"===e.type||"pie-chart"===e.type||"simple"===e.type||"unique-value"===e.type)}function H(r,n){if(!r)return!1;if("string"==typeof r)return n(r);const t=r;if(B(t)){if("dot-density"===t.type){const e=t.attributes?.some(e=>n(e.valueExpression));if(e)return e}const e=t.visualVariables,r=!!e&&e.some(e=>{let r=n(e.valueExpression);return"size"===e.type&&(E(e.minSize)&&(r=r||n(e.minSize.valueExpression)),E(e.maxSize)&&(r=r||n(e.maxSize.valueExpression))),r});return!(!("valueExpression"in t)||!n(t.valueExpression))||r}if(w(t)){const e=t.labelExpressionInfo?.expression;return!(!e||!n(e))||!1}return!!e(t)&&(!!t.expressionInfos&&t.expressionInfos.some(e=>n(e.expression))||Array.isArray(t.content)&&t.content.some(e=>"expression"===e.type&&n(e.expressionInfo?.expression)))}function K(e){const r=I(e);return!!r&&m(r)}function O(e){return H(e,K)}function Q(e){if("renderer"in e&&e.renderer&&O(e.renderer))return!0;if("labelingInfo"in e&&e.labelingInfo)for(const r of e.labelingInfo)if(O(r))return!0;return!1}function W(e){const r=I(e);return!!r&&d(r)}function X(e){return H(e,W)}function Y(e){return H(e,e=>{const r=I(e);return!!r&&p(r)})}export{x as Dictionary,h as Pixel,j as Voxel,g as arcadeFeature,Z as convertFeatureLayerToFeatureSet,C as convertMapToFeatureSetCollection,V as convertServiceUrlToWorkspace,D as createExecContext,_ as createFunction,I as createSyntaxTree,T as dependsOnView,N as enableFeatureSetOperations,L as enableGeometryOperations,R as evalSyntaxTree,z as executeAsyncFunction,k as executeFunction,P as extractFieldNames,J as getViewInfo,O as hasGeometryFunctions,X as hasGeometryOperations,U as hasVariable,Q as layerHasGeometryFunctions,q as loadScriptDependencies,Y as requiresTrack,M as updateExecContext};
|
package/support/loadArcade.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
let
|
|
2
|
+
let e;function a(){return e||(e=import("./arcadeUtils.js").then(e=>({arcade:e.arcade,arcadeUtils:e,batchExec:e.batchExec,aiServices:e.aiServices,languageUtils:e.languageUtils,Dictionary:e.Dictionary,Feature:e.arcadeFeature,Voxel:e.Voxel,Pixel:e.Pixel}))),e}export{a as loadArcade};
|
package/support/revision.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
const
|
|
2
|
+
const a="20261001",b="1e243ab21916a32af200bd5b7569f8680f4d5a76";export{a as buildDate,b as revision};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{isRGB as e}from"../../core/colorUtils.js";import{getFontFamily as t}from"../../core/fontUtils.js";import"../../core/has.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{pt2px as o,px2pt as a}from"../../core/screenUtils.js";import{numericHash as s}from"../../core/string.js";import{isCurvedGeometry as l}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as n}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{checkForAnimations as m,globalRotation as c,getAnimationParams as p,handleAbsoluteAnchor as f,handleMarker as y,handleRelativeAnchor as d,getFrameTranslation as h,translate as u,getStaticParam as v,shouldUseAnimatedPath as g}from"./animationUtils.js";import{CIMSymbolInflatedSizeHelper as O,CIMSymbolHelper as S,forEachSymbolLayer as _}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as M}from"./constants.js";import{defaultCIMValues as C}from"./defaultCIMValues.js";import{fitVectorMarker as b}from"./fitVectorMarker.js";import{fromCIMFontStyle as k}from"./fromCIMFontStyle.js";import{OverrideHelper as z}from"./OverrideHelper.js";import{hasRichTextFormattingTags as x}from"./richTextUtils.js";import{getSDFInfo as P,getExtent as L,getSDFMetrics as I,getSDFDimensions as E}from"./SDFHelper.js";import{CIMSymbolUnits as V}from"./types.js";import{colorToArray as N,normalizeAlpha as R,getSize as T,isCIMMarkerStrokePlacement as w,hasStrokeLayer as G,getNumericValue as A,getMaxStrokeWidth as F,getTintColor as X,normalizePrimitiveOverrideProps as j,getDefaultCIMValue as Y,getEnum as W,getFillColor as D,getStrokeColor as U,fromCIMFontDecoration as H,getStrokeWidth as B,fromCIMVerticalAlignment as J,fromCIMHorizontalAlignment as q,getTextCasing as K,isValidCIMValue as Q,uncapitalize as Z}from"./utils.js";import{isSupportedCallout as $,getPointSymbolCalloutTransforms as ee,normalizePointSymbolCalloutScale as te,normalizeLeaderLineStyle as re,getPointSymbolCalloutFitProperties as ie,normalizeBalloonCalloutStyle as oe}from"./callouts/calloutAnalysisUtils.js";import{EffectHelper as ae}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as se,randomInsidePolygonTextureSize as le}from"../../views/2d/engine/webgl/definitions.js";const ne=()=>i.getLogger("esri.symbols.cim.cimAnalyzer");function me(e){const t=e.markerPlacement;return t&&t.angleToLine?1:0}class ce{constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,r,i){if(this._cimLayers=i??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(const t of this._primitiveOverrides){const r=t.valueExpressionInfo;if(r)this._setPoMap(t.primitiveName,t.propertyName,r);else if(null!=t.value){let r=t.value;t.propertyName.includes("Color")&&(e(r)&&(r=N(r)),r=R(r)),this._setPoMap(t.primitiveName,t.propertyName,r)}}}return this._analyzeSymbol(t.symbol,r),this._cimLayers}_reset(){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[]}_analyzeSymbol(e,t){switch(e?.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this._analyzeMultiLayerSymbol(e,t)}}_analyzeMultiLayerSymbol(e,t){const r=e?.symbolLayers;if(!r)return;for(let n=0;n<r.length;n++){const e=r[n];"CIMVectorMarker"===e.type&&(r[n]=b(e))}const i=e.effects;let o=0;const a=T(e)??0;"CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=1);const s=m(e);let l={transform:[0,0,0,1],fromColor:[1,1,1,1],toColor:[1,1,1,1],colorMix:[0,0,0,0],toOpacity:[1,1,1,1],opacityMix:[0,0,0,0],shift:[1,1,1,1],hasAnimations:s,hasShiftAnimation:!1,hasMotionAnimations:!1};if(l=c(l),l=p(this._poMap,e,l),"CIMPointSymbol"===e.type&&(this._analyzePointSymbolHalo(e,o,a,i,s),this._analyzeCallout(e,null,[],l,a,o,t)),_e(r,i))return this._analyzeCompositeOutlineFill(r,i,a);this._analyzeSymbolLayer(e,null,[],l,a,o,t)}_analyzeSymbolLayer(e,t,r,i,o,a,s){const l=e?.symbolLayers;if(!l)return;const n="CIMPolygonSymbol"===e.type,m=e.effects;let c=l.length;for(;c--;){const p=l[c];if(!p||!1===p.enable)continue;let f;m?.length&&(f=[...m]);const y=p.effects;y?.length&&(m?f.push(...y):f=[...y]);let d=t?[...t]:null;if(f){d??=[];for(const e of f){const t=z.findEffectOverrides(e,this._primitiveOverrides);t&&d.push(t)}}const h=[];z.findApplicableOverrides(p,this._primitiveOverrides,h);const u=this._cimLayers.length;switch(p.type){case"CIMSolidFill":this._analyzeSolidFill(p,d,i,G(l));break;case"CIMPictureFill":this._analyzePictureFill(p,d,i);break;case"CIMHatchFill":this._analyzeHatchFill(p,d,i);break;case"CIMGradientFill":this._analyzeGradientFill(p,d);break;case"CIMSolidStroke":this._analyzeSolidStroke(p,d,n,o,i);break;case"CIMPictureStroke":this._analyzePictureStroke(p,d,n,o,i);break;case"CIMGradientStroke":this._analyzeGradientStroke(p,d,n,o);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":{"CIMLineSymbol"!==e.type&&"CIMPolygonSymbol"!==e.type||(a=me(p));const t=[],l=p.primitiveName;l&&t.push(l);const m=n&&w(p.markerPlacement);this._analyzeMarker(p,d,null,t,a,o,s,r,i,!1,m);break}default:ne().error("Cannot analyze CIM layer",p.type)}if(d?.some(({effect:e})=>ve(e)))for(let e=u;e<this._cimLayers.length;e++)this._cimLayers[e].effectsChangeGeometryType=!0}}_analyzePointSymbolHalo(e,t,i,o,s){const{haloSymbol:l}=e,n=A(e.haloSize,0);if(n<=0||!l?.symbolLayers)return;const m=l.symbolLayers.filter(e=>!1!==e.enable),c=m[0];if(!c)return;const p=1===m.length&&"CIMSolidFill"===c.type;if(s)return void ne().warnOnce("CIM point symbol halos are not supported with symbol animations");const f=o?.map(e=>z.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e);if(f?.some(({effect:e})=>ve(e))){if(!p)return void ne().warnOnce("Complex CIM point symbol halos are not supported with geometry-changing effects");const t=e.symbolLayers?.filter(e=>!1!==e.enable)??[];if(!Oe(t,f))return void ne().warnOnce("CIM point symbol halos with geometry-changing effects currently require polygon-producing effects and solid fill or stroke layers");const r=F(t),o=this._getValueOrOverrideExpression(c.type,c.primitiveName,"Color",R(c.color));return void this._cimLayers.push({type:"outlineFill",name:c.name,colorLocked:!0,color:o,effects:f,effectsChangeGeometryType:!0,outlineColorLocked:!0,outlineColor:o,outlineWidth:2*n+r,cap:"Round",join:"Round",referenceWidth:i,pixelBufferSize:2*n+r,outlineEffects:f})}const y=e.symbolLayers?.filter(e=>!1!==e.enable)??[],d=1===y.length&&"CIMVectorMarker"===y[0].type?y[0]:null,h=new Set(d?this._primitiveOverrides.filter(e=>e.primitiveName===d.primitiveName&&["Rotation","OffsetX","OffsetY"].includes(e.propertyName)).map(e=>e.propertyName):[]),u=h.size>0?d:null,v=r(e);if(v.effects=void 0,v.angle=0,v.scaleX=1,u){const e=v.symbolLayers?.find(e=>"CIMVectorMarker"===e.type&&!1!==e.enable);e&&(h.has("Rotation")&&(e.rotation=0),h.has("OffsetX")&&(e.offsetX=0),h.has("OffsetY")&&(e.offsetY=0))}const g={...v,haloSize:0,haloSymbol:void 0},_=O.getPointSymbolHaloPadding(e,this._resourceManager),[M,C,b]=S.getTextureAnchor(g,this._resourceManager,se,_),k=a(b),x=[];z.findApplicableOverrides(v,this._primitiveOverrides,x);const L=u?x.filter(e=>e.primitiveName!==u.primitiveName||!["Rotation","OffsetX","OffsetY"].includes(e.propertyName)):x,I=u?[{offsetX:this._getValueOrOverrideExpression(u.type,u.primitiveName,"OffsetX",h.has("OffsetX")?A(u.offsetX):0),offsetY:this._getValueOrOverrideExpression(u.type,u.primitiveName,"OffsetY",h.has("OffsetY")?A(u.offsetY):0),rotation:this._getValueOrOverrideExpression(u.type,u.primitiveName,"Rotation",h.has("Rotation")?A(u.rotation):0),size:k,frameHeight:k,rotateClockWise:!!u.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:!1}]:[];this._cimLayers.push({type:"marker",spriteRasterizationParam:{type:"sprite-rasterization-param",resource:{type:"cim-point-symbol-halo",symbol:v,sdf:p&&null!=P(g)},overrides:L},colorLocked:!0,color:p?this._getValueOrOverrideExpression(c.type,c.primitiveName,"Color",R(c.color)):[255,255,255,1],effects:f??null,effectsChangeGeometryType:f?.some(({effect:e})=>ve(e)),scaleSymbolsProportionally:!1,alignment:t,anchorPoint:{x:M,y:C},isAbsoluteAnchorPoint:!1,size:k,scaleX:A(e.scaleX,1),rotation:A(e.angle,0),offsetX:0,offsetY:0,outlineColor:[0,0,0,0],outlineWidth:0,transform:{type:"cim-marker-transform-param",params:I},frameHeight:k,widthRatio:1,rotateClockwise:!0,referenceSize:i||k,sizeRatio:1,markerPlacement:null,isOutline:!1})}_analyzeSolidFill(e,t,r,i){const{primitiveName:o,type:a}=e,s=R(e.color),l=p(this._poMap,e,r);if(!i&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.effect.type)){const r=this._getValueOrOverrideExpression(a,o,"Color",s);return void this._cimLayers.push({type:"outlineFill",name:e.name,colorLocked:!!e.colorLocked,color:r,effects:t,outlineColor:r,outlineColorLocked:!!e.colorLocked,...M,outlineEffects:t})}this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,o,"Color",s),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:be(l)})}_analyzePictureFill(e,t,r){const{primitiveName:i,type:o}=e,a=X(e),s=A(e.height,C.CIMPictureFill.height);let l=A(e.scaleX,1);if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height),l/=r*(s/t)}const n={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(i,o)},m=p(this._poMap,e,r);this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:n,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,i,"TintColor",a),height:this._getValueOrOverrideExpression(o,i,"Height",s),scaleX:this._getValueOrOverrideExpression(o,i,"ScaleX",l),angle:this._getValueOrOverrideExpression(o,i,"Rotation",A(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",A(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",A(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:be(m)})}_analyzeHatchFill(e,t,r){const{primitiveName:i,type:o}=e,a=p(this._poMap,e,r),s=this._analyzeMaterialOverrides(i,["Rotation","OffsetX","OffsetY"]),l=j(s);let n=[255,255,255,1],m=!1;if(e.lineSymbol?.symbolLayers)for(const p of e.lineSymbol.symbolLayers){if("CIMSolidStroke"!==p.type)continue;const e=p.primitiveName??i;m||!e||p.colorLocked||null==this._poMap[e]?.Color&&null==this._poMap[e]?.StrokeColor||(n=R(p.color),n=this._maybeGetValueOrOverrideExpression(e,"StrokeColor")??this._getValueOrOverrideExpression(o,e,"Color",n),m=!0);const t=this._maybeGetValueOrOverrideExpression(e,"StrokeWidth");if(t){let r=null,i=null;"number"==typeof t?r=t:i=t.valueExpressionInfo;let a=l.find(e=>"strokeWidth"===e.propertyName);a?a.propertyName="width":(a={type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"width",valueExpressionInfo:i,value:r,defaultValue:Y(o,"width")},l.push(a))}}const c={type:"sprite-rasterization-param",resource:e,overrides:l};this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:c,colorLocked:!!e.colorLocked,effects:t,color:n,height:this._getValueOrOverrideExpression(o,i,"Separation",A(e.separation,C.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(o,i,"Rotation",A(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",A(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",A(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!m,animationParams:be(a)})}_analyzeGradientFill(e,t){const{angle:r,gradientMethod:i,gradientSize:o,gradientSizeUnits:a,gradientType:s,interval:l,primitiveName:n,type:m}=e,c=C.CIMGradientFill,p=e.colorRamp;this._cimLayers.push({type:"gradientFill",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(n,m)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(m,n,"GradientMethod",i??"Linear"),angle:this._getValueOrOverrideExpression(m,n,"Angle",A(r,c.angle)),gradientType:this._getValueOrOverrideExpression(m,n,"GradientType",s??c.gradientType),interval:this._getValueOrOverrideExpression(m,n,"Interval",A(l,"CIMFixedColorRamp"===p.type?p.colors.length:c.interval)),gradientSize:this._getValueOrOverrideExpression(m,n,"GradientSize",A(o,c.gradientSize)),gradientSizeUnits:"Absolute"===a?V.Absolute:"Relative"===a?V.Relative:c.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,r,i=[]){const o=e.find(e=>"CIMSolidFill"===e.type),a=e.find(e=>"CIMSolidStroke"===e.type);if(null==o||null==a)return;const s=[...i,...[...t??[],...o.effects??[]].map(e=>z.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e)],l=[...i,...[...t??[],...a.effects??[]].map(e=>z.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e)],n=A(a.width,C.CIMSolidStroke.width),m=W(a.capStyle,C.CIMSolidStroke.capstyle),c=W(a.joinStyle,C.CIMSolidStroke.joinstyle),p=a.miterLimit;this._cimLayers.push({type:"outlineFill",name:o.name,colorLocked:!!o.colorLocked,color:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Color",R(o.color)),effects:s,effectsChangeGeometryType:s.some(({effect:e})=>ve(e))||l.some(({effect:e})=>ve(e)),outlineColorLocked:!!a.colorLocked,outlineColor:this._getValueOrOverrideExpression(a.type,a.primitiveName,"Color",R(a.color)),outlineWidth:this._getValueOrOverrideExpression(a.type,a.primitiveName,"Width",n),cap:this._getValueOrOverrideExpression(a.type,a.primitiveName,"CapStyle",m),join:this._getValueOrOverrideExpression(a.type,a.primitiveName,"JoinStyle",c),miterLimit:p&&this._getValueOrOverrideExpression(a.type,a.primitiveName,"MiterLimit",p),referenceWidth:r,outlineEffects:l})}_analyzeSolidStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=R(e.color),n=A(e.width,C.CIMSolidStroke.width),m=W(e.capStyle,C.CIMSolidStroke.capstyle),c=W(e.joinStyle,C.CIMSolidStroke.joinstyle),f=e.miterLimit;let y,d,h,u,v=[];if(this._analyzePrimitiveOverrides(a,t,null,null)&&(v=this._getPrimitiveMaterialOverrides(a,s)),t&&Array.isArray(t)&&t.length>0){const e=t[t.length-1].effect;e&&"CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&(y=e.dashTemplate,d=e.scaleDash,h=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const g=void 0!==y?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:y,primitiveName:u},overrides:v}:null,O=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:g,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"Color",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:fe(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??y,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",h??0),scaleDash:d,sampleAlphaOnly:!0,animationParams:be(O)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=X(e),n=A(e.width,C.CIMPictureStroke.width),m=W(e.capStyle,C.CIMPictureStroke.capstyle),c=W(e.joinStyle,C.CIMPictureStroke.joinstyle),f=e.miterLimit,y={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},d=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:y,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"TintColor",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:fe(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:be(d)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:m,type:c}=e,p=C.CIMGradientStroke,f=A(e.width,p.width),y=W(e.capStyle,p.capstyle),d=W(e.joinStyle,p.joinstyle),h=e.miterLimit,u=e.colorRamp;this._cimLayers.push({type:"gradientStroke",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(m,c)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(c,m,"Width",f),cap:this._getValueOrOverrideExpression(c,m,"CapStyle",y),join:this._getValueOrOverrideExpression(c,m,"JoinStyle",d),miterLimit:h&&this._getValueOrOverrideExpression(c,m,"MiterLimit",h),referenceWidth:i,isOutline:r,gradientMethod:this._getValueOrOverrideExpression(c,m,"GradientMethod",o??p.gradientMethod),gradientType:this._getValueOrOverrideExpression(c,m,"GradientType",l??p.gradientType),interval:this._getValueOrOverrideExpression(c,m,"Interval",A(n,"CIMFixedColorRamp"===u.type?u.colors.length:p.interval)),gradientSize:this._getValueOrOverrideExpression(c,m,"GradientSize",A(a,p.gradientSize)),gradientSizeUnits:"Absolute"===s?V.Absolute:"Relative"===s?V.Relative:p.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,n,m=!1,c=!1){m||=!!e.colorLocked;let h=n;if(h=f(e,h),h=y(this._poMap,e,h),h=d(e,h),h=p(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,m,h))return;const u=A(e.size,C.CIMVectorMarker.size),v=A(e.rotation),g=A(e.offsetX),O=A(e.offsetY),{primitiveName:S,type:_}=e,M=this._getValueOrOverrideExpression(_,S,"Size",u),b=this._getValueOrOverrideExpression(_,S,"Rotation",v),k=this._getValueOrOverrideExpression(_,S,"OffsetX",g),z=this._getValueOrOverrideExpression(_,S,"OffsetY",O);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,M,b,k,z,l,h,m,c);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,M,b,k,z,l,h,s,m,c)}}_analyzeMarkerInsidePolygon(e,t,r,i){const{markerPlacement:o,type:s}=e;if(!o||"CIMMarkerPlacementInsidePolygon"!==o.type||i.hasMotionAnimations)return!1;if("CIMVectorMarker"===s||"CIMPictureMarker"===s){const r=e.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;const i=o.primitiveName;if(i&&this._analyzePrimitiveOverrides([i],t,null,null))return!1;if("CIMVectorMarker"===s){const{markerGraphics:t}=e;if(t)for(const e of t){const{symbol:t}=e;if("CIMPolygonSymbol"===t?.type&&t.symbolLayers){const{symbolLayers:e}=t;for(const t of e)if("CIMSolidStroke"===t.type)return!1}}}else{const{animatedSymbolProperties:t}=e;if(t)return!1}}const l=Math.abs(o.stepX),n=Math.abs(o.stepY);if(0===l||0===n)return!0;let m,c;if("Random"===o.gridType){const e=a(le),t=Math.max(Math.floor(e/l),1);m=n*Math.max(Math.floor(e/n),1);c=t*l/m}else o.shiftOddRows?(m=2*n,c=l/n*.5):(m=n,c=l/n);const p=X(e),f="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:{...e,effects:e.effects?.filter(e=>!ue(e))},overrides:[]};return this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:f,colorLocked:r,effects:t,color:p,height:m,scaleX:c,angle:o.gridAngle??0,offsetX:A(o.offsetX),offsetY:A(o.offsetY),applyRandomOffset:"Random"===o.gridType,sampleAlphaOnly:"CIMPictureMarker"!==e.type,hasUnresolvedReplacementColor:!0,animationParams:be(i)}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,m,c,p,f,y,d,h){const{animatedSymbolProperties:u,primitiveName:v,type:g}=e;let O=A(e.scaleX,1);const S=X(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const _=this._createGIFAnimatedSymbolPropertiesOverrideExpression(u),M=e.anchorPoint??{x:0,y:0};if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height);O/=r*(A(e.size)/t)}const C=[...o];let b;e.primitiveName&&C.push(e.primitiveName),u||_?b={type:"animated",url:e.url,urlHash:"H"+s(e.url),playAnimation:e.animatedSymbolProperties?.playAnimation,reverseAnimation:e.animatedSymbolProperties?.reverseAnimation,randomizeStartTime:e.animatedSymbolProperties?.randomizeStartTime,randomizeStartSeed:e.animatedSymbolProperties?.randomizeStartSeed,startTimeOffset:e.animatedSymbolProperties?.startTimeOffset,duration:e.animatedSymbolProperties?.duration,repeatType:e.animatedSymbolProperties?.repeatType,repeatDelay:e.animatedSymbolProperties?.repeatDelay}:(b=r(e),b.markerPlacement=null);const k={type:"sprite-rasterization-param",resource:b,overrides:this._getMaterialOverrides(C,g)};_&&k.overrides.push(..._.overrides);const z=n;this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:k,colorLocked:d,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:n,scaleX:this._getValueOrOverrideExpression(g,v,"ScaleX",O),rotation:m,offsetX:c,offsetY:p,transform:{type:"cim-marker-transform-param",params:f},color:this._getValueOrOverrideExpression(g,v,"TintColor",S),anchorPoint:{x:M.x,y:M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:1,isOutline:h,markerPlacement:i,animationParams:be(y),baseSize:z})}_analyzeVectorMarker(e,t,r,i,o,a,s,m,c,p,f,y,d,g,O){const S=e.markerGraphics;if(!S)return;const _=e.frame;let M=0;M=_?_.ymax-_.ymin:a;const C=!!e.scaleSymbolsProportionally;if(M){const t={offsetX:c,offsetY:p,rotation:m,size:s,frameHeight:M,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:C};f=[...f,t]}r||(r=this._createMarkerPlacementOverrideExpression(e.markerPlacement));for(const b of S)if(b){const s=b.symbol;if(!s)continue;const m=b.primitiveName;m&&i.push(m);let c,p=y;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&_){let t=0,r=0;const i=b.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(_.xmin+_.xmax),r+=i.y-.5*(_.ymin+_.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):_&&(t-=(_.xmax-_.xmin)*o.x,r-=(_.ymax-_.ymin)*o.y));const s={offsetX:t,offsetY:r,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:C};c=[...f,s]}"CIMPointSymbol"!==s.type&&"CIMTextSymbol"!==s.type||this._analyzeCallout(s,t,c??f,p,a,o,d);const S=l(b.geometry)?{...b,geometry:n(b.geometry,{maxDeviation:.01})}:b,k=S.geometry,[z,x]=h(k,_);switch(0===z&&0===x||(p=u(p,z,x)),s.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":d||he(s)?(p={...p,transform:{type:"AnimatedTransform",relativeTranslation:!1,absoluteScale:!0,selectGlobalRotation:!1,translation:v([0,0]),rotation:v(0),scale:v(M),parent:y.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,S,i,o,a,c??f,p,M,g,O)):this._analyzeMultiLayerGraphic(e,t,r,S,i,o,a,c??f,p,M,g,O);break;case"CIMTextSymbol":this._analyzeTextGraphic(t,r,S,i,o,a,c??f,g)}m&&i.pop()}}_analyzeCallout(e,t,r,i,o,a,s){const l=e.callout;if(!l||!$(l))return;const n=t??[],{leaderTolerance:m,leaderOffset:c}=l,p=500;switch(l.type){case"CIMSimpleLineCallout":{const{lineSymbol:e,autoSnap:t}=l,f={type:"CIMSimpleLineCallout",leaderTolerance:m,leaderOffset:c,autoSnap:t,inflateSize:p};this._analyzeSymbolLayer(e,[...n,{type:"cim-effect-param",effect:f,overrides:[]}],r,i,o,a,s);break}case"CIMBackgroundCallout":{const{accentBarSymbol:e,gap:t,backgroundSymbol:f,leaderLineSymbol:y,lineStyle:d,margin:h}=l,u=e=>({type:"CIMBackgroundCallout",leaderTolerance:m,leaderOffset:c,lineStyle:re(d),gap:t,margin:h,inflateSize:p,part:e}),v=[...n,{type:"cim-effect-param",effect:u("background"),overrides:[]}];y&&this._analyzeSymbolLayer(y,[...n,{type:"cim-effect-param",effect:u("leader"),overrides:[]}],r,i,o,a,s);const g=f.symbolLayers??[];Me(g)?this._analyzeCompositeOutlineFill(g,null,o,v):this._analyzeSymbolLayer(f,v,r,i,o,a,s),e&&this._analyzeSymbolLayer(e,[...n,{type:"cim-effect-param",effect:u("accent-bar"),overrides:[]}],r,i,o,a,s);break}case"CIMBalloonCallout":{const{balloonStyle:e,backgroundSymbol:t,fixedDartWidth:f,margin:y,useFixedDartWidth:d}=l,h={type:"CIMBalloonCallout",leaderTolerance:m,leaderOffset:c,margin:y,balloonStyle:oe(e),dartWidth:d?f:void 0,inflateSize:p,part:"background"},u=[...n,{type:"cim-effect-param",effect:h,overrides:[]}],v=t.symbolLayers??[];Me(v)?this._analyzeCompositeOutlineFill(v,null,o,u):this._analyzeSymbolLayer(t,u,r,i,o,a,s);break}case"CIMPointSymbolCallout":{const{backgroundScale:e,gap:t,leaderLineSymbol:f,lineStyle:y,pointSymbol:d}=l,h=te(e),u=ee(d,r),v=e=>({type:"CIMPointSymbolCallout",leaderTolerance:m,leaderOffset:c,backgroundScale:h,...ie(d,e),lineStyle:re(y),gap:t,inflateSize:p,part:e});f&&this._analyzeSymbolLayer(f,[...n,{type:"cim-effect-param",effect:v("leader"),overrides:[]}],r,i,o,a,s),this._analyzeSymbolLayer(d,[...n,{type:"cim-effect-param",effect:v("marker"),overrides:[]}],u,i,o,a,s||0!==h);break}case"CIMCompositeCallout":{const{backgroundSymbol:e,margin:t,shadowSymbol:f}=l,y={type:"CIMBalloonCallout",leaderTolerance:m,leaderOffset:c,margin:t,balloonStyle:1,inflateSize:p,part:"background"},d=[...n,{type:"cim-effect-param",effect:y,overrides:[]}],h=e=>{const t=e.symbolLayers??[];Me(t)?this._analyzeCompositeOutlineFill(t,null,o,d):this._analyzeSymbolLayer(e,d,r,i,o,a,s)};f&&h(f),h(e);break}}}_analyzeMultiLayerGraphic(e,t,r,i,o,a,s,l,n,m,c,p){const f=i.symbol,y=f.symbolLayers;if(y){if(!de(y)||g(n))return Se(y)?(_(f,e=>{e.colorLocked&&(c=!0)}),void this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,m,c,p)):void this._analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,m,c,p);this._analyzeCompositeMarkerGraphic(e,t,r,i,y,a,s,l,m,c,p)}}_analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,m,c,f){const y=i.symbol,d=y.symbolLayers;if(!d)return;const h=ae.applyEffects(y.effects,i.geometry);if(!h)return;let u=d.length;for(;u--;){const y=d[u];if(!y||!1===y.enable)continue;const v=y.primitiveName;switch(v&&o.push(v),y.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=ae.applyEffects(y.effects,h),d=L(o);if(!d)continue;const u="Relative"!==e.anchorPointUnits,g="CIMSolidStroke"===y.type?y.width:0,{frameSizeRatio:O,anchorX:S,anchorY:_,widthRatio:M,sdfPaddingRatio:b,sdfTextureSize:k}=I(d,e.frame,e.size,e.anchorPoint,u,g,e.scaleSymbolsProportionally),z="CIMSolidFill"===y.type,x={type:"sdf",geometry:o,sdfPaddingRatio:b,asFill:z,sdfTextureSize:k},{path:P}=y,V=z?R(D(y)):null==P?R(U(y)):[0,0,0,0],N=z?[0,0,0,0]:R(U(y));if(!z&&!g)break;const T=i.primitiveName;let w=null;z&&!y.colorLocked&&(w=this._maybeGetValueOrOverrideExpression(T,"FillColor"));let G=null;z||y.colorLocked||(G=this._maybeGetValueOrOverrideExpression(T,"StrokeColor"));const F=w??this._getValueOrOverrideExpression(y.type,v,"Color",V),X=G??this._getValueOrOverrideExpression(y.type,v,"Color",N),j=this._maybeGetValueOrOverrideExpression(T,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,v,"Width",g),Y=P?{type:"sprite-rasterization-param",resource:{type:"path",path:P,asFill:z},overrides:[]}:{type:"sprite-rasterization-param",resource:x,overrides:[]},W=p(this._poMap,y,n),H=A(e.size,C.CIMVectorMarker.size),B=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",H);this._cimLayers.push({type:"marker",name:y.name,groupName:e.name,spriteRasterizationParam:Y,colorLocked:!!y.colorLocked||!!c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:S,y:_},isAbsoluteAnchorPoint:u,size:m,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:m,widthRatio:M,rotateClockwise:!1,referenceSize:s,sizeRatio:O,color:F,outlineColor:X,outlineWidth:j,isOutline:f,markerPlacement:r,animationParams:be(W),isStroke:"CIMSolidFill"!==y.type,baseSize:B,...E(o,k,b)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(y.markerPlacement){ne().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(y,t,r,o,a,s,!1,l,n,c,f)}v&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const m=[];z.findApplicableOverrides(i,this._primitiveOverrides,m);const c=i.geometry;if(!("x"in c)||!("y"in c))return;const p=i.symbol,f=H(p),y=k(p.fontStyleName),d=t(p.fontFamilyName);p.font={family:d,decoration:f,...y};const h=A(p.height,C.CIMTextSymbol.height),u=A(p.angle),v=A(p.offsetX),g=A(p.offsetY),{haloSymbol:O}=p,S=A(p.haloSize,0);let _=[0,0,0,0];if(O?.symbolLayers?.length){const e=O.symbolLayers;for(const t of e)if(t.color){_=this._getValueOrOverrideExpression(p?.haloSymbol?.type??"CIMPolygonSymbol",t.primitiveName,"Color",R(t.color));break}}const M=i.primitiveName;let b=[0,0,0,1],P=[0,0,0,0],L=0,I=!1;if(p.symbol?.symbolLayers)for(const t of p.symbol.symbolLayers){const e=t.primitiveName;if("CIMSolidStroke"===t.type)P=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Color",R(t.color)),L=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Width",B(t)??0);else if("CIMSolidFill"===t.type){const r=R(t.color);I=I??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??M,"Color",r)}}let E=null,V=null,N=null,T=null,w=null;M&&(E=this._maybeGetValueOrOverrideExpression(M,"TextSize"),V=this._maybeGetValueOrOverrideExpression(M,"TextAngle"),N=this._maybeGetValueOrOverrideExpression(M,"TextOffsetX"),T=this._maybeGetValueOrOverrideExpression(M,"TextOffsetY"),I||(w=this._maybeGetValueOrOverrideExpression(M,"FillColor")));const G=w??b;let F=null,X=null,j=0;const Y="CIMBackgroundCallout"===p.callout?.type;if("CIMBackgroundCallout"===p.callout?.type){const e=p.callout;if(e.backgroundSymbol){const t=e.backgroundSymbol.symbolLayers;if(t)for(const e of t)"CIMSolidFill"===e.type?F=R(e.color):"CIMSolidStroke"===e.type&&(X=R(e.color),j=A(e.width,C.CIMSolidStroke.width))}}const W=this._getValueOrOverrideExpression(p.type,i.primitiveName,"TextString",i.textString??"");if(null==W)return;const{fontStyleName:D}=p,U=d+(D?"-"+D.toLowerCase():"-regular"),K=this._getMaterialOverrides(o,p.type);K.push(...this._getPrimitiveMaterialOverrides(i.primitiveName,p.type)),this._collectDictionaryTemplateOverrides(K,i);const Q={type:"text-rasterization-param",resource:{type:"text",textString:i.textString??"",font:p.font,symbol:p,primitiveName:i.primitiveName,supportsRichText:x(i.textString??"")||K.some(e=>"textString"===e.propertyName)},overrides:K};this._cimLayers.push({type:"text",lineWidth:p.lineWidth,textRasterizationParam:Q,colorLocked:!!n||!!I,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:U,decoration:f,haloSize:S,haloColor:_,weight:y.weight,style:y.style,size:E??h,angle:V??u,offsetX:N??v,offsetY:T??g,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:q(p.horizontalAlignment),verticalAlignment:J(p.verticalAlignment),text:W,color:G,outlineColor:P,outlineSize:L,backgroundColor:F,borderLineColor:X,borderLineWidth:j,useBackgroundCallout:Y,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=K(t.symbol);e.push({propertyName:"textString",defaultValue:"",valueExpressionInfo:{type:"dictionary-template",textCase:r,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,r,i,a,s,l,n,m,c,p,f){const y=pe(e,i),d=e.primitiveName,h=this._analyzeMaterialOverrides(d,["Rotation","OffsetX","OffsetY"]),u=j(h),[v,g,O]=S.getTextureAnchor(y,this._resourceManager,se),_=this._getMaterialOverrides(a,e.type).filter(e=>e.primitiveName!==d||!["rotation","offsetX","offsetY"].includes(e.propertyName));_.push(...u);const M={type:"sprite-rasterization-param",resource:{...y,avoidSDFRasterization:!0},overrides:_},b=A(e.size,C.CIMVectorMarker.size),k=this._getValueOrOverrideExpression(e.type,d,"Size",b);this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:M,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:v,y:g},isAbsoluteAnchorPoint:!1,size:c,rotation:0,offsetX:0,offsetY:0,transform:{type:"cim-marker-transform-param",params:n},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:c,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:O/o(e.size),isOutline:f,markerPlacement:r,animationParams:be(m),baseSize:k})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return z.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:Ce(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return z.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-gif-animation-params",animation:e,overrides:Ce(t)}}_analyzeCompositeMarkerGraphic(e,t,r,i,o,a,s,l,n,m,c){const p=i.geometry,f=o[0],y=o[1],d=L(p);if(!d)return;const h="Relative"!==e.anchorPointUnits,u=A(f.width,C.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:g,anchorY:O,widthRatio:S,sdfPaddingRatio:_,sdfTextureSize:M}=I(d,e.frame,e.size,e.anchorPoint,h,u,e.scaleSymbolsProportionally),{path:b}=y,k=y.primitiveName,z=f.primitiveName,x=i.primitiveName;let P=null;y.colorLocked||m||(P=this._maybeGetValueOrOverrideExpression(x,"FillColor"));const E=P??this._getValueOrOverrideExpression(y.type,k,"Color",R(y.color));let V=null;f.colorLocked||m||(V=this._maybeGetValueOrOverrideExpression(x,"StrokeColor"));const N=V??this._getValueOrOverrideExpression(f.type,z,"Color",R(f.color)),T=this._maybeGetValueOrOverrideExpression(x,"StrokeWidth")??this._getValueOrOverrideExpression(f.type,z,"Width",u),w={type:"sprite-rasterization-param",resource:b?{type:"path",path:b,asFill:!0}:{type:"sdf",geometry:p,sdfTextureSize:M,sdfPaddingRatio:_,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:w,colorLocked:m,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:g,y:O},isAbsoluteAnchorPoint:h,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:S,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:E,outlineColor:N,outlineWidth:T,isOutline:c,markerPlacement:r})}_setPoMap(e,t,r){let i;this._poMap[e]?i=this._poMap[e]:(i={},this._poMap[e]=i),i[t]=r}_maybeGetValueOrOverrideExpression(e,t,r){return this._getValueOrOverrideExpression("",e,t,r,!1)}_getValueOrOverrideExpression(e,t,r,i,o=!0){if(o&&!Q(i)&&(i=Y(e,r.toLowerCase())),null==t)return i;const a=this._poMap[t];if(null==a)return i;const s=a[r];return"string"==typeof s||"number"==typeof s||Array.isArray(s)?s:s?{valueExpressionInfo:s,defaultValue:i}:i}_analyzePrimitiveOverrides(e,t,r,i){if(null==e)return!1;"string"==typeof e&&(e=[e]);for(const o of this._primitiveOverrides)if(e.includes(o.primitiveName)&&o.valueExpressionInfo)return!0;if(null!=t)for(const o of t)if(o?.overrides.length>0)return!0;if(null!=r)for(const o of r)if(o?.overrides.length>0)return!0;if(null!=i)for(const o of i)if(o?.overrides.length>0)return!0;return!1}_getMaterialOverrides(e,t){if(!e)return[];const r=[];for(const i of e)r.push(...this._getPrimitiveMaterialOverrides(i,t));return r}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];const r=j(this._primitiveOverrides.filter(t=>t.primitiveName===e));return r.forEach(e=>e.defaultValue=Y(t,e.propertyName.toLowerCase())),r}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(r=>r.primitiveName!==e||!t.includes(r.propertyName))}}function pe(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[{...t}],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function fe(e){if(e?.startsWith("Level_")){const t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function ye(e,t){if(!t||0===t.length)return e;const i=r(e);return z.applyOverrides(i,t),i}const de=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&null==e[0].path&&null==e[1].path&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function he(e){const t=e.symbolLayers;if(!t)return!1;const r=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectDashes"===e.type&&null!=e.dashTemplate)),i=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectAddControlPoints"===e.type));return!!r||!!i}function ue(e){return ve(e)}function ve(e){return"CIMGeometricEffectCircularSector"===e.type||"CIMGeometricEffectRadial"===e.type||"CIMGeometricEffectTaperedPolygon"===e.type||"PrivateDimensionEffect"===e.type||"PrivateMatcherGeometryOverrideEffect"===e.type}function ge(e){return"CIMGeometricEffectCircularSector"===e.type||"CIMGeometricEffectTaperedPolygon"===e.type}function Oe(e,t){const r=e.some(e=>"CIMSolidFill"===e.type),i=e.every(e=>"CIMSolidFill"===e.type||"CIMSolidStroke"===e.type);return r&&i&&t.some(({effect:e})=>ge(e))}function Se(e){return e.some(e=>"CIMSolidFill"!==e.type&&"CIMSolidStroke"!==e.type&&("CIMVectorMarker"!==e.type&&"CIMPictureMarker"!==e.type||null!=e.markerPlacement))}function _e(e,t){return!!(t?.some(e=>"CIMGeometricEffectRadial"===e.type)&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.type)||t?.some(e=>"CIMGeometricEffectCircularSector"===e.type))&&Me(e)}function Me(e){if(2!==e?.length)return!1;const t=e.find(e=>"CIMSolidFill"===e.type),r=e.find(e=>"CIMSolidStroke"===e.type),i=r?.effects?.some(e=>"CIMGeometricEffectDashes"===e.type);return null!=t&&null!=r&&!i}function Ce(e){return r(e).map(e=>({...e,propertyName:Z(e.propertyName)}))}function be(e){return g(e)?{type:"animation-params",params:e}:null}export{ce as CIMAnalyzer,ye as analyzeCIMResource};
|
|
2
|
+
import{isRGB as e}from"../../core/colorUtils.js";import{getFontFamily as t}from"../../core/fontUtils.js";import"../../core/has.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{pt2px as o,px2pt as a}from"../../core/screenUtils.js";import{numericHash as s}from"../../core/string.js";import{isCurvedGeometry as l}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as n}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{checkForAnimations as m,globalRotation as c,getAnimationParams as p,handleAbsoluteAnchor as f,handleMarker as y,handleRelativeAnchor as d,getFrameTranslation as h,translate as u,getStaticParam as v,shouldUseAnimatedPath as g}from"./animationUtils.js";import{CIMSymbolInflatedSizeHelper as O,CIMSymbolHelper as S,forEachSymbolLayer as _}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as M}from"./constants.js";import{defaultCIMValues as C}from"./defaultCIMValues.js";import{fitVectorMarker as b}from"./fitVectorMarker.js";import{fromCIMFontStyle as k}from"./fromCIMFontStyle.js";import{OverrideHelper as z}from"./OverrideHelper.js";import{hasRichTextFormattingTags as x}from"./richTextUtils.js";import{getSDFInfo as P,getExtent as L,getSDFMetrics as I,getSDFDimensions as E}from"./SDFHelper.js";import{CIMSymbolUnits as V}from"./types.js";import{colorToArray as N,normalizeAlpha as R,getSize as T,isCIMMarkerStrokePlacement as w,hasStrokeLayer as G,getNumericValue as A,getMaxStrokeWidth as F,getTintColor as X,normalizePrimitiveOverrideProps as j,getDefaultCIMValue as Y,getEnum as W,getFillColor as D,getStrokeColor as U,fromCIMFontDecoration as H,getStrokeWidth as B,fromCIMVerticalAlignment as J,fromCIMHorizontalAlignment as q,getTextCasing as K,isValidCIMValue as Q,uncapitalize as Z}from"./utils.js";import{isSupportedCallout as $,getPointSymbolCalloutTransforms as ee,normalizePointSymbolCalloutScale as te,normalizeLeaderLineStyle as re,getPointSymbolCalloutFitProperties as ie,normalizeBalloonCalloutStyle as oe}from"./callouts/calloutAnalysisUtils.js";import{EffectHelper as ae}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as se,randomInsidePolygonTextureSize as le}from"../../views/2d/engine/webgl/definitions.js";const ne=()=>i.getLogger("esri.symbols.cim.cimAnalyzer");function me(e){const t=e.markerPlacement;return t&&t.angleToLine?1:0}class ce{constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,r,i){if(this._cimLayers=i??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(const t of this._primitiveOverrides){const r=t.valueExpressionInfo;if(r)this._setPoMap(t.primitiveName,t.propertyName,r);else if(null!=t.value){let r=t.value;t.propertyName.includes("Color")&&(e(r)&&(r=N(r)),r=R(r)),this._setPoMap(t.primitiveName,t.propertyName,r)}}}return this._analyzeSymbol(t.symbol,r),this._cimLayers}_reset(){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[]}_analyzeSymbol(e,t){switch(e?.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this._analyzeMultiLayerSymbol(e,t)}}_analyzeMultiLayerSymbol(e,t){const r=e?.symbolLayers;if(!r)return;for(let m=0;m<r.length;m++){const e=r[m];"CIMVectorMarker"===e.type&&(r[m]=b(e))}const i=e.effects;let o=0;const a=T(e)??0;"CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=1);let s={transform:[0,0,0,1],fromColor:[1,1,1,1],toColor:[1,1,1,1],colorMix:[0,0,0,0],toOpacity:[1,1,1,1],opacityMix:[0,0,0,0],shift:[1,1,1,1],hasAnimations:m(e),hasShiftAnimation:!1,hasMotionAnimations:!1};s=c(s),s=p(this._poMap,e,s);let l=null;"CIMPointSymbol"===e.type&&(l=this._analyzePointSymbolHalo(e,o,a,i,s),this._analyzeCallout(e,null,[],s,a,o,t));const n=l?r.filter(e=>e!==l):r;if(_e(n,i))return this._analyzeCompositeOutlineFill(n,i,a);this._analyzeSymbolLayer(l?{...e,symbolLayers:n}:e,null,[],s,a,o,t)}_analyzeSymbolLayer(e,t,r,i,o,a,s){const l=e?.symbolLayers;if(!l)return;const n="CIMPolygonSymbol"===e.type,m=e.effects;let c=l.length;for(;c--;){const p=l[c];if(!p||!1===p.enable)continue;let f;m?.length&&(f=[...m]);const y=p.effects;y?.length&&(m?f.push(...y):f=[...y]);let d=t?[...t]:null;if(f){d??=[];for(const e of f){const t=z.findEffectOverrides(e,this._primitiveOverrides);t&&d.push(t)}}const h=[];z.findApplicableOverrides(p,this._primitiveOverrides,h);const u=this._cimLayers.length;switch(p.type){case"CIMSolidFill":this._analyzeSolidFill(p,d,i,G(l));break;case"CIMPictureFill":this._analyzePictureFill(p,d,i);break;case"CIMHatchFill":this._analyzeHatchFill(p,d,i);break;case"CIMGradientFill":this._analyzeGradientFill(p,d);break;case"CIMSolidStroke":this._analyzeSolidStroke(p,d,n,o,i);break;case"CIMPictureStroke":this._analyzePictureStroke(p,d,n,o,i);break;case"CIMGradientStroke":this._analyzeGradientStroke(p,d,n,o);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":{"CIMLineSymbol"!==e.type&&"CIMPolygonSymbol"!==e.type||(a=me(p));const t=[],l=p.primitiveName;l&&t.push(l);const m=n&&w(p.markerPlacement);this._analyzeMarker(p,d,null,t,a,o,s,r,i,!1,m);break}default:ne().error("Cannot analyze CIM layer",p.type)}if(d?.some(({effect:e})=>ve(e)))for(let e=u;e<this._cimLayers.length;e++)this._cimLayers[e].effectsChangeGeometryType=!0}}_analyzePointSymbolHalo(e,t,i,o,s){const{haloSymbol:l}=e,n=A(e.haloSize,0);if(n<=0||!l?.symbolLayers)return null;const c=l.symbolLayers.filter(e=>!1!==e.enable),f=c[0];if(!f)return null;const y=1===c.length&&"CIMSolidFill"===f.type;if(!0===e.symbolLayers?.some(e=>m(e))||m(l))return ne().warnOnce("CIM point symbol halos do not support independently animated symbol components"),null;const d=o?.map(e=>z.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e);if(d?.some(({effect:e})=>ve(e))){if(!y)return ne().warnOnce("Complex CIM point symbol halos are not supported with geometry-changing effects"),null;const t=e.symbolLayers?.filter(e=>!1!==e.enable)??[];if(!Oe(t,d))return ne().warnOnce("CIM point symbol halos with geometry-changing effects currently require polygon-producing effects and an unambiguous solid-fill effect chain"),null;const r=t.find(e=>"CIMSolidFill"===e.type);if(!r)return null;const o=[...d,...(r.effects??[]).map(e=>z.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e)],a=F(t),s=this._getValueOrOverrideExpression(f.type,f.primitiveName,"Color",R(f.color));return this._cimLayers.push({type:"outlineFill",name:r.name,colorLocked:!!r.colorLocked,color:this._getValueOrOverrideExpression(r.type,r.primitiveName,"Color",R(r.color)),effects:o,effectsChangeGeometryType:!0,outlineColorLocked:!0,outlineColor:s,outlineWidth:2*n+a,cap:"Round",join:"Round",referenceWidth:i,pixelBufferSize:2*n+a,outlineEffects:o}),r}const h=e.symbolLayers?.filter(e=>!1!==e.enable)??[],u=1===h.length&&"CIMVectorMarker"===h[0].type?h[0]:null,v=new Set(u?this._primitiveOverrides.filter(e=>e.primitiveName===u.primitiveName&&["Rotation","OffsetX","OffsetY"].includes(e.propertyName)).map(e=>e.propertyName):[]),g=v.size>0?u:null,_=r(e);if(_.effects=void 0,_.angle=0,_.scaleX=1,g){const e=_.symbolLayers?.find(e=>"CIMVectorMarker"===e.type&&!1!==e.enable);e&&(v.has("Rotation")&&(e.rotation=0),v.has("OffsetX")&&(e.offsetX=0),v.has("OffsetY")&&(e.offsetY=0))}const M={..._,haloSize:0,haloSymbol:void 0},C=O.getPointSymbolHaloPadding(e,this._resourceManager),[b,k,x]=S.getTextureAnchor(M,this._resourceManager,se,C),L=a(x),I=[];z.findApplicableOverrides(_,this._primitiveOverrides,I);const E=g?I.filter(e=>e.primitiveName!==g.primitiveName||!["Rotation","OffsetX","OffsetY"].includes(e.propertyName)):I,V=g?[{offsetX:this._getValueOrOverrideExpression(g.type,g.primitiveName,"OffsetX",v.has("OffsetX")?A(g.offsetX):0),offsetY:this._getValueOrOverrideExpression(g.type,g.primitiveName,"OffsetY",v.has("OffsetY")?A(g.offsetY):0),rotation:this._getValueOrOverrideExpression(g.type,g.primitiveName,"Rotation",v.has("Rotation")?A(g.rotation):0),size:L,frameHeight:L,rotateClockWise:!!g.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:!1}]:[],N=be(y?p(this._poMap,f,s):s);let T,w;if(N){const e=S.getEnvelope(M,null,this._resourceManager);e&&(T=[e.width,e.height],w=[e.width+2*C,e.height+2*C])}const G=A(e.angle,0)-(u?A(u.rotation,0)*(u.rotateClockwise?-1:1):0);return this._cimLayers.push({type:"marker",spriteRasterizationParam:{type:"sprite-rasterization-param",resource:{type:"cim-point-symbol-halo",symbol:_,sdf:!N&&y&&null!=P(M)},overrides:E},colorLocked:!0,color:y?this._getValueOrOverrideExpression(f.type,f.primitiveName,"Color",R(f.color)):[255,255,255,1],effects:d??null,effectsChangeGeometryType:d?.some(({effect:e})=>ve(e)),scaleSymbolsProportionally:!1,alignment:t,anchorPoint:{x:b,y:k},isAbsoluteAnchorPoint:!1,size:L,scaleX:A(e.scaleX,1),rotation:G,offsetX:0,offsetY:0,outlineColor:[0,0,0,0],outlineWidth:0,transform:{type:"cim-marker-transform-param",params:V},frameHeight:L,widthRatio:1,rotateClockwise:!0,referenceSize:i||L,sizeRatio:1,markerPlacement:null,isOutline:!1,animationParams:N,baseSize:i||L,pixelDimensions:T,texelDimensions:w}),null}_analyzeSolidFill(e,t,r,i){const{primitiveName:o,type:a}=e,s=R(e.color),l=p(this._poMap,e,r);if(!i&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.effect.type)){const r=this._getValueOrOverrideExpression(a,o,"Color",s);return void this._cimLayers.push({type:"outlineFill",name:e.name,colorLocked:!!e.colorLocked,color:r,effects:t,outlineColor:r,outlineColorLocked:!!e.colorLocked,...M,outlineEffects:t})}this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,o,"Color",s),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:be(l)})}_analyzePictureFill(e,t,r){const{primitiveName:i,type:o}=e,a=X(e),s=A(e.height,C.CIMPictureFill.height);let l=A(e.scaleX,1);if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height),l/=r*(s/t)}const n={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(i,o)},m=p(this._poMap,e,r);this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:n,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,i,"TintColor",a),height:this._getValueOrOverrideExpression(o,i,"Height",s),scaleX:this._getValueOrOverrideExpression(o,i,"ScaleX",l),angle:this._getValueOrOverrideExpression(o,i,"Rotation",A(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",A(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",A(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:be(m)})}_analyzeHatchFill(e,t,r){const{primitiveName:i,type:o}=e,a=p(this._poMap,e,r),s=this._analyzeMaterialOverrides(i,["Rotation","OffsetX","OffsetY"]),l=j(s);let n=[255,255,255,1],m=!1;if(e.lineSymbol?.symbolLayers)for(const p of e.lineSymbol.symbolLayers){if("CIMSolidStroke"!==p.type)continue;const e=p.primitiveName??i;m||!e||p.colorLocked||null==this._poMap[e]?.Color&&null==this._poMap[e]?.StrokeColor||(n=R(p.color),n=this._maybeGetValueOrOverrideExpression(e,"StrokeColor")??this._getValueOrOverrideExpression(o,e,"Color",n),m=!0);const t=this._maybeGetValueOrOverrideExpression(e,"StrokeWidth");if(t){let r=null,i=null;"number"==typeof t?r=t:i=t.valueExpressionInfo;let a=l.find(e=>"strokeWidth"===e.propertyName);a?a.propertyName="width":(a={type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"width",valueExpressionInfo:i,value:r,defaultValue:Y(o,"width")},l.push(a))}}const c={type:"sprite-rasterization-param",resource:e,overrides:l};this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:c,colorLocked:!!e.colorLocked,effects:t,color:n,height:this._getValueOrOverrideExpression(o,i,"Separation",A(e.separation,C.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(o,i,"Rotation",A(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",A(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",A(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!m,animationParams:be(a)})}_analyzeGradientFill(e,t){const{angle:r,gradientMethod:i,gradientSize:o,gradientSizeUnits:a,gradientType:s,interval:l,primitiveName:n,type:m}=e,c=C.CIMGradientFill,p=e.colorRamp;this._cimLayers.push({type:"gradientFill",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(n,m)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(m,n,"GradientMethod",i??"Linear"),angle:this._getValueOrOverrideExpression(m,n,"Angle",A(r,c.angle)),gradientType:this._getValueOrOverrideExpression(m,n,"GradientType",s??c.gradientType),interval:this._getValueOrOverrideExpression(m,n,"Interval",A(l,"CIMFixedColorRamp"===p.type?p.colors.length:c.interval)),gradientSize:this._getValueOrOverrideExpression(m,n,"GradientSize",A(o,c.gradientSize)),gradientSizeUnits:"Absolute"===a?V.Absolute:"Relative"===a?V.Relative:c.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,r,i=[]){const o=e.find(e=>"CIMSolidFill"===e.type),a=e.find(e=>"CIMSolidStroke"===e.type);if(null==o||null==a)return;const s=[...i,...[...t??[],...o.effects??[]].map(e=>z.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e)],l=[...i,...[...t??[],...a.effects??[]].map(e=>z.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e)],n=A(a.width,C.CIMSolidStroke.width),m=W(a.capStyle,C.CIMSolidStroke.capstyle),c=W(a.joinStyle,C.CIMSolidStroke.joinstyle),p=a.miterLimit;this._cimLayers.push({type:"outlineFill",name:o.name,colorLocked:!!o.colorLocked,color:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Color",R(o.color)),effects:s,effectsChangeGeometryType:s.some(({effect:e})=>ve(e))||l.some(({effect:e})=>ve(e)),outlineColorLocked:!!a.colorLocked,outlineColor:this._getValueOrOverrideExpression(a.type,a.primitiveName,"Color",R(a.color)),outlineWidth:this._getValueOrOverrideExpression(a.type,a.primitiveName,"Width",n),cap:this._getValueOrOverrideExpression(a.type,a.primitiveName,"CapStyle",m),join:this._getValueOrOverrideExpression(a.type,a.primitiveName,"JoinStyle",c),miterLimit:p&&this._getValueOrOverrideExpression(a.type,a.primitiveName,"MiterLimit",p),referenceWidth:r,outlineEffects:l})}_analyzeSolidStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=R(e.color),n=A(e.width,C.CIMSolidStroke.width),m=W(e.capStyle,C.CIMSolidStroke.capstyle),c=W(e.joinStyle,C.CIMSolidStroke.joinstyle),f=e.miterLimit;let y,d,h,u,v=[];if(this._analyzePrimitiveOverrides(a,t,null,null)&&(v=this._getPrimitiveMaterialOverrides(a,s)),t&&Array.isArray(t)&&t.length>0){const e=t[t.length-1].effect;e&&"CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&(y=e.dashTemplate,d=e.scaleDash,h=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const g=void 0!==y?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:y,primitiveName:u},overrides:v}:null,O=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:g,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"Color",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:fe(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??y,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",h??0),scaleDash:d,sampleAlphaOnly:!0,animationParams:be(O)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=X(e),n=A(e.width,C.CIMPictureStroke.width),m=W(e.capStyle,C.CIMPictureStroke.capstyle),c=W(e.joinStyle,C.CIMPictureStroke.joinstyle),f=e.miterLimit,y={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},d=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:y,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"TintColor",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:fe(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:be(d)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:m,type:c}=e,p=C.CIMGradientStroke,f=A(e.width,p.width),y=W(e.capStyle,p.capstyle),d=W(e.joinStyle,p.joinstyle),h=e.miterLimit,u=e.colorRamp;this._cimLayers.push({type:"gradientStroke",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(m,c)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(c,m,"Width",f),cap:this._getValueOrOverrideExpression(c,m,"CapStyle",y),join:this._getValueOrOverrideExpression(c,m,"JoinStyle",d),miterLimit:h&&this._getValueOrOverrideExpression(c,m,"MiterLimit",h),referenceWidth:i,isOutline:r,gradientMethod:this._getValueOrOverrideExpression(c,m,"GradientMethod",o??p.gradientMethod),gradientType:this._getValueOrOverrideExpression(c,m,"GradientType",l??p.gradientType),interval:this._getValueOrOverrideExpression(c,m,"Interval",A(n,"CIMFixedColorRamp"===u.type?u.colors.length:p.interval)),gradientSize:this._getValueOrOverrideExpression(c,m,"GradientSize",A(a,p.gradientSize)),gradientSizeUnits:"Absolute"===s?V.Absolute:"Relative"===s?V.Relative:p.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,n,m=!1,c=!1){m||=!!e.colorLocked;let h=n;if(h=f(e,h),h=y(this._poMap,e,h),h=d(e,h),h=p(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,m,h))return;const u=A(e.size,C.CIMVectorMarker.size),v=A(e.rotation),g=A(e.offsetX),O=A(e.offsetY),{primitiveName:S,type:_}=e,M=this._getValueOrOverrideExpression(_,S,"Size",u),b=this._getValueOrOverrideExpression(_,S,"Rotation",v),k=this._getValueOrOverrideExpression(_,S,"OffsetX",g),z=this._getValueOrOverrideExpression(_,S,"OffsetY",O);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,M,b,k,z,l,h,m,c);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,M,b,k,z,l,h,s,m,c)}}_analyzeMarkerInsidePolygon(e,t,r,i){const{markerPlacement:o,type:s}=e;if(!o||"CIMMarkerPlacementInsidePolygon"!==o.type||i.hasMotionAnimations)return!1;if("CIMVectorMarker"===s||"CIMPictureMarker"===s){const r=e.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;const i=o.primitiveName;if(i&&this._analyzePrimitiveOverrides([i],t,null,null))return!1;if("CIMVectorMarker"===s){const{markerGraphics:t}=e;if(t)for(const e of t){const{symbol:t}=e;if("CIMPolygonSymbol"===t?.type&&t.symbolLayers){const{symbolLayers:e}=t;for(const t of e)if("CIMSolidStroke"===t.type)return!1}}}else{const{animatedSymbolProperties:t}=e;if(t)return!1}}const l=Math.abs(o.stepX),n=Math.abs(o.stepY);if(0===l||0===n)return!0;let m,c;if("Random"===o.gridType){const e=a(le),t=Math.max(Math.floor(e/l),1);m=n*Math.max(Math.floor(e/n),1);c=t*l/m}else o.shiftOddRows?(m=2*n,c=l/n*.5):(m=n,c=l/n);const p=X(e),f="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:{...e,effects:e.effects?.filter(e=>!ue(e))},overrides:[]};return this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:f,colorLocked:r,effects:t,color:p,height:m,scaleX:c,angle:o.gridAngle??0,offsetX:A(o.offsetX),offsetY:A(o.offsetY),applyRandomOffset:"Random"===o.gridType,sampleAlphaOnly:"CIMPictureMarker"!==e.type,hasUnresolvedReplacementColor:!0,animationParams:be(i)}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,m,c,p,f,y,d,h){const{animatedSymbolProperties:u,primitiveName:v,type:g}=e;let O=A(e.scaleX,1);const S=X(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const _=this._createGIFAnimatedSymbolPropertiesOverrideExpression(u),M=e.anchorPoint??{x:0,y:0};if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height);O/=r*(A(e.size)/t)}const C=[...o];let b;e.primitiveName&&C.push(e.primitiveName),u||_?b={type:"animated",url:e.url,urlHash:"H"+s(e.url),playAnimation:e.animatedSymbolProperties?.playAnimation,reverseAnimation:e.animatedSymbolProperties?.reverseAnimation,randomizeStartTime:e.animatedSymbolProperties?.randomizeStartTime,randomizeStartSeed:e.animatedSymbolProperties?.randomizeStartSeed,startTimeOffset:e.animatedSymbolProperties?.startTimeOffset,duration:e.animatedSymbolProperties?.duration,repeatType:e.animatedSymbolProperties?.repeatType,repeatDelay:e.animatedSymbolProperties?.repeatDelay}:(b=r(e),b.markerPlacement=null);const k={type:"sprite-rasterization-param",resource:b,overrides:this._getMaterialOverrides(C,g)};_&&k.overrides.push(..._.overrides);const z=n;this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:k,colorLocked:d,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:n,scaleX:this._getValueOrOverrideExpression(g,v,"ScaleX",O),rotation:m,offsetX:c,offsetY:p,transform:{type:"cim-marker-transform-param",params:f},color:this._getValueOrOverrideExpression(g,v,"TintColor",S),anchorPoint:{x:M.x,y:M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:1,isOutline:h,markerPlacement:i,animationParams:be(y),baseSize:z})}_analyzeVectorMarker(e,t,r,i,o,a,s,m,c,p,f,y,d,g,O){const S=e.markerGraphics;if(!S)return;const _=e.frame;let M=0;M=_?_.ymax-_.ymin:a;const C=!!e.scaleSymbolsProportionally;if(M){const t={offsetX:c,offsetY:p,rotation:m,size:s,frameHeight:M,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:C};f=[...f,t]}r||(r=this._createMarkerPlacementOverrideExpression(e.markerPlacement));for(const b of S)if(b){const s=b.symbol;if(!s)continue;const m=b.primitiveName;m&&i.push(m);let c,p=y;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&_){let t=0,r=0;const i=b.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(_.xmin+_.xmax),r+=i.y-.5*(_.ymin+_.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):_&&(t-=(_.xmax-_.xmin)*o.x,r-=(_.ymax-_.ymin)*o.y));const s={offsetX:t,offsetY:r,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:C};c=[...f,s]}"CIMPointSymbol"!==s.type&&"CIMTextSymbol"!==s.type||this._analyzeCallout(s,t,c??f,p,a,o,d);const S=l(b.geometry)?{...b,geometry:n(b.geometry,{maxDeviation:.01})}:b,k=S.geometry,[z,x]=h(k,_);switch(0===z&&0===x||(p=u(p,z,x)),s.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":d||he(s)?(p={...p,transform:{type:"AnimatedTransform",relativeTranslation:!1,absoluteScale:!0,selectGlobalRotation:!1,translation:v([0,0]),rotation:v(0),scale:v(M),parent:y.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,S,i,o,a,c??f,p,M,g,O)):this._analyzeMultiLayerGraphic(e,t,r,S,i,o,a,c??f,p,M,g,O);break;case"CIMTextSymbol":this._analyzeTextGraphic(t,r,S,i,o,a,c??f,g)}m&&i.pop()}}_analyzeCallout(e,t,r,i,o,a,s){const l=e.callout;if(!l||!$(l))return;const n=t??[],{leaderTolerance:m,leaderOffset:c}=l,p=500;switch(l.type){case"CIMSimpleLineCallout":{const{lineSymbol:e,autoSnap:t}=l,f={type:"CIMSimpleLineCallout",leaderTolerance:m,leaderOffset:c,autoSnap:t,inflateSize:p};this._analyzeSymbolLayer(e,[...n,{type:"cim-effect-param",effect:f,overrides:[]}],r,i,o,a,s);break}case"CIMBackgroundCallout":{const{accentBarSymbol:e,gap:t,backgroundSymbol:f,leaderLineSymbol:y,lineStyle:d,margin:h}=l,u=e=>({type:"CIMBackgroundCallout",leaderTolerance:m,leaderOffset:c,lineStyle:re(d),gap:t,margin:h,inflateSize:p,part:e}),v=[...n,{type:"cim-effect-param",effect:u("background"),overrides:[]}];y&&this._analyzeSymbolLayer(y,[...n,{type:"cim-effect-param",effect:u("leader"),overrides:[]}],r,i,o,a,s);const g=f.symbolLayers??[];Me(g)?this._analyzeCompositeOutlineFill(g,null,o,v):this._analyzeSymbolLayer(f,v,r,i,o,a,s),e&&this._analyzeSymbolLayer(e,[...n,{type:"cim-effect-param",effect:u("accent-bar"),overrides:[]}],r,i,o,a,s);break}case"CIMBalloonCallout":{const{balloonStyle:e,backgroundSymbol:t,fixedDartWidth:f,margin:y,useFixedDartWidth:d}=l,h={type:"CIMBalloonCallout",leaderTolerance:m,leaderOffset:c,margin:y,balloonStyle:oe(e),dartWidth:d?f:void 0,inflateSize:p,part:"background"},u=[...n,{type:"cim-effect-param",effect:h,overrides:[]}],v=t.symbolLayers??[];Me(v)?this._analyzeCompositeOutlineFill(v,null,o,u):this._analyzeSymbolLayer(t,u,r,i,o,a,s);break}case"CIMPointSymbolCallout":{const{backgroundScale:e,gap:t,leaderLineSymbol:f,lineStyle:y,pointSymbol:d}=l,h=te(e),u=ee(d,r),v=e=>({type:"CIMPointSymbolCallout",leaderTolerance:m,leaderOffset:c,backgroundScale:h,...ie(d,e),lineStyle:re(y),gap:t,inflateSize:p,part:e});f&&this._analyzeSymbolLayer(f,[...n,{type:"cim-effect-param",effect:v("leader"),overrides:[]}],r,i,o,a,s),this._analyzeSymbolLayer(d,[...n,{type:"cim-effect-param",effect:v("marker"),overrides:[]}],u,i,o,a,s||0!==h);break}case"CIMCompositeCallout":{const{backgroundSymbol:e,margin:t,shadowSymbol:f}=l,y={type:"CIMBalloonCallout",leaderTolerance:m,leaderOffset:c,margin:t,balloonStyle:1,inflateSize:p,part:"background"},d=[...n,{type:"cim-effect-param",effect:y,overrides:[]}],h=e=>{const t=e.symbolLayers??[];Me(t)?this._analyzeCompositeOutlineFill(t,null,o,d):this._analyzeSymbolLayer(e,d,r,i,o,a,s)};f&&h(f),h(e);break}}}_analyzeMultiLayerGraphic(e,t,r,i,o,a,s,l,n,m,c,p){const f=i.symbol,y=f.symbolLayers;if(y){if(!de(y)||g(n))return Se(y)?(_(f,e=>{e.colorLocked&&(c=!0)}),void this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,m,c,p)):void this._analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,m,c,p);this._analyzeCompositeMarkerGraphic(e,t,r,i,y,a,s,l,m,c,p)}}_analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,m,c,f){const y=i.symbol,d=y.symbolLayers;if(!d)return;const h=ae.applyEffects(y.effects,i.geometry);if(!h)return;let u=d.length;for(;u--;){const y=d[u];if(!y||!1===y.enable)continue;const v=y.primitiveName;switch(v&&o.push(v),y.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=ae.applyEffects(y.effects,h),d=L(o);if(!d)continue;const u="Relative"!==e.anchorPointUnits,g="CIMSolidStroke"===y.type?y.width:0,{frameSizeRatio:O,anchorX:S,anchorY:_,widthRatio:M,sdfPaddingRatio:b,sdfTextureSize:k}=I(d,e.frame,e.size,e.anchorPoint,u,g,e.scaleSymbolsProportionally),z="CIMSolidFill"===y.type,x={type:"sdf",geometry:o,sdfPaddingRatio:b,asFill:z,sdfTextureSize:k},{path:P}=y,V=z?R(D(y)):null==P?R(U(y)):[0,0,0,0],N=z?[0,0,0,0]:R(U(y));if(!z&&!g)break;const T=i.primitiveName;let w=null;z&&!y.colorLocked&&(w=this._maybeGetValueOrOverrideExpression(T,"FillColor"));let G=null;z||y.colorLocked||(G=this._maybeGetValueOrOverrideExpression(T,"StrokeColor"));const F=w??this._getValueOrOverrideExpression(y.type,v,"Color",V),X=G??this._getValueOrOverrideExpression(y.type,v,"Color",N),j=this._maybeGetValueOrOverrideExpression(T,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,v,"Width",g),Y=P?{type:"sprite-rasterization-param",resource:{type:"path",path:P,asFill:z},overrides:[]}:{type:"sprite-rasterization-param",resource:x,overrides:[]},W=p(this._poMap,y,n),H=A(e.size,C.CIMVectorMarker.size),B=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",H);this._cimLayers.push({type:"marker",name:y.name,groupName:e.name,spriteRasterizationParam:Y,colorLocked:!!y.colorLocked||!!c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:S,y:_},isAbsoluteAnchorPoint:u,size:m,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:m,widthRatio:M,rotateClockwise:!1,referenceSize:s,sizeRatio:O,color:F,outlineColor:X,outlineWidth:j,isOutline:f,markerPlacement:r,animationParams:be(W),isStroke:"CIMSolidFill"!==y.type,baseSize:B,...E(o,k,b)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(y.markerPlacement){ne().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(y,t,r,o,a,s,!1,l,n,c,f)}v&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const m=[];z.findApplicableOverrides(i,this._primitiveOverrides,m);const c=i.geometry;if(!("x"in c)||!("y"in c))return;const p=i.symbol,f=H(p),y=k(p.fontStyleName),d=t(p.fontFamilyName);p.font={family:d,decoration:f,...y};const h=A(p.height,C.CIMTextSymbol.height),u=A(p.angle),v=A(p.offsetX),g=A(p.offsetY),{haloSymbol:O}=p,S=A(p.haloSize,0);let _=[0,0,0,0];if(O?.symbolLayers?.length){const e=O.symbolLayers;for(const t of e)if(t.color){_=this._getValueOrOverrideExpression(p?.haloSymbol?.type??"CIMPolygonSymbol",t.primitiveName,"Color",R(t.color));break}}const M=i.primitiveName;let b=[0,0,0,1],P=[0,0,0,0],L=0,I=!1;if(p.symbol?.symbolLayers)for(const t of p.symbol.symbolLayers){const e=t.primitiveName;if("CIMSolidStroke"===t.type)P=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Color",R(t.color)),L=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Width",B(t)??0);else if("CIMSolidFill"===t.type){const r=R(t.color);I=I??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??M,"Color",r)}}let E=null,V=null,N=null,T=null,w=null;M&&(E=this._maybeGetValueOrOverrideExpression(M,"TextSize"),V=this._maybeGetValueOrOverrideExpression(M,"TextAngle"),N=this._maybeGetValueOrOverrideExpression(M,"TextOffsetX"),T=this._maybeGetValueOrOverrideExpression(M,"TextOffsetY"),I||(w=this._maybeGetValueOrOverrideExpression(M,"FillColor")));const G=w??b;let F=null,X=null,j=0;const Y="CIMBackgroundCallout"===p.callout?.type;if("CIMBackgroundCallout"===p.callout?.type){const e=p.callout;if(e.backgroundSymbol){const t=e.backgroundSymbol.symbolLayers;if(t)for(const e of t)"CIMSolidFill"===e.type?F=R(e.color):"CIMSolidStroke"===e.type&&(X=R(e.color),j=A(e.width,C.CIMSolidStroke.width))}}const W=this._getValueOrOverrideExpression(p.type,i.primitiveName,"TextString",i.textString??"");if(null==W)return;const{fontStyleName:D}=p,U=d+(D?"-"+D.toLowerCase():"-regular"),K=this._getMaterialOverrides(o,p.type);K.push(...this._getPrimitiveMaterialOverrides(i.primitiveName,p.type)),this._collectDictionaryTemplateOverrides(K,i);const Q={type:"text-rasterization-param",resource:{type:"text",textString:i.textString??"",font:p.font,symbol:p,primitiveName:i.primitiveName,supportsRichText:x(i.textString??"")||K.some(e=>"textString"===e.propertyName)},overrides:K};this._cimLayers.push({type:"text",lineWidth:p.lineWidth,textRasterizationParam:Q,colorLocked:!!n||!!I,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:U,decoration:f,haloSize:S,haloColor:_,weight:y.weight,style:y.style,size:E??h,angle:V??u,offsetX:N??v,offsetY:T??g,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:q(p.horizontalAlignment),verticalAlignment:J(p.verticalAlignment),text:W,color:G,outlineColor:P,outlineSize:L,backgroundColor:F,borderLineColor:X,borderLineWidth:j,useBackgroundCallout:Y,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=K(t.symbol);e.push({propertyName:"textString",defaultValue:"",valueExpressionInfo:{type:"dictionary-template",textCase:r,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,r,i,a,s,l,n,m,c,p,f){const y=pe(e,i),d=e.primitiveName,h=this._analyzeMaterialOverrides(d,["Rotation","OffsetX","OffsetY"]),u=j(h),[v,g,O]=S.getTextureAnchor(y,this._resourceManager,se),_=this._getMaterialOverrides(a,e.type).filter(e=>e.primitiveName!==d||!["rotation","offsetX","offsetY"].includes(e.propertyName));_.push(...u);const M={type:"sprite-rasterization-param",resource:{...y,avoidSDFRasterization:!0},overrides:_},b=A(e.size,C.CIMVectorMarker.size),k=this._getValueOrOverrideExpression(e.type,d,"Size",b);this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:M,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:v,y:g},isAbsoluteAnchorPoint:!1,size:c,rotation:0,offsetX:0,offsetY:0,transform:{type:"cim-marker-transform-param",params:n},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:c,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:O/o(e.size),isOutline:f,markerPlacement:r,animationParams:be(m),baseSize:k})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return z.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:Ce(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return z.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-gif-animation-params",animation:e,overrides:Ce(t)}}_analyzeCompositeMarkerGraphic(e,t,r,i,o,a,s,l,n,m,c){const p=i.geometry,f=o[0],y=o[1],d=L(p);if(!d)return;const h="Relative"!==e.anchorPointUnits,u=A(f.width,C.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:g,anchorY:O,widthRatio:S,sdfPaddingRatio:_,sdfTextureSize:M}=I(d,e.frame,e.size,e.anchorPoint,h,u,e.scaleSymbolsProportionally),{path:b}=y,k=y.primitiveName,z=f.primitiveName,x=i.primitiveName;let P=null;y.colorLocked||m||(P=this._maybeGetValueOrOverrideExpression(x,"FillColor"));const E=P??this._getValueOrOverrideExpression(y.type,k,"Color",R(y.color));let V=null;f.colorLocked||m||(V=this._maybeGetValueOrOverrideExpression(x,"StrokeColor"));const N=V??this._getValueOrOverrideExpression(f.type,z,"Color",R(f.color)),T=this._maybeGetValueOrOverrideExpression(x,"StrokeWidth")??this._getValueOrOverrideExpression(f.type,z,"Width",u),w={type:"sprite-rasterization-param",resource:b?{type:"path",path:b,asFill:!0}:{type:"sdf",geometry:p,sdfTextureSize:M,sdfPaddingRatio:_,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:w,colorLocked:m,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:g,y:O},isAbsoluteAnchorPoint:h,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:S,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:E,outlineColor:N,outlineWidth:T,isOutline:c,markerPlacement:r})}_setPoMap(e,t,r){let i;this._poMap[e]?i=this._poMap[e]:(i={},this._poMap[e]=i),i[t]=r}_maybeGetValueOrOverrideExpression(e,t,r){return this._getValueOrOverrideExpression("",e,t,r,!1)}_getValueOrOverrideExpression(e,t,r,i,o=!0){if(o&&!Q(i)&&(i=Y(e,r.toLowerCase())),null==t)return i;const a=this._poMap[t];if(null==a)return i;const s=a[r];return"string"==typeof s||"number"==typeof s||Array.isArray(s)?s:s?{valueExpressionInfo:s,defaultValue:i}:i}_analyzePrimitiveOverrides(e,t,r,i){if(null==e)return!1;"string"==typeof e&&(e=[e]);for(const o of this._primitiveOverrides)if(e.includes(o.primitiveName)&&o.valueExpressionInfo)return!0;if(null!=t)for(const o of t)if(o?.overrides.length>0)return!0;if(null!=r)for(const o of r)if(o?.overrides.length>0)return!0;if(null!=i)for(const o of i)if(o?.overrides.length>0)return!0;return!1}_getMaterialOverrides(e,t){if(!e)return[];const r=[];for(const i of e)r.push(...this._getPrimitiveMaterialOverrides(i,t));return r}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];const r=j(this._primitiveOverrides.filter(t=>t.primitiveName===e));return r.forEach(e=>e.defaultValue=Y(t,e.propertyName.toLowerCase())),r}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(r=>r.primitiveName!==e||!t.includes(r.propertyName))}}function pe(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[{...t}],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function fe(e){if(e?.startsWith("Level_")){const t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function ye(e,t){if(!t||0===t.length)return e;const i=r(e);return z.applyOverrides(i,t),i}const de=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&null==e[0].path&&null==e[1].path&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function he(e){const t=e.symbolLayers;if(!t)return!1;const r=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectDashes"===e.type&&null!=e.dashTemplate)),i=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectAddControlPoints"===e.type));return!!r||!!i}function ue(e){return ve(e)}function ve(e){return"CIMGeometricEffectCircularSector"===e.type||"CIMGeometricEffectRadial"===e.type||"CIMGeometricEffectTaperedPolygon"===e.type||"PrivateDimensionEffect"===e.type||"PrivateMatcherGeometryOverrideEffect"===e.type}function ge(e){return"CIMGeometricEffectCircularSector"===e.type||"CIMGeometricEffectTaperedPolygon"===e.type}function Oe(e,t){const r=e.filter(e=>"CIMSolidFill"===e.type),i=e.every(e=>"CIMSolidFill"===e.type||"CIMSolidStroke"===e.type),o=e.filter(e=>e.effects?.length),a=0===o.length||1===o.length&&1===r.length&&o[0]===r[0];return r.length>0&&i&&a&&t.some(({effect:e})=>ge(e))}function Se(e){return e.some(e=>"CIMSolidFill"!==e.type&&"CIMSolidStroke"!==e.type&&("CIMVectorMarker"!==e.type&&"CIMPictureMarker"!==e.type||null!=e.markerPlacement))}function _e(e,t){return!!(t?.some(e=>"CIMGeometricEffectRadial"===e.type)&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.type)||t?.some(e=>"CIMGeometricEffectCircularSector"===e.type))&&Me(e)}function Me(e){if(2!==e?.length)return!1;const t=e.find(e=>"CIMSolidFill"===e.type),r=e.find(e=>"CIMSolidStroke"===e.type),i=r?.effects?.some(e=>"CIMGeometricEffectDashes"===e.type);return null!=t&&null!=r&&!i}function Ce(e){return r(e).map(e=>({...e,propertyName:Z(e.propertyName)}))}function be(e){return g(e)?{type:"animation-params",params:e}:null}export{ce as CIMAnalyzer,ye as analyzeCIMResource};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{Point as n}from"../../../../geometry/support/TileClipper.js";const t=Number.POSITIVE_INFINITY,r=Math.PI,e=2*r,o=128/r,i=256/360,s=r/180,a=1/Math.LN2;function u(n,t){return(n%=t)>=0?n:n+t}function c(n){return u(n*o,256)}function h(n){return u(n*i,256)}function l(n){return Math.log(n)*a}function f(n,t,r){return n*(1-r)+t*r}const m=8,p=14,M=16;function g(n){return m+Math.max((n-p)*M,0)}function d(n,t,r,e,o,i,s){const a=Math.max(e,Math.min(t,i))-t,u=Math.max(o,Math.min(r,s))-r;return a*a+u*u<=n*n}function I(t,r){if(0===r||Number.isNaN(r))return t;const e=[],o=new n(0,0),i=new n(0,0),s=new n(0,0);for(let a=0;a<t.length;a++){const u=t[a],c=[];for(let t=0;t<u.length;t++){const e=u[t-1],a=u[t],h=u[t+1];0===t?o.setCoords(0,0):o.assignSub(a,e).normalize().rightPerpendicular(),t===u.length-1?i.setCoords(0,0):i.assignSub(h,a).normalize().rightPerpendicular(),s.assignAdd(o,i).normalize();const l=s.x*i.x+s.y*i.y;0!==l&&s.scale(1/l),c.push(n.add(a,s.scale(r)))}e.push(c)}return e}function N(t,r,e,o){const i=new n(t[0],t[1]);if(i.scale(o),"viewport"===r){const n=-e*(Math.PI/180),t=Math.cos(n),r=Math.sin(n);i.rotate(t,r)}return i}export{e as c2pi,i as cDegTo256,s as cDegToRad,t as cInfinity,r as cPi,o as cRadTo256,h as degToByte,g as getTileMargins,f as interpolate,d as isCircleOverlappingRect,l as log2,I as offsetLine,u as positiveMod,c as radToByte,N as translateAnchor};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{LRUCache as e}from"../../../../core/LRUCache.js";import{
|
|
2
|
+
import{LRUCache as e}from"../../../../core/LRUCache.js";import{create as i,intersects as t}from"../../../../geometry/support/aaBoundingRect.js";import{tileSizeInPixels as s}from"./constants.js";import l from"../../tiling/TileCoverage.js";import r from"../../tiling/TileKey.js";const o=1e-6;class n{constructor(i,t){this._tiles=new Map,this._tileCache=new e(40,e=>e.dispose()),this._viewSize=[0,0],this._visibleTiles=new Map,this._previousLevel=-1,this._currentLevel=-1,this._tilesFromCache=new Set,this.acquireTile=i.acquireTile,this.releaseTile=i.releaseTile,this.tileInfoView=i.tileInfoView,this._container=t}destroy(){for(const e of this._tiles.values())e.dispose();this._tiles=null,this._tileCache.clear(),this._tileCache=null,this._tilesFromCache.clear(),this._tilesFromCache=null}update(e){this._updateCacheSize(e);const i=this.tileInfoView,t=i.getTileCoverage(e.state,0,!0,"smallest");if(!t)return!0;const{spans:s,lodInfo:o}=t,{level:n}=o,a=this._tiles;this._currentLevel=n;const c=new Set,h=new Set;for(const{row:l,colFrom:f,colTo:_}of s)for(let e=f;e<=_;e++){const i=r.getId(n,l,o.normalizeCol(e),o.getWorldForColumn(e)),t=this._getOrAcquireTile(i);c.add(i),t.processed()?this._addToContainer(t):h.add(new r(i))}for(const[l,r]of a)r.isCoverage=c.has(l);for(const l of h)this._findPlaceholdersForMissingTiles(l,c);let d=!1;for(const[l,r]of a)r.neededForCoverage=c.has(l),r.neededForCoverage||!r.isHoldingForFade&&r.fader.isFinished()||!i.intersects(t,r.key)||c.add(l),r.isFading&&(r.fader.value()<1&&null!=r.parentTile&&r.parentTile.hasData()&&c.add(r.parentTile.id),d=!0);for(const l of this._tiles.keys())c.has(l)||this._releaseTile(l);return l.pool.release(t),this._previousLevel=n,!d}clear(){this._tiles.clear(),this._tileCache.clear(),this._visibleTiles.clear(),this._tilesFromCache.clear()}clearCache(){this._tileCache.clear(),this._tilesFromCache.clear()}getIntersectingTiles(e,s){const l=i(),r=[],o=new Set;for(const i of this._visibleTiles.values())this.tileInfoView.getTileBounds(l,i.key),t(e,l)&&(r.push(i),o.add(i.id));if(null!=s)for(const i of s){const e=i.tileKey.id;if(o.has(e))continue;const t=this._visibleTiles.get(e);null!=t&&(r.push(t),o.add(e))}return r}isFading(){for(const e of this._visibleTiles.values())if(e.isFading)return!0;return!1}_findPlaceholdersForMissingTiles(e,i){let t=0;for(const s of this._tiles.values())if(t+=this._addPlaceholderChild(s,e,i),Math.abs(1-t)<o)return null;return this._addPlaceholderParent(e.id,i)}_addPlaceholderChild(e,i,t){if(e.key.level<=i.level||!e.hasData())return 0;if(c(i,e.key)){this._addToContainer(e),t.add(e.id);return 1/(1<<2*(e.key.level-i.level))}return 0}_addPlaceholderParent(e,i){const t=this._tiles;let s=e;for(;;){if(s=a(s),!s||i.has(s))return null;const e=t.get(s);if(e?.hasData())return this._addToContainer(e),i.add(e.id),s}}_getOrAcquireTile(e){let i=this._tiles.get(e);return i||(i=this._tileCache.pop(e),i?this._tilesFromCache.add(i):i=this._applyPlaceholderOpacity(this.acquireTile(new r(e))),this._tiles.set(e,i),i)}_applyPlaceholderOpacity(e){const i=this._tiles;let t=e.id;for(;t&&(t=a(t),t);){const s=i.get(t);if(s?.hasData())return e.fader?.setStartOpacity(s.fader?.value()??1),e}const s=this._currentLevel<this._previousLevel?1:0;return e.fader?.setStartOpacity(s),e}_releaseTile(e){const i=this._tiles.get(e);this.releaseTile(i),this._removeFromContainer(i),this._tiles.delete(e),i.hasData()?this._tileCache.put(e,i,1):i.dispose()}_addToContainer(e){let i;const t=[],s=this._container;if(s.contains(e))return;const l=this._tilesFromCache.delete(e),r=this._visibleTiles;for(const o of r.values())this._canConnectDirectly(e,o)&&t.push(o),null==i&&this._canConnectDirectly(o,e)&&(i=o);if(null!=i){for(const s of t)i.childrenTiles.delete(s),e.childrenTiles.add(s),s.parentTile=e;i.childrenTiles.add(e),e.parentTile=i,l||e.fader.setStartOpacity(i.fader.value())}else{l||e.fader.reset();for(const i of t)e.childrenTiles.add(i),i.parentTile=e}l&&e.fader.finish(),r.set(e.id,e),s.addChild(e)}_removeFromContainer(e){if(this._visibleTiles.delete(e.id),this._container.removeChild(e),null!=e.parentTile){e.parentTile.childrenTiles.delete(e);for(const i of e.childrenTiles)e.parentTile.childrenTiles.add(i)}for(const i of e.childrenTiles)i.parentTile=e.parentTile;e.parentTile=null,e.childrenTiles.clear()}_canConnectDirectly(e,i){const t=e.key;let{level:s,row:l,col:r,world:o}=i.key;const n=this._visibleTiles;for(;s>0;){if(s--,l>>=1,r>>=1,t.level===s&&t.row===l&&t.col===r&&t.world===o)return!0;if(n.has(`${s}/${l}/${r}/${o}`))return!1}return!1}_updateCacheSize(e){const i=e.state.size;if(i[0]===this._viewSize[0]&&i[1]===this._viewSize[1])return;const t=Math.ceil(i[0]/s)+1,l=Math.ceil(i[1]/s)+1;this._viewSize[0]=i[0],this._viewSize[1]=i[1],this._tileCache.maxSize=5*t*l}}function a(e){const[i,t,s,l]=e.split("/"),r=parseInt(i,10);return 0===r?null:`${r-1}/${parseInt(t,10)>>1}/${parseInt(s,10)>>1}/${parseInt(l,10)}`}function c(e,i){const t=i.level-e.level;return e.row===i.row>>t&&e.col===i.col>>t&&e.world===i.world}export{n as TileManager};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../../Graphic.js";import{getOrCreateMapValue as t}from"../../../../core/MapUtils.js";import s from"../../../../core/pbf.js";import{PooledRBush as r}from"../../../../core/libs/rbush/PooledRBush.js";import
|
|
2
|
+
import e from"../../../../Graphic.js";import{getOrCreateMapValue as t}from"../../../../core/MapUtils.js";import s from"../../../../core/pbf.js";import{PooledRBush as r}from"../../../../core/libs/rbush/PooledRBush.js";import o from"../../../../graphic/VectorTileGraphicOrigin.js";import{tileSizeInPixels as i,tileSizeInTileUnits as l}from"./constants.js";import n from"./Feature.js";import{getTileMargins as a}from"./GeometryUtils.js";import y from"./SourceLayerData.js";import{IndexItem as c}from"./style/StyleLayer.js";import{getBbox as u}from"../../support/hitTestUtils.js";const h=(e,t)=>{const s=e.vtlSymbol.sourceTile,r=t.vtlSymbol.sourceTile;return s.level!==r.level?s.level-r.level:s.row!==r.row?s.row-r.row:s.col!==r.col?s.col-r.col:e.styleLayerUID-t.styleLayerUID};class m{constructor(e,t,s,r,o){this.tileKey=e,this._tileLayerData=t,this._styleRepository=s,this._tileHandler=r,this._parentLayer=o,this._index=null,this._tileKeyToPBF=new Map}static create(e,t,s,r,o){return new m(e,t,s,r,o)}clear(){this._index?.clear(),this._tileKeyToPBF.clear()}async queryAttributes(e,t,s){if(0===this._tileLayerData.size||!this._styleRepository||!this._tileHandler)return[];null===this._index&&(this._index=new r(100,f),await this._indexLayers());const o=u([e]);if("point"===s){const s=e[0][0],r=e[0][1];o[0]=s-t,o[1]=r-t,o[2]=s+t,o[3]=r+t}return this._queryIndex(o)}async getSymbolHitResults(e,t){return t&&t?.length>0&&(e=await this._getSymbolsAttributes(e,t)),e}async _indexLayers(){const e=this.tileKey,t=this._styleRepository.layers,s=await this._getTilePayload(e);for(const[r,o]of this._tileLayerData){const i=t[r],l=s.find(e=>e.sourceName===i.source);if(!l)continue;const{protobuff:n,key:a}=l;if(3!==o.type){const t=1<<e.level-a.level,s=e.row-a.row*t,r=e.col-a.col*t;this._indexLayer(i,n,e.level,t,s,r)}}}_indexLayer(e,t,r,o,u,h){const m=e.sourceLayer,f=e.getFeatureFilter(),p=r,d=r+1,_=a(p),g=new s(new Uint8Array(t),new DataView(t));for(;g.next();)switch(g.tag()){case 3:{const t=g.getMessage(),s=new y(t);if(t.release(),s.name!==m)continue;const a=s.getData(),b=s.extent/o,w=b*h-_,x=b*u-_,L=w+b+2*_,T=x+b+2*_,v=b/i,D=l/b,I=b*h,S=b*u;for(;a.nextTag(2);){const t=a.getMessage(),o=new n(t,s);if(t.release(),f&&!f.filter(o,r))continue;const i=o.values||{},l=i._minzoom,y=i._maxzoom;if(l&&l>=10*d||y&&y<=10*p)continue;const u=e.getFeatureInflatedBounds(o,p,s.extent,v);null==u||u[0]>L||u[1]>T||u[2]<w||u[3]<x||(u[0]=(u[0]-I)*D,u[1]=(u[1]-S)*D,u[2]=(u[2]-I)*D,u[3]=(u[3]-S)*D,this._index.insert(new c(e,o,u,D,I,S)))}break}default:g.skip()}g.release()}async _getSymbolsAttributes(e,t){if(!t||0===t.length)return e;const s=[];if(t.sort(h),t.length>0){let e=0,{styleLayerUID:r}=t[0];for(let i=1;i<t.length;i++){const{styleLayerUID:o}=t[i];o!==r&&(s.push({from:e,to:i,styleLayerUID:r,sourceTileKey:t[i-1].vtlSymbol.sourceTile}),e=i,r=o)}const o=t.length-1;s.push({from:e,to:t.length,styleLayerUID:r,sourceTileKey:t[o].vtlSymbol.sourceTile})}const r=this._styleRepository.layers;for(const o of s){const s=await this._getTilePayload(o.sourceTileKey),i=r[o.styleLayerUID],l=!!i&&s.find(e=>e.sourceName===i.source);l&&this._addSymbolsAttributes(e,t.slice(o.from,o.to).map(e=>e.vtlSymbol.featureIndex),o.styleLayerUID,l)}return e}_addSymbolsAttributes(t,s,r,i){const l=this._styleRepository.layers,n=i.key,a=this.tileKey,y=1<<a.level-n.level,c=a.row-n.row*y,u=a.col-n.col*y,h=this._getSymbolAttributes(i.protobuff,s,r,y,c,u);for(const{attributes:m,tilePoint:f}of h)t.push({layerId:l[r].id,layerIndex:r,graphic:new e({attributes:m,origin:new o(this._parentLayer,l[r].id,r),geometry:null}),tilePoint:f})}_getSymbolAttributes(e,t,r,o,i,a){const c=[],u=this._styleRepository.layers;let h=0;t.sort((e,t)=>e-t);const m=new s(new Uint8Array(e),new DataView(e));for(;m.next();)switch(m.tag()){case 3:{const e=m.getMessage(),s=new y(e);if(e.release(),s.name!==u[r].sourceLayer)continue;const f=s.getData(),p=s.extent/o,d=l/p,_=p*a,g=p*i;let b=0;for(;f.nextTag(2);){const e=f.getMessage();if(b++===t[h]){const t=new n(e,s),r=t.values,o=t.getGeometry(),i=null!=o?[d*(o[0][0].x-_),d*(o[0][0].y-g)]:null;c.push({attributes:r,tilePoint:i}),h++}if(e.release(),h===t.length)return c}break}default:m.skip()}return m.release(),c}_queryIndex(e){const t=[];return this._index?.search({minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]},e=>{t.push(e)}),t}async _getTilePayload(e){return t(this._tileKeyToPBF,e.id,()=>this._tileHandler.fetchTilePBFs(e)).then(e=>e)}}const f=e=>({minX:e.bounds[0],minY:e.bounds[1],maxX:e.bounds[2],maxY:e.bounds[3]});export{m as default};
|