@arcgis/core 4.23.0-next.20220104 → 4.23.0-next.20220119
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/components/assets/calcite-date-picker/nls/bg.json +31 -0
- package/assets/components/assets/calcite-icon/centerAlign16.json +1 -0
- package/assets/components/assets/calcite-icon/centerAlign24.json +1 -0
- package/assets/components/assets/calcite-icon/centerAlign32.json +1 -0
- package/assets/components/assets/calcite-icon/checkSquareF16.json +1 -0
- package/assets/components/assets/calcite-icon/checkSquareF24.json +1 -0
- package/assets/components/assets/calcite-icon/checkSquareF32.json +1 -0
- package/assets/components/assets/calcite-icon/convert16.json +1 -0
- package/assets/components/assets/calcite-icon/convert24.json +1 -0
- package/assets/components/assets/calcite-icon/convert32.json +1 -0
- package/assets/components/assets/calcite-icon/explore16.json +1 -0
- package/assets/components/assets/calcite-icon/explore24.json +1 -0
- package/assets/components/assets/calcite-icon/explore32.json +1 -0
- package/assets/components/assets/calcite-icon/formDropdown16.json +1 -0
- package/assets/components/assets/calcite-icon/formDropdown24.json +1 -0
- package/assets/components/assets/calcite-icon/formDropdown32.json +1 -0
- package/assets/components/assets/calcite-icon/language16.json +1 -0
- package/assets/components/assets/calcite-icon/language24.json +1 -0
- package/assets/components/assets/calcite-icon/language32.json +1 -0
- package/assets/components/assets/calcite-icon/languageTranslate16.json +1 -0
- package/assets/components/assets/calcite-icon/languageTranslate24.json +1 -0
- package/assets/components/assets/calcite-icon/languageTranslate32.json +1 -0
- package/assets/components/assets/calcite-icon/leftAlign16.json +1 -0
- package/assets/components/assets/calcite-icon/leftAlign24.json +1 -0
- package/assets/components/assets/calcite-icon/leftAlign32.json +1 -0
- package/assets/components/assets/calcite-icon/lineSolid4.json +1 -0
- package/assets/components/assets/calcite-icon/partlyCloudy16.json +1 -0
- package/assets/components/assets/calcite-icon/partlyCloudy24.json +1 -0
- package/assets/components/assets/calcite-icon/partlyCloudy32.json +1 -0
- package/assets/components/assets/calcite-icon/rightAlign16.json +1 -0
- package/assets/components/assets/calcite-icon/rightAlign24.json +1 -0
- package/assets/components/assets/calcite-icon/rightAlign32.json +1 -0
- package/assets/components/assets/calcite-icon/screenshotMode16.json +1 -0
- package/assets/components/assets/calcite-icon/screenshotMode24.json +1 -0
- package/assets/components/assets/calcite-icon/screenshotMode32.json +1 -0
- package/assets/components/assets/calcite-icon/squareF16.json +1 -0
- package/assets/components/assets/calcite-icon/squareF24.json +1 -0
- package/assets/components/assets/calcite-icon/squareF32.json +1 -0
- package/assets/components/assets/calcite-icon/terminal16.json +1 -0
- package/assets/components/assets/calcite-icon/terminal24.json +1 -0
- package/assets/components/assets/calcite-icon/terminal32.json +1 -0
- package/assets/components/assets/calcite-icon/touch16.json +1 -0
- package/assets/components/assets/calcite-icon/touch24.json +1 -0
- package/assets/components/assets/calcite-icon/touch32.json +1 -0
- package/assets/components/assets/calcite-icon/xHexagon16.json +1 -0
- package/assets/components/assets/calcite-icon/xHexagon24.json +1 -0
- package/assets/components/assets/calcite-icon/xHexagon32.json +1 -0
- package/assets/components/assets/calcite-icon/xHexagonF16.json +1 -0
- package/assets/components/assets/calcite-icon/xHexagonF24.json +1 -0
- package/assets/components/assets/calcite-icon/xHexagonF32.json +1 -0
- package/assets/components/assets/calcite-icon/xOctagonF16.json +1 -0
- package/assets/components/assets/calcite-icon/xOctagonF24.json +1 -0
- package/assets/components/assets/calcite-icon/xOctagonF32.json +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/01ef8de7f76a8c61b464.js +1 -0
- package/assets/esri/core/workers/chunks/05db312a0ca6bd3f014a.js +1 -0
- package/assets/esri/core/workers/chunks/09da224052976e290828.js +1 -0
- package/assets/esri/core/workers/chunks/{2c9af2ebd72d9b55329b.js → 0f254c3e91e8fee55f28.js} +1 -1
- package/assets/esri/core/workers/chunks/{ce5ca5e95b2378ec55b9.js → 1305ef8717da6e902a55.js} +1 -1
- package/assets/esri/core/workers/chunks/{1a2e5b267a0cbf8553b7.js → 1b28042fdf3f4dbc8ea5.js} +1 -1
- package/assets/esri/core/workers/chunks/20411bb8e04703962ce6.js +1 -0
- package/assets/esri/core/workers/chunks/21a77eed1a4ef5b0ff08.js +1 -0
- package/assets/esri/core/workers/chunks/2416f8bf8bbd2ec786ab.js +1 -0
- package/assets/esri/core/workers/chunks/25a3e9bc0b4c7e0d3165.js +1 -0
- package/assets/esri/core/workers/chunks/{9c417740bf3707a0d465.js → 2c607d30ff8ca1b61286.js} +1 -1
- package/assets/esri/core/workers/chunks/2e445a8735ea2adb641a.js +1 -0
- package/assets/esri/core/workers/chunks/3564e14010953def6df9.js +1 -0
- package/assets/esri/core/workers/chunks/37a7bd30352b1309b8f8.js +1 -0
- package/assets/esri/core/workers/chunks/390d9021169e65c10eb8.js +1 -0
- package/assets/esri/core/workers/chunks/{3d5169ea9810d10caf0d.js → 3a9740dccda6a733313c.js} +1 -1
- package/assets/esri/core/workers/chunks/403c7d64f12f00330d88.js +1 -0
- package/assets/esri/core/workers/chunks/43cdff2418325e163420.js +1 -0
- package/assets/esri/core/workers/chunks/4409d77c9734de4e82a7.js +1 -0
- package/assets/esri/core/workers/chunks/{f52b6d5037e4205b035c.js → 47395d225229d237f0ac.js} +1 -1
- package/assets/esri/core/workers/chunks/4b69129c0557852d9b3d.js +1 -0
- package/assets/esri/core/workers/chunks/57c67e260267a1dbc5e3.js +1 -0
- package/assets/esri/core/workers/chunks/5ac4c1d54b94c7d87835.js +1 -0
- package/assets/esri/core/workers/chunks/60371c0f750cde87656d.js +1 -0
- package/assets/esri/core/workers/chunks/618076e6de605873e433.js +1 -0
- package/assets/esri/core/workers/chunks/{ba6fdaed6c315dc13981.js → 625d2663daa8e0cf64b0.js} +1 -1
- package/assets/esri/core/workers/chunks/631c5b514bb73782c570.js +1 -0
- package/assets/esri/core/workers/chunks/{3a2b2dc3e938d53faa30.js → 64276aacaafa4c8a15bd.js} +1 -1
- package/assets/esri/core/workers/chunks/{75466e0c8c8da499b150.js → 662d13f68cf3ec92439b.js} +1 -1
- package/assets/esri/core/workers/chunks/67162b3e2cc1b5dc6818.js +1 -0
- package/assets/esri/core/workers/chunks/6c1e92ff4c732dfda756.js +1 -0
- package/assets/esri/core/workers/chunks/6cdfe175c965918b741b.js +1 -0
- package/assets/esri/core/workers/chunks/75d53b28afe732c459b2.js +1 -0
- package/assets/esri/core/workers/chunks/76eef4799f6c5fff7e2d.js +1 -0
- package/assets/esri/core/workers/chunks/{ea05f870dda27bca4fe8.js → 7a8764ae8a0041e1151d.js} +2 -2
- package/assets/esri/core/workers/chunks/{ea05f870dda27bca4fe8.js.LICENSE.txt → 7a8764ae8a0041e1151d.js.LICENSE.txt} +1 -1
- package/assets/esri/core/workers/chunks/7e596478507466953e65.js +1 -0
- package/assets/esri/core/workers/chunks/85e27fd949475f9a6bbc.js +1 -0
- package/assets/esri/core/workers/chunks/8967288145f8fbd20e7d.js +1 -0
- package/assets/esri/core/workers/chunks/8cbb04a9065aa3756638.js +1 -0
- package/assets/esri/core/workers/chunks/{9846098704ee38bf6350.js → 8fdd5bca3716816d359b.js} +1 -1
- package/assets/esri/core/workers/chunks/96ab518eb6ba11333dee.js +1 -0
- package/assets/esri/core/workers/chunks/99a777693e4539f0b03b.js +1 -0
- package/assets/esri/core/workers/chunks/9d77467aa71d345fc1b6.js +1 -0
- package/assets/esri/core/workers/chunks/{4beba242e7540ee3182b.js → 9d9dffc8884d66a258e4.js} +1 -1
- package/assets/esri/core/workers/chunks/9f8b7b6b4e95f9a794fc.js +1 -0
- package/assets/esri/core/workers/chunks/{a721342a32541717324d.js → a28b53c61bddefb6616e.js} +1 -1
- package/assets/esri/core/workers/chunks/{9b7c51ff3d2b42aa62f5.js → a7b1b75643ed31489495.js} +1 -1
- package/assets/esri/core/workers/chunks/a8b13fb804bb775e4967.js +1 -0
- package/assets/esri/core/workers/chunks/a8c13529367c037cdd94.js +1 -0
- package/assets/esri/core/workers/chunks/a960074644c3722be71e.js +1 -0
- package/assets/esri/core/workers/chunks/ac8dca61ade28c542ae2.js +1 -0
- package/assets/esri/core/workers/chunks/ad081d8e49e7f90c3c26.js +1 -0
- package/assets/esri/core/workers/chunks/b10fcbe1393c812fc219.js +1 -0
- package/assets/esri/core/workers/chunks/{2a39d520b192b8e552b5.js → b2ae5fc4f787ea568b88.js} +1 -1
- package/assets/esri/core/workers/chunks/{b87bc1481a49b38109f4.js → b9c177524b3e7de1ffd1.js} +1 -1
- package/assets/esri/core/workers/chunks/b9de831ac379cf1d2969.js +1 -0
- package/assets/esri/core/workers/chunks/ba615f118a3a8970ef25.js +1 -0
- package/assets/esri/core/workers/chunks/{7c1b9ae141112a63b446.js → ba6654a885be4b7a43f0.js} +1 -1
- package/assets/esri/core/workers/chunks/be2b7cce79fd41627931.js +1 -0
- package/assets/esri/core/workers/chunks/c13dfdd548dcb1bdb294.js +1 -0
- package/assets/esri/core/workers/chunks/c36f84daa7736878418d.js +1 -0
- package/assets/esri/core/workers/chunks/{b58eba403bd517a7bb15.js → c3eca92d02958732e141.js} +1 -1
- package/assets/esri/core/workers/chunks/c6f94b92e866b881d9b9.js +1 -0
- package/assets/esri/core/workers/chunks/{b51261a9a9ab62388839.js → c8f976e53e232e8da9cc.js} +39 -29
- package/assets/esri/core/workers/chunks/cbb291412fd1a5261aa9.js +1 -0
- package/assets/esri/core/workers/chunks/d1454155ee1b8a421cbb.js +1 -0
- package/assets/esri/core/workers/chunks/{0cd583c3233573cb8468.js → d24c4fbc567486b1188f.js} +1 -1
- package/assets/esri/core/workers/chunks/d52108864136c5a8a618.js +1 -0
- package/assets/esri/core/workers/chunks/dd433c160f7a0c120b82.js +1 -0
- package/assets/esri/core/workers/chunks/de03439ca2c9782bf325.js +1 -0
- package/assets/esri/core/workers/chunks/e2d68bcd2f99a65387bf.js +1 -0
- package/assets/esri/core/workers/chunks/e59764ee8cf25d4f74e2.js +1 -0
- package/assets/esri/core/workers/chunks/e6df9839b551569fbc62.js +1 -0
- package/assets/esri/core/workers/chunks/{2f66fcb8670b108af549.js → ed0bcc66fb1e0ee75a4b.js} +1 -1
- package/assets/esri/core/workers/chunks/{6deac533bb455be4004b.js → ef8b75b92cf549e0507e.js} +1 -1
- package/assets/esri/core/workers/chunks/f7fc4c993536e62f7f3e.js +1 -0
- package/assets/esri/themes/base/icons/fonts/CalciteWebCoreIcons.svg +1 -0
- package/assets/esri/themes/base/icons/fonts/CalciteWebCoreIcons.ttf +0 -0
- package/assets/esri/themes/base/icons/fonts/CalciteWebCoreIcons.woff +0 -0
- package/assets/esri/themes/base/icons/selection.json +1 -1
- package/assets/esri/themes/base/icons/style.css +4 -0
- package/assets/esri/themes/base/icons/style.scss +6 -0
- package/assets/esri/themes/base/icons/variables.scss +1 -0
- package/assets/esri/themes/base/widgets/_Weather.scss +1 -1
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/dark-blue/main.css +1 -1
- package/assets/esri/themes/dark-green/main.css +1 -1
- package/assets/esri/themes/dark-purple/main.css +1 -1
- package/assets/esri/themes/dark-red/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/themes/light-blue/main.css +1 -1
- package/assets/esri/themes/light-green/main.css +1 -1
- package/assets/esri/themes/light-purple/main.css +1 -1
- package/assets/esri/themes/light-red/main.css +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_nb.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
- package/assets/esri/widgets/ElevationProfile/t9n/ElevationProfile_ja.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_ar.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_bg.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_bs.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_ca.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_cs.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_da.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_de.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_el.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_es.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_et.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_fi.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_fr.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_he.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_hr.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_hu.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_id.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_it.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_ja.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_ko.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_lt.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_lv.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_nb.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_nl.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_pl.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_pt-BR.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_pt-PT.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_ro.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_ru.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_sk.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_sl.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_sr.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_sv.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_th.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_tr.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_uk.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_vi.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_zh-CN.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_zh-HK.json +1 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_zh-TW.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_cs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_el.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lv.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ar.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_bg.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_bs.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ca.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_cs.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_da.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_de.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_el.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_es.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_et.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_fi.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_fr.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_he.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_hr.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_hu.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_id.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_it.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ja.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ko.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_lt.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_lv.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_nb.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_nl.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_pl.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_pt-BR.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_pt-PT.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ro.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ru.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_sk.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_sl.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_sr.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_sv.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_th.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_tr.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_uk.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_vi.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_zh-CN.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_zh-HK.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_zh-TW.json +1 -1
- package/chunks/Clouds.glsl.js +14 -14
- package/chunks/DefaultMaterial.glsl.js +2 -2
- package/chunks/HUDMaterial.glsl.js +22 -21
- package/chunks/RibbonLine.glsl.js +10 -14
- package/chunks/persistableUrlUtils.js +1 -1
- package/chunks/vec32.js +1 -1
- package/chunks/vec42.js +1 -1
- package/core/urlUtils.js +1 -1
- package/form/elements/FieldElement.js +1 -1
- package/geometry/support/buffer/math/common.js +1 -1
- package/interfaces.d.ts +100 -57
- package/layers/FeatureLayer.js +1 -1
- package/layers/SubtypeGroupLayer.js +1 -1
- package/layers/VectorTileLayer.js +1 -1
- package/layers/WMSLayer.js +1 -1
- package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
- package/layers/graphics/data/QueryEngineCapabilities.js +1 -1
- package/layers/graphics/sources/OGCFeatureSource.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/OperationalLayer.js +1 -1
- package/layers/ogc/crsUtils.js +5 -0
- package/layers/support/RasterFunction.js +1 -1
- package/layers/support/capabilities.js +1 -1
- package/layers/support/rasterDatasets/WCSRaster.js +1 -1
- package/layers/support/rasterDatasets/wcsCoverageParser.js +1 -1
- package/layers/support/vectorTileLayerLoader.js +1 -1
- package/layers/support/wmsUtils.js +1 -1
- package/layers/support/wmtsUtils.js +1 -1
- package/package.json +5 -5
- package/rasterRenderers.js +1 -1
- package/renderers/support/RasterSymbolizer.js +1 -1
- package/renderers/support/rasterRendererHelper.js +1 -1
- package/request.js +1 -1
- package/rest/print.js +1 -1
- package/rest/support/ImageIdentifyParameters.js +1 -1
- package/rest/support/StatisticDefinition.js +1 -1
- package/smartMapping/raster/renderers/classBreaks.js +1 -1
- package/smartMapping/renderers/univariateColorSize.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
- package/support/featureFlags.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/ExtrudeSymbol3DLayer.js +1 -1
- package/symbols/Font.js +1 -1
- package/symbols/IconSymbol3DLayer.js +1 -1
- package/symbols/ObjectSymbol3DLayer.js +1 -1
- package/symbols/PathSymbol3DLayer.js +1 -1
- package/symbols/TextSymbol.js +1 -1
- package/symbols/TextSymbol3DLayer.js +1 -1
- package/symbols/support/Symbol3DHalo.js +1 -1
- package/symbols/support/Symbol3DMaterial.js +1 -1
- package/symbols/support/constants.js +5 -0
- package/symbols/support/utils.js +1 -1
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/shaders/VTLMaterialManager.js +1 -1
- package/views/2d/engine/vectorTiles/style/VectorTileSource.js +1 -1
- package/views/2d/engine/vectorTiles/style/VectorTilesRequestManager.js +5 -0
- package/views/2d/engine/webgl/BitBlitRenderer.js +1 -1
- package/views/2d/engine/webgl/MaterialManager.js +1 -1
- package/views/2d/engine/webgl/alignmentUtils.js +1 -1
- package/views/2d/engine/webgl/effects/BlendEffect.js +1 -1
- package/views/2d/engine/webgl/materialKey/MaterialKey.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLLabelTemplate.js +1 -1
- package/views/2d/engine/webgl/shaders/BlendPrograms.js +1 -1
- package/views/2d/engine/webgl/shaders/MaterialPrograms.js +1 -1
- package/views/2d/layers/BaseLayerView2D.js +1 -1
- package/views/2d/layers/BaseLayerViewGL2D.js +1 -1
- package/views/2d/layers/GraphicsLayerView2D.js +1 -1
- package/views/2d/layers/ImageryLayerView2D.js +1 -1
- package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/layers/MapNotesLayerView2D.js +1 -1
- package/views/2d/layers/RouteLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/VectorTileLayerView2D.js +1 -1
- package/views/2d/layers/WMSLayerView2D.js +1 -1
- package/views/2d/layers/WMTSLayerView2D.js +1 -1
- package/views/2d/layers/features/support/AttributeStore.js +1 -1
- package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
- package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
- package/views/2d/support/engineHelpers.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
- package/views/3d/environment/CloudyWeather.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/FoggyWeather.js +1 -1
- package/views/3d/environment/NoiseTextureAtlas.js +1 -1
- package/views/3d/environment/RainyWeather.js +1 -1
- package/views/3d/environment/Stars.js +1 -1
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/DynamicLayerView3D.js +1 -1
- package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/ImageryLayerView3D.js +1 -1
- package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
- package/views/3d/layers/MapImageLayerView3D.js +1 -1
- package/views/3d/layers/OGCFeatureLayerView3D.js +1 -1
- package/views/3d/layers/PointCloudLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/SceneLayerView3D.js +1 -1
- package/views/3d/layers/VectorTileLayerView3D.js +1 -1
- package/views/3d/layers/WMSLayerView3D.js +1 -1
- package/views/3d/layers/WMTSLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureLikeLayerView.js +1 -1
- package/views/3d/layers/graphics/Graphics3DGraphicLikeLayerView.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPointSymbol.js +1 -1
- package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/QueryEngine.js +1 -1
- package/views/3d/layers/support/FeatureTileTree3DDebugger.js +1 -1
- package/views/3d/state/controllers/RotateController.js +1 -1
- package/views/3d/state/controllers/global/PinchAndPanController.js +1 -1
- package/views/3d/state/controllers/global/ZoomController.js +1 -1
- package/views/3d/state/controllers/global/ZoomStepController.js +1 -1
- package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
- package/views/3d/state/controllers/local/ZoomStepController.js +1 -1
- package/views/3d/support/debugFlags.js +1 -1
- package/views/3d/support/sunUtils.js +1 -1
- package/views/3d/terrain/Overlay.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js +7 -1
- package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +28 -24
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +19 -14
- package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
- package/views/3d/webgl-engine/lib/InstanceParameters.js +5 -0
- package/views/3d/webgl-engine/lib/{localOrigin.js → LocalOriginFactory.js} +0 -0
- package/views/3d/webgl-engine/lib/Program.js +1 -1
- package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/RenderTargetHelper.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
- package/views/3d/webgl-engine/lib/SSAOHelper.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderParameters.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTreeTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/LayerViewManager.js +1 -1
- package/views/MapView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
- package/views/interactive/snapping/featureSources/FeatureServiceSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/GraphicsSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
- package/views/layers/ImageryTileLayerView.js +1 -1
- package/views/layers/LayerView.js +1 -1
- package/views/layers/OGCFeatureLayerView.js +1 -1
- package/views/layers/RefreshableLayerView.js +1 -1
- package/views/overlay/ViewOverlay.js +1 -1
- package/views/support/DefaultsFromMap.js +1 -1
- package/views/support/WatchUpdatingTracking.js +1 -1
- package/views/support/imageReprojection.js +1 -1
- package/views/webgl/BufferObject.js +1 -1
- package/views/webgl/ContextState.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/Program.js +1 -1
- package/views/webgl/ProgramCache.js +1 -1
- package/views/webgl/ProgramTemplate.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/ShaderTranspiler.js +1 -1
- package/views/webgl/UniformBufferLayout.js +5 -0
- package/views/webgl/UniformBufferObject.js +5 -0
- package/views/webgl/enums.js +1 -1
- package/views/webgl/rasterUtils.js +1 -1
- package/views/webgl/storageLayouts.js +5 -0
- package/views/webgl/testDoublePrecisionArithmetic.js +1 -1
- package/views/webgl/testFloatBufferBlend.js +1 -1
- package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
- package/views/webgl/testSamplerPrecision.js +1 -1
- package/views/webgl/tests/SimpleDraw.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesViewModel.js +1 -1
- package/widgets/Editor/BatchCreateWorkflow.js +1 -1
- package/widgets/Editor/CreateWorkflow.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/ElevationProfile/components/SettingsButton.js +1 -1
- package/widgets/ElevationProfile.js +1 -1
- package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/InputField.js +1 -1
- package/widgets/FeatureForm/InputFieldGroup.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTemplates.js +1 -1
- package/widgets/FloorFilter.js +1 -1
- package/widgets/LayerList/ListItemPanel.js +1 -1
- package/widgets/LayerList/support/layerListUtils.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Popup.js +1 -1
- package/widgets/Print.js +1 -1
- package/widgets/Search.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Weather/CoverageSlider.js +5 -0
- package/widgets/Weather/WeatherViewModel.js +1 -1
- package/widgets/Weather/css.js +1 -1
- package/widgets/Weather.js +1 -1
- package/assets/esri/core/workers/chunks/0881ce46b10362861f87.js +0 -1
- package/assets/esri/core/workers/chunks/0c0a02770eeeb3e28ea1.js +0 -1
- package/assets/esri/core/workers/chunks/0d2effbd84a9482eb639.js +0 -1
- package/assets/esri/core/workers/chunks/0f04246c1b591a3ac74d.js +0 -1
- package/assets/esri/core/workers/chunks/1ac6be0dc25e16c75d06.js +0 -1
- package/assets/esri/core/workers/chunks/1f8110ea12d65ca94b55.js +0 -1
- package/assets/esri/core/workers/chunks/2025d0fd61a64876c81b.js +0 -1
- package/assets/esri/core/workers/chunks/241859d74c0daac62e11.js +0 -1
- package/assets/esri/core/workers/chunks/331be347c1b1ca0be2d2.js +0 -1
- package/assets/esri/core/workers/chunks/39af317388ecebb4387d.js +0 -1
- package/assets/esri/core/workers/chunks/39be2893a7dbdecfd65a.js +0 -1
- package/assets/esri/core/workers/chunks/3a20f66b0b7d08064e34.js +0 -1
- package/assets/esri/core/workers/chunks/445099d037affd139ed0.js +0 -1
- package/assets/esri/core/workers/chunks/45848fecec88ed2da33d.js +0 -1
- package/assets/esri/core/workers/chunks/48d3a3abc53abe6a4017.js +0 -1
- package/assets/esri/core/workers/chunks/5005b8c1fdd5cb9a4c19.js +0 -1
- package/assets/esri/core/workers/chunks/52e4c367c72ea7cc3457.js +0 -1
- package/assets/esri/core/workers/chunks/5d8170f6207dbeb4de1b.js +0 -1
- package/assets/esri/core/workers/chunks/642c38ac00a962f35d44.js +0 -1
- package/assets/esri/core/workers/chunks/64459604505647e9c714.js +0 -1
- package/assets/esri/core/workers/chunks/653d1550dd1a4867a9fc.js +0 -1
- package/assets/esri/core/workers/chunks/65f73fbbc3c7c60c6d3d.js +0 -1
- package/assets/esri/core/workers/chunks/6db7081d344bea26ef64.js +0 -1
- package/assets/esri/core/workers/chunks/6e13dab8ec43f7494297.js +0 -1
- package/assets/esri/core/workers/chunks/7bd4c3ee43fb038b88d8.js +0 -1
- package/assets/esri/core/workers/chunks/803de5097a8a2c4b58a8.js +0 -1
- package/assets/esri/core/workers/chunks/8298231a0fd0129b0d5c.js +0 -1
- package/assets/esri/core/workers/chunks/8500c6c011400af1b7bd.js +0 -1
- package/assets/esri/core/workers/chunks/8b322a2a47dfdbb59b45.js +0 -1
- package/assets/esri/core/workers/chunks/8f83bebef9174c3f15da.js +0 -1
- package/assets/esri/core/workers/chunks/904332faa22bc0e876cb.js +0 -1
- package/assets/esri/core/workers/chunks/950565d1e682fc4072e1.js +0 -1
- package/assets/esri/core/workers/chunks/a247ddd84245c81112c8.js +0 -1
- package/assets/esri/core/workers/chunks/a9ffa806df20130ecfb6.js +0 -1
- package/assets/esri/core/workers/chunks/af13e534e4160636bd3d.js +0 -1
- package/assets/esri/core/workers/chunks/b2f62234ebb8b6158baa.js +0 -1
- package/assets/esri/core/workers/chunks/b5bb7cfa26b1f0cec67a.js +0 -1
- package/assets/esri/core/workers/chunks/b8666d1a4e4fff7a4703.js +0 -1
- package/assets/esri/core/workers/chunks/bea1da9e3f878e0e2c83.js +0 -1
- package/assets/esri/core/workers/chunks/c1b6c31fa3ec1542f996.js +0 -1
- package/assets/esri/core/workers/chunks/c32a4fbdc87225f84019.js +0 -1
- package/assets/esri/core/workers/chunks/c67fea81f69a60c0eaef.js +0 -1
- package/assets/esri/core/workers/chunks/d336afd5890dcdbf5341.js +0 -1
- package/assets/esri/core/workers/chunks/da69e3e5949fe1716e34.js +0 -1
- package/assets/esri/core/workers/chunks/daa9c450b2e2a5371249.js +0 -1
- package/assets/esri/core/workers/chunks/dd63ba77b7e4c3c9c594.js +0 -1
- package/assets/esri/core/workers/chunks/dfa57982d28c9aeb97b9.js +0 -1
- package/assets/esri/core/workers/chunks/e01812116b27874948f0.js +0 -1
- package/assets/esri/core/workers/chunks/e5c9d8482b913cf3580a.js +0 -1
- package/assets/esri/core/workers/chunks/eeadd92f0bede9fc8745.js +0 -1
- package/assets/esri/core/workers/chunks/fbb67cb6224aed2cce16.js +0 -1
- package/assets/esri/core/workers/chunks/feeaf61424336e9eac88.js +0 -1
- package/assets/esri/core/workers/chunks/ff02295329a8986d0568.js +0 -1
- package/views/2d/engine/webgl/mesh/templates/meshUtils.js +0 -5
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../core/Error.js";import{isSome as t}from"../../core/maybe.js";import n from"../../geometry/Extent.js";import i from"../../geometry/Point.js";import{getReferenceEllipsoidFromWKID as r}from"../../geometry/projectionEllipsoid.js";import o from"../../geometry/support/WKIDUnitConversion.js";import{visitXML as l}from"../ogc/xmlUtils.js";import s from"./TileInfo.js";const a=90.71428571428571,c=[[3819,3819],[3821,3824],[3889,3889],[3906,3906],[4001,4025],[4027,4036],[4039,4047],[4052,4055],[4074,4075],[4080,4081],[4120,4176],[4178,4185],[4188,4216],[4218,4289],[4291,4304],[4306,4319],[4322,4326],[4463,4463],[4470,4470],[4475,4475],[4483,4483],[4490,4490],[4555,4558],[4600,4646],[4657,4765],[4801,4811],[4813,4821],[4823,4824],[4901,4904],[5013,5013],[5132,5132],[5228,5229],[5233,5233],[5246,5246],[5252,5252],[5264,5264],[5324,5340],[5354,5354],[5360,5360],[5365,5365],[5370,5373],[5381,5381],[5393,5393],[5451,5451],[5464,5464],[5467,5467],[5489,5489],[5524,5524],[5527,5527],[5546,5546],[2044,2045],[2081,2083],[2085,2086],[2093,2093],[2096,2098],[2105,2132],[2169,2170],[2176,2180],[2193,2193],[2200,2200],[2206,2212],[2319,2319],[2320,2462],[2523,2549],[2551,2735],[2738,2758],[2935,2941],[2953,2953],[3006,3030],[3034,3035],[3038,3051],[3058,3059],[3068,3068],[3114,3118],[3126,3138],[3150,3151],[3300,3301],[3328,3335],[3346,3346],[3350,3352],[3366,3366],[3389,3390],[3416,3417],[3833,3841],[3844,3850],[3854,3854],[3873,3885],[3907,3910],[4026,4026],[4037,4038],[4417,4417],[4434,4434],[4491,4554],[4839,4839],[5048,5048],[5105,5130],[5253,5259],[5269,5275],[5343,5349],[5479,5482],[5518,5519],[5520,5520],[20004,20032],[20064,20092],[21413,21423],[21473,21483],[21896,21899],[22171,22177],[22181,22187],[22191,22197],[25884,25884],[27205,27232],[27391,27398],[27492,27492],[28402,28432],[28462,28492],[30161,30179],[30800,30800],[31251,31259],[31275,31279],[31281,31290],[31466,31700]];function u(t,n){var i,r;t=t.replace(/ows:/gi,"");const o=(new DOMParser).parseFromString(t,"text/xml").documentElement,l=new Map,s=new Map,a=f("Contents",o);if(!a)throw new e("wmtslayer:wmts-capabilities-xml-is-not-valid");const c=f("OperationsMetadata",o),u=null==c?void 0:c.querySelector("[name='GetTile']"),p=null==u?void 0:u.getElementsByTagName("Get"),d=p&&Array.prototype.slice.call(p),g=null!=(i=(null==n||null==(r=n.url)?void 0:r.indexOf("https"))>-1)&&i;let C,M,T=n.serviceMode,y=n&&n.url;if(d&&d.length&&d.some((e=>{const t=f("Constraint",e);return!t||h("AllowedValues","Value",T,t)?(y=e.attributes[0].nodeValue,!0):(!t||h("AllowedValues","Value","RESTful",t)||h("AllowedValues","Value","REST",t)?M=e.attributes[0].nodeValue:t&&!h("AllowedValues","Value","KVP",t)||(C=e.attributes[0].nodeValue),!1)})),!y)if(M)y=M,T="RESTful";else if(C)y=C,T="KVP";else{const e=f("ServiceMetadataURL",o);y=e&&e.getAttribute("xlink:href")}const R=y.indexOf("1.0.0/");-1===R&&"RESTful"===T?y+="/":R>-1&&(y=y.substring(0,R)),"KVP"===T&&(y+=R>-1?"":"?"),g&&(y=y.replace(/^http:/i,"https:"));const S=x("ServiceIdentification>ServiceTypeVersion",o),V=x("ServiceIdentification>AccessConstraints",o),v=m("Layer",a),E=m("TileMatrixSet",a),b=v.map((e=>{const t=x("Identifier",e);return l.set(t,e),w(t,e,E,g,S)}));return{copyright:V,dimensionMap:s,layerMap:l,layers:b,serviceMode:T,tileUrl:y}}function p(e){return e.layers.forEach((e=>{e.tileMatrixSets.forEach((e=>{const t=e.tileInfo;96!==t.dpi&&(t.lods.forEach((n=>{n.scale=96*n.scale/t.dpi,n.resolution=U(t.spatialReference.wkid,n.scale*a/96,e.id)})),t.dpi=96)}))})),e}function d(e){return e.nodeType===Node.ELEMENT_NODE}function f(e,t){for(let n=0;n<t.childNodes.length;n++){const i=t.childNodes[n];if(d(i)&&i.nodeName===e)return i}return null}function m(e,t){const n=[];for(let i=0;i<t.childNodes.length;i++){const r=t.childNodes[i];d(r)&&r.nodeName===e&&n.push(r)}return n}function g(e,t){const n=[];for(let i=0;i<t.childNodes.length;i++){const r=t.childNodes[i];d(r)&&r.nodeName===e&&n.push(r)}return n.map((e=>e.textContent))}function x(e,t){return e.split(">").forEach((e=>{t&&(t=f(e,t))})),t&&t.textContent}function h(e,t,n,i){let r;return Array.prototype.slice.call(i.childNodes).some((i=>{if(i.nodeName.indexOf(e)>-1){const e=f(t,i),o=e&&e.textContent;if(o===n||n.split(":")&&n.split(":")[1]===o)return r=i,!0}return!1})),r}function w(e,t,n,i,r){const o=x("Abstract",t),l=g("Format",t);return{id:e,fullExtent:R(t),fullExtents:S(t),description:o,formats:l,styles:V(t,i),title:x("Title",t),tileMatrixSets:v(r,t,n)}}function C(e,t){var n;const i=[],r=null==(n=e.layerMap)?void 0:n.get(t);if(!r)return;const o=m("ResourceURL",r),l=m("Dimension",r);let s,a,c,u;return l.length&&(s=x("Identifier",l[0]),a=g("Default",l[0])||g("Value",l[0])),l.length>1&&(c=x("Identifier",l[1]),u=g("Default",l[1])||g("Value",l[1])),e.dimensionMap.set(t,{dimensions:a,dimensions2:u}),o.forEach((e=>{let t=e.getAttribute("template");if("tile"===e.getAttribute("resourceType")){if(s&&a.length)if(t.indexOf("{"+s+"}")>-1)t=t.replace("{"+s+"}","{dimensionValue}");else{const e=t.toLowerCase().indexOf("{"+s.toLowerCase()+"}");e>-1&&(t=t.substring(0,e)+"{dimensionValue}"+t.substring(e+s.length+2))}if(c&&u.length)if(t.indexOf("{"+c+"}")>-1)t=t.replace("{"+c+"}","{dimensionValue2}");else{const e=t.toLowerCase().indexOf("{"+c.toLowerCase()+"}");e>-1&&(t=t.substring(0,e)+"{dimensionValue2}"+t.substring(e+c.length+2))}i.push({template:t,format:e.getAttribute("format"),resourceType:"tile"})}})),i}function M(e,t,n,i,r,o,l,s){var a,c;const u=T(e,t,i);if(!((null==u?void 0:u.length)>0))return"";const{dimensionMap:p}=e,d=null==(a=p.get(t).dimensions)?void 0:a[0],f=null==(c=p.get(t).dimensions2)?void 0:c[0];return u[l%u.length].template.replace(/\{Style\}/gi,r).replace(/\{TileMatrixSet\}/gi,n).replace(/\{TileMatrix\}/gi,o).replace(/\{TileRow\}/gi,""+l).replace(/\{TileCol\}/gi,""+s).replace(/\{dimensionValue\}/gi,d).replace(/\{dimensionValue2\}/gi,f)}function T(e,t,n){const i=C(e,t),r=i.filter((e=>e.format===n));return r.length?r:i}function y(e,t,n,i){const{dimensionMap:r}=e,o=C(e,t);let l="";if(o&&o.length>0){const e=r.get(t).dimensions&&r.get(t).dimensions[0],s=r.get(t).dimensions2&&r.get(t).dimensions2[0];l=o[0].template,l.indexOf(".xxx")===l.length-4&&(l=l.slice(0,l.length-4)),l=l.replace(/\{Style\}/gi,i),l=l.replace(/\{TileMatrixSet\}/gi,n),l=l.replace(/\{TileMatrix\}/gi,"{level}"),l=l.replace(/\{TileRow\}/gi,"{row}"),l=l.replace(/\{TileCol\}/gi,"{col}"),l=l.replace(/\{dimensionValue\}/gi,e),l=l.replace(/\{dimensionValue2\}/gi,s)}return l}function R(e){const t=f("WGS84BoundingBox",e),n=t?x("LowerCorner",t).split(" "):["-180","-90"],i=t?x("UpperCorner",t).split(" "):["180","90"];return{xmin:parseFloat(n[0]),ymin:parseFloat(n[1]),xmax:parseFloat(i[0]),ymax:parseFloat(i[1]),spatialReference:{wkid:4326}}}function S(e){const t=[];return l(e,{BoundingBox:e=>{const n=e.getAttribute("crs").toLowerCase(),i=b(n),r=n.includes("epsg")&&F(i.wkid);let o,s,a,c;l(e,{LowerCorner:e=>{[o,s]=e.textContent.split(" ").map((e=>Number.parseFloat(e))),r&&([o,s]=[s,o])},UpperCorner:e=>{[a,c]=e.textContent.split(" ").map((e=>Number.parseFloat(e))),r&&([a,c]=[c,a])}}),t.push({xmin:o,ymin:s,xmax:a,ymax:c,spatialReference:i})}}),t}function V(e,t){return m("Style",e).map((e=>{const n=f("LegendURL",e),i=f("Keywords",e),r=i&&g("Keyword",i);let o=n&&n.getAttribute("xlink:href");t&&(o=o&&o.replace(/^http:/i,"https:"));return{abstract:x("Abstract",e),id:x("Identifier",e),isDefault:"true"===e.getAttribute("isDefault"),keywords:r,legendUrl:o,title:x("Title",e)}}))}function v(e,t,n){return m("TileMatrixSetLink",t).map((t=>E(e,t,n)))}function E(e,t,n){const i=f("TileMatrixSet",t).textContent,r=g("TileMatrix",t),o=n.find((e=>{const t=f("Identifier",e),n=t&&t.textContent;return!!(n===i||i.split(":")&&i.split(":")[1]===n)})),l=f("TileMatrixSetLimits",t),a=l&&m("TileMatrixLimits",l),c=new Map;if(null!=a&&a.length)for(const s of a){const e=f("TileMatrix",s).textContent,t=+f("MinTileRow",s).textContent,n=+f("MaxTileRow",s).textContent,i=+f("MinTileCol",s).textContent,r=+f("MaxTileCol",s).textContent;c.set(e,{minCol:i,maxCol:r,minRow:t,maxRow:n})}const u=x("SupportedCRS",o).toLowerCase(),p=L(o,u),d=p.spatialReference,w=f("TileMatrix",o),C=[parseInt(x("TileWidth",w),10),parseInt(x("TileHeight",w),10)],M=[];if(r.length)r.forEach(((e,t)=>{const n=h("TileMatrix","Identifier",e,o);M.push(D(n,u,t,i,c))}));else{m("TileMatrix",o).forEach(((e,t)=>{M.push(D(e,u,t,i,c))}))}const T=N(e,o,p,C,M[0]).toJSON(),y=new s({dpi:96,spatialReference:d,size:C,origin:p,lods:M}).toJSON();return{id:i,fullExtent:T,tileInfo:y}}function b(e){e=e.toLowerCase();let n=parseInt(e.split(":").pop(),10);900913!==n&&3857!==n||(n=102100);const i=k(e);return t(i)&&(n=i),{wkid:n}}function L(e,t){return I(f("TileMatrix",e),t)}function I(e,t){const n=b(t),[r,o]=x("TopLeftCorner",e).split(" ").map((e=>parseFloat(e))),l=t.includes("epsg")&&F(n.wkid);return new i(l?{x:o,y:r,spatialReference:n}:{x:r,y:o,spatialReference:n})}function N(e,t,i,r,o){const l=f("BoundingBox",t);let s,a,c,u,p,d;if(l&&(s=x("LowerCorner",l).split(" "),a=x("UpperCorner",l).split(" ")),s&&s.length>1&&a&&a.length>1)c=parseFloat(s[0]),p=parseFloat(s[1]),u=parseFloat(a[0]),d=parseFloat(a[1]);else{const e=f("TileMatrix",t),n=parseInt(x("MatrixWidth",e),10),l=parseInt(x("MatrixHeight",e),10);c=i.x,d=i.y,u=c+n*r[0]*o.resolution,p=d-l*r[1]*o.resolution}return A(e,i.spatialReference)?new n(p,c,d,u,i.spatialReference):new n(c,p,u,d,i.spatialReference)}function A(e,t){return"1.0.0"===e&&F(t.wkid)}function F(e){return c.some((([t,n])=>e>=t&&e<=n))}var O;function k(e){return e.includes("crs84")||e.includes("crs:84")?O.CRS84:e.includes("crs83")||e.includes("crs:83")?O.CRS83:e.includes("crs27")||e.includes("crs:27")?O.CRS27:null}function D(e,t,n,i,r){var o;const l=b(t),s=x("Identifier",e);let c=parseFloat(x("ScaleDenominator",e));const u=U(l.wkid,c,i);c*=96/a;const p=+x("MatrixWidth",e),d=+x("MatrixHeight",e),{maxCol:f=p-1,maxRow:m=d-1,minCol:g=0,minRow:h=0}=null!=(o=r.get(s))?o:{},{x:w,y:C}=I(e,t);return{cols:[g,f],level:n,levelValue:s,origin:[w,C],scale:c,resolution:u,rows:[h,m]}}function U(e,t,n){let i;return i=o.hasOwnProperty(""+e)?o.values[o[e]]:"default028mm"===n?6370997*Math.PI/180:r(e).metersPerDegree,7*t/25e3/i}!function(e){e[e.CRS84=4326]="CRS84",e[e.CRS83=4269]="CRS83",e[e.CRS27=4267]="CRS27"}(O||(O={}));export{M as getTileUrlFromResourceUrls,y as getTileUrlTemplateFromResourceUrls,T as getTileUrlTemplates,u as parseCapabilities,p as parseResourceInfo};
|
|
5
|
+
import e from"../../core/Error.js";import{isSome as t}from"../../core/maybe.js";import n from"../../geometry/Extent.js";import i from"../../geometry/Point.js";import{getReferenceEllipsoidFromWKID as r}from"../../geometry/projectionEllipsoid.js";import o from"../../geometry/support/WKIDUnitConversion.js";import{isAxesOrderReversedForWkid as l}from"../ogc/crsUtils.js";import{visitXML as s}from"../ogc/xmlUtils.js";import a from"./TileInfo.js";const c=90.71428571428571;function u(t,n){var i,r;t=t.replace(/ows:/gi,"");const o=(new DOMParser).parseFromString(t,"text/xml").documentElement,l=new Map,s=new Map,a=f("Contents",o);if(!a)throw new e("wmtslayer:wmts-capabilities-xml-is-not-valid");const c=f("OperationsMetadata",o),u=null==c?void 0:c.querySelector("[name='GetTile']"),p=null==u?void 0:u.getElementsByTagName("Get"),d=p&&Array.prototype.slice.call(p),g=null!=(i=(null==n||null==(r=n.url)?void 0:r.indexOf("https"))>-1)&&i;let C,M,T=n.serviceMode,y=n&&n.url;if(d&&d.length&&d.some((e=>{const t=f("Constraint",e);return!t||h("AllowedValues","Value",T,t)?(y=e.attributes[0].nodeValue,!0):(!t||h("AllowedValues","Value","RESTful",t)||h("AllowedValues","Value","REST",t)?M=e.attributes[0].nodeValue:t&&!h("AllowedValues","Value","KVP",t)||(C=e.attributes[0].nodeValue),!1)})),!y)if(M)y=M,T="RESTful";else if(C)y=C,T="KVP";else{const e=f("ServiceMetadataURL",o);y=e&&e.getAttribute("xlink:href")}const R=y.indexOf("1.0.0/");-1===R&&"RESTful"===T?y+="/":R>-1&&(y=y.substring(0,R)),"KVP"===T&&(y+=R>-1?"":"?"),g&&(y=y.replace(/^http:/i,"https:"));const S=x("ServiceIdentification>ServiceTypeVersion",o),V=x("ServiceIdentification>AccessConstraints",o),v=m("Layer",a),b=m("TileMatrixSet",a),E=v.map((e=>{const t=x("Identifier",e);return l.set(t,e),w(t,e,b,g,S)}));return{copyright:V,dimensionMap:s,layerMap:l,layers:E,serviceMode:T,tileUrl:y}}function p(e){return e.layers.forEach((e=>{e.tileMatrixSets.forEach((e=>{const t=e.tileInfo;96!==t.dpi&&(t.lods.forEach((n=>{n.scale=96*n.scale/t.dpi,n.resolution=U(t.spatialReference.wkid,n.scale*c/96,e.id)})),t.dpi=96)}))})),e}function d(e){return e.nodeType===Node.ELEMENT_NODE}function f(e,t){for(let n=0;n<t.childNodes.length;n++){const i=t.childNodes[n];if(d(i)&&i.nodeName===e)return i}return null}function m(e,t){const n=[];for(let i=0;i<t.childNodes.length;i++){const r=t.childNodes[i];d(r)&&r.nodeName===e&&n.push(r)}return n}function g(e,t){const n=[];for(let i=0;i<t.childNodes.length;i++){const r=t.childNodes[i];d(r)&&r.nodeName===e&&n.push(r)}return n.map((e=>e.textContent))}function x(e,t){return e.split(">").forEach((e=>{t&&(t=f(e,t))})),t&&t.textContent}function h(e,t,n,i){let r;return Array.prototype.slice.call(i.childNodes).some((i=>{if(i.nodeName.indexOf(e)>-1){const e=f(t,i),o=e&&e.textContent;if(o===n||n.split(":")&&n.split(":")[1]===o)return r=i,!0}return!1})),r}function w(e,t,n,i,r){const o=x("Abstract",t),l=g("Format",t);return{id:e,fullExtent:R(t),fullExtents:S(t),description:o,formats:l,styles:V(t,i),title:x("Title",t),tileMatrixSets:v(r,t,n)}}function C(e,t){var n;const i=[],r=null==(n=e.layerMap)?void 0:n.get(t);if(!r)return;const o=m("ResourceURL",r),l=m("Dimension",r);let s,a,c,u;return l.length&&(s=x("Identifier",l[0]),a=g("Default",l[0])||g("Value",l[0])),l.length>1&&(c=x("Identifier",l[1]),u=g("Default",l[1])||g("Value",l[1])),e.dimensionMap.set(t,{dimensions:a,dimensions2:u}),o.forEach((e=>{let t=e.getAttribute("template");if("tile"===e.getAttribute("resourceType")){if(s&&a.length)if(t.indexOf("{"+s+"}")>-1)t=t.replace("{"+s+"}","{dimensionValue}");else{const e=t.toLowerCase().indexOf("{"+s.toLowerCase()+"}");e>-1&&(t=t.substring(0,e)+"{dimensionValue}"+t.substring(e+s.length+2))}if(c&&u.length)if(t.indexOf("{"+c+"}")>-1)t=t.replace("{"+c+"}","{dimensionValue2}");else{const e=t.toLowerCase().indexOf("{"+c.toLowerCase()+"}");e>-1&&(t=t.substring(0,e)+"{dimensionValue2}"+t.substring(e+c.length+2))}i.push({template:t,format:e.getAttribute("format"),resourceType:"tile"})}})),i}function M(e,t,n,i,r,o,l,s){var a,c;const u=T(e,t,i);if(!((null==u?void 0:u.length)>0))return"";const{dimensionMap:p}=e,d=null==(a=p.get(t).dimensions)?void 0:a[0],f=null==(c=p.get(t).dimensions2)?void 0:c[0];return u[l%u.length].template.replace(/\{Style\}/gi,r).replace(/\{TileMatrixSet\}/gi,n).replace(/\{TileMatrix\}/gi,o).replace(/\{TileRow\}/gi,""+l).replace(/\{TileCol\}/gi,""+s).replace(/\{dimensionValue\}/gi,d).replace(/\{dimensionValue2\}/gi,f)}function T(e,t,n){const i=C(e,t),r=i.filter((e=>e.format===n));return r.length?r:i}function y(e,t,n,i){const{dimensionMap:r}=e,o=C(e,t);let l="";if(o&&o.length>0){const e=r.get(t).dimensions&&r.get(t).dimensions[0],s=r.get(t).dimensions2&&r.get(t).dimensions2[0];l=o[0].template,l.indexOf(".xxx")===l.length-4&&(l=l.slice(0,l.length-4)),l=l.replace(/\{Style\}/gi,i),l=l.replace(/\{TileMatrixSet\}/gi,n),l=l.replace(/\{TileMatrix\}/gi,"{level}"),l=l.replace(/\{TileRow\}/gi,"{row}"),l=l.replace(/\{TileCol\}/gi,"{col}"),l=l.replace(/\{dimensionValue\}/gi,e),l=l.replace(/\{dimensionValue2\}/gi,s)}return l}function R(e){const t=f("WGS84BoundingBox",e),n=t?x("LowerCorner",t).split(" "):["-180","-90"],i=t?x("UpperCorner",t).split(" "):["180","90"];return{xmin:parseFloat(n[0]),ymin:parseFloat(n[1]),xmax:parseFloat(i[0]),ymax:parseFloat(i[1]),spatialReference:{wkid:4326}}}function S(e){const t=[];return s(e,{BoundingBox:e=>{if(!e.getAttribute("crs"))return;const n=e.getAttribute("crs").toLowerCase(),i=E(n),r=n.includes("epsg")&&l(i.wkid);let o,a,c,u;s(e,{LowerCorner:e=>{[o,a]=e.textContent.split(" ").map((e=>Number.parseFloat(e))),r&&([o,a]=[a,o])},UpperCorner:e=>{[c,u]=e.textContent.split(" ").map((e=>Number.parseFloat(e))),r&&([c,u]=[u,c])}}),t.push({xmin:o,ymin:a,xmax:c,ymax:u,spatialReference:i})}}),t}function V(e,t){return m("Style",e).map((e=>{const n=f("LegendURL",e),i=f("Keywords",e),r=i&&g("Keyword",i);let o=n&&n.getAttribute("xlink:href");t&&(o=o&&o.replace(/^http:/i,"https:"));return{abstract:x("Abstract",e),id:x("Identifier",e),isDefault:"true"===e.getAttribute("isDefault"),keywords:r,legendUrl:o,title:x("Title",e)}}))}function v(e,t,n){return m("TileMatrixSetLink",t).map((t=>b(e,t,n)))}function b(e,t,n){const i=f("TileMatrixSet",t).textContent,r=g("TileMatrix",t),o=n.find((e=>{const t=f("Identifier",e),n=t&&t.textContent;return!!(n===i||i.split(":")&&i.split(":")[1]===n)})),l=f("TileMatrixSetLimits",t),s=l&&m("TileMatrixLimits",l),c=new Map;if(null!=s&&s.length)for(const a of s){const e=f("TileMatrix",a).textContent,t=+f("MinTileRow",a).textContent,n=+f("MaxTileRow",a).textContent,i=+f("MinTileCol",a).textContent,r=+f("MaxTileCol",a).textContent;c.set(e,{minCol:i,maxCol:r,minRow:t,maxRow:n})}const u=x("SupportedCRS",o).toLowerCase(),p=L(o,u),d=p.spatialReference,w=f("TileMatrix",o),C=[parseInt(x("TileWidth",w),10),parseInt(x("TileHeight",w),10)],M=[];if(r.length)r.forEach(((e,t)=>{const n=h("TileMatrix","Identifier",e,o);M.push(k(n,u,t,i,c))}));else{m("TileMatrix",o).forEach(((e,t)=>{M.push(k(e,u,t,i,c))}))}const T=N(e,o,p,C,M[0]).toJSON(),y=new a({dpi:96,spatialReference:d,size:C,origin:p,lods:M}).toJSON();return{id:i,fullExtent:T,tileInfo:y}}function E(e){e=e.toLowerCase();let n=parseInt(e.split(":").pop(),10);900913!==n&&3857!==n||(n=102100);const i=O(e);return t(i)&&(n=i),{wkid:n}}function L(e,t){return I(f("TileMatrix",e),t)}function I(e,t){const n=E(t),[r,o]=x("TopLeftCorner",e).split(" ").map((e=>parseFloat(e))),s=t.includes("epsg")&&l(n.wkid);return new i(s?{x:o,y:r,spatialReference:n}:{x:r,y:o,spatialReference:n})}function N(e,t,i,r,o){const l=f("BoundingBox",t);let s,a,c,u,p,d;if(l&&(s=x("LowerCorner",l).split(" "),a=x("UpperCorner",l).split(" ")),s&&s.length>1&&a&&a.length>1)c=parseFloat(s[0]),p=parseFloat(s[1]),u=parseFloat(a[0]),d=parseFloat(a[1]);else{const e=f("TileMatrix",t),n=parseInt(x("MatrixWidth",e),10),l=parseInt(x("MatrixHeight",e),10);c=i.x,d=i.y,u=c+n*r[0]*o.resolution,p=d-l*r[1]*o.resolution}return A(e,i.spatialReference)?new n(p,c,d,u,i.spatialReference):new n(c,p,u,d,i.spatialReference)}function A(e,t){return"1.0.0"===e&&l(t.wkid)}var F;function O(e){return e.includes("crs84")||e.includes("crs:84")?F.CRS84:e.includes("crs83")||e.includes("crs:83")?F.CRS83:e.includes("crs27")||e.includes("crs:27")?F.CRS27:null}function k(e,t,n,i,r){var o;const l=E(t),s=x("Identifier",e);let a=parseFloat(x("ScaleDenominator",e));const u=U(l.wkid,a,i);a*=96/c;const p=+x("MatrixWidth",e),d=+x("MatrixHeight",e),{maxCol:f=p-1,maxRow:m=d-1,minCol:g=0,minRow:h=0}=null!=(o=r.get(s))?o:{},{x:w,y:C}=I(e,t);return{cols:[g,f],level:n,levelValue:s,origin:[w,C],scale:a,resolution:u,rows:[h,m]}}function U(e,t,n){let i;return i=o.hasOwnProperty(""+e)?o.values[o[e]]:"default028mm"===n?6370997*Math.PI/180:r(e).metersPerDegree,7*t/25e3/i}!function(e){e[e.CRS84=4326]="CRS84",e[e.CRS83=4269]="CRS83",e[e.CRS27=4267]="CRS27"}(F||(F={}));export{M as getTileUrlFromResourceUrls,y as getTileUrlTemplateFromResourceUrls,T as getTileUrlTemplates,u as parseCapabilities,p as parseResourceInfo};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcgis/core",
|
|
3
|
-
"version": "4.23.0-next.
|
|
3
|
+
"version": "4.23.0-next.20220119",
|
|
4
4
|
"homepage": "https://js.arcgis.com",
|
|
5
5
|
"description": "ArcGIS API for JavaScript: A complete 2D and 3D mapping and data visualization API",
|
|
6
6
|
"keywords": [
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@esri/arcgis-html-sanitizer": "~2.9.0",
|
|
29
29
|
"@esri/calcite-colors": "~6.0.1",
|
|
30
|
-
"@esri/calcite-components": "1.0.0-beta.
|
|
31
|
-
"@popperjs/core": "~2.11.
|
|
32
|
-
"focus-trap": "~6.7.
|
|
33
|
-
"luxon": "~2.
|
|
30
|
+
"@esri/calcite-components": "1.0.0-beta.74",
|
|
31
|
+
"@popperjs/core": "~2.11.2",
|
|
32
|
+
"focus-trap": "~6.7.2",
|
|
33
|
+
"luxon": "~2.3.0",
|
|
34
34
|
"moment": "~2.29.1",
|
|
35
35
|
"sortablejs": "~1.14.0"
|
|
36
36
|
},
|
package/rasterRenderers.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"./core/Warning.js";import r from"./renderers/AnimatedFlowRenderer.js";export{default as AnimatedFlowRenderer}from"./renderers/AnimatedFlowRenderer.js";import
|
|
5
|
+
import e from"./core/Warning.js";import r from"./renderers/AnimatedFlowRenderer.js";export{default as AnimatedFlowRenderer}from"./renderers/AnimatedFlowRenderer.js";import s from"./renderers/ClassBreaksRenderer.js";export{default as ClassBreaksRenderer}from"./renderers/ClassBreaksRenderer.js";import t from"./renderers/RasterColormapRenderer.js";export{default as RasterColormapRenderer}from"./renderers/RasterColormapRenderer.js";import a from"./renderers/RasterShadedReliefRenderer.js";export{default as RasterShadedReliefRenderer}from"./renderers/RasterShadedReliefRenderer.js";import n from"./renderers/RasterStretchRenderer.js";export{default as RasterStretchRenderer}from"./renderers/RasterStretchRenderer.js";import o from"./renderers/UniqueValueRenderer.js";export{default as UniqueValueRenderer}from"./renderers/UniqueValueRenderer.js";import d from"./renderers/VectorFieldRenderer.js";export{default as VectorFieldRenderer}from"./renderers/VectorFieldRenderer.js";const i={key:"type",base:null,typeMap:{"unique-value":o,"class-breaks":s,"raster-colormap":t,"raster-stretch":n,"vector-field":d,"raster-shaded-relief":a,"animated-flow":r}},l={...i,typeMap:{...i.typeMap}};delete l.typeMap["vector-field"],delete l.typeMap["animated-flow"];const f={uniqueValue:o,classBreaks:s,rasterStretch:n,rasterColormap:t,vectorField:d,rasterShadedRelief:a,animatedFlow:r};function p(e){return e&&f[e.type]||null}function u(r,s){if(!r)return null;if("classBreaks"===r.type&&r.classificationMethod){const e=r.authoringInfo||{classificationMethod:""};e.classificationMethod=r.classificationMethod,r.authoringInfo=e}"vectorField"===r.type&&r.visualVariables&&!Array.isArray(r.visualVariables)&&(r.visualVariables=[r.visualVariables]);const t=p(r);if(t){const e=new t;return e.read(r,s),e}return s&&s.messages&&r&&s.messages.push(new e("renderer:unsupported","Renderers of type '"+(r.type||"unknown")+"' are not supported",{definition:r,context:s})),null}function m(e,r){return u(e,r)}export{m as fromJSON,i as rasterRendererTypes,u as read,l as websceneRasterRendererTypes};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../chunks/tslib.es6.js";import{toHSV as t}from"../../core/colorUtils.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import s from"../../core/Logger.js";import{unwrap as o,isSome as a}from"../../core/maybe.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import l from"../../layers/support/RasterInfo.js";import{isValidPixelBlock as u,extractBands as c,stretch as p,colorize as m,remapColor as h,lookupPixels as f,createStretchLUT as d,createColormapLUT as g,createHistogramEqualizationLUT as y,estimateStatisticsHistograms as S}from"../../layers/support/rasterFunctions/pixelUtils.js";import{hillshade as b,tintHillshade as x,calculateHillshadeParams as v}from"../../layers/support/rasterFunctions/surfaceUtils.js";import{convertColorRampToColormap as k}from"./colorRampUtils.js";const C=s.getLogger("esri.renderers.support.RasterSymbolizer");function _(e,t){const{attributeTable:r,bandCount:s}=e;if(!a(r)||s>1)return!1;if(t){if(null==r.fields.find((e=>e.name.toLowerCase()===t.toLowerCase())))return!1}return!0}function O(e){return"elevation"===e.dataType}function R(e){const{bandCount:t,colormap:r}=e;return a(r)&&r.length&&1===t}const L={u1:[0,1],u2:[0,3],u4:[0,15],u8:[0,255],s8:[-128,127],u16:[0,65535],s16:[-32768,32767],u32:[0,4294967295],s32:[-2147483648,2147483647],f32:[-34e38,34e38],f64:[-Number.MAX_VALUE,Number.MAX_VALUE]};let I=class extends r{constructor(e){super(e)}bind(){const{rendererJSON:e}=this;if(!e)return{success:!1};let t;switch(this.lookup={rendererJSON:{}},e.type){case"uniqueValue":t={success:this._updateUVRenderer(e)};break;case"rasterColormap":t={success:this._updateColormapRenderer(e)};break;case"rasterStretch":t={success:this._updateStretchRenderer(e)};break;case"classBreaks":t={success:this._updateClassBreaksRenderer(e)};break;case"rasterShadedRelief":t={success:this._updateShadedReliefRenderer(e)};break;case"vectorField":t={success:this._updateVectorFieldRenderer()};break;case"animatedFlow":t=this._updateAnimatedFlowRenderer()}return t}symbolize(e){let t=e&&e.pixelBlock;if(!V(t))return t;if(e.simpleStretchParams&&"rasterStretch"===this.rendererJSON.type)return this.simpleStretch(t,e.simpleStretchParams);try{let r;switch(t.pixels.length>3&&(t=c(t,[0,1,2])),this.rendererJSON.type){case"uniqueValue":case"rasterColormap":r=this._symbolizeColormap(t);break;case"classBreaks":r=this._symbolizeClassBreaks(t);break;case"rasterStretch":r=this._symbolizeStretch(t,e.bandIds);break;case"rasterShadedRelief":{const{extent:s}=e,o=s.spatialReference.isGeographic,a={x:(s.xmax-s.xmin)/t.width,y:(s.ymax-s.ymin)/t.height};r=this._symbolizeShadedRelief(t,{isGCS:o,resolution:a});break}}return r}catch(r){return C.error("symbolize",r.message),t}}simpleStretch(e,t){if(!V(e))return e;try{return e.pixels.length>3&&(e=c(e,[0,1,2])),p(e,t)}catch(r){return C.error("symbolize",r.message),e}}generateWebGLParameters(e){if(["uniqueValue","rasterColormap","classBreaks"].indexOf(this.rendererJSON.type)>-1){var t;const{indexedColormap:e,offset:r}=(null==(t=this.lookup)?void 0:t.colormapLut)||{};return{colormap:e,colormapOffset:r,type:"lut"}}const{pixelBlock:r,isGCS:s,resolution:o,bandIds:a}=e,{rendererJSON:i}=this;return"rasterStretch"===i.type?this._generateStretchWebGLParams(r,i,a):"rasterShadedRelief"===i.type?this._generateShadedReliefWebGLParams(i,s,o):"vectorField"===i.type?this._generateVectorFieldWebGLParams(i):null}_isLUTChanged(e){if(!this.lookup||!this.lookup.rendererJSON)return!0;if("colorRamp"in this.rendererJSON){const t=this.rendererJSON.colorRamp;return e?JSON.stringify(t)!==JSON.stringify(this.lookup.rendererJSON.colorRamp):(this.rendererJSON,this.lookup.rendererJSON,JSON.stringify(this.rendererJSON)!==JSON.stringify(this.lookup.rendererJSON))}return JSON.stringify(this.rendererJSON)!==JSON.stringify(this.lookup.rendererJSON)}_symbolizeColormap(e){if(this._isLUTChanged()){if(!this.bind().success)return e}return m(e,this.lookup.colormapLut)}_symbolizeClassBreaks(e){const t=this.rasterInfo.pixelType,r=["u8","u16","s8","s16"].indexOf(t)>-1;if(this._isLUTChanged()){if(!this.bind().success)return e}return r?m(e,this.lookup.colormapLut):h(e,this.lookup.remapLut)}_symbolizeStretch(e,t){const{pixelType:r,bandCount:s}=this.rasterInfo,a=this.rendererJSON,i=["u8","u16","s8","s16"].indexOf(r)>-1;let n,l;const{dra:u}=a,c=a.useGamma?a.gamma:null;if("histogramEqualization"===a.stretchType){const r=u?null:this.lookup.histogramLut,s=this._getStretchCutoff(a,e,t,!r),o=p(e,{...s,gamma:c});l=f(o,{lut:u?s.histogramLut:r,offset:0})}else if(i){var h,g;if(u){const s=this._getStretchCutoff(a,e,t);n=d({pixelType:r,...s,gamma:c})}else if(this._isLUTChanged()){if(!this.bind().success)return e;n=this.lookup?this.lookup.stretchLut:null}else n=this.lookup?this.lookup.stretchLut:null;if(!n)return e;s>1&&(null==t?void 0:t.length)===(null==(h=o(e))?void 0:h.pixels.length)&&(null==(g=n)?void 0:g.lut.length)===s&&(n={lut:t.map((e=>n.lut[e])),offset:n.offset}),l=f(e,n)}else{const r=this._getStretchCutoff(a,e,t);l=p(e,{...r,gamma:c})}if(a.colorRamp){if(this._isLUTChanged(!0)){if(!this.bind().success)return e}l=m(l,this.lookup.colormapLut)}return l}_symbolizeShadedRelief(e,t){var r,s;const a=this.rendererJSON,i={...a,...t},n=b(e,i);if(!a.colorRamp)return n;let l;if(this._isLUTChanged(!0)){if(!this.bind().success)return n;l=this.lookup?this.lookup.hsvMap:null}else l=this.lookup?this.lookup.hsvMap:null;if(!l)return n;const u=null!=(r=null==(s=o(this.rasterInfo.statistics))?void 0:s[0])?r:{min:0,max:8e3};return x(n,e,l,u),n}_updateVectorFieldRenderer(){const{bandCount:e,dataType:t}=this.rasterInfo;return 2===e&&("vector-magdir"===t||"vector-uv"===t)}_updateAnimatedFlowRenderer(){const{bandCount:e,dataType:t}=this.rasterInfo;return 2===e&&("vector-magdir"===t||"vector-uv"===t)?{success:!0}:{success:!1,error:`Unsupported data type "${t}"; AnimatedFlowRenderer only supports "vector-magdir" and "vector-uv".`}}_updateUVRenderer(e){const{bandCount:t,attributeTable:r,pixelType:s}=this.rasterInfo,o=e.field1;if(!o)return!1;const a=e.defaultSymbol,i=1===t&&["u8","s8"].includes(s);if(!_(this.rasterInfo,o)&&!i)return!1;const n=[];if(r){const t=r.fields.filter((e=>"value"===e.name.toLowerCase()))[0];if(!t)return!1;r.features.forEach((r=>{var s;const i=e.uniqueValueInfos.filter((e=>String(e.value)===String(r.attributes[o])))[0],l=null==i||null==(s=i.symbol)?void 0:s.color;l?n.push([r.attributes[t.name]].concat(l)):a&&n.push([r.attributes[t.name]].concat(a.color))}))}else{if("value"!==o.toLowerCase())return!1;e.uniqueValueInfos.forEach((e=>{var t;const r=null==e||null==(t=e.symbol)?void 0:t.color;r?n.push([parseInt(""+e.value,10)].concat(r)):a&&n.push([parseInt(""+e.value,10)].concat(a.color))}))}if(0===n.length)return!1;const l=g({colormap:n});return this.lookup={rendererJSON:e,colormapLut:l},this.canRenderInWebGL=!0,!0}_updateColormapRenderer(e){if(!R(this.rasterInfo))return!1;const t=e.colormapInfos.map((e=>[e.value].concat(e.color))).sort(((e,t)=>e[0]-t[0]));if(!t||0===t.length)return!1;const r=g({colormap:t});return this.lookup={rendererJSON:e,colormapLut:r},this.canRenderInWebGL=!0,!0}_updateShadedReliefRenderer(e){if(!O(this.rasterInfo))return!1;if(e.colorRamp){const r=k(e.colorRamp,256,!0),s=g({colormap:r}),o=[],a=s.indexedColormap;for(let e=0;e<a.length;e+=4){const r=t({r:a[e],g:a[e+1],b:a[e+2]});o.push([r.h/60,r.s/100,255*r.v/100])}this.lookup={rendererJSON:e,colormapLut:s,hsvMap:o}}else this.lookup=null;return this.canRenderInWebGL=!0,!0}_updateClassBreaksRenderer(e){const t=this.rasterInfo.pixelType,r=["u8","u16","s8","s16"].indexOf(t)>-1,s=e.classBreakInfos;if(null==s||!s.length)return!1;const o=s.sort(((e,t)=>e.classMaxValue-t.classMaxValue)),a=o[o.length-1];let i=e.minValue;if(!r){const t=[];for(let e=0;e<o.length;e++){var n;t.push({value:null!=(n=o[e].classMinValue)?n:i,mappedColor:o[e].symbol.color}),i=o[e].classMaxValue}return t.push({value:a.classMaxValue,mappedColor:a.symbol.color}),this.lookup={rendererJSON:e,remapLut:t},this.canRenderInWebGL=!1,!0}const l=[];i=Math.floor(e.minValue);for(let c=0;c<o.length;c++){const e=o[c];for(let t=i;t<e.classMaxValue;t++)l.push([t].concat(e.symbol.color));i=Math.ceil(e.classMaxValue)}a.classMaxValue===i&&l.push([a.classMaxValue].concat(a.symbol.color));const u=g({colormap:l,fillUnspecified:!1});return this.lookup={rendererJSON:e,colormapLut:u},this.canRenderInWebGL=!0,!0}_isHistogramRequired(e){return"percentClip"===e||"histogramEqualization"===e}_isValidRasterStatistics(e){return a(e)&&e.length>0&&null!=e[0].min&&null!=e[0].max}_updateStretchRenderer(e){var t;let{stretchType:r,dra:s}=e;if(!("none"===r||null!=(t=e.statistics)&&t.length||this._isValidRasterStatistics(this.rasterInfo.statistics)||s))return!1;const a=o(e.histograms||this.rasterInfo.histograms);!this._isHistogramRequired(e.stretchType)||null!=a&&a.length||s||(r="minMax");const{gamma:i,useGamma:n,colorRamp:l}=e,u=this.rasterInfo.pixelType,c=!s&&["u8","u16","s8","s16"].indexOf(u)>-1;if("histogramEqualization"===r){const t=a.map((e=>y(e)));this.lookup={rendererJSON:e,histogramLut:t}}else if(c){const t=this._getStretchCutoff(e),r=d({pixelType:u,...t,gamma:n?i:null});this.lookup={rendererJSON:e,stretchLut:r}}if(l){const t=k(l,256,!0);this.lookup||(this.lookup={rendererJSON:e}),this.lookup.colormapLut=g({colormap:t}),this.lookup.rendererJSON=e}return this.canRenderInWebGL=!0,!0}_getStretchCutoff(e,t=null,r,s){var i,n,l;let u,c,p=e.stretchType;var m;if(e.dra)if("minMax"===p&&a(t)&&t.statistics)u=t.statistics.map((e=>[e.minValue,e.maxValue,0,0]));else{const e=S(t);u=a(e)?e.statistics:null,c=a(e)?e.histograms:null}else u=(null==(m=e.statistics)?void 0:m.length)>0?e.statistics:o(this.rasterInfo.statistics),c=e.histograms||o(this.rasterInfo.histograms);!this._isHistogramRequired(p)||null!=(i=c)&&i.length||(p="minMax");const h=(null==(n=u)?void 0:n.length)||(null==(l=c)?void 0:l.length)||this.rasterInfo.bandCount,f=[],d=[];let g,b,x,v,k,C,_,O,R,I,V,N;switch(u&&!Array.isArray(u[0])&&(u=u.map((e=>[e.min,e.max,e.avg,e.stddev]))),p){case"none":{const e=L[this.rasterInfo.pixelType]||L.f32;for(O=0;O<h;O++)f[O]=e[0],d[O]=e[1]}break;case"minMax":for(O=0;O<h;O++)f[O]=u[O][0],d[O]=u[O][1];break;case"standardDeviation":for(O=0;O<h;O++)f[O]=u[O][2]-e.numberOfStandardDeviations*u[O][3],d[O]=u[O][2]+e.numberOfStandardDeviations*u[O][3],f[O]<u[O][0]&&(f[O]=u[O][0]),d[O]>u[O][1]&&(d[O]=u[O][1]);break;case"histogramEqualization":for(O=0;O<h;O++)f[O]=c[O].min,d[O]=c[O].max;break;case"percentClip":for(O=0;O<c.length;O++){for(g=c[O],k=new Uint32Array(g.size),v=g.counts,x=0,b=(g.max-g.min)/g.size,_=-.5===g.min&&1===b?.5:0,R=0;R<g.size;R++)x+=v[R],k[R]=x;for(C=(e.minPercent||0)*x/100,R=0;R<g.size;R++)if(k[R]>C){f[O]=g.min+b*(R+_);break}for(C=(1-(e.maxPercent||0)/100)*x,R=g.size-2;R>=0;R--)if(k[R]<C){d[O]=g.min+b*(R+2-_);break}}break;default:for(O=0;O<h;O++)f[O]=u[O][0],d[O]=u[O][1]}"histogramEqualization"===p?(V=c[0].size||256,I=0,s&&(N=c.map((e=>y(e))))):(V=e.max||255,I=e.min||0);const T={minCutOff:f,maxCutOff:d,outMax:V,outMin:I,histogramLut:N};return this._getSelectedBandCutoffs(T,r)}_getSelectedBandCutoffs(e,t){if(null==t||0===t.length)return e;const r=Math.max.apply(null,t),{minCutOff:s,maxCutOff:o,outMin:a,outMax:i,histogramLut:n}=e;return s.length===t.length||s.length<=r?e:{minCutOff:t.map((e=>s[e])),maxCutOff:t.map((e=>o[e])),histogramLut:n?t.map((e=>n[e])):null,outMin:a,outMax:i}}_generateStretchWebGLParams(e,t,r){let s=null,o=null;const i=this.lookup&&this.lookup.colormapLut;t.colorRamp&&i&&(s=i.indexedColormap,o=i.offset),"histogramEqualization"===t.stretchType&&(t={...t,stretchType:"minMax"});const{gamma:n}=t,l=!!(t.useGamma&&n&&n.some((e=>1!==e))),{minCutOff:u,maxCutOff:c,outMin:p,outMax:m}=this._getStretchCutoff(t,e,r);let h=0;a(e)&&(h=e.getPlaneCount(),2===h&&((e=e.clone()).statistics=[e.statistics[0]],e.pixels=[e.pixels[0]]));const f=Math.min(3,(null==r?void 0:r.length)||h||this.rasterInfo.bandCount),d=new Float32Array(f),g=s||l?1:255;let y;for(y=0;y<f;y++)d[y]=(m-p)/(c[y]-u[y])/g;const S=new Float32Array(f);if(l)for(y=0;y<f;y++)n[y]>1?n[y]>2?S[y]=6.5+(n[y]-2)**2.5:S[y]=6.5+100*(2-n[y])**4:S[y]=1;return{bandCount:f,outMin:p/g,outMax:m/g,minCutOff:u,maxCutOff:c,factor:d,useGamma:l,gamma:l?n:[1,1,1],gammaCorrection:l?S:[1,1,1],colormap:s,colormapOffset:o,stretchType:t.stretchType,type:"stretch"}}_generateShadedReliefWebGLParams(e,t,r){var s,a,i;let n=null,l=null;const u=this.lookup&&this.lookup.colormapLut;e.colorRamp&&u&&(n=u.indexedColormap,l=u.offset);const c={...e,isGCS:t,resolution:r},p=v(c),m=null==(s=o(this.rasterInfo.statistics))?void 0:s[0];return{...p,minValue:null!=(a=null==m?void 0:m.min)?a:0,maxValue:null!=(i=null==m?void 0:m.max)?i:8e3,hillshadeType:"traditional"===e.hillshadeType?0:1,type:"hillshade",colormap:n,colormapOffset:l}}_generateVectorFieldWebGLParams(e){var t,r,s,o,i,n;const{style:l,inputUnit:u,outputUnit:c,visualVariables:p,symbolTileSize:m,flowRepresentation:h}=e;let f;const d=null!=(t=null==p?void 0:p.find((e=>"sizeInfo"===e.type)))?t:{type:"sizeInfo",field:"Magnitude",maxDataValue:null==(r=this.rasterInfo.statistics)?void 0:r[0].max,maxSize:.8*m,minDataValue:null==(s=this.rasterInfo.statistics)?void 0:s[0].min,minSize:.2*m},g=d?d.minDataValue:null==(o=this.rasterInfo.statistics)?void 0:o[0].min,y=d?d.maxDataValue:null==(i=this.rasterInfo.statistics)?void 0:i[0].max,S=a(d.maxSize)&&a(d.minSize)?[d.minSize/m,d.maxSize/m]:[.2,.8];if("wind_speed"===l||"simple_scalar"===l){const e=(S[0]+S[1])/2;S[0]=S[1]=e}const b=a(g)&&a(y)?[g,y]:null;if("classified_arrow"===l)if(a(g)&&a(y)&&a(d)){f=[];const e=(d.maxDataValue-d.minDataValue)/5;for(let t=0;t<6;t++)f.push(d.minDataValue+e*t)}else f=[0,1e-6,3.5,7,10.5,14];const x="flow_to"===h===("ocean_current_kn"===l||"ocean_current_m"===l)?0:Math.PI,v=null==p?void 0:p.find((e=>"rotationInfo"===e.type));return{breakValues:f,dataRange:b,inputUnit:u,outputUnit:c,symbolTileSize:m,symbolPercentRange:S,style:l||"single_arrow",rotation:x,rotationType:(null==(n=this.rasterInfo.storageInfo)?void 0:n.tileInfo)&&"vector-uv"===this.rasterInfo.dataType?"geographic":(null==v?void 0:v.rotationType)||e.rotationType,type:"vectorField"}}};function V(e){return u(e)&&0!==e.validPixelCount}e([i({json:{write:!0}})],I.prototype,"rendererJSON",void 0),e([i({type:l,json:{write:!0}})],I.prototype,"rasterInfo",void 0),e([i({json:{write:!0}})],I.prototype,"lookup",void 0),e([i()],I.prototype,"canRenderInWebGL",void 0),I=e([n("esri.renderers.support.RasterSymbolizer")],I);const N=I;export{N as default};
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import{toHSV as t}from"../../core/colorUtils.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import s from"../../core/Logger.js";import{unwrap as o,isSome as a}from"../../core/maybe.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import l from"../../layers/support/RasterInfo.js";import{isValidPixelBlock as u,extractBands as c,stretch as p,colorize as m,remapColor as h,lookupPixels as f,createStretchLUT as d,createColormapLUT as g,createHistogramEqualizationLUT as y,estimateStatisticsHistograms as S}from"../../layers/support/rasterFunctions/pixelUtils.js";import{hillshade as b,tintHillshade as x,calculateHillshadeParams as v}from"../../layers/support/rasterFunctions/surfaceUtils.js";import{convertColorRampToColormap as k}from"./colorRampUtils.js";const C=s.getLogger("esri.renderers.support.RasterSymbolizer");function _(e,t){const{attributeTable:r,bandCount:s}=e;if(!a(r)||s>1)return!1;if(t){if(null==r.fields.find((e=>e.name.toLowerCase()===t.toLowerCase())))return!1}return!0}function O(e){return"elevation"===e.dataType}function R(e){const{bandCount:t,colormap:r}=e;return a(r)&&r.length&&1===t}const L={u1:[0,1],u2:[0,3],u4:[0,15],u8:[0,255],s8:[-128,127],u16:[0,65535],s16:[-32768,32767],u32:[0,4294967295],s32:[-2147483648,2147483647],f32:[-34e38,34e38],f64:[-Number.MAX_VALUE,Number.MAX_VALUE]};let I=class extends r{constructor(e){super(e)}bind(){const{rendererJSON:e}=this;if(!e)return{success:!1};let t;switch(this.lookup={rendererJSON:{}},e.type){case"uniqueValue":t={success:this._updateUVRenderer(e)};break;case"rasterColormap":t={success:this._updateColormapRenderer(e)};break;case"rasterStretch":t={success:this._updateStretchRenderer(e)};break;case"classBreaks":t={success:this._updateClassBreaksRenderer(e)};break;case"rasterShadedRelief":t={success:this._updateShadedReliefRenderer(e)};break;case"vectorField":t={success:this._updateVectorFieldRenderer()};break;case"animatedFlow":t=this._updateAnimatedFlowRenderer()}return t}symbolize(e){let t=e&&e.pixelBlock;if(!V(t))return t;if(e.simpleStretchParams&&"rasterStretch"===this.rendererJSON.type)return this.simpleStretch(t,e.simpleStretchParams);try{let r;switch(t.pixels.length>3&&(t=c(t,[0,1,2])),this.rendererJSON.type){case"uniqueValue":case"rasterColormap":r=this._symbolizeColormap(t);break;case"classBreaks":r=this._symbolizeClassBreaks(t);break;case"rasterStretch":r=this._symbolizeStretch(t,e.bandIds);break;case"rasterShadedRelief":{const{extent:s}=e,o=s.spatialReference.isGeographic,a={x:(s.xmax-s.xmin)/t.width,y:(s.ymax-s.ymin)/t.height};r=this._symbolizeShadedRelief(t,{isGCS:o,resolution:a});break}}return r}catch(r){return C.error("symbolize",r.message),t}}simpleStretch(e,t){if(!V(e))return e;try{return e.pixels.length>3&&(e=c(e,[0,1,2])),p(e,t)}catch(r){return C.error("symbolize",r.message),e}}generateWebGLParameters(e){if(["uniqueValue","rasterColormap","classBreaks"].indexOf(this.rendererJSON.type)>-1){var t;const{indexedColormap:e,offset:r}=(null==(t=this.lookup)?void 0:t.colormapLut)||{};return{colormap:e,colormapOffset:r,type:"lut"}}const{pixelBlock:r,isGCS:s,resolution:o,bandIds:a}=e,{rendererJSON:i}=this;return"rasterStretch"===i.type?this._generateStretchWebGLParams(r,i,a):"rasterShadedRelief"===i.type?this._generateShadedReliefWebGLParams(i,s,o):"vectorField"===i.type?this._generateVectorFieldWebGLParams(i):null}_isLUTChanged(e){if(!this.lookup||!this.lookup.rendererJSON)return!0;if("colorRamp"in this.rendererJSON){const t=this.rendererJSON.colorRamp;return e?JSON.stringify(t)!==JSON.stringify(this.lookup.rendererJSON.colorRamp):(this.rendererJSON,this.lookup.rendererJSON,JSON.stringify(this.rendererJSON)!==JSON.stringify(this.lookup.rendererJSON))}return JSON.stringify(this.rendererJSON)!==JSON.stringify(this.lookup.rendererJSON)}_symbolizeColormap(e){if(this._isLUTChanged()){if(!this.bind().success)return e}return m(e,this.lookup.colormapLut)}_symbolizeClassBreaks(e){const t=this.rasterInfo.pixelType,r=["u8","u16","s8","s16"].indexOf(t)>-1;if(this._isLUTChanged()){if(!this.bind().success)return e}return r?m(e,this.lookup.colormapLut):h(e,this.lookup.remapLut)}_symbolizeStretch(e,t){const{pixelType:r,bandCount:s}=this.rasterInfo,a=this.rendererJSON,i=["u8","u16","s8","s16"].indexOf(r)>-1;let n,l;const{dra:u}=a,c=a.useGamma?a.gamma:null;if("histogramEqualization"===a.stretchType){const r=u?null:this.lookup.histogramLut,s=this._getStretchCutoff(a,e,t,!r),o=p(e,{...s,gamma:c});l=f(o,{lut:u?s.histogramLut:r,offset:0})}else if(i){var h,g;if(u){const s=this._getStretchCutoff(a,e,t);n=d({pixelType:r,...s,gamma:c})}else if(this._isLUTChanged()){if(!this.bind().success)return e;n=this.lookup?this.lookup.stretchLut:null}else n=this.lookup?this.lookup.stretchLut:null;if(!n)return e;s>1&&(null==t?void 0:t.length)===(null==(h=o(e))?void 0:h.pixels.length)&&(null==(g=n)?void 0:g.lut.length)===s&&(n={lut:t.map((e=>n.lut[e])),offset:n.offset}),l=f(e,n)}else{const r=this._getStretchCutoff(a,e,t);l=p(e,{...r,gamma:c})}if(a.colorRamp){if(this._isLUTChanged(!0)){if(!this.bind().success)return e}l=m(l,this.lookup.colormapLut)}return l}_symbolizeShadedRelief(e,t){var r,s;const a=this.rendererJSON,i={...a,...t},n=b(e,i);if(!a.colorRamp)return n;let l;if(this._isLUTChanged(!0)){if(!this.bind().success)return n;l=this.lookup?this.lookup.hsvMap:null}else l=this.lookup?this.lookup.hsvMap:null;if(!l)return n;const u=null!=(r=null==(s=o(this.rasterInfo.statistics))?void 0:s[0])?r:{min:0,max:8e3};return x(n,e,l,u),n}_updateVectorFieldRenderer(){const{bandCount:e,dataType:t}=this.rasterInfo;return 2===e&&("vector-magdir"===t||"vector-uv"===t)}_updateAnimatedFlowRenderer(){const{bandCount:e,dataType:t}=this.rasterInfo;return 2===e&&("vector-magdir"===t||"vector-uv"===t)?{success:!0}:{success:!1,error:`Unsupported data type "${t}"; AnimatedFlowRenderer only supports "vector-magdir" and "vector-uv".`}}_updateUVRenderer(e){const{bandCount:t,attributeTable:r,pixelType:s}=this.rasterInfo,o=e.field1;if(!o)return!1;const a=e.defaultSymbol,i=1===t&&["u8","s8"].includes(s);if(!_(this.rasterInfo,o)&&!i)return!1;const n=[];if(r){const t=r.fields.filter((e=>"value"===e.name.toLowerCase()))[0];if(!t)return!1;r.features.forEach((r=>{var s;const i=e.uniqueValueInfos.filter((e=>String(e.value)===String(r.attributes[o])))[0],l=null==i||null==(s=i.symbol)?void 0:s.color;l?n.push([r.attributes[t.name]].concat(l)):a&&n.push([r.attributes[t.name]].concat(a.color))}))}else{if("value"!==o.toLowerCase())return!1;e.uniqueValueInfos.forEach((e=>{var t;const r=null==e||null==(t=e.symbol)?void 0:t.color;r?n.push([parseInt(""+e.value,10)].concat(r)):a&&n.push([parseInt(""+e.value,10)].concat(a.color))}))}if(0===n.length)return!1;const l=g({colormap:n});return this.lookup={rendererJSON:e,colormapLut:l},this.canRenderInWebGL=!0,!0}_updateColormapRenderer(e){if(!R(this.rasterInfo))return!1;const t=e.colormapInfos.map((e=>[e.value].concat(e.color))).sort(((e,t)=>e[0]-t[0]));if(!t||0===t.length)return!1;const r=g({colormap:t});return this.lookup={rendererJSON:e,colormapLut:r},this.canRenderInWebGL=!0,!0}_updateShadedReliefRenderer(e){if(!O(this.rasterInfo))return!1;if(e.colorRamp){const r=k(e.colorRamp,256,!0),s=g({colormap:r}),o=[],a=s.indexedColormap;for(let e=0;e<a.length;e+=4){const r=t({r:a[e],g:a[e+1],b:a[e+2]});o.push([r.h/60,r.s/100,255*r.v/100])}this.lookup={rendererJSON:e,colormapLut:s,hsvMap:o}}else this.lookup=null;return this.canRenderInWebGL=!0,!0}_updateClassBreaksRenderer(e){const t=this.rasterInfo.pixelType,r=["u8","u16","s8","s16"].indexOf(t)>-1,s=e.classBreakInfos;if(null==s||!s.length)return!1;const o=s.sort(((e,t)=>e.classMaxValue-t.classMaxValue)),a=o[o.length-1];let i=e.minValue;if(!r){const t=[];for(let e=0;e<o.length;e++){var n;t.push({value:null!=(n=o[e].classMinValue)?n:i,mappedColor:o[e].symbol.color}),i=o[e].classMaxValue}return t.push({value:a.classMaxValue,mappedColor:a.symbol.color}),this.lookup={rendererJSON:e,remapLut:t},this.canRenderInWebGL=!1,!0}const l=[];i=Math.floor(e.minValue);for(let c=0;c<o.length;c++){const e=o[c];for(let t=i;t<e.classMaxValue;t++)l.push([t].concat(e.symbol.color));i=Math.ceil(e.classMaxValue)}a.classMaxValue===i&&l.push([a.classMaxValue].concat(a.symbol.color));const u=g({colormap:l,fillUnspecified:!1});return this.lookup={rendererJSON:e,colormapLut:u},this.canRenderInWebGL=!0,!0}_isHistogramRequired(e){return"percentClip"===e||"histogramEqualization"===e}_isValidRasterStatistics(e){return a(e)&&e.length>0&&null!=e[0].min&&null!=e[0].max}_updateStretchRenderer(e){var t;let{stretchType:r,dra:s}=e;if(!("none"===r||null!=(t=e.statistics)&&t.length||this._isValidRasterStatistics(this.rasterInfo.statistics)||s))return!1;const a=o(e.histograms||this.rasterInfo.histograms);!this._isHistogramRequired(e.stretchType)||null!=a&&a.length||s||(r="minMax");const{gamma:i,useGamma:n,colorRamp:l}=e,u=this.rasterInfo.pixelType,c=!s&&["u8","u16","s8","s16"].indexOf(u)>-1;if("histogramEqualization"===r){const t=a.map((e=>y(e)));this.lookup={rendererJSON:e,histogramLut:t}}else if(c){const t=this._getStretchCutoff(e),r=d({pixelType:u,...t,gamma:n?i:null});this.lookup={rendererJSON:e,stretchLut:r}}if(l){const t=k(l,256,!0);this.lookup||(this.lookup={rendererJSON:e}),this.lookup.colormapLut=g({colormap:t}),this.lookup.rendererJSON=e}return this.canRenderInWebGL=!0,!0}_getStretchCutoff(e,t=null,r,s){var i,n,l;let u,c,p=e.stretchType;var m;if(e.dra)if("minMax"===p&&a(t)&&t.statistics)u=t.statistics.map((e=>[e.minValue,e.maxValue,0,0]));else{const e=S(t);u=a(e)?e.statistics:null,c=a(e)?e.histograms:null}else u=(null==(m=e.statistics)?void 0:m.length)>0?e.statistics:o(this.rasterInfo.statistics),c=e.histograms||o(this.rasterInfo.histograms);!this._isHistogramRequired(p)||null!=(i=c)&&i.length||(p="minMax");const h=(null==(n=u)?void 0:n.length)||(null==(l=c)?void 0:l.length)||this.rasterInfo.bandCount,f=[],d=[];let g,b,x,v,k,C,_,O,R,I,V,N;switch(u&&!Array.isArray(u[0])&&(u=u.map((e=>[e.min,e.max,e.avg,e.stddev]))),p){case"none":{const e=L[this.rasterInfo.pixelType]||L.f32;for(O=0;O<h;O++)f[O]=e[0],d[O]=e[1]}break;case"minMax":for(O=0;O<h;O++)f[O]=u[O][0],d[O]=u[O][1];break;case"standardDeviation":for(O=0;O<h;O++)f[O]=u[O][2]-e.numberOfStandardDeviations*u[O][3],d[O]=u[O][2]+e.numberOfStandardDeviations*u[O][3],f[O]<u[O][0]&&(f[O]=u[O][0]),d[O]>u[O][1]&&(d[O]=u[O][1]);break;case"histogramEqualization":for(O=0;O<h;O++)f[O]=c[O].min,d[O]=c[O].max;break;case"percentClip":for(O=0;O<c.length;O++){for(g=c[O],k=new Uint32Array(g.size),v=[...g.counts],v.length>=20&&(v[0]=v[1]=v[2]=v[v.length-1]=v[v.length-2]=0),x=0,b=(g.max-g.min)/g.size,_=-.5===g.min&&1===b?.5:0,R=0;R<g.size;R++)x+=v[R],k[R]=x;for(C=(e.minPercent||0)*x/100,R=0;R<g.size;R++)if(k[R]>C){f[O]=g.min+b*(R+_);break}for(C=(1-(e.maxPercent||0)/100)*x,R=g.size-2;R>=0;R--)if(k[R]<C){d[O]=g.min+b*(R+2-_);break}}break;default:for(O=0;O<h;O++)f[O]=u[O][0],d[O]=u[O][1]}"histogramEqualization"===p?(V=c[0].size||256,I=0,s&&(N=c.map((e=>y(e))))):(V=e.max||255,I=e.min||0);const T={minCutOff:f,maxCutOff:d,outMax:V,outMin:I,histogramLut:N};return this._getSelectedBandCutoffs(T,r)}_getSelectedBandCutoffs(e,t){if(null==t||0===t.length)return e;const r=Math.max.apply(null,t),{minCutOff:s,maxCutOff:o,outMin:a,outMax:i,histogramLut:n}=e;return s.length===t.length||s.length<=r?e:{minCutOff:t.map((e=>s[e])),maxCutOff:t.map((e=>o[e])),histogramLut:n?t.map((e=>n[e])):null,outMin:a,outMax:i}}_generateStretchWebGLParams(e,t,r){let s=null,o=null;const i=this.lookup&&this.lookup.colormapLut;t.colorRamp&&i&&(s=i.indexedColormap,o=i.offset),"histogramEqualization"===t.stretchType&&(t={...t,stretchType:"minMax"});const{gamma:n}=t,l=!!(t.useGamma&&n&&n.some((e=>1!==e))),{minCutOff:u,maxCutOff:c,outMin:p,outMax:m}=this._getStretchCutoff(t,e,r);let h=0;a(e)&&(h=e.getPlaneCount(),2===h&&((e=e.clone()).statistics=[e.statistics[0]],e.pixels=[e.pixels[0]]));const f=Math.min(3,(null==r?void 0:r.length)||h||this.rasterInfo.bandCount),d=new Float32Array(f),g=s||l?1:255;let y;for(y=0;y<f;y++)d[y]=(m-p)/(c[y]-u[y])/g;const S=new Float32Array(f);if(l)for(y=0;y<f;y++)n[y]>1?n[y]>2?S[y]=6.5+(n[y]-2)**2.5:S[y]=6.5+100*(2-n[y])**4:S[y]=1;return{bandCount:f,outMin:p/g,outMax:m/g,minCutOff:u,maxCutOff:c,factor:d,useGamma:l,gamma:l?n:[1,1,1],gammaCorrection:l?S:[1,1,1],colormap:s,colormapOffset:o,stretchType:t.stretchType,type:"stretch"}}_generateShadedReliefWebGLParams(e,t,r){var s,a,i;let n=null,l=null;const u=this.lookup&&this.lookup.colormapLut;e.colorRamp&&u&&(n=u.indexedColormap,l=u.offset);const c={...e,isGCS:t,resolution:r},p=v(c),m=null==(s=o(this.rasterInfo.statistics))?void 0:s[0];return{...p,minValue:null!=(a=null==m?void 0:m.min)?a:0,maxValue:null!=(i=null==m?void 0:m.max)?i:8e3,hillshadeType:"traditional"===e.hillshadeType?0:1,type:"hillshade",colormap:n,colormapOffset:l}}_generateVectorFieldWebGLParams(e){var t,r,s,o,i,n;const{style:l,inputUnit:u,outputUnit:c,visualVariables:p,symbolTileSize:m,flowRepresentation:h}=e;let f;const d=null!=(t=null==p?void 0:p.find((e=>"sizeInfo"===e.type)))?t:{type:"sizeInfo",field:"Magnitude",maxDataValue:null==(r=this.rasterInfo.statistics)?void 0:r[0].max,maxSize:.8*m,minDataValue:null==(s=this.rasterInfo.statistics)?void 0:s[0].min,minSize:.2*m},g=d?d.minDataValue:null==(o=this.rasterInfo.statistics)?void 0:o[0].min,y=d?d.maxDataValue:null==(i=this.rasterInfo.statistics)?void 0:i[0].max,S=a(d.maxSize)&&a(d.minSize)?[d.minSize/m,d.maxSize/m]:[.2,.8];if("wind_speed"===l||"simple_scalar"===l){const e=(S[0]+S[1])/2;S[0]=S[1]=e}const b=a(g)&&a(y)?[g,y]:null;if("classified_arrow"===l)if(a(g)&&a(y)&&a(d)){f=[];const e=(d.maxDataValue-d.minDataValue)/5;for(let t=0;t<6;t++)f.push(d.minDataValue+e*t)}else f=[0,1e-6,3.5,7,10.5,14];const x="flow_to"===h===("ocean_current_kn"===l||"ocean_current_m"===l)?0:Math.PI,v=null==p?void 0:p.find((e=>"rotationInfo"===e.type));return{breakValues:f,dataRange:b,inputUnit:u,outputUnit:c,symbolTileSize:m,symbolPercentRange:S,style:l||"single_arrow",rotation:x,rotationType:(null==(n=this.rasterInfo.storageInfo)?void 0:n.tileInfo)&&"vector-uv"===this.rasterInfo.dataType?"geographic":(null==v?void 0:v.rotationType)||e.rotationType,type:"vectorField"}}};function V(e){return u(e)&&0!==e.validPixelCount}e([i({json:{write:!0}})],I.prototype,"rendererJSON",void 0),e([i({type:l,json:{write:!0}})],I.prototype,"rasterInfo",void 0),e([i({json:{write:!0}})],I.prototype,"lookup",void 0),e([i()],I.prototype,"canRenderInWebGL",void 0),I=e([n("esri.renderers.support.RasterSymbolizer")],I);const N=I;export{N as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../Color.js";import"../../rasterRenderers.js";import{isSome as t,unwrap as n}from"../../core/maybe.js";import{getMetersPerUnitForSR as r}from"../../core/unitUtils.js";import l from"../../layers/support/Field.js";import a from"../../layers/support/RasterInfo.js";import o from"./AuthoringInfo.js";import s from"./ClassBreakInfo.js";import{PREDEFINED_JSON_COLOR_RAMPS as i,convertColorRampToColormap as u}from"./colorRampUtils.js";import m from"./UniqueValueInfo.js";import c from"../../rest/support/AlgorithmicColorRamp.js";import f from"../../rest/support/ClassBreaksDefinition.js";import{createGenerateRendererClassBreaks as p}from"../../rest/support/generateRendererUtils.js";import d from"../../rest/support/MultipartColorRamp.js";import h from"../RasterStretchRenderer.js";import b from"../UniqueValueRenderer.js";import v from"../RasterColormapRenderer.js";import y from"../RasterShadedReliefRenderer.js";import g from"../ClassBreaksRenderer.js";import C from"../VectorFieldRenderer.js";const w=.25,x=d.fromJSON({type:"multipart",colorRamps:[{fromColor:[0,0,255],toColor:[0,255,255]},{fromColor:[0,255,255],toColor:[255,255,0]},{fromColor:[255,255,0],toColor:[255,0,0]}]}),M=d.fromJSON(i[0]),R=new Set(["scientific","standard-time","vector-uv","vector-magdir","vector-u","vector-v","vector-magnitude","vector-direction"]);function j(e,n){const{attributeTable:r,colormap:l}=e;if(H(e)){const n=X(e);if(t(n))return n}if(t(l)){const n=F(e);if(t(n))return n}if(t(r)){const n=q(e);if(t(n))return n}return V(e,n)}function k(e){const t=["raster-stretch"];return W(e)&&t.push("raster-colormap"),z(e)&&t.push("unique-value"),D(e)&&t.push("class-breaks"),U(e)&&t.push("raster-shaded-relief"),H(e)&&t.push("vector-field"),K(e)&&t.push("animated-flow"),t}function T(e,t,n){const r=["nearest","bilinear","cubic","majority"].find((e=>e===(null==n?void 0:n.toLowerCase())));if("Map"===t)return null!=r?r:"bilinear";if("standard-time"===e.dataType)return null!=r?r:"nearest";return"thematic"===e.dataType||e.attributeTable||e.colormap?"nearest"===r||"majority"===r?r:"nearest":null!=r?r:"bilinear"}function V(e,r){var l,a,o,s;e=I(e,null==r?void 0:r.variableName);const{bandCount:i}=e;let{bandIds:u,stretchType:m}=r||{};null!=(l=u)&&l.some((e=>e>=i))&&(u=null);let c=n(e.statistics),f=n(e.histograms);var p;i>1?(u=null!=(p=u)&&p.length?u:S(e),c=null==c?null:u.map((e=>c[e])),f=null==f?null:u.map((e=>f[e]))):u=[0];null==m&&(m=O(e));let d=!1;switch(m){case"none":d=!1;break;case"percent-clip":d=!(null!=(a=f)&&a.length);break;default:d=!(null!=(o=c)&&o.length)}const{dataType:b}=e,v=1===(null==(s=u)?void 0:s.length)&&R.has(b)?x:null,y=new h({stretchType:m,dynamicRangeAdjustment:d,colorRamp:v,outputMin:0,outputMax:255,gamma:1===u.length?[1]:[1,1,1],useGamma:!1});return"percent-clip"===m?y.maxPercent=y.minPercent=w:"standard-deviation"===m&&(y.numberOfStandardDeviations=2),!d&&(t(e.multidimensionalInfo)||null!=r&&r.includeStatisticsInStretch)&&("percent-clip"===m?y.histograms=f:"min-max"!==m&&"standard-deviation"!==m||(y.statistics=c)),y}function I(e,r){if(null==r)return e;let l=n(e.statistics),o=n(e.histograms);const{multidimensionalInfo:s}=e;if(r&&t(s)){const{statistics:e,histograms:t}=s.variables.find((e=>e.name===r));null!=e&&e.length&&(l=e),null!=t&&t.length&&(o=t)}return a.fromJSON({...e.toJSON(),statistics:l,histograms:o})}function S(e){const t=e.bandCount;if(1===t)return null;if(2===t)return[0];const n=e.keyProperties&&e.keyProperties.BandProperties;let r;if(n&&n.length===t){const{red:e,green:t,blue:l,nir:a}=B(n);null!=e&&null!=t&&null!=l?r=[e,t,l]:null!=a&&null!=e&&null!=t&&(r=[a,e,t])}return!r&&t>=3&&(r=[0,1,2]),r}function L(e,t){var n;const r=e.keyProperties&&e.keyProperties.BandProperties;return(t=null!=(n=t)&&n.length?t:Array.from(Array(e.bandCount).keys())).map((t=>r&&r.length===e.bandCount&&r[t]&&r[t].BandName||"band_"+(t+1)))}function B(e){const t={};for(let r=0;r<e.length;r++){var n;const l=e[r],a=null==(n=l.BandName)?void 0:n.toLowerCase();if("red"===a)t.red=r;else if("green"===a)t.green=r;else if("blue"===a)t.blue=r;else if("nearinfrared"===a||"nearinfrared_1"===a||"nir"===a)t.nir=r;else if(l.WavelengthMax&&l.WavelengthMin){const e=l.WavelengthMin,n=l.WavelengthMax;null==t.blue&&e>=410&&e<=480&&n>=480&&n<=540?t.blue=r:null==t.green&&e>=490&&e<=560&&n>=560&&n<=610?t.green=r:null==t.red&&e>=595&&e<=670&&n>=660&&n<=730?t.red=r:null==t.nir&&e>=700&&e<=860&&n>=800&&n<=950&&(t.nir=r)}}return t}function O(e){let n="percent-clip";const{pixelType:r,dataType:l,histograms:a,statistics:o}=e;return"u8"!==r||"processed"!==l&&t(a)&&t(o)?"u8"===r||"elevation"===l||R.has(l)?n="min-max":t(a)?n="percent-clip":t(o)&&(n="min-max",n="min-max"):n="none",n}function q(n,r,l,a){if(!z(n,r))return null;const{attributeTable:s,statistics:i}=n,c=E(s,r),f=P(s,"red"),p=P(s,"green"),d=P(s,"blue"),h=new o,v=[],y=new Set,g=!!(f&&p&&d);if(t(s))s.features.forEach((t=>{const n=t.attributes[c.name];if(!y.has(t.attributes[c.name])&&null!=n){y.add(n);const r=g&&("single"===f.type||"double"===f.type)&&("single"===p.type||"double"===p.type)&&("single"===d.type||"double"===d.type)&&!s.features.some((e=>e.attributes[f.name]>1||e.attributes[p.name]>1||e.attributes[d.name]>1)),l=r?255:1;v.push(new m({value:t.attributes[c.name],label:t.attributes[c.name]+"",symbol:{type:"simple-fill",style:"solid",outline:null,color:new e(g?[t.attributes[f.name]*l,t.attributes[p.name]*l,t.attributes[d.name]*l,1]:[0,0,0,0])}}))}}));else if(null!=i&&i[0])for(let t=i[0].min;t<=i[0].max;t++)v.push(new m({value:t,label:t.toString(),symbol:{type:"simple-fill",style:"solid",outline:null,color:new e([0,0,0,0])}}));if(v.sort(((e,t)=>e.value&&"string"==typeof e.value.valueOf()?0:e.value>t.value?1:-1)),!g){const t=u(M,v.length);v.forEach(((n,r)=>n.symbol.color=new e(t[r].slice(1,4)))),h.colorRamp=M}if(l||a){const t=l||u(a,v.length).map((e=>e.slice(1)));v.forEach(((n,r)=>n.symbol.color=new e(t[r]))),h.colorRamp=a}return new b({field:c.name,uniqueValueInfos:v,authoringInfo:h})}function E(e,n,r){let a;return t(e)?(a=n?e.fields.find((e=>n.toLowerCase()===e.name.toLowerCase())):N(e.fields),a||(r||(a=e.fields.find((e=>"string"===e.type))),a||(a=P(e,"value")))):a=new l({name:"value"}),a}function N(e){let t;for(let n=0;n<e.length;n++){const r=e[n].name.toLowerCase();if("string"===e[n].type){if(r.startsWith("class")){t=e[n];break}null==t&&(r.endsWith("name")||r.endsWith("type"))&&(t=e[n])}}return t}function P(e,n){return t(e)?e.fields.find((e=>e.name.toLowerCase()===n)):null}function z(e,n){const{attributeTable:r,bandCount:l}=e;if(!t(r)&&_(e))return!0;if(!t(r)||l>1)return!1;if(n){if(null==r.fields.find((e=>e.name.toLowerCase()===n.toLowerCase())))return!1}return!0}function W(e){const{bandCount:n,colormap:r}=e;return t(r)&&r.length&&1===n}function F(e){if(!W(e))return null;let r;const{attributeTable:l,colormap:a}=e;if(t(l)){const e=P(l,"value"),t=E(l,null,!0);"string"===t.type&&(r={},l.features.forEach((n=>{const l=n.attributes;r[l[e.name]]=t?l[t.name]:l[e.name]})))}return v.createFromColormap(n(a),r)}function U(e){return"elevation"===e.dataType}function A(e,t){var n;if(!U(e))return null;const{extent:l}=e,a=l.width*r(l.spatialReference);return t=null!=(n=t)?n:"multi-directional",new y({hillshadeType:t,scalingType:a>5e6?"adjusted":"none"})}function D(e){const{attributeTable:n,bandCount:r}=e;return 1===r&&(t(n)||t(e.histograms))}function J(e,n){e=I(e,null==n?void 0:n.variableName);const{attributeTable:r}=e;if(!D(e))return null;const l=t(e.histograms)?e.histograms[0]:null,a=(null==n?void 0:n.numClasses)||5,i=new o({classificationMethod:null==n?void 0:n.classificationMethod,colorRamp:null==n?void 0:n.colorRamp});let m=(null==n?void 0:n.field)||"value";const c=[],d=[],h=1e3,b=t(r),v=b&&r.fields.find((e=>"count"===e.name.toLowerCase())),y=b&&r.fields.find((e=>e.name.toLowerCase()===m.toLowerCase()));if(y&&v){m=y.name;const e=r.features.length;let t=0;r.features.forEach((n=>t+=n.attributes[v.name]/e)),r.features.forEach((n=>{const r=n.attributes[y.name],l=n.attributes[v.name];if(l>0){d.push(l);const n=Math.max(1,Math.round(l/e/t*h));for(let e=0;e<n;e++)c.push(r)}}))}else{const{pixelType:t}=e,n=(l.max-l.min)/l.size,r=t.indexOf("s")>-1||t.indexOf("u")>-1,a=r&&1===n?Math.floor(l.min+.5):l.min,o=r&&1===n?Math.floor(l.max-.5):l.max,s=l.size;let i=0;l.counts.forEach((e=>i+=e/s)),l.counts.forEach(((e,t)=>{if(e>0){d.push(e);const r=Math.max(1,Math.round(e/s/i*h)),u=0===t?a:t===s-1?o:l.min+n*(t+.5);for(let e=0;e<r;e++)c.push(u)}}))}const C=(null==n?void 0:n.classificationMethod)||"natural-breaks",w=p({values:c,valueFrequency:d,normalizationTotal:null,definition:new f({classificationMethod:C,breakCount:a,definedInterval:null==n?void 0:n.definedInterval})});let M=null==n?void 0:n.colors;if(!M){const e=(null==n?void 0:n.colorRamp)||x;i.colorRamp=e;const t=u(e,w.classBreaks.length,!0);M=t.map((e=>e.slice(1)))}const R=w.classBreaks.map(((e,t)=>new s({minValue:e.minValue,maxValue:e.maxValue,label:e.label,symbol:{type:"simple-fill",color:M[t]}})));return new g({field:m,classBreakInfos:R,authoringInfo:i})}function _(e){var t,n,r;return["u8","s8"].indexOf(e.pixelType)>-1&&null!=(null==(t=e.statistics)||null==(n=t[0])?void 0:n.min)&&null!=(null==(r=e.statistics[0])?void 0:r.max)&&1===e.bandCount}function G(t){const n=[];for(let r=0;r<t.length-1;r++)n[r]=new c({algorithm:"hsv",fromColor:t[r],toColor:t[r+1]||new e({r:255,g:255,b:255,a:1})});if(t.length>2){return new d({colorRamps:n})}return n[0]}function H(e){const{dataType:t}=e;return"vector-uv"===t||"vector-magdir"===t}function K(e){const{dataType:t}=e;return"vector-uv"===t||"vector-magdir"===t}const Q=new Map([["m/s","meter-per-second"],["km/h","kilometer-per-hour"],["knots","knots"],["ft/s","feet-per-second"],["mph","mile-per-hour"]]);function X(e){if(!H(e))return null;let n;if(t(e.statistics)&&e.statistics.length){const t="vector-uv"===e.dataType,{min:r,max:l}=e.statistics[0];n=[{type:"size",field:"Magnitude",minSize:10,maxSize:40,minDataValue:t?Math.min(Math.abs(r),Math.abs(l)):r,maxDataValue:t?Math.max(Math.abs(r),Math.abs(l)):l}]}const r=t(e.multidimensionalInfo)?Q.get(e.multidimensionalInfo.variables[0].unit):null,l=new C({visualVariables:n,inputUnit:r,rotationType:"geographic"});return l.visualVariables=[...l.sizeVariables,...l.rotationVariables],l}function Y(e){var t;return{color:null==(t=e.symbolLayers[0].material)?void 0:t.color,type:"esriSFS",style:"esriSFSSolid"}}function Z(e){if("uniqueValue"===e.type){var t;const n=e.uniqueValueInfos,r=n[0].symbol;return null!=r&&null!=(t=r.symbolLayers)&&t.length&&(e.uniqueValueInfos=n.map((e=>({value:e.value,label:e.label,symbol:e.symbol?Y(e.symbol):null})))),e}if("classBreaks"===e.type){var n;const t=e.classBreakInfos,r=t[0].symbol;return null!=r&&null!=(n=r.symbolLayers)&&n.length&&(e.classBreakInfos=t.map((e=>({classMinValue:e.classMinValue,classMaxValue:e.classMaxValue,label:e.label,symbol:e.symbol?Y(e.symbol):null})))),e}return e}export{J as createClassBreaksRenderer,G as createColorRamp,F as createColormapRenderer,j as createDefaultRenderer,A as createShadedReliefRenderer,V as createStretchRenderer,q as createUVRenderer,X as createVectorFieldRenderer,L as getBandNames,E as getClassField,S as getDefaultBandCombination,T as getDefaultInterpolation,P as getField,k as getSupportedRendererTypes,B as getWellKnownBandIndexes,K as isAnimatedFlowRendererSupported,D as isClassBreaksSupported,W as isColormapRendererSupported,U as isShadedReliefRendererSupported,_ as isSingleBand8BitRasterWithStats,z as isUVRendererSupported,H as isVectorFieldRendererSupported,Z as normalizeRendererJSON};
|
|
5
|
+
import e from"../../Color.js";import"../../rasterRenderers.js";import{isSome as t,unwrap as n}from"../../core/maybe.js";import{getMetersPerUnitForSR as r}from"../../core/unitUtils.js";import l from"../../layers/support/Field.js";import a from"../../layers/support/RasterInfo.js";import o from"./AuthoringInfo.js";import s from"./ClassBreakInfo.js";import{PREDEFINED_JSON_COLOR_RAMPS as i,convertColorRampToColormap as u}from"./colorRampUtils.js";import m from"./UniqueValueInfo.js";import c from"../../rest/support/AlgorithmicColorRamp.js";import f from"../../rest/support/ClassBreaksDefinition.js";import{createGenerateRendererClassBreaks as p}from"../../rest/support/generateRendererUtils.js";import d from"../../rest/support/MultipartColorRamp.js";import b from"../RasterStretchRenderer.js";import h from"../UniqueValueRenderer.js";import v from"../RasterColormapRenderer.js";import y from"../RasterShadedReliefRenderer.js";import g from"../ClassBreaksRenderer.js";import C from"../VectorFieldRenderer.js";const w=.25,x=d.fromJSON({type:"multipart",colorRamps:[{fromColor:[0,0,255],toColor:[0,255,255]},{fromColor:[0,255,255],toColor:[255,255,0]},{fromColor:[255,255,0],toColor:[255,0,0]}]}),M=d.fromJSON(i[0]),R=new Set(["scientific","standard-time","vector-uv","vector-magdir","vector-u","vector-v","vector-magnitude","vector-direction"]);function T(e,n){const{attributeTable:r,colormap:l}=e;if(K(e)){const n=Y(e);if(t(n))return n}if(t(l)){const n=W(e);if(t(n))return n}if(t(r)){const n=O(e);if(t(n))return n}return V(e,n)}function j(e){const t=["raster-stretch"];return F(e)&&t.push("raster-colormap"),z(e)&&t.push("unique-value"),D(e)&&t.push("class-breaks"),U(e)&&t.push("raster-shaded-relief"),K(e)&&t.push("vector-field"),Q(e)&&t.push("animated-flow"),t}function k(e,t,n){const r=["nearest","bilinear","cubic","majority"].find((e=>e===(null==n?void 0:n.toLowerCase())));if("Map"===t)return null!=r?r:"bilinear";if("standard-time"===e.dataType)return null!=r?r:"nearest";return"thematic"===e.dataType||e.attributeTable||e.colormap?"nearest"===r||"majority"===r?r:"nearest":null!=r?r:"bilinear"}function V(e,r){var l,a,o,s;e=I(e,null==r?void 0:r.variableName);const{bandCount:i}=e;let{bandIds:u,stretchType:m}=r||{};null!=(l=u)&&l.some((e=>e>=i))&&(u=null);let c=n(e.statistics),f=n(e.histograms);var p;i>1?(u=null!=(p=u)&&p.length?u:S(e),c=null==c?null:u.map((e=>c[e])),f=null==f?null:u.map((e=>f[e]))):u=[0];null==m&&(m=E(e));let d=!1;switch(m){case"none":d=!1;break;case"percent-clip":d=!(null!=(a=f)&&a.length);break;default:d=!(null!=(o=c)&&o.length)}const{dataType:h}=e,v=1===(null==(s=u)?void 0:s.length)&&R.has(h)?x:null,y=new b({stretchType:m,dynamicRangeAdjustment:d,colorRamp:v,outputMin:0,outputMax:255,gamma:1===u.length?[1]:[1,1,1],useGamma:!1});return"percent-clip"===m?y.maxPercent=y.minPercent=w:"standard-deviation"===m&&(y.numberOfStandardDeviations=2),!d&&(t(e.multidimensionalInfo)||null!=r&&r.includeStatisticsInStretch)&&("percent-clip"===m?y.histograms=f:"min-max"!==m&&"standard-deviation"!==m||(y.statistics=c)),y}function I(e,r){if(null==r)return e;let l=n(e.statistics),o=n(e.histograms);const{multidimensionalInfo:s}=e;if(r&&t(s)){const{statistics:e,histograms:t}=s.variables.find((e=>e.name===r));null!=e&&e.length&&(l=e),null!=t&&t.length&&(o=t)}return a.fromJSON({...e.toJSON(),statistics:l,histograms:o})}function S(e){const t=e.bandCount;if(1===t)return null;if(2===t)return[0];const n=e.keyProperties&&e.keyProperties.BandProperties;let r;if(n&&n.length===t){const{red:e,green:t,blue:l,nir:a}=B(n);null!=e&&null!=t&&null!=l?r=[e,t,l]:null!=a&&null!=e&&null!=t&&(r=[a,e,t])}return!r&&t>=3&&(r=[0,1,2]),r}function L(e,t){var n;const r=e.keyProperties&&e.keyProperties.BandProperties;return(t=null!=(n=t)&&n.length?t:Array.from(Array(e.bandCount).keys())).map((t=>r&&r.length===e.bandCount&&r[t]&&r[t].BandName||"band_"+(t+1)))}function B(e){const t={};for(let r=0;r<e.length;r++){var n;const l=e[r],a=null==(n=l.BandName)?void 0:n.toLowerCase();if("red"===a)t.red=r;else if("green"===a)t.green=r;else if("blue"===a)t.blue=r;else if("nearinfrared"===a||"nearinfrared_1"===a||"nir"===a)t.nir=r;else if(l.WavelengthMax&&l.WavelengthMin){const e=l.WavelengthMin,n=l.WavelengthMax;null==t.blue&&e>=410&&e<=480&&n>=480&&n<=540?t.blue=r:null==t.green&&e>=490&&e<=560&&n>=560&&n<=610?t.green=r:null==t.red&&e>=595&&e<=670&&n>=660&&n<=730?t.red=r:null==t.nir&&e>=700&&e<=860&&n>=800&&n<=950&&(t.nir=r)}}return t}function E(e){let n="percent-clip";const{pixelType:r,dataType:l,histograms:a,statistics:o}=e;return"u8"!==r||"processed"!==l&&t(a)&&t(o)?"u8"===r||"elevation"===l||R.has(l)?n="min-max":t(a)?n="percent-clip":t(o)&&(n="min-max",n="min-max"):n="none",n}function O(n,r,l,a){if(!z(n,r))return null;const{attributeTable:s,statistics:i}=n,c=q(s,r),f=P(s,"red"),p=P(s,"green"),d=P(s,"blue"),b=new o,v=[],y=new Set,g=!!(f&&p&&d);if(t(s))s.features.forEach((t=>{const n=t.attributes[c.name];if(!y.has(t.attributes[c.name])&&null!=n){y.add(n);const r=g&&("single"===f.type||"double"===f.type)&&("single"===p.type||"double"===p.type)&&("single"===d.type||"double"===d.type)&&!s.features.some((e=>e.attributes[f.name]>1||e.attributes[p.name]>1||e.attributes[d.name]>1)),l=r?255:1;v.push(new m({value:t.attributes[c.name],label:t.attributes[c.name]+"",symbol:{type:"simple-fill",style:"solid",outline:null,color:new e(g?[t.attributes[f.name]*l,t.attributes[p.name]*l,t.attributes[d.name]*l,1]:[0,0,0,0])}}))}}));else if(null!=i&&i[0])for(let t=i[0].min;t<=i[0].max;t++)v.push(new m({value:t,label:t.toString(),symbol:{type:"simple-fill",style:"solid",outline:null,color:new e([0,0,0,0])}}));if(v.sort(((e,t)=>e.value&&"string"==typeof e.value.valueOf()?0:e.value>t.value?1:-1)),!g){const t=u(M,v.length);v.forEach(((n,r)=>n.symbol.color=new e(t[r].slice(1,4)))),b.colorRamp=M}if(l||a){const t=l||u(a,v.length).map((e=>e.slice(1)));v.forEach(((n,r)=>n.symbol.color=new e(t[r]))),b.colorRamp=a}return new h({field:c.name,uniqueValueInfos:v,authoringInfo:b})}function q(e,n,r){let a;return t(e)?(a=n?e.fields.find((e=>n.toLowerCase()===e.name.toLowerCase())):N(e.fields),a||(r||(a=e.fields.find((e=>"string"===e.type))),a||(a=P(e,"value")))):a=new l({name:"value"}),a}function N(e){let t;for(let n=0;n<e.length;n++){const r=e[n].name.toLowerCase();if("string"===e[n].type){if(r.startsWith("class")){t=e[n];break}null==t&&(r.endsWith("name")||r.endsWith("type"))&&(t=e[n])}}return t}function P(e,n){return t(e)?e.fields.find((e=>e.name.toLowerCase()===n)):null}function z(e,n){const{attributeTable:r,bandCount:l}=e;if(!t(r)&&G(e))return!0;if(!t(r)||l>1)return!1;if(n){if(null==r.fields.find((e=>e.name.toLowerCase()===n.toLowerCase())))return!1}return!0}function F(e){const{bandCount:n,colormap:r}=e;return t(r)&&r.length&&1===n}function W(e){if(!F(e))return null;let r;const{attributeTable:l,colormap:a}=e;if(t(l)){const e=P(l,"value"),t=q(l,null,!0);"string"===t.type&&(r={},l.features.forEach((n=>{const l=n.attributes;r[l[e.name]]=t?l[t.name]:l[e.name]})))}return v.createFromColormap(n(a),r)}function U(e){return"elevation"===e.dataType}function A(e,t){var n;if(!U(e))return null;const{extent:l}=e,a=l.width*r(l.spatialReference);return t=null!=(n=t)?n:"multi-directional",new y({hillshadeType:t,scalingType:a>5e6?"adjusted":"none"})}function D(e){const{attributeTable:n,bandCount:r}=e;return 1===r&&(t(n)||t(e.histograms))}function J(e,n){e=I(e,null==n?void 0:n.variableName);const{attributeTable:r}=e;if(!D(e))return null;const l=t(e.histograms)?e.histograms[0]:null,a=isFinite(null==n?void 0:n.numClasses)?n.numClasses:5,i=new o({classificationMethod:null==n?void 0:n.classificationMethod,colorRamp:null==n?void 0:n.colorRamp});let m=(null==n?void 0:n.field)||"value";const c=[],d=[],b=1e3,h=t(r),v=h&&r.fields.find((e=>"count"===e.name.toLowerCase())),y=h&&r.fields.find((e=>e.name.toLowerCase()===m.toLowerCase()));if(y){m=y.name;const e=r.features.length;let t=0;r.features.forEach((n=>t+=(v?n.attributes[v.name]:50)/e)),r.features.forEach((n=>{const r=n.attributes[y.name],l=v?n.attributes[v.name]:50;if(l>0){d.push(l);const n=Math.max(1,Math.round(l/e/t*b));for(let e=0;e<n;e++)c.push(r)}}))}else{const{pixelType:t}=e,n=(l.max-l.min)/l.size,a=t.indexOf("s")>-1||t.indexOf("u")>-1,o=a&&1===n?Math.floor(l.min+.5):l.min,s=a&&1===n?Math.floor(l.max-.5):l.max,i=l.size;let u,m=0;l.counts.forEach((e=>m+=e/i)),l.counts.forEach(((e,t)=>{if(e>0){d.push(e);const a=Math.max(1,Math.round(e/i/m*b));u=h?r.features[t].attributes[y.name]:0===t?o:t===i-1?s:l.min+n*(t+.5);for(let e=0;e<a;e++)c.push(u)}}))}const C=(null==n?void 0:n.classificationMethod)||"natural-breaks";let w=null==n?void 0:n.definedInterval;"defined-interval"!==C||w||(w=_(e,y,a));const M=p({values:c,valueFrequency:d,normalizationTotal:null,definition:new f({classificationMethod:C,breakCount:a,definedInterval:w})});let R=null==n?void 0:n.colors;if(!R){const e=(null==n?void 0:n.colorRamp)||x;i.colorRamp=e;const t=u(e,M.classBreaks.length,!0);R=t.map((e=>e.slice(1)))}const T=M.classBreaks.map(((e,t)=>new s({minValue:e.minValue,maxValue:e.maxValue,label:e.label,symbol:{type:"simple-fill",color:R[t]}})));return new g({field:m,classBreakInfos:T,authoringInfo:i})}function _(e,n,r){let l=0,a=0;if(t(e.attributeTable)){const t=e.attributeTable;l=a=t.features[0].attributes[n.name],t.features.forEach((e=>{const t=e.attributes[n.name];t<l&&(l=t),t>a&&(a=t)}))}else if(t(e.histograms)){const t=e.histograms;l=t[0].min,a=t[0].max}return(a-l)/r}function G(e){var t,n,r;return["u8","s8"].indexOf(e.pixelType)>-1&&null!=(null==(t=e.statistics)||null==(n=t[0])?void 0:n.min)&&null!=(null==(r=e.statistics[0])?void 0:r.max)&&1===e.bandCount}function H(t){const n=[];for(let r=0;r<t.length-1;r++)n[r]=new c({algorithm:"hsv",fromColor:t[r],toColor:t[r+1]||new e({r:255,g:255,b:255,a:1})});if(t.length>2){return new d({colorRamps:n})}return n[0]}function K(e){const{dataType:t}=e;return"vector-uv"===t||"vector-magdir"===t}function Q(e){const{dataType:t}=e;return"vector-uv"===t||"vector-magdir"===t}const X=new Map([["m/s","meter-per-second"],["km/h","kilometer-per-hour"],["knots","knots"],["ft/s","feet-per-second"],["mph","mile-per-hour"]]);function Y(e){if(!K(e))return null;let n;if(t(e.statistics)&&e.statistics.length){const t="vector-uv"===e.dataType,{min:r,max:l}=e.statistics[0];n=[{type:"size",field:"Magnitude",minSize:10,maxSize:40,minDataValue:t?Math.min(Math.abs(r),Math.abs(l)):r,maxDataValue:t?Math.max(Math.abs(r),Math.abs(l)):l}]}const r=t(e.multidimensionalInfo)?X.get(e.multidimensionalInfo.variables[0].unit):null,l=new C({visualVariables:n,inputUnit:r,rotationType:"geographic"});return l.visualVariables=[...l.sizeVariables,...l.rotationVariables],l}function Z(e){var t;return{color:null==(t=e.symbolLayers[0].material)?void 0:t.color,type:"esriSFS",style:"esriSFSSolid"}}function $(e){if("uniqueValue"===e.type){var t;const n=e.uniqueValueInfos,r=n[0].symbol;return null!=r&&null!=(t=r.symbolLayers)&&t.length&&(e.uniqueValueInfos=n.map((e=>({value:e.value,label:e.label,symbol:e.symbol?Z(e.symbol):null})))),e}if("classBreaks"===e.type){var n;const t=e.classBreakInfos,r=t[0].symbol;return null!=r&&null!=(n=r.symbolLayers)&&n.length&&(e.classBreakInfos=t.map((e=>({classMinValue:e.classMinValue,classMaxValue:e.classMaxValue,label:e.label,symbol:e.symbol?Z(e.symbol):null})))),e}return e}export{J as createClassBreaksRenderer,H as createColorRamp,W as createColormapRenderer,T as createDefaultRenderer,A as createShadedReliefRenderer,V as createStretchRenderer,O as createUVRenderer,Y as createVectorFieldRenderer,L as getBandNames,q as getClassField,S as getDefaultBandCombination,k as getDefaultInterpolation,_ as getDefinedInterval,P as getField,j as getSupportedRendererTypes,B as getWellKnownBandIndexes,Q as isAnimatedFlowRendererSupported,D as isClassBreaksSupported,F as isColormapRendererSupported,U as isShadedReliefRendererSupported,G as isSingleBand8BitRasterWithStats,z as isUVRendererSupported,K as isVectorFieldRendererSupported,$ as normalizeRendererJSON};
|
package/request.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"./config.js";import{id as t}from"./kernel.js";import r from"./core/Error.js";import s from"./core/has.js";import{clone as o}from"./core/lang.js";import{unwrap as n}from"./core/maybe.js";import{onAbort as a,isAbortError as i,createAbortError as l,isAborted as u}from"./core/promiseUtils.js";import{isDataProtocol as c,isBlobProtocol as d,normalize as p,getInterceptor as m,isTrustedServer as h,getOrigin as f,toHTTPS as y,addQueryParameter as w,objectToQuery as g,getProxyRule as b,getProxyUrl as q,addQueryParameters as T,hasSameOrigin as k,appUrl as O,addProxyRule as S}from"./core/urlUtils.js";import{supportsApiKey as x}from"./support/apiKeyUtils.js";import{loadImageAsync as v}from"./support/requestUtils.js";async function C(e,t){var r;const o=c(e),i=d(e);i||o||(e=p(e));const l={url:e,requestOptions:{...n(t)}};let u=m(e);if(u){const e=await K(u,l);if(null!=e)return{data:e,getHeader:_,requestOptions:l.requestOptions,url:l.url};u.after||u.error||(u=null)}if(e=l.url,"image"===(t=l.requestOptions).responseType){if(s("host-webworker")||s("host-node"))throw R("request:invalid-parameters",new Error("responseType 'image' is not supported in Web Workers or Node environment"),l)}else if(o)throw R("request:invalid-parameters",new Error("Data URLs are not supported for responseType = "+t.responseType),l);if("head"===t.method){if(t.body)throw R("request:invalid-parameters",new Error("body parameter cannot be set when method is 'head'"),l);if(o||i)throw R("request:invalid-parameters",new Error("data and blob URLs are not supported for method 'head'"),l)}if(await H(),E)return E.execute(e,t);const h=new AbortController;a(t,(()=>h.abort()));const f={controller:h,credential:null,credentialToken:null,fetchOptions:null,hasToken:!1,interceptor:u,params:l,redoRequest:!1,useIdentity:L.useIdentity,useProxy:!1,useSSL:!1,withCredentials:!1},y=await z(f);return null==(r=u)||null==r.after||r.after(y),y}let E;const L=e.request,U="FormData"in globalThis,j=[499,498,403,401],P=["COM_0056","COM_0057","SB_0008"],D=[/\/arcgis\/tokens/i,/\/sharing(\/rest)?\/generatetoken/i,/\/rest\/info/i],_=()=>null,F=Symbol();function I(e){const t=f(e);t&&!C._corsServers.includes(t)&&C._corsServers.push(t)}function M(e){const t=f(e);return!t||t.endsWith(".arcgis.com")||C._corsServers.includes(t)||h(t)}function R(e,t,s,n){let a="Error";const u={url:s.url,requestOptions:s.requestOptions,getHeader:_,ssl:!1};if(t instanceof r)return t.details?(t.details=o(t.details),t.details.url=s.url,t.details.requestOptions=s.requestOptions):t.details=u,t;if(t){const e=n&&(e=>n.headers.get(e)),r=n&&n.status,s=t.message;s&&(a=s),e&&(u.getHeader=e),u.httpStatus=(null!=t.httpCode?t.httpCode:t.code)||r||0,u.subCode=t.subcode,u.messageCode=t.messageCode,"string"==typeof t.details?u.messages=[t.details]:u.messages=t.details,u.raw=F in t?t[F]:t}return i(t)?l():new r(e,a,u)}async function H(){s("host-webworker")?E||(E=await import("./core/workers/request.js")):C._abortableFetch||(C._abortableFetch=globalThis.fetch.bind(globalThis))}async function A(){t||await import("./identity/IdentityManager.js")}async function B(r){const s=r.params.url,o=r.params.requestOptions,n=r.controller.signal,a=o.body;let i=null,l=null,c=null;if(U&&"HTMLFormElement"in globalThis&&(a instanceof FormData?i=a:a instanceof HTMLFormElement&&(l=a,i=new FormData(l))),"string"==typeof a&&(c=a),r.fetchOptions={cache:o.cacheBust&&!C._abortableFetch.polyfill?"no-cache":"default",credentials:"same-origin",headers:o.headers||{},method:"head"===o.method?"HEAD":"GET",mode:"cors",redirect:"follow",signal:n},(i||c)&&(r.fetchOptions.body=i||c),"anonymous"===o.authMode&&(r.useIdentity=!1),r.hasToken=!!(/token=/i.test(s)||o.query&&o.query.token||i&&i.get&&i.get("token")||l&&l.elements.token),!r.hasToken&&e.apiKey&&x(s)&&(o.query||(o.query={}),o.query.token=e.apiKey,r.hasToken=!0),r.useIdentity&&!r.hasToken&&!r.credentialToken&&!N(s)&&!u(n)){let e;"immediate"===o.authMode?(await A(),e=await t.getCredential(s,{signal:n}),r.credential=e):"no-prompt"===o.authMode?(await A(),e=await t.getCredential(s,{prompt:!1,signal:n}).catch((()=>{})),r.credential=e):t&&(e=t.findCredential(s)),e&&(r.credentialToken=e.token,r.useSSL=!!e.ssl)}}function N(e){return D.some((t=>t.test(e)))}async function $(e){let r=e.params.url;const o=e.params.requestOptions,n=e.fetchOptions,a=d(r)||c(r),i=o.responseType||"json",u=a?0:null!=o.timeout?o.timeout:L.timeout;let p=!1;if(!a){e.useSSL&&(r=y(r)),o.cacheBust&&"default"===n.cache&&(r=w(r,"request.preventCache",Date.now()));let a={...o.query};e.credentialToken&&(a.token=e.credentialToken);let i=g(a);s("esri-url-encodes-apostrophe")&&(i=i.replace(/'/g,"%27"));const l=r.length+1+i.length;let u;p="delete"===o.method||"post"===o.method||"put"===o.method||!!o.body||l>L.maxUrlLength;const c=o.useProxy||!!b(r);if(c){const e=q(r);u=e.path,!p&&u.length+1+l>L.maxUrlLength&&(p=!0),e.query&&(a={...e.query,...a})}if("HEAD"===n.method&&(p||c)){if(p){if(l>L.maxUrlLength)throw R("request:invalid-parameters",new Error("URL exceeds maximum length"),e.params);throw R("request:invalid-parameters",new Error("cannot use POST request when method is 'head'"),e.params)}if(c)throw R("request:invalid-parameters",new Error("cannot use proxy when method is 'head'"),e.params)}if(p?(n.method="delete"===o.method?"DELETE":"put"===o.method?"PUT":"POST",o.body?r=T(r,a):(n.body=g(a),n.headers["Content-Type"]="application/x-www-form-urlencoded")):r=T(r,a),c&&(e.useProxy=!0,r=`${u}?${r}`),a.token&&U&&n.body instanceof FormData){const e=n.body;e.set?e.set("token",a.token):e.append("token",a.token)}if(o.hasOwnProperty("withCredentials"))e.withCredentials=o.withCredentials;else if(!k(r,O))if(h(r))e.withCredentials=!0;else if(t){const s=t.findServerInfo(r);s&&s.webTierAuth&&(e.withCredentials=!0)}e.withCredentials&&(n.credentials="include")}let m,x,v=0,E=!1;u>0&&(v=setTimeout((()=>{E=!0,e.controller.abort()}),u));try{if("native-request-init"===o.responseType)x=n,x.url=r;else if("image"!==o.responseType||"default"!==n.cache||"GET"!==n.method||p||W(o.headers)||!a&&!e.useProxy&&L.proxyUrl&&!M(r)){if(m=await C._abortableFetch(r,n),e.useProxy||I(r),"native"===o.responseType)x=m;else if("HEAD"!==n.method)if(m.ok){switch(i){case"array-buffer":x=await m.arrayBuffer();break;case"blob":case"image":x=await m.blob();break;default:x=await m.text()}if(v&&(clearTimeout(v),v=0),"json"===i||"xml"===i||"document"===i)if(x)switch(i){case"json":x=JSON.parse(x);break;case"xml":x=G(x,"application/xml");break;case"document":x=G(x,"text/html")}else x=null;if(x){if("array-buffer"===i||"blob"===i){const e=m.headers.get("Content-Type");if(/application\/json|text\/plain/i.test(e)&&x["blob"===i?"size":"byteLength"]<=750)try{const e=await new Response(x).json();e.error&&(x=e)}catch{}}"image"===i&&x instanceof Blob&&(x=await X(URL.createObjectURL(x),e,!0))}}else x=await m.text()}else x=await X(r,e)}catch(j){if("AbortError"===j.name){if(E)throw new Error("Timeout exceeded");throw l("Request canceled")}if(!(!m&&j instanceof TypeError&&L.proxyUrl)||o.body||"delete"===o.method||"head"===o.method||"post"===o.method||"put"===o.method||e.useProxy||M(r))throw j;e.redoRequest=!0,S({proxyUrl:L.proxyUrl,urlPrefix:f(r)})}finally{v&&clearTimeout(v)}return[m,x]}async function K(e,t){if(null!=e.responseData)return e.responseData;if(e.headers&&(t.requestOptions.headers={...t.requestOptions.headers,...e.headers}),e.query&&(t.requestOptions.query={...t.requestOptions.query,...e.query}),e.before){let o,n;try{n=await e.before(t)}catch(s){o=R("request:interceptor",s,t)}if((n instanceof Error||n instanceof r)&&(o=R("request:interceptor",n,t)),o)throw e.error&&e.error(o),o;return n}}function W(e){if(e)for(const t of Object.getOwnPropertyNames(e))if(e[t])return!0;return!1}function G(e,t){let r;try{r=(new DOMParser).parseFromString(e,t)}catch{}if(!r||r.getElementsByTagName("parsererror").length)throw new SyntaxError("XML Parse error");return r}async function z(e){var r,s;let o,n;await B(e);try{do{[o,n]=await $(e)}while(!await J(e,o,n))}catch(l){const t=R("request:server",l,e.params,o);throw t.details.ssl=e.useSSL,e.interceptor&&e.interceptor.error&&e.interceptor.error(t),t}const a=e.params.url;if(/\/sharing\/rest\/(accounts|portals)\/self/i.test(a)&&!e.hasToken&&!e.credentialToken&&null!=(r=n)&&null!=(s=r.user)&&s.username&&!h(a)){const e=f(a,!0);e&&L.trustedServers.push(e)}const i=e.credential;if(i&&t){const e=t.findServerInfo(i.server);let r=e&&e.owningSystemUrl;if(r){r=r.replace(/\/?$/,"/sharing");const e=t.findCredential(r,i.userId);e&&-1===t._getIdenticalSvcIdx(r,e)&&e.resources.unshift(r)}}return{data:n,getHeader:o?e=>o.headers.get(e):_,requestOptions:e.params.requestOptions,ssl:e.useSSL,url:e.params.url}}async function J(e,r,s){if(e.redoRequest)return e.redoRequest=!1,!1;const o=e.params.requestOptions;if(!r||"native"===o.responseType||"native-request-init"===o.responseType)return!0;let n,a,i,l;if(!r.ok)throw n=new Error(`Unable to load ${r.url} status: ${r.status}`),n[F]=s,n;null!=s&&s.error&&(n=s.error),n&&(a=Number(n.code),i=n.hasOwnProperty("subcode")?Number(n.subcode):null,l=n.messageCode,l=l&&l.toUpperCase());const u=o.authMode;if(403===a&&(4===i||n.message&&n.message.toLowerCase().indexOf("ssl")>-1&&-1===n.message.toLowerCase().indexOf("permission"))){if(!e.useSSL)return e.useSSL=!0,!1}else if(!e.hasToken&&e.useIdentity&&("no-prompt"!==u||498===a)&&-1!==j.indexOf(a)&&!N(e.params.url)&&(403!==a||-1===P.indexOf(l)&&(null==i||2===i&&e.credentialToken))){await A();try{const r=await t.getCredential(e.params.url,{error:R("request:server",n,e.params),prompt:"no-prompt"!==u,signal:e.controller.signal,token:e.credentialToken});return e.credential=r,e.credentialToken=r.token,e.useSSL=e.useSSL||r.ssl,!1}catch(c){if("no-prompt"===u)return e.credential=null,e.credentialToken=null,!1;n=c}}if(n)throw n;return!0}function X(e,t,r=!1){const s=t.controller.signal,o=new Image;return t.withCredentials?o.crossOrigin="use-credentials":o.crossOrigin="anonymous",o.alt="",o.src=e,v(o,e,r,s)}C._abortableFetch=null,C._corsServers=["https://server.arcgisonline.com","https://services.arcgisonline.com"];export{C as default};
|
|
5
|
+
import e from"./config.js";import{id as t}from"./kernel.js";import r from"./core/Error.js";import s from"./core/has.js";import{clone as o}from"./core/lang.js";import{unwrap as n}from"./core/maybe.js";import{onAbort as a,isAbortError as i,createAbortError as l,isAborted as u}from"./core/promiseUtils.js";import{isDataProtocol as c,isBlobProtocol as d,normalize as p,getInterceptor as m,isTrustedServer as h,getOrigin as f,toHTTPS as y,addQueryParameter as w,objectToQuery as g,getProxyRule as b,getProxyUrl as q,addQueryParameters as T,hasSameOrigin as k,getAppUrl as O,addProxyRule as S}from"./core/urlUtils.js";import{supportsApiKey as x}from"./support/apiKeyUtils.js";import{loadImageAsync as v}from"./support/requestUtils.js";async function C(e,t){var r;const o=c(e),i=d(e);i||o||(e=p(e));const l={url:e,requestOptions:{...n(t)}};let u=m(e);if(u){const e=await K(u,l);if(null!=e)return{data:e,getHeader:_,requestOptions:l.requestOptions,url:l.url};u.after||u.error||(u=null)}if(e=l.url,"image"===(t=l.requestOptions).responseType){if(s("host-webworker")||s("host-node"))throw R("request:invalid-parameters",new Error("responseType 'image' is not supported in Web Workers or Node environment"),l)}else if(o)throw R("request:invalid-parameters",new Error("Data URLs are not supported for responseType = "+t.responseType),l);if("head"===t.method){if(t.body)throw R("request:invalid-parameters",new Error("body parameter cannot be set when method is 'head'"),l);if(o||i)throw R("request:invalid-parameters",new Error("data and blob URLs are not supported for method 'head'"),l)}if(await H(),E)return E.execute(e,t);const h=new AbortController;a(t,(()=>h.abort()));const f={controller:h,credential:null,credentialToken:null,fetchOptions:null,hasToken:!1,interceptor:u,params:l,redoRequest:!1,useIdentity:L.useIdentity,useProxy:!1,useSSL:!1,withCredentials:!1},y=await z(f);return null==(r=u)||null==r.after||r.after(y),y}let E;const L=e.request,U="FormData"in globalThis,j=[499,498,403,401],P=["COM_0056","COM_0057","SB_0008"],D=[/\/arcgis\/tokens/i,/\/sharing(\/rest)?\/generatetoken/i,/\/rest\/info/i],_=()=>null,F=Symbol();function I(e){const t=f(e);t&&!C._corsServers.includes(t)&&C._corsServers.push(t)}function M(e){const t=f(e);return!t||t.endsWith(".arcgis.com")||C._corsServers.includes(t)||h(t)}function R(e,t,s,n){let a="Error";const u={url:s.url,requestOptions:s.requestOptions,getHeader:_,ssl:!1};if(t instanceof r)return t.details?(t.details=o(t.details),t.details.url=s.url,t.details.requestOptions=s.requestOptions):t.details=u,t;if(t){const e=n&&(e=>n.headers.get(e)),r=n&&n.status,s=t.message;s&&(a=s),e&&(u.getHeader=e),u.httpStatus=(null!=t.httpCode?t.httpCode:t.code)||r||0,u.subCode=t.subcode,u.messageCode=t.messageCode,"string"==typeof t.details?u.messages=[t.details]:u.messages=t.details,u.raw=F in t?t[F]:t}return i(t)?l():new r(e,a,u)}async function H(){s("host-webworker")?E||(E=await import("./core/workers/request.js")):C._abortableFetch||(C._abortableFetch=globalThis.fetch.bind(globalThis))}async function A(){t||await import("./identity/IdentityManager.js")}async function B(r){const s=r.params.url,o=r.params.requestOptions,n=r.controller.signal,a=o.body;let i=null,l=null,c=null;if(U&&"HTMLFormElement"in globalThis&&(a instanceof FormData?i=a:a instanceof HTMLFormElement&&(l=a,i=new FormData(l))),"string"==typeof a&&(c=a),r.fetchOptions={cache:o.cacheBust&&!C._abortableFetch.polyfill?"no-cache":"default",credentials:"same-origin",headers:o.headers||{},method:"head"===o.method?"HEAD":"GET",mode:"cors",redirect:"follow",signal:n},(i||c)&&(r.fetchOptions.body=i||c),"anonymous"===o.authMode&&(r.useIdentity=!1),r.hasToken=!!(/token=/i.test(s)||o.query&&o.query.token||i&&i.get&&i.get("token")||l&&l.elements.token),!r.hasToken&&e.apiKey&&x(s)&&(o.query||(o.query={}),o.query.token=e.apiKey,r.hasToken=!0),r.useIdentity&&!r.hasToken&&!r.credentialToken&&!N(s)&&!u(n)){let e;"immediate"===o.authMode?(await A(),e=await t.getCredential(s,{signal:n}),r.credential=e):"no-prompt"===o.authMode?(await A(),e=await t.getCredential(s,{prompt:!1,signal:n}).catch((()=>{})),r.credential=e):t&&(e=t.findCredential(s)),e&&(r.credentialToken=e.token,r.useSSL=!!e.ssl)}}function N(e){return D.some((t=>t.test(e)))}async function $(e){let r=e.params.url;const o=e.params.requestOptions,n=e.fetchOptions,a=d(r)||c(r),i=o.responseType||"json",u=a?0:null!=o.timeout?o.timeout:L.timeout;let p=!1;if(!a){e.useSSL&&(r=y(r)),o.cacheBust&&"default"===n.cache&&(r=w(r,"request.preventCache",Date.now()));let a={...o.query};e.credentialToken&&(a.token=e.credentialToken);let i=g(a);s("esri-url-encodes-apostrophe")&&(i=i.replace(/'/g,"%27"));const l=r.length+1+i.length;let u;p="delete"===o.method||"post"===o.method||"put"===o.method||!!o.body||l>L.maxUrlLength;const c=o.useProxy||!!b(r);if(c){const e=q(r);u=e.path,!p&&u.length+1+l>L.maxUrlLength&&(p=!0),e.query&&(a={...e.query,...a})}if("HEAD"===n.method&&(p||c)){if(p){if(l>L.maxUrlLength)throw R("request:invalid-parameters",new Error("URL exceeds maximum length"),e.params);throw R("request:invalid-parameters",new Error("cannot use POST request when method is 'head'"),e.params)}if(c)throw R("request:invalid-parameters",new Error("cannot use proxy when method is 'head'"),e.params)}if(p?(n.method="delete"===o.method?"DELETE":"put"===o.method?"PUT":"POST",o.body?r=T(r,a):(n.body=g(a),n.headers["Content-Type"]="application/x-www-form-urlencoded")):r=T(r,a),c&&(e.useProxy=!0,r=`${u}?${r}`),a.token&&U&&n.body instanceof FormData){const e=n.body;e.set?e.set("token",a.token):e.append("token",a.token)}if(o.hasOwnProperty("withCredentials"))e.withCredentials=o.withCredentials;else if(!k(r,O()))if(h(r))e.withCredentials=!0;else if(t){const s=t.findServerInfo(r);s&&s.webTierAuth&&(e.withCredentials=!0)}e.withCredentials&&(n.credentials="include")}let m,x,v=0,E=!1;u>0&&(v=setTimeout((()=>{E=!0,e.controller.abort()}),u));try{if("native-request-init"===o.responseType)x=n,x.url=r;else if("image"!==o.responseType||"default"!==n.cache||"GET"!==n.method||p||W(o.headers)||!a&&!e.useProxy&&L.proxyUrl&&!M(r)){if(m=await C._abortableFetch(r,n),e.useProxy||I(r),"native"===o.responseType)x=m;else if("HEAD"!==n.method)if(m.ok){switch(i){case"array-buffer":x=await m.arrayBuffer();break;case"blob":case"image":x=await m.blob();break;default:x=await m.text()}if(v&&(clearTimeout(v),v=0),"json"===i||"xml"===i||"document"===i)if(x)switch(i){case"json":x=JSON.parse(x);break;case"xml":x=G(x,"application/xml");break;case"document":x=G(x,"text/html")}else x=null;if(x){if("array-buffer"===i||"blob"===i){const e=m.headers.get("Content-Type");if(/application\/json|text\/plain/i.test(e)&&x["blob"===i?"size":"byteLength"]<=750)try{const e=await new Response(x).json();e.error&&(x=e)}catch{}}"image"===i&&x instanceof Blob&&(x=await X(URL.createObjectURL(x),e,!0))}}else x=await m.text()}else x=await X(r,e)}catch(j){if("AbortError"===j.name){if(E)throw new Error("Timeout exceeded");throw l("Request canceled")}if(!(!m&&j instanceof TypeError&&L.proxyUrl)||o.body||"delete"===o.method||"head"===o.method||"post"===o.method||"put"===o.method||e.useProxy||M(r))throw j;e.redoRequest=!0,S({proxyUrl:L.proxyUrl,urlPrefix:f(r)})}finally{v&&clearTimeout(v)}return[m,x]}async function K(e,t){if(null!=e.responseData)return e.responseData;if(e.headers&&(t.requestOptions.headers={...t.requestOptions.headers,...e.headers}),e.query&&(t.requestOptions.query={...t.requestOptions.query,...e.query}),e.before){let o,n;try{n=await e.before(t)}catch(s){o=R("request:interceptor",s,t)}if((n instanceof Error||n instanceof r)&&(o=R("request:interceptor",n,t)),o)throw e.error&&e.error(o),o;return n}}function W(e){if(e)for(const t of Object.getOwnPropertyNames(e))if(e[t])return!0;return!1}function G(e,t){let r;try{r=(new DOMParser).parseFromString(e,t)}catch{}if(!r||r.getElementsByTagName("parsererror").length)throw new SyntaxError("XML Parse error");return r}async function z(e){var r,s;let o,n;await B(e);try{do{[o,n]=await $(e)}while(!await J(e,o,n))}catch(l){const t=R("request:server",l,e.params,o);throw t.details.ssl=e.useSSL,e.interceptor&&e.interceptor.error&&e.interceptor.error(t),t}const a=e.params.url;if(/\/sharing\/rest\/(accounts|portals)\/self/i.test(a)&&!e.hasToken&&!e.credentialToken&&null!=(r=n)&&null!=(s=r.user)&&s.username&&!h(a)){const e=f(a,!0);e&&L.trustedServers.push(e)}const i=e.credential;if(i&&t){const e=t.findServerInfo(i.server);let r=e&&e.owningSystemUrl;if(r){r=r.replace(/\/?$/,"/sharing");const e=t.findCredential(r,i.userId);e&&-1===t._getIdenticalSvcIdx(r,e)&&e.resources.unshift(r)}}return{data:n,getHeader:o?e=>o.headers.get(e):_,requestOptions:e.params.requestOptions,ssl:e.useSSL,url:e.params.url}}async function J(e,r,s){if(e.redoRequest)return e.redoRequest=!1,!1;const o=e.params.requestOptions;if(!r||"native"===o.responseType||"native-request-init"===o.responseType)return!0;let n,a,i,l;if(!r.ok)throw n=new Error(`Unable to load ${r.url} status: ${r.status}`),n[F]=s,n;null!=s&&s.error&&(n=s.error),n&&(a=Number(n.code),i=n.hasOwnProperty("subcode")?Number(n.subcode):null,l=n.messageCode,l=l&&l.toUpperCase());const u=o.authMode;if(403===a&&(4===i||n.message&&n.message.toLowerCase().indexOf("ssl")>-1&&-1===n.message.toLowerCase().indexOf("permission"))){if(!e.useSSL)return e.useSSL=!0,!1}else if(!e.hasToken&&e.useIdentity&&("no-prompt"!==u||498===a)&&-1!==j.indexOf(a)&&!N(e.params.url)&&(403!==a||-1===P.indexOf(l)&&(null==i||2===i&&e.credentialToken))){await A();try{const r=await t.getCredential(e.params.url,{error:R("request:server",n,e.params),prompt:"no-prompt"!==u,signal:e.controller.signal,token:e.credentialToken});return e.credential=r,e.credentialToken=r.token,e.useSSL=e.useSSL||r.ssl,!1}catch(c){if("no-prompt"===u)return e.credential=null,e.credentialToken=null,!1;n=c}}if(n)throw n;return!0}function X(e,t,r=!1){const s=t.controller.signal,o=new Image;return t.withCredentials?o.crossOrigin="use-credentials":o.crossOrigin="anonymous",o.alt="",o.src=e,v(o,e,r,s)}C._abortableFetch=null,C._corsServers=["https://server.arcgisonline.com","https://services.arcgisonline.com"];export{C as default};
|
package/rest/print.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../config.js";import{id as t}from"../kernel.js";import i from"../request.js";import r from"../core/Error.js";import{JSONMap as a}from"../core/jsonMap.js";import{isSome as n}from"../core/maybe.js";import{createScreenPoint as l,pt2px as s,px2pt as o}from"../core/screenUtils.js";import{normalize as c,dataComponents as u}from"../core/urlUtils.js";import y from"../geometry/Polygon.js";import{collectLabelingFields as f}from"../layers/support/fieldUtils.js";import{getSizeRangeAtScale as m}from"../renderers/visualVariables/support/visualVariableUtils.js";import{execute as d}from"./geoprocessor/execute.js";import{submitJob as p}from"./geoprocessor/submitJob.js";import{toJSON as g}from"./support/fileFormat.js";import{toJSON as b}from"./support/layoutTemplate.js";import{getVisibleLayerViews as h,isGroupLayer as w,isScreenshotRequired as S,isBingMapsLayer as x,isCSVLayer as v,isFeatureLayer as D,isGeoJSONLayer as I,isGraphicsLayer as L,isImageryLayer as T,isImageryTileLayer as E,isKMLLayer as M,isMapImageLayer as V,isMapNotesLayer as O,isOpenStreetMapLayer as P,isStreamLayer as F,isTileLayer as N,isVectorTileLayer as R,isWebTileLayer as U,isWMSLayer as J,isWMTSLayer as j,isBlendLayer as A,applyVisualVariables as k,getContextBoundingBox as C,createPolygonLayer as z,createPolylineLayer as $,createPointLayer as K,createMultipointLayer as _}from"./support/printTaskUtils.js";import q from"./support/PrintTemplate.js";import{supportsApiKey as W}from"../support/apiKeyUtils.js";import{getFloorFilterClause as B}from"../views/support/floorFilterUtils.js";const G={Feet:"ft",Kilometers:"km",Meters:"m",Miles:"mi"},Q=new a({esriFeet:"Feet",esriKilometers:"Kilometers",esriMeters:"Meters",esriMiles:"Miles"}),H=new a({esriExecutionTypeSynchronous:"sync",esriExecutionTypeAsynchronous:"async"}),X=new Map;async function Y(e,t,r){const a=ie(e);let n=X.get(a);return Promise.resolve().then((()=>n?{data:n.gpMetadata}:(n={gpServerUrl:a,is11xService:!1,legendLayerNameMap:{},legendLayers:[]},i(a,{query:{f:"json"}})))).then((e=>(n.gpMetadata=e.data,n.cimVersion=n.gpMetadata.cimVersion,n.is11xService=!!n.cimVersion,X.set(a,n),ee(t,n)))).then((i=>{const a=Me(n);let l;const s=e=>"sync"===a?e.results&&e.results[0]&&e.results[0].value:l.fetchResultData("Output_File",null,r).then((e=>e.value));return"async"===a?p(e,i,null,r).then((e=>(l=e,e.waitForJobCompletion({interval:t.updateDelay}).then(s)))):d(e,i,null,r).then(s)}))}async function Z(e){const t=ie(e);return Me(X.get(t))}async function ee(e,t){t=t||{is11xService:!1,legendLayerNameMap:{},legendLayers:[]};const i=e.template||new q;null==i.showLabels&&(i.showLabels=!0);const a=i.exportOptions;let n;const l=b(i.layout);if(a){if(n={dpi:a.dpi},"map_only"===l.toLowerCase()||""===l){const e=a.width,t=a.height;n.outputSize=[e,t]}}const s=i.layoutOptions;let o;if(s){let e,t;"Miles"===s.scalebarUnit||"Kilometers"===s.scalebarUnit?(e="Kilometers",t="Miles"):"Meters"!==s.scalebarUnit&&"Feet"!==s.scalebarUnit||(e="Meters",t="Feet"),o={titleText:s.titleText,authorText:s.authorText,copyrightText:s.copyrightText,customTextElements:s.customTextElements,scaleBarOptions:{metricUnit:Q.toJSON(e),metricLabel:G[e],nonMetricUnit:Q.toJSON(t),nonMetricLabel:G[t]}}}let c=null;null!=s&&s.legendLayers&&(c=s.legendLayers.map((e=>{t.legendLayerNameMap[e.layerId]=e.title;const i={id:e.layerId};return e.subLayerIds&&(i.subLayerIds=e.subLayerIds),i})));const u=await te(e,i,t);if(u.operationalLayers){const e=new RegExp("[\\u4E00-\\u9FFF\\u0E00-\\u0E7F\\u0900-\\u097F\\u3040-\\u309F\\u30A0-\\u30FF\\u31F0-\\u31FF]"),i=/[\u0600-\u06FF]/,a=t=>{const r=t.text,a=t.font,n=a&&a.family&&a.family.toLowerCase();r&&a&&("arial"===n||"arial unicode ms"===n)&&(a.family=e.test(r)?"Arial Unicode MS":"Arial","normal"!==a.style&&i.test(r)&&(a.family="Arial Unicode MS"))},n=()=>{throw new r("print-task:cim-symbol-unsupported","CIMSymbol is not supported by a print service published from ArcMap")};u.operationalLayers.forEach((e=>{var i,r,l;null!=(i=e.featureCollection)&&i.layers?e.featureCollection.layers.forEach((e=>{var i,r,l,s;if(null!=(i=e.layerDefinition)&&null!=(r=i.drawingInfo)&&null!=(l=r.renderer)&&l.symbol){const i=e.layerDefinition.drawingInfo.renderer;"esriTS"===i.symbol.type?a(i.symbol):"CIMSymbolReference"!==i.symbol.type||t.is11xService||n()}null!=(s=e.featureSet)&&s.features&&e.featureSet.features.forEach((e=>{e.symbol&&("esriTS"===e.symbol.type?a(e.symbol):"CIMSymbolReference"!==e.symbol.type||t.is11xService||n())}))})):!t.is11xService&&null!=(r=e.layerDefinition)&&null!=(l=r.drawingInfo)&&l.renderer&&JSON.stringify(e.layerDefinition.drawingInfo.renderer).includes('"type":"CIMSymbolReference"')&&n()}))}e.outSpatialReference&&(u.mapOptions.spatialReference=e.outSpatialReference.toJSON()),Object.assign(u,{exportOptions:n,layoutOptions:o||{}}),Object.assign(u.layoutOptions,{legendOptions:{operationalLayers:null!=c?c:t.legendLayers.slice()}}),t.legendLayers.length=0,X.set(t.gpServerUrl,t);const y={Web_Map_as_JSON:JSON.stringify(u),Format:g(i.format),Layout_Template:l};return e.extraParameters&&Object.assign(y,e.extraParameters),y}async function te(e,t,i){const r=e.view;let a=r.spatialReference;const l={operationalLayers:await re(r,t,i)};let s=i.ssExtent||e.extent||r.extent;if(a&&a.isWrappable&&(s=s.clone()._normalize(!0),a=s.spatialReference),l.mapOptions={extent:s&&s.toJSON(),spatialReference:a&&a.toJSON(),showAttribution:t.attributionVisible},i.ssExtent=null,r.background&&(l.background=r.background.toJSON()),r.rotation&&(l.mapOptions.rotation=-r.rotation),t.scalePreserved&&(l.mapOptions.scale=t.outScale||r.scale),n(r.timeExtent)){const e=n(r.timeExtent.start)?r.timeExtent.start.getTime():null,t=n(r.timeExtent.end)?r.timeExtent.end.getTime():null;l.mapOptions.time=[e,t]}return l}function ie(e){let t=e;const i=t.lastIndexOf("/GPServer/");return i>0&&(t=t.slice(0,i+9)),t}async function re(e,t,i){const r=[],a={layerView:null,printTemplate:t,view:e};let n=0;t.scalePreserved&&(n=t.outScale||e.scale);const l=h(e,n);for(const s of l){const e=s.layer;if(!e.loaded||w(e))continue;let t;a.layerView=s,t=S(s)?await ge(e,a,i):x(e)?ae(e):v(e)?await ne(e,a,i):D(e)?await se(e,a,i):I(e)?await oe(e,a,i):L(e)?await ce(e,a,i):T(e)?ue(e,i):E(e)?ye(e,i):M(e)?await fe(e,a,i):V(e)?me(e,a,i):O(e)?await de(a,i):P(e)?pe():F(e)?await be(e,a,i):N(e)?he(e):R(e)?await we(e,a,i):U(e)?Se(e):J(e)?xe(e):j(e)?ve(e):await ge(e,a,i),t&&(Array.isArray(t)?r.push(...t):(t.id=e.id,t.title=i.legendLayerNameMap[e.id]||e.title,t.opacity=e.opacity,t.minScale=e.minScale||0,t.maxScale=e.maxScale||0,A(e)&&e.blendMode&&"normal"!==e.blendMode&&(t.blendMode=e.blendMode),r.push(t)))}if(n&&r.forEach((e=>{e.minScale=0,e.maxScale=0})),e.graphics&&e.graphics.length){const a=await le(null,e.graphics,t,i);a&&r.push(a)}return r}function ae(e){return{culture:e.culture,key:e.key,type:"BingMaps"+("aerial"===e.style?"Aerial":"hybrid"===e.style?"Hybrid":"Road")}}async function ne(e,t,i){e.legendEnabled&&i.legendLayers.push({id:e.id});const r=t.layerView,a=t.printTemplate;let n;if(!i.is11xService||r.filter){return le(e,await Ee(r),a,i)}return n={type:"CSV"},e.write(n,{origin:"web-map"}),delete n.popupInfo,delete n.layerType,n.showLabels=a.showLabels&&e.labelsVisible,n}async function le(e,t,i,r){let a;const n=z(),l=$(),s=K(),o=_(),c=K();if(c.layerDefinition.name="textLayer",delete c.layerDefinition.drawingInfo,e){if("esri.layers.FeatureLayer"===e.declaredClass||"esri.layers.StreamLayer"===e.declaredClass?n.layerDefinition.name=l.layerDefinition.name=s.layerDefinition.name=o.layerDefinition.name=r.legendLayerNameMap[e.id]||e.get("arcgisProps.title")||e.title:"esri.layers.GraphicsLayer"===e.declaredClass&&(t=e.graphics.items),e.renderer){const t=e.renderer.toJSON();n.layerDefinition.drawingInfo.renderer=t,l.layerDefinition.drawingInfo.renderer=t,s.layerDefinition.drawingInfo.renderer=t,o.layerDefinition.drawingInfo.renderer=t}if(i.showLabels&&e.labelsVisible&&"function"==typeof e.write){var u,m;const t=null==(u=e.write({},{origin:"web-map"}).layerDefinition)||null==(m=u.drawingInfo)?void 0:m.labelingInfo;t&&(a=!0,n.layerDefinition.drawingInfo.labelingInfo=t,l.layerDefinition.drawingInfo.labelingInfo=t,s.layerDefinition.drawingInfo.labelingInfo=t,o.layerDefinition.drawingInfo.labelingInfo=t)}}let d;null!=e&&e.renderer||a||(delete n.layerDefinition.drawingInfo,delete l.layerDefinition.drawingInfo,delete s.layerDefinition.drawingInfo,delete o.layerDefinition.drawingInfo);const p=null==e?void 0:e.fieldsIndex,g=null==e?void 0:e.renderer;if(p){const t=new Set;a&&await f(t,e),g&&"function"==typeof g.collectRequiredFields&&await g.collectRequiredFields(t,p),d=Array.from(t);const i=p.fields.map((e=>e.toJSON()));n.layerDefinition.fields=i,l.layerDefinition.fields=i,s.layerDefinition.fields=i,o.layerDefinition.fields=i}const b=t&&t.length;let h;for(let f=0;f<b;f++){var w;const a=t[f]||t.getItemAt(f);if(!1===a.visible||!a.geometry)continue;if(h=a.toJSON(),h.hasOwnProperty("popupTemplate")&&delete h.popupTemplate,h.geometry&&h.geometry.z&&delete h.geometry.z,h.symbol&&h.symbol.outline&&"esriCLS"===h.symbol.outline.type&&!r.is11xService)continue;!r.is11xService&&h.symbol&&h.symbol.outline&&h.symbol.outline.color&&h.symbol.outline.color[3]&&(h.symbol.outline.color[3]=255);const u=e&&e.renderer&&("valueExpression"in e.renderer&&e.renderer.valueExpression||"hasVisualVariables"in e.renderer&&e.renderer.hasVisualVariables());if(!h.symbol&&e&&e.renderer&&u&&!r.is11xService){const t=e.renderer,i=await t.getSymbolAsync(a);if(!i)continue;h.symbol=i.toJSON(),"hasVisualVariables"in t&&t.hasVisualVariables()&&k(h.symbol,{renderer:t,graphic:a,symbol:i})}if(h.symbol&&(h.symbol.angle||delete h.symbol.angle,Ve(h.symbol)?h.symbol=await Le(h.symbol,r):h.symbol.text&&delete h.attributes),(!i||!i.forceFeatureAttributes)&&null!=(w=d)&&w.length){const e={};d.forEach((t=>{h.attributes&&h.attributes.hasOwnProperty(t)&&(e[t]=h.attributes[t])})),h.attributes=e}"polygon"===a.geometry.type?n.featureSet.features.push(h):"polyline"===a.geometry.type?l.featureSet.features.push(h):"point"===a.geometry.type?h.symbol&&h.symbol.text?c.featureSet.features.push(h):s.featureSet.features.push(h):"multipoint"===a.geometry.type?o.featureSet.features.push(h):"extent"===a.geometry.type&&(h.geometry=y.fromExtent(a.geometry).toJSON(),n.featureSet.features.push(h))}const S=[n,l,o,s,c].filter((e=>e.featureSet.features.length>0));for(const y of S){const e=y.featureSet.features.every((e=>e.symbol));!e||i&&i.forceFeatureAttributes||y.featureSet.features.forEach((e=>{delete e.attributes})),e&&delete y.layerDefinition.drawingInfo,y.layerDefinition.drawingInfo&&y.layerDefinition.drawingInfo.renderer&&await Te(y.layerDefinition.drawingInfo.renderer,r)}return S.length?{featureCollection:{layers:S},showLabels:a}:null}async function se(e,t,i){var r,a;let n;const l=e.renderer,s=parseFloat(i.cimVersion);if(e.featureReduction&&(!i.is11xService||s<2.9)||"dot-density"===(null==l?void 0:l.type)&&(!i.is11xService||s<2.6))return ge(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});const o=t.layerView,{printTemplate:c,view:u}=t,y=l&&("valueExpression"in l&&l.valueExpression||"hasVisualVariables"in l&&l.hasVisualVariables()),f="feature-layer"!==(null==(r=e.source)?void 0:r.type)&&"ogc-feature"!==(null==(a=e.source)?void 0:a.type);if(!i.is11xService&&y||o.filter||f||!l||"field"in l&&null!=l.field&&("string"!=typeof l.field||!e.getField(l.field))){const t=await Ee(o);n=await le(e,t,c,i)}else{var d,p;if(n={id:(g=e.write()).id,title:g.title,opacity:g.opacity,minScale:g.minScale,maxScale:g.maxScale,url:g.url,layerType:g.layerType,customParameters:g.customParameters,layerDefinition:g.layerDefinition},n.showLabels=c.showLabels&&e.labelsVisible,De(n,e),null!=(d=n.layerDefinition)&&null!=(p=d.drawingInfo)&&p.renderer&&(delete n.layerDefinition.minScale,delete n.layerDefinition.maxScale,await Te(n.layerDefinition.drawingInfo.renderer,i),"visualVariables"in l&&l.visualVariables&&l.visualVariables[0])){const e=l.visualVariables[0];if("size"===e.type&&e.maxSize&&"number"!=typeof e.maxSize&&e.minSize&&"number"!=typeof e.minSize){const t=m(e,u.scale);n.layerDefinition.drawingInfo.renderer.visualVariables[0].minSize=t.minSize,n.layerDefinition.drawingInfo.renderer.visualVariables[0].maxSize=t.maxSize}}const t=B(o);t&&(n.layerDefinition||(n.layerDefinition={}),n.layerDefinition.definitionExpression=n.layerDefinition.definitionExpression?`(${n.layerDefinition.definitionExpression}) AND (${t})`:t)}var g;return n}async function oe(e,{layerView:t,printTemplate:i},r){e.legendEnabled&&r.legendLayers.push({id:e.id});return le(e,await Ee(t),i,r)}async function ce(e,{printTemplate:t},i){return le(e,null,t,i)}function ue(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={layerType:(r=e.write()).layerType,customParameters:r.customParameters};var r;if(i.bandIds=e.bandIds,i.compressionQuality=e.compressionQuality,i.format=e.format,i.interpolation=e.interpolation,(e.mosaicRule||e.definitionExpression)&&(i.mosaicRule=e.exportImageServiceParameters.mosaicRule.toJSON()),e.renderingRule||e.renderer)if(t.is11xService)e.renderingRule&&(i.renderingRule=e.renderingRule.toJSON()),e.renderer&&(i.layerDefinition=i.layerDefinition||{},i.layerDefinition.drawingInfo=i.layerDefinition.drawingInfo||{},i.layerDefinition.drawingInfo.renderer=e.renderer.toJSON());else{const t=e.exportImageServiceParameters.combineRendererWithRenderingRule();t&&(i.renderingRule=t.toJSON())}return De(i,e),i}function ye(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={bandIds:(r=e.write()||{}).bandIds,customParameters:r.customParameters,interpolation:r.interpolation,layerDefinition:r.layerDefinition};var r;return i.layerType="ArcGISImageServiceLayer",De(i,e),i}async function fe(e,t,i){const r=t.printTemplate;if(i.is11xService){const t={type:"kml"};return e.write(t,{origin:"web-map"}),delete t.layerType,t.url=c(e.url),t}{const a=[],n=t.layerView;n.allVisibleMapImages.forEach(((t,i)=>{const r={id:`${e.id}_image${i}`,type:"image",title:e.id,minScale:e.minScale||0,maxScale:e.maxScale||0,opacity:e.opacity,extent:t.extent};"data:image/png;base64,"===t.href.substr(0,22)?r.imageData=t.href.substr(22):r.url=t.href,a.push(r)}));const l=[...n.allVisiblePoints.items,...n.allVisiblePolylines.items,...n.allVisiblePolygons.items],s={id:e.id,...await le(null,l,r,i)};return a.push(s),a}}function me(e,{view:t},i){let r;const a={id:e.id,subLayerIds:[]};let n=[];const l=t.scale,s=e=>{const t=0===l,i=0===e.minScale||l<=e.minScale,r=0===e.maxScale||l>=e.maxScale;if(e.visible&&(t||i&&r))if(e.sublayers)e.sublayers.forEach(s);else{const t=e.toExportImageJSON(),i={id:e.id,name:e.title,layerDefinition:{drawingInfo:t.drawingInfo,definitionExpression:t.definitionExpression,source:t.source}};n.unshift(i),a.subLayerIds.push(e.id)}};var o;return e.sublayers&&e.sublayers.forEach(s),n.length&&(n=n.map((({id:e,name:t,layerDefinition:i})=>({id:e,name:t,layerDefinition:i}))),r={layerType:(o=e.write()).layerType,customParameters:o.customParameters},r.layers=n,r.visibleLayers=e.capabilities.exportMap.supportsDynamicLayers?void 0:a.subLayerIds,De(r,e),e.legendEnabled&&i.legendLayers.push(a)),r}async function de({layerView:e,printTemplate:t},i){const r=[],a=e.layer;if(n(a.featureCollections))for(const n of a.featureCollections){const e=await le(n,n.source,t,i);e&&r.push(...e.featureCollection.layers)}else if(n(a.sublayers))for(const n of a.sublayers){const e=await le(null,n.graphics,t,i);e&&r.push(...e.featureCollection.layers)}return{featureCollection:{layers:r}}}function pe(){return{type:"OpenStreetMap"}}async function ge(e,{printTemplate:t,view:i},r){const a={type:"image"},n={format:"png",ignoreBackground:!0,layers:[e],rotation:0},s=r.ssExtent||i.extent.clone();let o=96,c=!0,y=!0;if(t.exportOptions){const e=t.exportOptions;e.dpi>0&&(o=e.dpi),e.width>0&&(c=e.width%2==i.width%2),e.height>0&&(y=e.height%2==i.height%2)}if("map-only"===t.layout&&t.scalePreserved&&(!t.outScale||t.outScale===i.scale)&&96===o&&(!c||!y)&&(n.area={x:0,y:0,width:i.width,height:i.height},c||(n.area.width-=1),y||(n.area.height-=1),!r.ssExtent)){const e=i.toMap(l(n.area.width,n.area.height));s.ymin=e.y,s.xmax=e.x,r.ssExtent=s}a.extent=s.clone()._normalize(!0).toJSON();const f=await i.takeScreenshot(n),{data:m}=u(f.dataUrl);return a.imageData=m,a}async function be(e,{layerView:t,printTemplate:i},r){e.legendEnabled&&r.legendLayers.push({id:e.id});return le(e,await Ee(t),i,r)}function he(e){const t={layerType:(i=e.write()).layerType,customParameters:i.customParameters};var i;return De(t,e),t}async function we(e,t,i){if(i.is11xService&&e.serviceUrl&&e.styleUrl){const t=Ie(e.styleUrl,e.apiKey),r=Ie(e.serviceUrl,e.apiKey);if(!t&&!r||"2.1.0"!==i.cimVersion){const i={type:"VectorTileLayer"};return i.styleUrl=c(e.styleUrl),i.token=t,r!==t&&(i.additionalTokens=[{url:e.serviceUrl,token:r}]),i}}return ge(e,t,i)}function Se(e){const t={type:"WebTiledLayer",urlTemplate:e.urlTemplate.replace(/\${/g,"{"),credits:e.copyright};return e.subDomains&&e.subDomains.length>0&&(t.subDomains=e.subDomains),t}function xe(e){let t;const i=[],r=e=>{e.visible&&(e.sublayers?e.sublayers.forEach(r):e.name&&i.unshift(e.name))};return e.sublayers&&e.sublayers.forEach(r),i.length&&(t={type:"wms",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,transparentBackground:e.imageTransparency,visibleLayers:i,url:c(e.url),version:e.version}),t}function ve(e){const t=e.activeLayer;return{type:"wmts",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,format:t.imageFormat,layer:t.id,style:t.styleId,tileMatrixSet:t.tileMatrixSetId,url:c(e.url)}}function De(e,t){t.url&&(e.url=c(e.url||t.url),e.token=Ie(e.url,t.apiKey))}function Ie(i,r){var a,n;return W(i)&&(r||e.apiKey)?r||e.apiKey:null==(a=t)||null==(n=a.findCredential(i))?void 0:n.token}async function Le(e,t){t.canvas||(t.canvas=document.createElement("canvas"));const r=1024;t.canvas.width=r,t.canvas.height=r;const a=t.canvas.getContext("2d");let n,l;if(e.path){var c;const t=new Path2D(e.path);t.closePath(),a.fillStyle=Array.isArray(e.color)?`rgba(${e.color[0]},${e.color[1]},${e.color[2]},${e.color[3]/255})`:"rgb(0,0,0)",a.fill(t);const i=C(a);if(!i)return null;a.clearRect(0,0,r,r);const o=s(e.size)/Math.max(i.width,i.height);a.scale(o,o);const u=r/o,y=u/2-i.width/2-i.x,f=u/2-i.height/2-i.y;if(a.translate(y,f),Array.isArray(e.color)&&a.fill(t),null!=(c=e.outline)&&c.width&&Array.isArray(e.outline.color)){const r=e.outline;a.lineWidth=s(r.width)/o,a.lineJoin="round",a.strokeStyle=`rgba(${r.color[0]},${r.color[1]},${r.color[2]},${r.color[3]/255})`,a.stroke(t),i.width+=a.lineWidth,i.height+=a.lineWidth}i.width*=o,i.height*=o;const m=a.getImageData(r/2-i.width/2,r/2-i.height/2,Math.ceil(i.width),Math.ceil(i.height));n=m.width,l=m.height,a.canvas.width=n,a.canvas.height=l,a.putImageData(m,0,0)}else{const t="image/svg+xml"===e.contentType?"data:image/svg+xml;base64,"+e.imageData:e.url,r=(await i(t,{responseType:"image"})).data;n=s(e.width),l=s(e.height),a.canvas.width=n,a.canvas.height=l,a.drawImage(r,0,0,a.canvas.width,a.canvas.height)}return{type:"esriPMS",imageData:a.canvas.toDataURL("image/png").substr(22),angle:e.angle,contentType:"image/png",height:o(l),width:o(n),xoffset:e.xoffset,yoffset:e.yoffset}}async function Te(e,t){const i=e.type;if("simple"===i&&Ve(e.symbol))e.symbol=await Le(e.symbol,t);else if("uniqueValue"===i||"classBreaks"===i){Ve(e.defaultSymbol)&&(e.defaultSymbol=await Le(e.defaultSymbol,t));const r=e["uniqueValue"===i?"uniqueValueInfos":"classBreakInfos"];if(r)for(const e of r)Ve(e.symbol)&&(e.symbol=await Le(e.symbol,t))}}async function Ee(e){return e.queryFeatures(e.createQuery()).then((e=>e.features))}function Me(e){return e.gpMetadata&&e.gpMetadata.executionType?H.fromJSON(e.gpMetadata.executionType):"sync"}function Ve(e){return e&&(e.path||"image/svg+xml"===e.contentType||e.url&&e.url.endsWith(".svg"))}export{Y as execute,ee as getGpPrintParams,ie as getGpServerUrl,Z as getMode,X as printCacheMap};
|
|
5
|
+
import e from"../config.js";import{id as t}from"../kernel.js";import i from"../request.js";import r from"../core/Error.js";import{JSONMap as a}from"../core/jsonMap.js";import{isSome as n}from"../core/maybe.js";import{createScreenPoint as l,pt2px as s,px2pt as o}from"../core/screenUtils.js";import{normalize as u,dataComponents as c}from"../core/urlUtils.js";import y from"../geometry/Polygon.js";import{collectLabelingFields as f}from"../layers/support/fieldUtils.js";import{getSizeRangeAtScale as m}from"../renderers/visualVariables/support/visualVariableUtils.js";import{execute as d}from"./geoprocessor/execute.js";import{submitJob as p}from"./geoprocessor/submitJob.js";import{toJSON as g}from"./support/fileFormat.js";import{toJSON as b}from"./support/layoutTemplate.js";import{getVisibleLayerViews as h,isGroupLayer as w,isScreenshotRequired as S,isBingMapsLayer as x,isCSVLayer as v,isFeatureLayer as D,isGeoJSONLayer as I,isGraphicsLayer as L,isImageryLayer as T,isImageryTileLayer as E,isKMLLayer as M,isMapImageLayer as V,isMapNotesLayer as O,isOpenStreetMapLayer as P,isStreamLayer as F,isTileLayer as N,isVectorTileLayer as R,isWebTileLayer as U,isWMSLayer as J,isWMTSLayer as j,isBlendLayer as A,applyVisualVariables as k,getContextBoundingBox as C,createPolygonLayer as z,createPolylineLayer as $,createPointLayer as K,createMultipointLayer as _}from"./support/printTaskUtils.js";import q from"./support/PrintTemplate.js";import{supportsApiKey as W}from"../support/apiKeyUtils.js";import{getFloorFilterClause as B}from"../views/support/floorFilterUtils.js";const G={Feet:"ft",Kilometers:"km",Meters:"m",Miles:"mi"},Q=new a({esriFeet:"Feet",esriKilometers:"Kilometers",esriMeters:"Meters",esriMiles:"Miles"}),H=new a({esriExecutionTypeSynchronous:"sync",esriExecutionTypeAsynchronous:"async"}),X=new Map;async function Y(e,t,r){const a=ie(e);let n=X.get(a);return Promise.resolve().then((()=>n?{data:n.gpMetadata}:(n={gpServerUrl:a,is11xService:!1,legendLayerNameMap:{},legendLayers:[]},i(a,{query:{f:"json"}})))).then((e=>(n.gpMetadata=e.data,n.cimVersion=n.gpMetadata.cimVersion,n.is11xService=!!n.cimVersion,X.set(a,n),ee(t,n)))).then((i=>{const a=Me(n);let l;const s=e=>"sync"===a?e.results&&e.results[0]&&e.results[0].value:l.fetchResultData("Output_File",null,r).then((e=>e.value));return"async"===a?p(e,i,null,r).then((e=>(l=e,e.waitForJobCompletion({interval:t.updateDelay}).then(s)))):d(e,i,null,r).then(s)}))}async function Z(e){const t=ie(e);return Me(X.get(t))}async function ee(e,t){t=t||{is11xService:!1,legendLayerNameMap:{},legendLayers:[]};const i=e.template||new q;null==i.showLabels&&(i.showLabels=!0);const a=i.exportOptions;let n;const l=b(i.layout);if(a){if(n={dpi:a.dpi},"map_only"===l.toLowerCase()||""===l){const e=a.width,t=a.height;n.outputSize=[e,t]}}const s=i.layoutOptions;let o;if(s){let e,t;"Miles"===s.scalebarUnit||"Kilometers"===s.scalebarUnit?(e="Kilometers",t="Miles"):"Meters"!==s.scalebarUnit&&"Feet"!==s.scalebarUnit||(e="Meters",t="Feet"),o={titleText:s.titleText,authorText:s.authorText,copyrightText:s.copyrightText,customTextElements:s.customTextElements,scaleBarOptions:{metricUnit:Q.toJSON(e),metricLabel:G[e],nonMetricUnit:Q.toJSON(t),nonMetricLabel:G[t]}}}let u=null;null!=s&&s.legendLayers&&(u=s.legendLayers.map((e=>{t.legendLayerNameMap[e.layerId]=e.title;const i={id:e.layerId};return e.subLayerIds&&(i.subLayerIds=e.subLayerIds),i})));const c=await te(e,i,t);if(c.operationalLayers){const e=new RegExp("[\\u4E00-\\u9FFF\\u0E00-\\u0E7F\\u0900-\\u097F\\u3040-\\u309F\\u30A0-\\u30FF\\u31F0-\\u31FF]"),i=/[\u0600-\u06FF]/,a=t=>{const r=t.text,a=t.font,n=a&&a.family&&a.family.toLowerCase();r&&a&&("arial"===n||"arial unicode ms"===n)&&(a.family=e.test(r)?"Arial Unicode MS":"Arial","normal"!==a.style&&i.test(r)&&(a.family="Arial Unicode MS"))},n=()=>{throw new r("print-task:cim-symbol-unsupported","CIMSymbol is not supported by a print service published from ArcMap")};c.operationalLayers.forEach((e=>{var i,r,l;null!=(i=e.featureCollection)&&i.layers?e.featureCollection.layers.forEach((e=>{var i,r,l,s;if(null!=(i=e.layerDefinition)&&null!=(r=i.drawingInfo)&&null!=(l=r.renderer)&&l.symbol){const i=e.layerDefinition.drawingInfo.renderer;"esriTS"===i.symbol.type?a(i.symbol):"CIMSymbolReference"!==i.symbol.type||t.is11xService||n()}null!=(s=e.featureSet)&&s.features&&e.featureSet.features.forEach((e=>{e.symbol&&("esriTS"===e.symbol.type?a(e.symbol):"CIMSymbolReference"!==e.symbol.type||t.is11xService||n())}))})):!t.is11xService&&null!=(r=e.layerDefinition)&&null!=(l=r.drawingInfo)&&l.renderer&&JSON.stringify(e.layerDefinition.drawingInfo.renderer).includes('"type":"CIMSymbolReference"')&&n()}))}e.outSpatialReference&&(c.mapOptions.spatialReference=e.outSpatialReference.toJSON()),Object.assign(c,{exportOptions:n,layoutOptions:o||{}}),Object.assign(c.layoutOptions,{legendOptions:{operationalLayers:null!=u?u:t.legendLayers.slice()}}),t.legendLayers.length=0,X.set(t.gpServerUrl,t);const y={Web_Map_as_JSON:JSON.stringify(c),Format:g(i.format),Layout_Template:l};return e.extraParameters&&Object.assign(y,e.extraParameters),y}async function te(e,t,i){const r=e.view;let a=r.spatialReference;const l={operationalLayers:await re(r,t,i)};let s=i.ssExtent||e.extent||r.extent;if(a&&a.isWrappable&&(s=s.clone()._normalize(!0),a=s.spatialReference),l.mapOptions={extent:s&&s.toJSON(),spatialReference:a&&a.toJSON(),showAttribution:t.attributionVisible},i.ssExtent=null,r.background&&(l.background=r.background.toJSON()),r.rotation&&(l.mapOptions.rotation=-r.rotation),t.scalePreserved&&(l.mapOptions.scale=t.outScale||r.scale),n(r.timeExtent)){const e=n(r.timeExtent.start)?r.timeExtent.start.getTime():null,t=n(r.timeExtent.end)?r.timeExtent.end.getTime():null;l.mapOptions.time=[e,t]}return l}function ie(e){let t=e;const i=t.lastIndexOf("/GPServer/");return i>0&&(t=t.slice(0,i+9)),t}async function re(e,t,i){const r=[],a={layerView:null,printTemplate:t,view:e};let n=0;t.scalePreserved&&(n=t.outScale||e.scale);const l=h(e,n);for(const s of l){const e=s.layer;if(!e.loaded||w(e))continue;let t;a.layerView=s,t=S(s)?await ge(e,a,i):x(e)?ae(e):v(e)?await ne(e,a,i):D(e)?await se(e,a,i):I(e)?await oe(e,a,i):L(e)?await ue(e,a,i):T(e)?ce(e,i):E(e)?ye(e,a,i):M(e)?await fe(e,a,i):V(e)?me(e,a,i):O(e)?await de(a,i):P(e)?pe():F(e)?await be(e,a,i):N(e)?he(e,i):R(e)?await we(e,a,i):U(e)?Se(e):J(e)?xe(e):j(e)?ve(e):await ge(e,a,i),t&&(Array.isArray(t)?r.push(...t):(t.id=e.id,t.title=i.legendLayerNameMap[e.id]||e.title,t.opacity=e.opacity,t.minScale=e.minScale||0,t.maxScale=e.maxScale||0,A(e)&&e.blendMode&&"normal"!==e.blendMode&&(t.blendMode=e.blendMode),r.push(t)))}if(n&&r.forEach((e=>{e.minScale=0,e.maxScale=0})),e.graphics&&e.graphics.length){const a=await le(null,e.graphics,t,i);a&&r.push(a)}return r}function ae(e){return{culture:e.culture,key:e.key,type:"BingMaps"+("aerial"===e.style?"Aerial":"hybrid"===e.style?"Hybrid":"Road")}}async function ne(e,t,i){e.legendEnabled&&i.legendLayers.push({id:e.id});const r=t.layerView,a=t.printTemplate;let n;if(!i.is11xService||r.filter){return le(e,await Ee(r),a,i)}return n={type:"CSV"},e.write(n,{origin:"web-map"}),delete n.popupInfo,delete n.layerType,n.showLabels=a.showLabels&&e.labelsVisible,n}async function le(e,t,i,r){let a;const n=z(),l=$(),s=K(),o=_(),u=K();if(u.layerDefinition.name="textLayer",delete u.layerDefinition.drawingInfo,e){if("esri.layers.FeatureLayer"===e.declaredClass||"esri.layers.StreamLayer"===e.declaredClass?n.layerDefinition.name=l.layerDefinition.name=s.layerDefinition.name=o.layerDefinition.name=r.legendLayerNameMap[e.id]||e.get("arcgisProps.title")||e.title:"esri.layers.GraphicsLayer"===e.declaredClass&&(t=e.graphics.items),e.renderer){const t=e.renderer.toJSON();n.layerDefinition.drawingInfo.renderer=t,l.layerDefinition.drawingInfo.renderer=t,s.layerDefinition.drawingInfo.renderer=t,o.layerDefinition.drawingInfo.renderer=t}if(i.showLabels&&e.labelsVisible&&"function"==typeof e.write){var c,m;const t=null==(c=e.write({},{origin:"web-map"}).layerDefinition)||null==(m=c.drawingInfo)?void 0:m.labelingInfo;t&&(a=!0,n.layerDefinition.drawingInfo.labelingInfo=t,l.layerDefinition.drawingInfo.labelingInfo=t,s.layerDefinition.drawingInfo.labelingInfo=t,o.layerDefinition.drawingInfo.labelingInfo=t)}}let d;null!=e&&e.renderer||a||(delete n.layerDefinition.drawingInfo,delete l.layerDefinition.drawingInfo,delete s.layerDefinition.drawingInfo,delete o.layerDefinition.drawingInfo);const p=null==e?void 0:e.fieldsIndex,g=null==e?void 0:e.renderer;if(p){const t=new Set;a&&await f(t,e),g&&"function"==typeof g.collectRequiredFields&&await g.collectRequiredFields(t,p),d=Array.from(t);const i=p.fields.map((e=>e.toJSON()));n.layerDefinition.fields=i,l.layerDefinition.fields=i,s.layerDefinition.fields=i,o.layerDefinition.fields=i}const b=t&&t.length;let h;for(let f=0;f<b;f++){var w;const a=t[f]||t.getItemAt(f);if(!1===a.visible||!a.geometry)continue;if(h=a.toJSON(),h.hasOwnProperty("popupTemplate")&&delete h.popupTemplate,h.geometry&&h.geometry.z&&delete h.geometry.z,h.symbol&&h.symbol.outline&&"esriCLS"===h.symbol.outline.type&&!r.is11xService)continue;!r.is11xService&&h.symbol&&h.symbol.outline&&h.symbol.outline.color&&h.symbol.outline.color[3]&&(h.symbol.outline.color[3]=255);const c=e&&e.renderer&&("valueExpression"in e.renderer&&e.renderer.valueExpression||"hasVisualVariables"in e.renderer&&e.renderer.hasVisualVariables());if(!h.symbol&&e&&e.renderer&&c&&!r.is11xService){const t=e.renderer,i=await t.getSymbolAsync(a);if(!i)continue;h.symbol=i.toJSON(),"hasVisualVariables"in t&&t.hasVisualVariables()&&k(h.symbol,{renderer:t,graphic:a,symbol:i})}if(h.symbol&&(h.symbol.angle||delete h.symbol.angle,Ve(h.symbol)?h.symbol=await Le(h.symbol,r):h.symbol.text&&delete h.attributes),(!i||!i.forceFeatureAttributes)&&null!=(w=d)&&w.length){const e={};d.forEach((t=>{h.attributes&&h.attributes.hasOwnProperty(t)&&(e[t]=h.attributes[t])})),h.attributes=e}"polygon"===a.geometry.type?n.featureSet.features.push(h):"polyline"===a.geometry.type?l.featureSet.features.push(h):"point"===a.geometry.type?h.symbol&&h.symbol.text?u.featureSet.features.push(h):s.featureSet.features.push(h):"multipoint"===a.geometry.type?o.featureSet.features.push(h):"extent"===a.geometry.type&&(h.geometry=y.fromExtent(a.geometry).toJSON(),n.featureSet.features.push(h))}const S=[n,l,o,s,u].filter((e=>e.featureSet.features.length>0));for(const y of S){const e=y.featureSet.features.every((e=>e.symbol));!e||i&&i.forceFeatureAttributes||y.featureSet.features.forEach((e=>{delete e.attributes})),e&&delete y.layerDefinition.drawingInfo,y.layerDefinition.drawingInfo&&y.layerDefinition.drawingInfo.renderer&&await Te(y.layerDefinition.drawingInfo.renderer,r)}return S.length?{featureCollection:{layers:S},showLabels:a}:null}async function se(e,t,i){var r,a;let n;const l=e.renderer,s=parseFloat(i.cimVersion);if(e.featureReduction&&(!i.is11xService||s<2.9)||"dot-density"===(null==l?void 0:l.type)&&(!i.is11xService||s<2.6))return ge(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});const o=t.layerView,{printTemplate:u,view:c}=t,y=l&&("valueExpression"in l&&l.valueExpression||"hasVisualVariables"in l&&l.hasVisualVariables()),f="feature-layer"!==(null==(r=e.source)?void 0:r.type)&&"ogc-feature"!==(null==(a=e.source)?void 0:a.type);if(!i.is11xService&&y||o.filter||f||!l||"field"in l&&null!=l.field&&("string"!=typeof l.field||!e.getField(l.field))){const t=await Ee(o);n=await le(e,t,u,i)}else{var d,p;if(n={id:(g=e.write()).id,title:g.title,opacity:g.opacity,minScale:g.minScale,maxScale:g.maxScale,url:g.url,layerType:g.layerType,customParameters:g.customParameters,layerDefinition:g.layerDefinition},n.showLabels=u.showLabels&&e.labelsVisible,De(n,e),null!=(d=n.layerDefinition)&&null!=(p=d.drawingInfo)&&p.renderer&&(delete n.layerDefinition.minScale,delete n.layerDefinition.maxScale,await Te(n.layerDefinition.drawingInfo.renderer,i),"visualVariables"in l&&l.visualVariables&&l.visualVariables[0])){const e=l.visualVariables[0];if("size"===e.type&&e.maxSize&&"number"!=typeof e.maxSize&&e.minSize&&"number"!=typeof e.minSize){const t=m(e,c.scale);n.layerDefinition.drawingInfo.renderer.visualVariables[0].minSize=t.minSize,n.layerDefinition.drawingInfo.renderer.visualVariables[0].maxSize=t.maxSize}}const t=B(o);t&&(n.layerDefinition||(n.layerDefinition={}),n.layerDefinition.definitionExpression=n.layerDefinition.definitionExpression?`(${n.layerDefinition.definitionExpression}) AND (${t})`:t)}var g;return n}async function oe(e,{layerView:t,printTemplate:i},r){e.legendEnabled&&r.legendLayers.push({id:e.id});return le(e,await Ee(t),i,r)}async function ue(e,{printTemplate:t},i){return le(e,null,t,i)}function ce(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={layerType:(r=e.write()).layerType,customParameters:r.customParameters};var r;if(i.bandIds=e.bandIds,i.compressionQuality=e.compressionQuality,i.format=e.format,i.interpolation=e.interpolation,(e.mosaicRule||e.definitionExpression)&&(i.mosaicRule=e.exportImageServiceParameters.mosaicRule.toJSON()),e.renderingRule||e.renderer)if(t.is11xService)e.renderingRule&&(i.renderingRule=e.renderingRule.toJSON()),e.renderer&&(i.layerDefinition=i.layerDefinition||{},i.layerDefinition.drawingInfo=i.layerDefinition.drawingInfo||{},i.layerDefinition.drawingInfo.renderer=e.renderer.toJSON());else{const t=e.exportImageServiceParameters.combineRendererWithRenderingRule();t&&(i.renderingRule=t.toJSON())}return De(i,e),i}function ye(e,t,i){var r;if("animated-flow"===(null==(r=e.renderer)?void 0:r.type))return ge(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});const a={bandIds:(n=e.write()||{}).bandIds,customParameters:n.customParameters,interpolation:n.interpolation,layerDefinition:n.layerDefinition};var n;return a.layerType="ArcGISImageServiceLayer",De(a,e),a}async function fe(e,t,i){const r=t.printTemplate;if(i.is11xService){const t={type:"kml"};return e.write(t,{origin:"web-map"}),delete t.layerType,t.url=u(e.url),t}{const a=[],n=t.layerView;n.allVisibleMapImages.forEach(((t,i)=>{const r={id:`${e.id}_image${i}`,type:"image",title:e.id,minScale:e.minScale||0,maxScale:e.maxScale||0,opacity:e.opacity,extent:t.extent};"data:image/png;base64,"===t.href.substr(0,22)?r.imageData=t.href.substr(22):r.url=t.href,a.push(r)}));const l=[...n.allVisiblePoints.items,...n.allVisiblePolylines.items,...n.allVisiblePolygons.items],s={id:e.id,...await le(null,l,r,i)};return a.push(s),a}}function me(e,{view:t},i){let r;const a={id:e.id,subLayerIds:[]};let n=[];const l=t.scale,s=e=>{const t=0===l,i=0===e.minScale||l<=e.minScale,r=0===e.maxScale||l>=e.maxScale;if(e.visible&&(t||i&&r))if(e.sublayers)e.sublayers.forEach(s);else{const t=e.toExportImageJSON(),i={id:e.id,name:e.title,layerDefinition:{drawingInfo:t.drawingInfo,definitionExpression:t.definitionExpression,source:t.source}};n.unshift(i),a.subLayerIds.push(e.id)}};var o;return e.sublayers&&e.sublayers.forEach(s),n.length&&(n=n.map((({id:e,name:t,layerDefinition:i})=>({id:e,name:t,layerDefinition:i}))),r={layerType:(o=e.write()).layerType,customParameters:o.customParameters},r.layers=n,r.visibleLayers=e.capabilities.exportMap.supportsDynamicLayers?void 0:a.subLayerIds,De(r,e),e.legendEnabled&&i.legendLayers.push(a)),r}async function de({layerView:e,printTemplate:t},i){const r=[],a=e.layer;if(n(a.featureCollections))for(const n of a.featureCollections){const e=await le(n,n.source,t,i);e&&r.push(...e.featureCollection.layers)}else if(n(a.sublayers))for(const n of a.sublayers){const e=await le(null,n.graphics,t,i);e&&r.push(...e.featureCollection.layers)}return{featureCollection:{layers:r}}}function pe(){return{type:"OpenStreetMap"}}async function ge(e,{printTemplate:t,view:i},r){const a={type:"image"},n={format:"png",ignoreBackground:!0,layers:[e],rotation:0},s=r.ssExtent||i.extent.clone();let o=96,u=!0,y=!0;if(t.exportOptions){const e=t.exportOptions;e.dpi>0&&(o=e.dpi),e.width>0&&(u=e.width%2==i.width%2),e.height>0&&(y=e.height%2==i.height%2)}if("map-only"===t.layout&&t.scalePreserved&&(!t.outScale||t.outScale===i.scale)&&96===o&&(!u||!y)&&(n.area={x:0,y:0,width:i.width,height:i.height},u||(n.area.width-=1),y||(n.area.height-=1),!r.ssExtent)){const e=i.toMap(l(n.area.width,n.area.height));s.ymin=e.y,s.xmax=e.x,r.ssExtent=s}a.extent=s.clone()._normalize(!0).toJSON();const f=await i.takeScreenshot(n),{data:m}=c(f.dataUrl);return a.imageData=m,a}async function be(e,{layerView:t,printTemplate:i},r){e.legendEnabled&&r.legendLayers.push({id:e.id});return le(e,await Ee(t),i,r)}function he(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={layerType:(r=e.write()).layerType,customParameters:r.customParameters};var r;return De(i,e),i}async function we(e,t,i){if(i.is11xService&&e.serviceUrl&&e.styleUrl){const t=Ie(e.styleUrl,e.apiKey),r=Ie(e.serviceUrl,e.apiKey);if(!t&&!r||"2.1.0"!==i.cimVersion){const i={type:"VectorTileLayer"};return i.styleUrl=u(e.styleUrl),i.token=t,r!==t&&(i.additionalTokens=[{url:e.serviceUrl,token:r}]),i}}return ge(e,t,i)}function Se(e){const t={type:"WebTiledLayer",urlTemplate:e.urlTemplate.replace(/\${/g,"{"),credits:e.copyright};return e.subDomains&&e.subDomains.length>0&&(t.subDomains=e.subDomains),t}function xe(e){let t;const i=[],r=e=>{e.visible&&(e.sublayers?e.sublayers.forEach(r):e.name&&i.unshift(e.name))};return e.sublayers&&e.sublayers.forEach(r),i.length&&(t={type:"wms",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,transparentBackground:e.imageTransparency,visibleLayers:i,url:u(e.url),version:e.version}),t}function ve(e){const t=e.activeLayer;return{type:"wmts",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,format:t.imageFormat,layer:t.id,style:t.styleId,tileMatrixSet:t.tileMatrixSetId,url:u(e.url)}}function De(e,t){t.url&&(e.url=u(e.url||t.url),e.token=Ie(e.url,t.apiKey))}function Ie(i,r){var a,n;return W(i)&&(r||e.apiKey)?r||e.apiKey:null==(a=t)||null==(n=a.findCredential(i))?void 0:n.token}async function Le(e,t){t.canvas||(t.canvas=document.createElement("canvas"));const r=1024;t.canvas.width=r,t.canvas.height=r;const a=t.canvas.getContext("2d");let n,l;if(e.path){var u;const t=new Path2D(e.path);t.closePath(),a.fillStyle=Array.isArray(e.color)?`rgba(${e.color[0]},${e.color[1]},${e.color[2]},${e.color[3]/255})`:"rgb(0,0,0)",a.fill(t);const i=C(a);if(!i)return null;a.clearRect(0,0,r,r);const o=s(e.size)/Math.max(i.width,i.height);a.scale(o,o);const c=r/o,y=c/2-i.width/2-i.x,f=c/2-i.height/2-i.y;if(a.translate(y,f),Array.isArray(e.color)&&a.fill(t),null!=(u=e.outline)&&u.width&&Array.isArray(e.outline.color)){const r=e.outline;a.lineWidth=s(r.width)/o,a.lineJoin="round",a.strokeStyle=`rgba(${r.color[0]},${r.color[1]},${r.color[2]},${r.color[3]/255})`,a.stroke(t),i.width+=a.lineWidth,i.height+=a.lineWidth}i.width*=o,i.height*=o;const m=a.getImageData(r/2-i.width/2,r/2-i.height/2,Math.ceil(i.width),Math.ceil(i.height));n=m.width,l=m.height,a.canvas.width=n,a.canvas.height=l,a.putImageData(m,0,0)}else{const t="image/svg+xml"===e.contentType?"data:image/svg+xml;base64,"+e.imageData:e.url,r=(await i(t,{responseType:"image"})).data;n=s(e.width),l=s(e.height),a.canvas.width=n,a.canvas.height=l,a.drawImage(r,0,0,a.canvas.width,a.canvas.height)}return{type:"esriPMS",imageData:a.canvas.toDataURL("image/png").substr(22),angle:e.angle,contentType:"image/png",height:o(l),width:o(n),xoffset:e.xoffset,yoffset:e.yoffset}}async function Te(e,t){const i=e.type;if("simple"===i&&Ve(e.symbol))e.symbol=await Le(e.symbol,t);else if("uniqueValue"===i||"classBreaks"===i){Ve(e.defaultSymbol)&&(e.defaultSymbol=await Le(e.defaultSymbol,t));const r=e["uniqueValue"===i?"uniqueValueInfos":"classBreakInfos"];if(r)for(const e of r)Ve(e.symbol)&&(e.symbol=await Le(e.symbol,t))}}async function Ee(e){return e.queryFeatures(e.createQuery()).then((e=>e.features))}function Me(e){return e.gpMetadata&&e.gpMetadata.executionType?H.fromJSON(e.gpMetadata.executionType):"sync"}function Ve(e){return e&&(e.path||"image/svg+xml"===e.contentType||e.url&&e.url.endsWith(".svg"))}export{Y as execute,ee as getGpPrintParams,ie as getGpServerUrl,Z as getMode,X as printCacheMap};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../TimeExtent.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import{clone as o}from"../../core/lang.js";import{isSome as i}from"../../core/maybe.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{writer as l}from"../../core/accessorSupport/decorators/writer.js";import u from"../../geometry/Point.js";import{getJsonType as p}from"../../geometry/support/jsonUtils.js";import m from"../../layers/support/MosaicRule.js";import a from"../../layers/support/RasterFunction.js";var y;let c=y=class extends r{constructor(){super(...arguments),this.geometry=null,this.renderingRules=null,this.pixelSize=null,this.returnGeometry=!0,this.returnCatalogItems=!0,this.returnPixelValues=!0,this.maxItemCount=null,this.timeExtent=null,this.raster=void 0,this.viewId=void 0}writeGeometry(e,t,r){null!=e&&(t.geometryType=p(e),t[r]=JSON.stringify(e.toJSON()))}set mosaicRule(e){let t=e;t&&t.mosaicMethod&&(t=m.fromJSON({...t.toJSON(),mosaicMethod:t.mosaicMethod,mosaicOperation:t.mosaicOperation})),this._set("mosaicRule",t)}writeMosaicRule(e,t,r){null!=e&&(t[r]=JSON.stringify(e.toJSON()))}set renderingRule(e){let t=e;t&&t.rasterFunction&&(t=a.fromJSON({...t.toJSON(),rasterFunction:t.rasterFunction,rasterFunctionArguments:t.rasterFunctionArguments})),this._set("renderingRule",t)}writeRenderingRule(e,t,r){null!=e&&(t[r]=JSON.stringify(e.toJSON()))}writeRenderingRules(e,t,r){null!=e&&(t[r]=JSON.stringify(e.map((e=>e.toJSON()))))}writePixelSize(e,t,r){null!=e&&(t[r]=JSON.stringify(e))}writeTimeExtent(e,t,r){if(null!=e){const o=i(e.start)?e.start.getTime():null,s=i(e.end)?e.end.getTime():null;t[r]=null!=o?null!=s?`${o},${s}`:`${o}`:null}}clone(){return new y(o({geometry:this.geometry,mosaicRule:this.mosaicRule,renderingRule:this.renderingRule,pixelSize:this.pixelSize,returnGeometry:this.returnGeometry,returnCatalogItems:this.returnCatalogItems,returnPixelValues:this.returnPixelValues,maxItemCount:this.maxItemCount,raster:this.raster,viewId:this.viewId,timeExtent:this.timeExtent}))}};e([s({json:{write:!0}})],c.prototype,"geometry",void 0),e([l("geometry")],c.prototype,"writeGeometry",null),e([s({type:m,json:{write:!0}})],c.prototype,"mosaicRule",null),e([l("mosaicRule")],c.prototype,"writeMosaicRule",null),e([s({type:a,json:{write:!0}})],c.prototype,"renderingRule",null),e([l("renderingRule")],c.prototype,"writeRenderingRule",null),e([s({type:[a],json:{write:!0}})],c.prototype,"renderingRules",void 0),e([l("renderingRules")],c.prototype,"writeRenderingRules",null),e([s({type:u,json:{write:!0}})],c.prototype,"pixelSize",void 0),e([l("pixelSize")],c.prototype,"writePixelSize",null),e([s({type:Boolean,json:{write:!0}})],c.prototype,"returnGeometry",void 0),e([s({type:Boolean,json:{write:!0}})],c.prototype,"returnCatalogItems",void 0),e([s({type:Boolean,json:{write:!0}})],c.prototype,"returnPixelValues",void 0),e([s({type:Number,json:{write:!0}})],c.prototype,"maxItemCount",void 0),e([s({type:t,json:{write:{target:"time"}}})],c.prototype,"timeExtent",void 0),e([l("timeExtent")],c.prototype,"writeTimeExtent",null),e([s({json:{write:!0}})],c.prototype,"raster",void 0),e([s({json:{write:!0}})],c.prototype,"viewId",void 0),c=y=e([n("esri.rest.support.ImageIdentifyParameters")],c);const d=c;export{d as default};
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../TimeExtent.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import{clone as o}from"../../core/lang.js";import{isSome as i}from"../../core/maybe.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{writer as l}from"../../core/accessorSupport/decorators/writer.js";import u from"../../geometry/Point.js";import{getJsonType as p}from"../../geometry/support/jsonUtils.js";import m from"../../layers/support/MosaicRule.js";import a from"../../layers/support/RasterFunction.js";var y;let c=y=class extends r{constructor(){super(...arguments),this.geometry=null,this.renderingRules=null,this.pixelSize=null,this.returnGeometry=!0,this.returnCatalogItems=!0,this.returnPixelValues=!0,this.maxItemCount=null,this.timeExtent=null,this.raster=void 0,this.viewId=void 0}writeGeometry(e,t,r){null!=e&&(t.geometryType=p(e),t[r]=JSON.stringify(e.toJSON()))}set mosaicRule(e){let t=e;t&&t.mosaicMethod&&(t=m.fromJSON({...t.toJSON(),mosaicMethod:t.mosaicMethod,mosaicOperation:t.mosaicOperation})),this._set("mosaicRule",t)}writeMosaicRule(e,t,r){null!=e&&(t[r]=JSON.stringify(e.toJSON()))}set renderingRule(e){let t=e;t&&t.rasterFunction&&(t=a.fromJSON({...t.toJSON(),rasterFunction:t.rasterFunction,rasterFunctionArguments:t.rasterFunctionArguments})),this._set("renderingRule",t)}writeRenderingRule(e,t,r){null!=e&&(t[r]=JSON.stringify(e.toJSON())),e.rasterFunctionDefinition&&(t[r]=JSON.stringify(e.rasterFunctionDefinition))}writeRenderingRules(e,t,r){null!=e&&(t[r]=JSON.stringify(e.map((e=>e.rasterFunctionDefinition||e.toJSON()))))}writePixelSize(e,t,r){null!=e&&(t[r]=JSON.stringify(e))}writeTimeExtent(e,t,r){if(null!=e){const o=i(e.start)?e.start.getTime():null,s=i(e.end)?e.end.getTime():null;t[r]=null!=o?null!=s?`${o},${s}`:`${o}`:null}}clone(){return new y(o({geometry:this.geometry,mosaicRule:this.mosaicRule,renderingRule:this.renderingRule,pixelSize:this.pixelSize,returnGeometry:this.returnGeometry,returnCatalogItems:this.returnCatalogItems,returnPixelValues:this.returnPixelValues,maxItemCount:this.maxItemCount,raster:this.raster,viewId:this.viewId,timeExtent:this.timeExtent}))}};e([s({json:{write:!0}})],c.prototype,"geometry",void 0),e([l("geometry")],c.prototype,"writeGeometry",null),e([s({type:m,json:{write:!0}})],c.prototype,"mosaicRule",null),e([l("mosaicRule")],c.prototype,"writeMosaicRule",null),e([s({type:a,json:{write:!0}})],c.prototype,"renderingRule",null),e([l("renderingRule")],c.prototype,"writeRenderingRule",null),e([s({type:[a],json:{write:!0}})],c.prototype,"renderingRules",void 0),e([l("renderingRules")],c.prototype,"writeRenderingRules",null),e([s({type:u,json:{write:!0}})],c.prototype,"pixelSize",void 0),e([l("pixelSize")],c.prototype,"writePixelSize",null),e([s({type:Boolean,json:{write:!0}})],c.prototype,"returnGeometry",void 0),e([s({type:Boolean,json:{write:!0}})],c.prototype,"returnCatalogItems",void 0),e([s({type:Boolean,json:{write:!0}})],c.prototype,"returnPixelValues",void 0),e([s({type:Number,json:{write:!0}})],c.prototype,"maxItemCount",void 0),e([s({type:t,json:{write:{target:"time"}}})],c.prototype,"timeExtent",void 0),e([l("timeExtent")],c.prototype,"writeTimeExtent",null),e([s({json:{write:!0}})],c.prototype,"raster",void 0),e([s({json:{write:!0}})],c.prototype,"viewId",void 0),c=y=e([n("esri.rest.support.ImageIdentifyParameters")],c);const d=c;export{d as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../chunks/tslib.es6.js";import{JSONMap as e}from"../../core/jsonMap.js";import{JSONSupport as i}from"../../core/JSONSupport.js";import{clone as
|
|
5
|
+
import{_ as t}from"../../chunks/tslib.es6.js";import{JSONMap as e}from"../../core/jsonMap.js";import{JSONSupport as i}from"../../core/JSONSupport.js";import{clone as r}from"../../core/lang.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{writer as a}from"../../core/accessorSupport/decorators/writer.js";var c;const n=new e({count:"count",sum:"sum",min:"min",max:"max",avg:"avg",stddev:"stddev",var:"var",exceedslimit:"exceedslimit",percentile_cont:"percentile-continuous",percentile_disc:"percentile-discrete",EnvelopeAggregate:"envelope-aggregate",CentroidAggregate:"centroid-aggregate",ConvexHullAggregate:"convex-hull-aggregate"});let p=c=class extends i{constructor(t){super(t),this.maxPointCount=void 0,this.maxRecordCount=void 0,this.maxVertexCount=void 0,this.onStatisticField=null,this.outStatisticFieldName=null,this.statisticType=null,this.statisticParameters=null}writeStatisticParameters(t,e){"percentile-continuous"!==this.statisticType&&"percentile-discrete"!==this.statisticType||(e.statisticParameters=r(t))}clone(){return new c({maxPointCount:this.maxPointCount,maxRecordCount:this.maxRecordCount,maxVertexCount:this.maxVertexCount,onStatisticField:this.onStatisticField,outStatisticFieldName:this.outStatisticFieldName,statisticType:this.statisticType,statisticParameters:r(this.statisticParameters)})}};t([o({type:Number,json:{write:!0}})],p.prototype,"maxPointCount",void 0),t([o({type:Number,json:{write:!0}})],p.prototype,"maxRecordCount",void 0),t([o({type:Number,json:{write:!0}})],p.prototype,"maxVertexCount",void 0),t([o({type:String,json:{write:!0}})],p.prototype,"onStatisticField",void 0),t([o({type:String,json:{write:!0}})],p.prototype,"outStatisticFieldName",void 0),t([o({type:String,json:{read:{source:"statisticType",reader:n.read},write:{target:"statisticType",writer:n.write}}})],p.prototype,"statisticType",void 0),t([o({type:Object})],p.prototype,"statisticParameters",void 0),t([a("statisticParameters")],p.prototype,"writeStatisticParameters",null),p=c=t([s("esri.rest.support.StatisticDefinition")],p);const m=p;export{m as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../core/Error.js";import{isSome as r}from"../../../core/maybe.js";import{formatNumber as a}from"../../../intl/number.js";import{createClassBreaksRenderer as t,getField as s}from"../../../renderers/support/rasterRendererHelper.js";import{processRasterRendererParameters as n}from"../support/utils.js";async function o(a){const t=(a=await n(a)).layer,{rasterInfo:o}=t;if(o.bandCount>1)throw new e("raster-class-breaks-renderer:not-supported","Multiband raster is not supported");a.field||(a.field=r(o.attributeTable)?s(o.attributeTable,"value").name:"value");
|
|
5
|
+
import e from"../../../core/Error.js";import{isSome as r}from"../../../core/maybe.js";import{formatNumber as a}from"../../../intl/number.js";import{createClassBreaksRenderer as t,getField as s}from"../../../renderers/support/rasterRendererHelper.js";import{processRasterRendererParameters as n}from"../support/utils.js";async function o(a){const t=(a=await n(a)).layer,{rasterInfo:o}=t;if(o.bandCount>1)throw new e("raster-class-breaks-renderer:not-supported","Multiband raster is not supported");a.field||(a.field=r(o.attributeTable)?s(o.attributeTable,"value").name:"value");if(!(r(o.attributeTable)&&o.attributeTable.fields.find((e=>e.name.toLowerCase()===a.field.toLowerCase())))&&!r(o.histograms)&&(await t.updateRasterInfoWithEstimatedStats({renderingRule:a.renderingRule,signal:a.signal}),!r(o.histograms)))throw new e("raster-class-breaks-renderer:not-supported","Histograms or raster attribute table is required on the source raster. Unable to estimate histograms");const{colors:i,numClasses:l}=a;if(i&&l&&i.length!==l)throw new e("raster-class-breaks-renderer:not-supported","The size of the `colors` parameter does not match 'numClasses'");return a.classificationMethod||(a.classificationMethod="natural-breaks"),a}async function i(a){a=await o(a);const s=t(a.layer.rasterInfo,a);if(!r(s))throw new e("raster-class-breaks-renderer:not-supported","Class breaks renderer is not supported on this data");const n={minValue:s.minValue,maxValue:s.classBreakInfos[s.classBreakInfos.length-1].maxValue,normalizationTotal:null,classBreakInfos:s.classBreakInfos.map((e=>{const r=l(e.minValue,e.maxValue);return e.label=r,{minValue:e.minValue,maxValue:e.maxValue,label:r}}))};return{renderer:s,classBreaksResult:n}}function l(e,r){return a(e,{maximumFractionDigits:3})+" - "+a(r,{maximumFractionDigits:3})}export{i as createRenderer};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../core/Error.js";import{isSome as i}from"../../core/maybe.js";import o from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as l}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createVisualVariables as t,createContinuousRenderer as r}from"./size.js";import{verifyBasicFieldValidity as u,createStopValuesForAboveBelow as m,clampAboveAndBelowStopValues as p,createDefaultStopValues as c}from"./support/utils.js";import{getFieldsList as d}from"../support/utils.js";import{createLayerAdapter as v,featureCapableLayerTypes as b,getLayerTypeLabels as f}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as y}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as w}from"../../symbols/support/cimSymbolUtils.js";import h
|
|
5
|
+
import e from"../../core/Error.js";import{isSome as i}from"../../core/maybe.js";import o from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as l}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createVisualVariables as t,createContinuousRenderer as r}from"./size.js";import{verifyBasicFieldValidity as u,createStopValuesForAboveBelow as m,clampAboveAndBelowStopValues as p,createDefaultStopValues as c}from"./support/utils.js";import{getFieldsList as d}from"../support/utils.js";import{createLayerAdapter as v,featureCapableLayerTypes as b,getLayerTypeLabels as f}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as y}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as w}from"../../symbols/support/cimSymbolUtils.js";import{Symbol3DMaterial as h}from"../../symbols/support/Symbol3DMaterial.js";const z=2**53-1;async function V(o){var a,s;if(!(o&&o.layer&&(o.field||o.valueExpression||o.sqlExpression)))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(o.valueExpression&&!o.sqlExpression&&!o.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===o.theme&&null!=(a=o.sizeOptions)&&a.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");const l={...o},n=v(l.layer,b);if(l.layer=n,l.theme=l.theme||null!=(s=l.colorOptions)&&s.theme?l.theme:"high-to-low","90-10"===l.theme)throw new e("univariate-colorsize-visual-variables:not-supported","Only 'high-to-low', 'above-and-below', 'above', 'below' themes are supported.");if(!n)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+f(b).join(", "));const t=i(l.signal)?{signal:l.signal}:null;await n.load(t);const r=await d({field:l.field,normalizationField:l.normalizationField,valueExpression:l.valueExpression}),m=u(n,r,"univariate-colorsize-visual-variables:invalid-parameters");if(m)throw m;return l}function g(e,i){var o;const a={...e},{sizeOptions:s,theme:l}=a,n=a.legendOptions||(null==(o=a.sizeOptions)?void 0:o.legendOptions);return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===l?null:l,legendOptions:n}}function O(e,i){var o;const a={...e},s=a.colorOptions,l=a.theme||(null==s?void 0:s.theme),n=a.legendOptions||(null==(o=a.colorOptions)?void 0:o.legendOptions);return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:l,legendOptions:n}}async function x(o){var a;if(!(o&&o.layer&&(o.field||o.valueExpression||o.sqlExpression)))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(o.valueExpression&&!o.sqlExpression&&!o.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...o};s.symbolType=s.symbolType||"2d",s.colorOptions||(s.colorOptions={}),s.colorOptions.isContinuous=null!=(a=s.colorOptions.isContinuous)&&a;const l=v(s.layer,b);if(s.layer=l,!l)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+f(b).join(", "));const n=i(s.signal)?{signal:s.signal}:null;if(await l.load(n),"above-and-below"===s.theme&&s.symbolOptions){if(s.symbolType.indexOf("3d-volumetric")>-1)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' is applicable for '2d' and '3d-flat' 'symbolType' only");if("point"!==l.geometryType&&"polygon"!==l.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const t=await d({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=u(l,t,"univariate-colorsize-continuous-renderer:invalid-parameters");if(r)throw r;return s}function E(e){const i={...e},o={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete o.sizeOptimizationEnabled,{...i,...o}}function S(e,i){if("type"in e&&"cim"===e.type)w(e,i);else if("type"in e&&e.type.indexOf("3d")>-1){e.symbolLayers.forEach((e=>{"material"in e&&"color"in e.material&&(e.material?e.material.color=i:e.material=new h({color:i}))}))}else"color"in e&&(e.color=i)}function j(e,i,o){if((null!=i&&i.symbolStyle||null!=i&&i.symbols)&&("point"===o||"polygon"===o))return i.symbols||y(i.symbolStyle);const a=e.classBreakInfos[0].symbol;return{above:a.clone(),below:a.clone()}}function T(e,i,o){var s;const l=o.symbolOptions,n=o.layer,t=null!=l&&l.symbols?"custom":null==l?void 0:l.symbolStyle,r=null==(s=o.colorOptions)?void 0:s.isContinuous;if(I(e,i,r),t||!r){const{stops:o}=i.size.visualVariables[0],{above:s,below:u}=j(e,l,n.geometryType);if(!r){const e=i.color.colorScheme.colors,o=e[0];S(s,e[e.length-1]),S(u,o)}e.classBreakInfos=[new a({minValue:-z,maxValue:o[2].value,symbol:u}),new a({minValue:o[2].value,maxValue:z,symbol:s})],t&&(e.authoringInfo.univariateSymbolStyle=t)}}function I(e,i,o=!0){var a;const s=null==i||null==(a=i.authoringInfo)?void 0:a.clone(),l=i.size.visualVariables.map((e=>e.clone()));o?l.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables.filter((e=>"size"===e.type)),l.push(...e.visualVariables.filter((e=>"target"in e&&"outline"===e.target)).map((e=>e.clone()))),e.authoringInfo=s,e.visualVariables=l}function q(e){const i={...e},o=i.symbolType,a=o.indexOf("3d-volumetric")>-1;delete i.symbolType,delete i.defaultSymbolEnabled;const s=i;return s.worldScale=a,a&&(s.sizeOptions={...s.sizeOptions},s.sizeOptions.axis="3d-volumetric-uniform"===o?"all":"height"),s}async function D(e,i,o,a){const n=i[0],t=i[1],r=Math.round((t-n)/2)+n,u=e.clone();u.stops=[new s({value:o[0],size:t}),new s({value:o[1],size:r}),new s({value:o[2],size:n}),new s({value:o[3],size:r}),new s({value:o[4],size:t})],e.stops=[new s({value:a[0],size:l(u,a[0])}),new s({value:a[1],size:l(u,a[1])}),new s({value:a[2],size:l(u,a[2])}),new s({value:a[3],size:l(u,a[3])}),new s({value:a[4],size:l(u,a[4])})]}async function U(e,i,o,a){const s=e.filter((e=>"width-and-depth"!==e.axis&&!e.target))[0],l="number"==typeof(null==s?void 0:s.minSize)?null==s?void 0:s.minSize:null,n="number"==typeof(null==s?void 0:s.maxSize)?null==s?void 0:s.maxSize:null;if(null!=(null==s?void 0:s.minDataValue)&&null!=l&&null!=n)if(a)if("above-and-below"===a){s.minDataValue=null,s.maxDataValue=null,s.minSize=null,s.maxSize=null;const e=m(o),a=p(e,o);await D(s,[l,n],e,a),i.stops.forEach(((e,i)=>e.value=a[i]))}else{const{minDataValue:e,maxDataValue:o}=s,a=c(e,o,5);i.stops.forEach(((e,i)=>e.value=a[i])),s.minDataValue=a[0],s.maxDataValue=a[a.length-1]}else s.minDataValue=i.stops[0].value,s.maxDataValue=i.stops[i.stops.length-1].value}function C(e,i,a){const{theme:s,minValue:l,maxValue:n}=e,t=i.authoringInfo.visualVariables[0].clone(),r=a.authoringInfo.visualVariables[0].clone();if("above-and-below"===s){const e=i.visualVariable.stops;t.minSliderValue=r.minSliderValue=null!=l?l:e[0].value,t.maxSliderValue=r.maxSliderValue=null!=n?n:e[e.length-1].value,r.theme="above-and-below"}return new o({type:"univariate-color-size",univariateTheme:s,visualVariables:[t,r]})}async function B(e){const i=await V(e),o=await n(O(i)),{visualVariable:a,statistics:s}=o,l=await t(g(i,s)),r=l.visualVariables;return await U(r,a,s,i.theme),{basemapId:l.basemapId,basemapTheme:l.basemapTheme,statistics:s,defaultValuesUsed:o.defaultValuesUsed,color:{visualVariable:a,colorScheme:o.colorScheme},size:{visualVariables:r,sizeScheme:l.sizeScheme},authoringInfo:C(i,o,l)}}async function F(e){return k(e)}async function k(e){var i;const o=await x(e),{renderer:a,statistics:s,defaultValuesUsed:l}=await r(E(o)),n=q(o);n.statistics=s;const t=await B(n);return"above-and-below"===o.theme?T(a,t,o):I(a,t),{renderer:a,statistics:s,defaultValuesUsed:l,color:null!=(i=o.colorOptions)&&i.isContinuous||"above-and-below"!==o.theme?t.color:null,size:t.size,basemapId:t.basemapId,basemapTheme:t.basemapTheme}}export{F as createContinuousRenderer,k as createRenderer,B as createVisualVariables};
|