@arcgis/core 4.28.0-rc.1 → 4.28.0-rc.3
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/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
- package/arcade/featureset/sources/FeatureLayerRelated.js +1 -1
- package/arcade/featureset/support/FeatureSet.js +1 -1
- package/arcade/functions/featuresetbase.js +1 -1
- package/arcade/treeAnalysis.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/020825b9c12f2b6386a7.js +1 -0
- package/assets/esri/core/workers/chunks/02d235849ba93541d7ad.js +1 -0
- package/assets/esri/core/workers/chunks/0422c5160491fbcf01dc.js +1 -0
- package/assets/esri/core/workers/chunks/07adca463da5554e514d.js +1 -0
- package/assets/esri/core/workers/chunks/07c1783baf9b19b4876a.js +1 -0
- package/assets/esri/core/workers/chunks/08a98e85e86ce560d005.js +1 -0
- package/assets/esri/core/workers/chunks/0ea41f142793edb99d3a.js +1 -0
- package/assets/esri/core/workers/chunks/10dc578a90e1194c8720.js +1 -0
- package/assets/esri/core/workers/chunks/18e0c5bfeb1aa7213dfa.js +1 -0
- package/assets/esri/core/workers/chunks/19c9966f74d287750aaa.js +1 -0
- package/assets/esri/core/workers/chunks/1a65d9b9f823d1e8b315.js +1 -0
- package/assets/esri/core/workers/chunks/1eb5468c7cf653338d53.js +1 -0
- package/assets/esri/core/workers/chunks/1f30ea1a598ddd2e5df3.js +1 -0
- package/assets/esri/core/workers/chunks/{40c00b352618c7839f7e.js → 1f87f22e00e3218661c6.js} +1 -1
- package/assets/esri/core/workers/chunks/1fc3b526e881ada30420.js +1 -0
- package/assets/esri/core/workers/chunks/224e79f6c172da444e0a.js +1 -0
- package/assets/esri/core/workers/chunks/2304b7456ced997904f6.js +1 -0
- package/assets/esri/core/workers/chunks/2d92df1e3ba4f05e0510.js +1 -0
- package/assets/esri/core/workers/chunks/30776102fbab294bfe7b.js +1 -0
- package/assets/esri/core/workers/chunks/32bd6a343ea49c331e1f.js +1 -0
- package/assets/esri/core/workers/chunks/3491f1945d9c06d8b2c7.js +1 -0
- package/assets/esri/core/workers/chunks/366cf9bba6989342e447.js +1 -0
- package/assets/esri/core/workers/chunks/37edbd9b05bfdb2e645d.js +1 -0
- package/assets/esri/core/workers/chunks/3ac9001b19a90faf5573.js +1 -0
- package/assets/esri/core/workers/chunks/3c5a112a9b58770a5242.js +1 -0
- package/assets/esri/core/workers/chunks/41081c921037e543a22f.js +1 -0
- package/assets/esri/core/workers/chunks/41778f8c49febe1f9404.js +1 -0
- package/assets/esri/core/workers/chunks/430ec9f5949b31959893.js +1 -0
- package/assets/esri/core/workers/chunks/43575b9acf9819f195f9.js +1 -0
- package/assets/esri/core/workers/chunks/43f7d9366d06d69e7c50.js +1 -0
- package/assets/esri/core/workers/chunks/4564a7885d045a850887.js +1 -0
- package/assets/esri/core/workers/chunks/{b98a2191cb997d632438.js → 4672504d6fe649da19f2.js} +1 -1
- package/assets/esri/core/workers/chunks/4adf3a8c6b49c381a633.js +1 -0
- package/assets/esri/core/workers/chunks/4e813f112a428b4acf0e.js +1 -0
- package/assets/esri/core/workers/chunks/5386b166f2e5dc0d9143.js +1 -0
- package/assets/esri/core/workers/chunks/562eafa5090827ebb7ec.js +1 -0
- package/assets/esri/core/workers/chunks/56a61a8bff08ae273de4.js +1 -0
- package/assets/esri/core/workers/chunks/580e7d3cbf6797a50ded.js +1 -0
- package/assets/esri/core/workers/chunks/5e8f02da4eae41f57383.js +1 -0
- package/assets/esri/core/workers/chunks/6046be598e8c673eeb1f.js +1 -0
- package/assets/esri/core/workers/chunks/6334a8a7b671d4042108.js +1 -0
- package/assets/esri/core/workers/chunks/{2721aa6b6941b28b9758.js → 63c8bf00120a4e67f5b0.js} +1 -1
- package/assets/esri/core/workers/chunks/6747503826bfc94bc6c0.js +1 -0
- package/assets/esri/core/workers/chunks/6867ed1860afb7aac536.js +1 -0
- package/assets/esri/core/workers/chunks/69c1c850af7ee33258e0.js +1 -0
- package/assets/esri/core/workers/chunks/70aa04b09143b7dd2ecb.js +1 -0
- package/assets/esri/core/workers/chunks/74951370a341f02d3714.js +1 -0
- package/assets/esri/core/workers/chunks/7648f3341b7dff2825c3.js +1 -0
- package/assets/esri/core/workers/chunks/768271a12dc7e1781447.js +1 -0
- package/assets/esri/core/workers/chunks/{efb17a298363beca5209.js → 7756ed853b4ba54cd081.js} +1 -1
- package/assets/esri/core/workers/chunks/{fa6103e3d4e857b0035b.js → 78e2fa121760383b08ec.js} +9 -6
- package/assets/esri/core/workers/chunks/7b8377b3a9f78f9d3613.js +1 -0
- package/assets/esri/core/workers/chunks/7f3bc7a2de59e485f22f.js +1 -0
- package/assets/esri/core/workers/chunks/7f433e25f3892475d5dc.js +1 -0
- package/assets/esri/core/workers/chunks/80bf6cf1bef17215bca4.js +1 -0
- package/assets/esri/core/workers/chunks/{1a723bb4a341f645e5fe.js → 83b8141f0c80e3448012.js} +1 -1
- package/assets/esri/core/workers/chunks/83d063b7ce768e9ab3de.js +1 -0
- package/assets/esri/core/workers/chunks/83f7e22a12d90ef93e62.js +1 -0
- package/assets/esri/core/workers/chunks/{4cc680fe4c9c39d2f853.js → 8a7fa4e8b0d14da7c9eb.js} +1 -1
- package/assets/esri/core/workers/chunks/934c32c49bb9e21482fd.js +1 -0
- package/assets/esri/core/workers/chunks/969a82b674eda9f8720f.js +1 -0
- package/assets/esri/core/workers/chunks/99fd09dd42b75a932e84.js +1 -0
- package/assets/esri/core/workers/chunks/{f0664a24f2c3705747a5.js → 9c77d69a13ec22cdd760.js} +1 -1
- package/assets/esri/core/workers/chunks/a1e16c33f1843dbdce26.js +1 -0
- package/assets/esri/core/workers/chunks/a360534e89a337871921.js +1 -0
- package/assets/esri/core/workers/chunks/a4341ec0fe89b865d849.js +1 -0
- package/assets/esri/core/workers/chunks/a50ec5b647a160199cb2.js +1 -0
- package/assets/esri/core/workers/chunks/a821fa1870b83fed5d31.js +1 -0
- package/assets/esri/core/workers/chunks/a8e4726c1db23324eb54.js +1 -0
- package/assets/esri/core/workers/chunks/abcfe3bda6f40318b092.js +1 -0
- package/assets/esri/core/workers/chunks/ac3e429d43f80c596ec8.js +1 -0
- package/assets/esri/core/workers/chunks/ac53b5479dd229fa4f7d.js +1 -0
- package/assets/esri/core/workers/chunks/aeb3efa91165dd3d2493.js.LICENSE.txt +1 -1
- package/assets/esri/core/workers/chunks/b03eaba5fa75d6ef834a.js +1 -0
- package/assets/esri/core/workers/chunks/b3f5e97b47e896c6008a.js +1 -0
- package/assets/esri/core/workers/chunks/b6cc8d7dcc710231fe72.js +1 -0
- package/assets/esri/core/workers/chunks/{77923afde29ae1ff10ca.js → b6e86e179f99b5cf8dff.js} +1 -1
- package/assets/esri/core/workers/chunks/b7c81a5bbcdd94b8a7f6.js +1 -0
- package/assets/esri/core/workers/chunks/b9a726f3bbad6fd4d65a.js +1 -0
- package/assets/esri/core/workers/chunks/c3ddf5dbc34f118002df.js +1 -0
- package/assets/esri/core/workers/chunks/c416df0668f6c596095f.js +1 -0
- package/assets/esri/core/workers/chunks/c447f4bf0e5f012f8f9b.js +1 -0
- package/assets/esri/core/workers/chunks/c7bd63103f101c09b1ea.js +1 -0
- package/assets/esri/core/workers/chunks/cb4b17f5cf96a9e36781.js +1 -0
- package/assets/esri/core/workers/chunks/cbddfcf57f72428a6992.js +1 -0
- package/assets/esri/core/workers/chunks/cc86c8c88124d916e1b3.js +1 -0
- package/assets/esri/core/workers/chunks/d0119dff8771e749436a.js +1 -0
- package/assets/esri/core/workers/chunks/d0f903f2257eb96f7789.js +1 -0
- package/assets/esri/core/workers/chunks/d153a8b71111165fc891.js +1 -0
- package/assets/esri/core/workers/chunks/{7b3d5f044c96e2c2af11.js → d191267d91a53db42956.js} +1 -1
- package/assets/esri/core/workers/chunks/d213024012b1a019bfde.js +1 -0
- package/assets/esri/core/workers/chunks/d5fec54e98c8622349a4.js +1 -0
- package/assets/esri/core/workers/chunks/d878bb6409df183ea0ce.js +1 -0
- package/assets/esri/core/workers/chunks/da124ccd18d2745195fe.js +1 -0
- package/assets/esri/core/workers/chunks/dd55151bfac60b0deaac.js +1 -0
- package/assets/esri/core/workers/chunks/e06cd10b6f8f363b5131.js +1 -0
- package/assets/esri/core/workers/chunks/e5352dc8983d06d4ee0f.js +1 -0
- package/assets/esri/core/workers/chunks/e67c4b7ad06d8404895a.js +1 -0
- package/assets/esri/core/workers/chunks/e810336a4292ea6076a6.js +1 -0
- package/assets/esri/core/workers/chunks/{4c3345ffbe79ee0167fb.js → ea9ae9d2aef01af90896.js} +1 -1
- package/assets/esri/core/workers/chunks/ef757269fb3fe0e74ef8.js +1 -0
- package/assets/esri/core/workers/chunks/f0d342303fc20e266d27.js +1 -0
- package/assets/esri/core/workers/chunks/f73563b23fd8dc6cf2fe.js +1 -0
- package/assets/esri/core/workers/chunks/f85107720159b855a469.js +1 -0
- package/assets/esri/core/workers/chunks/fbc57985d55b5fbe1e8a.js +1 -0
- package/assets/esri/core/workers/chunks/ffa330a19a09679212fb.js +1 -0
- package/assets/esri/themes/base/_core.scss +2 -0
- package/assets/esri/themes/base/widgets/_BasemapGallery.scss +3 -9
- package/assets/esri/themes/base/widgets/_DatePicker.scss +4 -0
- package/assets/esri/themes/base/widgets/_Features.scss +1 -1
- package/assets/esri/themes/base/widgets/_Legend.scss +1 -1
- package/assets/esri/themes/base/widgets/_ScaleRangeSlider.scss +1 -1
- package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +46 -0
- package/assets/esri/themes/base/widgets/_Tooltip.scss +1 -1
- package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +4 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/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/FeatureForm/t9n/FeatureForm_ar.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nb.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nb.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ar.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bg.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bs.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ca.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_cs.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_da.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_de.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_el.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_es.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_et.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fi.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fr.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_he.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hr.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hu.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_id.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_it.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ja.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ko.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lt.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lv.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nb.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nl.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pl.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-BR.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-PT.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ro.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ru.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sk.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sl.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sr.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sv.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_th.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_tr.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_uk.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_vi.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-CN.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-HK.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-TW.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ar.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_bg.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_bs.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ca.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_cs.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_da.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_de.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_el.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_es.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_et.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_fi.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_fr.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_he.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_hr.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_hu.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_id.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_it.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ja.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ko.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_lt.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_lv.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_nb.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_nl.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pl.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pt-BR.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pt-PT.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ro.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ru.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sk.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sl.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sr.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sv.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_th.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_tr.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_uk.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_vi.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-CN.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-HK.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-TW.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ar.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bg.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ca.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_cs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_da.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_de.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_el.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_es.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_et.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_he.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hu.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_id.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_it.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ja.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ko.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lt.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nb.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-BR.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-PT.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ro.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ru.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_th.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_tr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_uk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_vi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-CN.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-HK.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-TW.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ar.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bg.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ca.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_cs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_da.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_de.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_el.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_es.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_et.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_he.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hu.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_id.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_it.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ja.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ko.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lt.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nb.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-BR.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-PT.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ro.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ru.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_th.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_tr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_uk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_vi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-CN.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-HK.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-TW.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ar.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_bg.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_bs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ca.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_cs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_da.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_de.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_el.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_es.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_et.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_fi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_fr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_he.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_hr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_hu.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_id.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_it.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ja.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ko.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_lt.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_lv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_nb.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_nl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pt-BR.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pt-PT.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ro.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ru.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_th.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_tr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_uk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_vi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-CN.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-HK.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-TW.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ar.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_bg.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_bs.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ca.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_cs.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_da.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_de.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_el.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_es.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_et.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_fi.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_fr.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_he.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_hr.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_hu.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_id.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_it.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ja.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ko.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_lt.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_lv.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_nb.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_nl.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pl.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pt-BR.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pt-PT.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ro.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ru.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sk.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sl.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sr.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sv.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_th.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_tr.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_uk.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_vi.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-CN.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-HK.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-TW.json +1 -1
- package/chunks/HighlightApply.glsl.js +6 -7
- package/chunks/HighlightBlur.glsl.js +5 -6
- package/chunks/HighlightDownsample.glsl.js +8 -8
- package/chunks/languageUtils.js +1 -1
- package/core/MemCache.js +1 -1
- package/core/MemCachePool.js +1 -1
- package/core/colorUtils.js +1 -1
- package/geometry/GeometryCursor.js +1 -1
- package/geometry/support/meshUtils/georeference.js +1 -1
- package/interfaces.d.ts +1546 -264
- package/intl/date.js +1 -1
- package/kernel.js +1 -1
- package/layers/GroupLayer.js +1 -1
- package/layers/MapNotesLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
- package/layers/graphics/data/AttributesBuilder.js +1 -1
- package/layers/graphics/data/QueryEngineResult.js +1 -1
- package/layers/graphics/data/queryValidationUtils.js +1 -1
- package/layers/graphics/editingSupport.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/csv/csv.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
- package/layers/graphics/sources/support/sourceUtils.js +1 -1
- package/layers/mixins/ArcGISMapService.js +1 -1
- package/layers/ogc/wfsUtils.js +1 -1
- package/layers/save/groupLayerUtils.js +1 -1
- package/layers/save/utils.js +1 -1
- package/layers/support/Field.js +1 -1
- package/layers/support/FieldsIndex.js +1 -1
- package/layers/support/ImageElement.js +1 -1
- package/layers/support/LayerContingentValuesCache.js +1 -1
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/Subtype.d.ts +4 -0
- package/layers/support/Subtype.js +1 -1
- package/layers/support/fieldProperties.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/imageryRendererUtils.js +1 -1
- package/layers/support/labelFormatUtils.js +1 -1
- package/networks/Network.js +1 -1
- package/package.json +2 -2
- package/portal/support/jsonContext.js +1 -1
- package/portal/support/layersLoader.js +1 -1
- package/renderers/UniqueValueRenderer.js +1 -1
- package/renderers/support/utils.js +1 -1
- package/rest/featureService/FeatureService.d.ts +4 -0
- package/rest/featureService/FeatureService.js +1 -1
- package/rest/featureService/utils.d.ts +4 -0
- package/smartMapping/labels/clusters.js +1 -1
- package/smartMapping/popup/support/clusterUtils.js +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/opacity.js +1 -1
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/utils.js +1 -1
- package/smartMapping/renderers/type.js +1 -1
- package/smartMapping/renderers/univariateColorSize.js +1 -1
- package/smartMapping/statistics/histogram.js +1 -1
- package/smartMapping/statistics/summaryStatistics.js +1 -1
- package/smartMapping/statistics/support/statsWorker.js +1 -1
- package/smartMapping/statistics/support/utils.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +1 -1
- package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/StreamLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/smartMapping/support/clusterUtils.js +1 -1
- package/smartMapping/support/utils.js +1 -1
- package/support/basemapUtils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/cim/CIMSymbolHelper.js +1 -1
- package/symbols/cim/effects/EffectDashes.js +1 -1
- package/symbols/support/previewCIMSymbol.js +1 -1
- package/time/timeZoneUtils.js +1 -1
- package/versionManagement/VersionManagementService.d.ts +4 -0
- package/versionManagement/VersionManagementService.js +1 -1
- package/views/2d/engine/vectorTiles/RenderBucket.js +1 -1
- package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
- package/views/2d/engine/webgl/Overlay.js +1 -1
- package/views/2d/input/handlers/KeyPan.js +1 -1
- package/views/2d/interactive/editingTools/manipulations/DragManipulation.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
- package/views/2d/viewpointUtils.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/ExtentTransformTool.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
- package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/MediaLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerWorker.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
- package/views/3d/layers/graphics/elevationAlignPointsInFeatures.js +1 -1
- package/views/3d/layers/i3s/I3SClientNodeLoader.js +1 -1
- package/views/3d/layers/i3s/I3SOverrides.js +1 -1
- package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
- package/views/3d/support/MemoryController.js +1 -1
- package/views/3d/support/PBFDecoder.js +1 -1
- package/views/3d/support/ResourceController.js +1 -1
- package/views/3d/support/buffer/InterleavedLayout.js +1 -1
- package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
- package/views/3d/terrain/PlanarPatch.js +1 -1
- package/views/3d/terrain/SphericalPatch.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/terrain/TileTexture.js +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/core/FBOPool.js +5 -0
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +9 -6
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightPassParameters.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/lib/Camera.js +1 -1
- package/views/3d/webgl-engine/lib/OffscreenRendering.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/Texture.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/textureUtils.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/MergedRenderer.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/HighlightApply.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightBlur.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +1 -1
- package/views/draw/DrawOperation.js +1 -1
- package/views/draw/support/Reshape.js +1 -1
- package/views/interactive/SegmentLabels.js +1 -1
- package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
- package/views/interactive/snapping/featureSources/FeatureCollectionSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/GraphicsSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorker.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
- package/views/interactive/snapping/featureSources/snappingCandidateElevationAlignment.js +1 -1
- package/views/overlay/TextOverlayItem.js +1 -1
- package/views/webgl/VertexArrayObject.js +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/DirectionalPad.js +1 -1
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflowData.js +1 -1
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
- package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/Feature/FeatureRelationship/FeatureRelationshipViewModel.js +1 -1
- package/widgets/Feature/FeatureViewModel.js +1 -1
- package/widgets/Feature/support/featureUtils.js +1 -1
- package/widgets/FeatureForm/FieldInput.js +1 -1
- package/widgets/FeatureForm/RelationshipInput.js +1 -1
- package/widgets/FeatureForm/featureFormUtils.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/FieldColumn.js +1 -1
- package/widgets/Features/FeaturesViewModel.js +1 -1
- package/widgets/Features/css.js +1 -1
- package/widgets/Features.js +1 -1
- package/widgets/Legend/LegendViewModel.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Legend/support/utils.js +1 -1
- package/widgets/LineOfSight.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.d.ts +4 -0
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/Popup/actionUtils.js +1 -1
- package/widgets/ScaleRangeSlider.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/TimeZoneLabel/TimeZoneLabelViewModel.js +5 -0
- package/widgets/TimeZoneLabel/css.js +5 -0
- package/widgets/TimeZoneLabel.d.ts +4 -0
- package/widgets/TimeZoneLabel.js +5 -0
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
- package/widgets/UtilityNetworkTrace/support/ResultAreaHandler.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/widgets/UtilityNetworkValidateTopology/UtilityNetworkValidateTopologyViewModel.js +1 -1
- package/widgets/support/SnappingControls/SnappingControlsViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/0036b6df93a17e57e3b9.js +0 -1
- package/assets/esri/core/workers/chunks/089e59445bd0b1131ffb.js +0 -1
- package/assets/esri/core/workers/chunks/09886c56427c4b3f18b5.js +0 -1
- package/assets/esri/core/workers/chunks/0b539dacc5c72399ab32.js +0 -1
- package/assets/esri/core/workers/chunks/0bb57b54897fb4381b46.js +0 -1
- package/assets/esri/core/workers/chunks/0d77c9c97301a4ee4167.js +0 -1
- package/assets/esri/core/workers/chunks/0d8ca51043c7784aed96.js +0 -1
- package/assets/esri/core/workers/chunks/121a9e148509f2fe2210.js +0 -1
- package/assets/esri/core/workers/chunks/1461910bd37aea28948b.js +0 -1
- package/assets/esri/core/workers/chunks/1586929658af88f6f961.js +0 -1
- package/assets/esri/core/workers/chunks/16d45f439b89da3ec835.js +0 -1
- package/assets/esri/core/workers/chunks/1ef3533abdd937ae2794.js +0 -1
- package/assets/esri/core/workers/chunks/24c504585da8e44f956f.js +0 -1
- package/assets/esri/core/workers/chunks/24ff267cf253feac22de.js +0 -1
- package/assets/esri/core/workers/chunks/2561c2bd5a0826dedcb1.js +0 -1
- package/assets/esri/core/workers/chunks/2832161454babb40614b.js +0 -1
- package/assets/esri/core/workers/chunks/29cab345819ec02ed60a.js +0 -1
- package/assets/esri/core/workers/chunks/2f8e71dac98135bbc3e6.js +0 -1
- package/assets/esri/core/workers/chunks/369f2ef414498c17a05a.js +0 -1
- package/assets/esri/core/workers/chunks/4108445c4a653772c5ee.js +0 -1
- package/assets/esri/core/workers/chunks/432a009e756643f59cb4.js +0 -1
- package/assets/esri/core/workers/chunks/435f04e3964b1c6d4880.js +0 -1
- package/assets/esri/core/workers/chunks/44a3d01b7daa46584ed9.js +0 -1
- package/assets/esri/core/workers/chunks/44b870cb53ba68b17c32.js +0 -1
- package/assets/esri/core/workers/chunks/4736188659a62488c777.js +0 -1
- package/assets/esri/core/workers/chunks/4763831c8815fed636f7.js +0 -1
- package/assets/esri/core/workers/chunks/4781e2011a32d7724889.js +0 -1
- package/assets/esri/core/workers/chunks/4d81aa50d90f5701a343.js +0 -1
- package/assets/esri/core/workers/chunks/4e0bf30da4281070e453.js +0 -1
- package/assets/esri/core/workers/chunks/4e60ac00b15b34a3b5f5.js +0 -1
- package/assets/esri/core/workers/chunks/4e6bf1efe3b0b474cbb4.js +0 -1
- package/assets/esri/core/workers/chunks/505132c47dbdf5fdeacc.js +0 -1
- package/assets/esri/core/workers/chunks/526ae87737777154c3f3.js +0 -1
- package/assets/esri/core/workers/chunks/53859d0bd8bb14af2d4d.js +0 -1
- package/assets/esri/core/workers/chunks/593d7f17090b74945345.js +0 -1
- package/assets/esri/core/workers/chunks/5a3ccc0a19ac8fa9e524.js +0 -1
- package/assets/esri/core/workers/chunks/5baae5acd184e87d5dc4.js +0 -1
- package/assets/esri/core/workers/chunks/5bdd2a3422fe52aa2c65.js +0 -1
- package/assets/esri/core/workers/chunks/5e907ec0ee1565b5fbbc.js +0 -1
- package/assets/esri/core/workers/chunks/66ba749ab0a631bbfdec.js +0 -1
- package/assets/esri/core/workers/chunks/69da907a92901f0fb391.js +0 -1
- package/assets/esri/core/workers/chunks/6b14d89d689a21014aec.js +0 -1
- package/assets/esri/core/workers/chunks/6b7b5544ed1f9a84623f.js +0 -1
- package/assets/esri/core/workers/chunks/6ce986f4213df8a2d934.js +0 -1
- package/assets/esri/core/workers/chunks/785d9a9a933314551b10.js +0 -1
- package/assets/esri/core/workers/chunks/7f6840c53a456524b74c.js +0 -1
- package/assets/esri/core/workers/chunks/84870178173951ad6c2b.js +0 -1
- package/assets/esri/core/workers/chunks/8634d6a62f4de973e39b.js +0 -1
- package/assets/esri/core/workers/chunks/88d43db03cc11cbffa68.js +0 -1
- package/assets/esri/core/workers/chunks/902b672a3475ec83b58b.js +0 -1
- package/assets/esri/core/workers/chunks/943ea851c1b07af91172.js +0 -1
- package/assets/esri/core/workers/chunks/9a5e3b0cc8536f79c377.js +0 -1
- package/assets/esri/core/workers/chunks/9f8207c82a17508a87a8.js +0 -1
- package/assets/esri/core/workers/chunks/a01ffe03b1465c21b9e6.js +0 -1
- package/assets/esri/core/workers/chunks/a298c9031962951e55a9.js +0 -1
- package/assets/esri/core/workers/chunks/a877a4826cd6a46ec99b.js +0 -1
- package/assets/esri/core/workers/chunks/a9a0194120ec65a00f6d.js +0 -1
- package/assets/esri/core/workers/chunks/aa453ae526a233cedf0c.js +0 -1
- package/assets/esri/core/workers/chunks/ab5ffcf0db724d40f714.js +0 -1
- package/assets/esri/core/workers/chunks/ad38e456a7cee940a165.js +0 -1
- package/assets/esri/core/workers/chunks/ae3ea5fa813aec0db5e1.js +0 -1
- package/assets/esri/core/workers/chunks/ae59e10b225f08f38487.js +0 -1
- package/assets/esri/core/workers/chunks/b030cf4b00e42337dc89.js +0 -1
- package/assets/esri/core/workers/chunks/b0526633a93ef69ec47b.js +0 -1
- package/assets/esri/core/workers/chunks/b0d6e6e489aaa331861c.js +0 -1
- package/assets/esri/core/workers/chunks/b0ddb503463328531d8f.js +0 -1
- package/assets/esri/core/workers/chunks/b1a8024bf8cdd0cd3884.js +0 -1
- package/assets/esri/core/workers/chunks/b3243695e0edfcbca276.js +0 -1
- package/assets/esri/core/workers/chunks/be57692d4b9ff6cd4c02.js +0 -1
- package/assets/esri/core/workers/chunks/c0061d993e1ede22b1dc.js +0 -1
- package/assets/esri/core/workers/chunks/c260ad3434bb00ba64a7.js +0 -1
- package/assets/esri/core/workers/chunks/c2be3b9aa28e454cf931.js +0 -1
- package/assets/esri/core/workers/chunks/c459c8d8630eb4b955b1.js +0 -1
- package/assets/esri/core/workers/chunks/c4df42fe859a9115a6e4.js +0 -1
- package/assets/esri/core/workers/chunks/c5acddea13fd01912e79.js +0 -1
- package/assets/esri/core/workers/chunks/c607fe4df3ca054f9aa8.js +0 -1
- package/assets/esri/core/workers/chunks/ca023e409bb7de9a69ab.js +0 -1
- package/assets/esri/core/workers/chunks/ca85e88dad30b5f2956b.js +0 -1
- package/assets/esri/core/workers/chunks/ce3bb546a729f0ccf696.js +0 -1
- package/assets/esri/core/workers/chunks/cfd63bd57eea2caa4bcb.js +0 -1
- package/assets/esri/core/workers/chunks/d6ded127949160103f69.js +0 -1
- package/assets/esri/core/workers/chunks/d8c696da42f8f8919b83.js +0 -1
- package/assets/esri/core/workers/chunks/d95eed98316e59f8f35d.js +0 -1
- package/assets/esri/core/workers/chunks/e0b49c5eb5427656e835.js +0 -1
- package/assets/esri/core/workers/chunks/e52b9e423c0ba4134309.js +0 -1
- package/assets/esri/core/workers/chunks/e52d5a48e83d8df36f92.js +0 -1
- package/assets/esri/core/workers/chunks/e53df0f018a82e3a35bd.js +0 -1
- package/assets/esri/core/workers/chunks/ea953f5a0a975f7bd7b9.js +0 -1
- package/assets/esri/core/workers/chunks/eb4bfafe821daeb4bb6e.js +0 -1
- package/assets/esri/core/workers/chunks/f183a4b52095e4c498b4.js +0 -1
- package/assets/esri/core/workers/chunks/f221b9c6ae6c7eb4ca01.js +0 -1
- package/assets/esri/core/workers/chunks/f57100e3dfc7f087c3ad.js +0 -1
- package/assets/esri/core/workers/chunks/f5fd2ee5878c63777c51.js +0 -1
- package/assets/esri/core/workers/chunks/f6b7036114b1d754fdd9.js +0 -1
- package/assets/esri/core/workers/chunks/f6c0680c535c5a3c73ee.js +0 -1
- package/assets/esri/core/workers/chunks/f72a5af2a7ca1536f10a.js +0 -1
- package/assets/esri/core/workers/chunks/f99deed4120f605b6cd6.js +0 -1
- package/assets/esri/core/workers/chunks/fac3e57784d7f37053af.js +0 -1
- package/layers/graphics/sources/support/QueryEngineBuildLayer.js +0 -5
- package/widgets/DirectionalPad/DirectionalPadViewModel.d.ts +0 -4
- package/widgets/DirectionalPad.d.ts +0 -4
package/support/basemapUtils.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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../Basemap.js";import r from"../config.js";import t from"../core/Collection.js";import n from"../core/Logger.js";import{destroyMaybe as a,mappedFind as i}from"../core/maybe.js";import{Url as l,makeAbsolute as s,normalize as u}from"../core/urlUtils.js";import{ensureType as c}from"../core/accessorSupport/ensureType.js";import{effectEquals as o}from"../layers/effects/utils.js";import{esriBasemapDefinitions as f}from"./basemapDefinitions.js";const p=n.getLogger("esri.support.basemapUtils");function y(){return{}}function m(e){for(const r in e){const t=e[r];a(t),delete e[r]}}function d(t,n){let a;if("string"==typeof t){const i=t in f,l=!i&&t.includes("/");if(!i&&!l){const e=Object.entries(f).filter((([e,t])=>r.apiKey&&!t.classic||!r.apiKey&&(t.classic||t.is3d))).map((([e])=>`"${e}"`)).sort().join(", ");return p.warn(`Unable to find basemap definition for: ${t}. Try one of these: ${e}`),null}n&&(a=n[t]),a||(a=i?e.fromId(t):new e({style:{id:t}}),n&&(n[t]=a))}else a=c(e,t);return a?.destroyed&&(p.warn("The provided basemap is already destroyed",{basemap:a}),a=null),a}function b(e){return"Web Scene"===e.portalItem?.type}function L(e,r){return e.basemap?.referenceLayers?.some((e=>e.uid===r))||e.basemap?.baseLayers?.some((e=>e.uid===r))}function
|
|
5
|
+
import e from"../Basemap.js";import r from"../config.js";import t from"../core/Collection.js";import n from"../core/Logger.js";import{destroyMaybe as a,mappedFind as i}from"../core/maybe.js";import{Url as l,makeAbsolute as s,normalize as u}from"../core/urlUtils.js";import{ensureType as c}from"../core/accessorSupport/ensureType.js";import{effectEquals as o}from"../layers/effects/utils.js";import{esriBasemapDefinitions as f}from"./basemapDefinitions.js";const p=n.getLogger("esri.support.basemapUtils");function y(){return{}}function m(e){for(const r in e){const t=e[r];a(t),delete e[r]}}function d(t,n){let a;if("string"==typeof t){const i=t in f,l=!i&&t.includes("/");if(!i&&!l){const e=Object.entries(f).filter((([e,t])=>r.apiKey&&!t.classic||!r.apiKey&&(t.classic||t.is3d))).map((([e])=>`"${e}"`)).sort().join(", ");return p.warn(`Unable to find basemap definition for: ${t}. Try one of these: ${e}`),null}n&&(a=n[t]),a||(a=i?e.fromId(t):new e({style:{id:t}}),n&&(n[t]=a))}else a=c(e,t);return a?.destroyed&&(p.warn("The provided basemap is already destroyed",{basemap:a}),a=null),a}function b(e){return"Web Scene"===e.portalItem?.type}function L(e){return!!e?.portalItem?.tags?.map((e=>e.toLowerCase())).includes("beta")}function S(e,r){return e.basemap?.referenceLayers?.some((e=>e.uid===r))||e.basemap?.baseLayers?.some((e=>e.uid===r))}function v(e,r=null){const t=d(e);if(!t)return null;const n=t.clone();return r&&(n.baseLayers=T(n.baseLayers,r.baseLayers),n.referenceLayers=T(n.referenceLayers,r.referenceLayers)),n}let g;function h(e){if(g)return g(e);let r=null;const t=M(e),n=!t?.baseLayers.length;for(const a in f){const e=K(t,$(f[a]),{mustMatchReferences:n});if("equal"===e){r=a;break}"base-layers-equal"===e&&(r=a)}return r}function I(e){g=e}function R(e,r){if(e===r)return!0;if(null!=e?.portalItem?.id&&e.portalItem.id===r?.portalItem?.id)return!0;return"equal"===K(M(e),M(r),{mustMatchReferences:!0})}function T(e,r){const n=new t;return e.forEach((e=>{const t=r.find((r=>"scene"!==r.type&&D(A(e),A(r))))||e;n.includes(t)?n.push(e):n.push(t)})),n}function w(e){return!!e?.baseLayers.concat(e.referenceLayers).some(j)}function j(e){if(x(e.url))return!0;if("vector-tile"===e.type)for(const r in e.sourceNameToSource){const t=e.sourceNameToSource[r];if(x(t?.sourceUrl))return!0}return!1}function U(e,r){if(null==r||null==e)return{spatialReference:null,updating:!1};if("not-loaded"===r.loadStatus)return r.load(),{spatialReference:null,updating:!0};if(r.spatialReference)return{spatialReference:r.spatialReference,updating:!1};if(0===r.baseLayers.length)return{spatialReference:null,updating:!1};const t=r.baseLayers.at(0);switch(t.loadStatus){case"not-loaded":t.load();case"loading":return{spatialReference:null,updating:!0};case"failed":return{spatialReference:null,updating:!1}}const n=(("supportedSpatialReferences"in t?t.supportedSpatialReferences:null)||["tileInfo"in t?t.tileInfo?.spatialReference:t.spatialReference]).filter(Boolean),a=e.spatialReference;return a?{spatialReference:n.find((e=>a.equals(e)))??n[0]??null,updating:!1}:{spatialReference:n[0],updating:!1}}const q=/^(basemaps|ibasemaps).*-api\.arcgis\.com$/i;function x(e){if(!e)return!1;const r=new l(s(e));return!!r.authority&&q.test(r.authority)}function M(e){return e?!e.loaded&&e.resourceInfo?$(e.resourceInfo.data):{baseLayers:k(e.baseLayers),referenceLayers:k(e.referenceLayers)}:null}function k(e){return(t.isCollection(e)?e.toArray():e).map(A)}function A(e){return{type:e.type,effect:"effect"in e?e.effect:void 0,url:E("urlTemplate"in e&&e.urlTemplate||e.url||"styleUrl"in e&&e.styleUrl||""),minScale:"minScale"in e&&null!=e.minScale?e.minScale:0,maxScale:"maxScale"in e&&null!=e.maxScale?e.maxScale:0,opacity:null!=e.opacity?e.opacity:1,visible:null==e.visible||!!e.visible,sublayers:"map-image"!==e.type&&"wms"!==e.type||null==e.sublayers?void 0:e.sublayers?.map((e=>({id:e.id,visible:e.visible}))),activeLayerId:"wmts"===e.type?e.activeLayer?.id:void 0}}function C(e){return e.isReference||"ArcGISSceneServiceLayer"===e.layerType}function $(e){return e?{baseLayers:G((e.baseMapLayers??[]).filter((e=>!C(e)))),referenceLayers:G((e.baseMapLayers??[]).filter((e=>C(e))))}:null}function G(e){return e.map((e=>B(e)))}function B(e){let r;switch(e.layerType){case"VectorTileLayer":r="vector-tile";break;case"ArcGISTiledMapServiceLayer":r="tile";break;case"ArcGISSceneServiceLayer":r="scene";break;default:r="unknown"}return{type:r,effect:e.effect,url:E(e.templateUrl||e.urlTemplate||e.styleUrl||e.url),minScale:e.minScale??0,maxScale:e.maxScale??0,opacity:e.opacity??1,visible:null==e.visibility||!!e.visibility,sublayers:void 0,activeLayerId:void 0}}function K(e,r,t){if(null!=e!=(null!=r))return"not-equal";if(!e||!r)return"equal";if(!N(e.baseLayers,r.baseLayers))return"not-equal";return N(e.referenceLayers,r.referenceLayers)?"equal":t.mustMatchReferences?"not-equal":"base-layers-equal"}function N(e,r){if(e.length!==r.length)return!1;for(let t=0;t<e.length;t++)if(!D(e[t],r[t]))return!1;return!0}function D(e,r){if(e.type!==r.type||e.url!==r.url||e.minScale!==r.minScale||e.maxScale!==r.maxScale||e.visible!==r.visible||e.opacity!==r.opacity)return!1;if(!o(e.effect,r.effect))return!1;if(null!=e.activeLayerId||null!=r.activeLayerId)return e.activeLayerId===r.activeLayerId;if(null!=e.sublayers||null!=r.sublayers){if(null==e.sublayers||null==r.sublayers||e.sublayers.length!==r.sublayers.length)return!1;for(let t=0;t<e.sublayers.length;t++){const n=e.sublayers.at(t),a=r.sublayers.at(t);if(n?.id!==a?.id||n?.visible!==a?.visible)return!1}}return!0}function E(e){return e?u(e).replace(/^\s*https?:/i,"").toLowerCase():""}function O(e){if(!e)return null;const{thumbnailUrl:r}=e;if(r)return r;const t=h(e);return t?f[t].thumbnailUrl:i(e.baseLayers,V)}function V(e){return"portalItem"in e?e.portalItem?.thumbnailUrl:void 0}export{v as clonePreservingTiledLayers,R as contentEquals,y as createCache,m as destroyCache,d as ensureType,U as findSpatialReference,O as getBasemapThumbnailUrl,h as getWellKnownBasemapId,w as hasDeveloperBasemapLayer,b as isBasemap3D,L as isBasemapInBeta,S as isBasemapLayer,j as isDeveloperBasemapLayer,I as overrideGetWellKnownBasemapId};
|
package/support/revision.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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
const
|
|
5
|
+
const e="20231018",f="e24989861d68ed5ec13f4f100e212ee98f9d370f";export{e as buildDate,f as commitHash};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../Color.js";import{bidiText as t}from"../../core/BidiText.js";import{clone as r}from"../../core/lang.js";import a from"../../core/Logger.js";import o from"../../core/RandomLCG.js";import{pt2px as s,px2pt as i}from"../../core/screenUtils.js";import{create as n,expandPointInPlace as l}from"../../geometry/support/aaBoundingRect.js";import{getBoundsXY as c}from"../../geometry/support/boundsUtils.js";import{createRendererExpression as f}from"../../support/arcadeOnDemand.js";import m from"../Font.js";import{Placement as y}from"./CIMPlacements.js";import{defaultTextHeight as u,horizontalAlignment2HAlign as h,verticalAlignment2VAlign as p,EnvDrawHelper as M,Transformation as d,CanvasDrawHelper as S,defaultHatchFillSeparation as b,lineGapType2LineHeight as C}from"./CIMSymbolDrawHelper.js";import{LineCapStyle as g,LineJoinStyle as I,BlockProgression as k,FontEffects as x,FontEncoding as w,FontType as P,GlyphHinting as L,TextReadingDirection as v,VerticalGlyphOrientation as F,BillBoardMode as D,TextureFilter as G,ExtremityPlacement as T,LineDashEnding as z}from"./enums.js";import{getValue as E,fromCIMFontStyle as O,fromCIMFontDecoration as A,isCIMMarkerStrokePlacement as N,attributesToFields as R,analyzeTextParts as V,assignTextValuesFromFeature as j,isGeometryEngineRequired as B,importGeometryEngine as X}from"./utils.js";import H from"../../views/2d/arcade/callExpressionWithFeature.js";import{cInfinity as _}from"../../views/2d/engine/vectorTiles/GeometryUtils.js";import{glyphSize as Y,magicLabelLineHeight as $,randomInsidePolygonTextureSize as U}from"../../views/2d/engine/webgl/definitions.js";import{shapeGlyphs as q}from"../../views/2d/engine/webgl/mesh/templates/shapingUtils.js";const W=Math.PI,J=W/2,K=Math.PI/180,Q=96/72,Z=4,ee=a.getLogger("esri.symbols.cim.CIMSymbolHelper");function te(e){if(!e?.type)return null;let t;switch(e.type){case"cim":return e.data;case"web-style":return e;case"simple-marker":{const r=ne.fromSimpleMarker(e);if(!r)return null;t=r;break}case"picture-marker":t=ne.fromPictureMarker(e);break;case"simple-line":t=ne.fromSimpleLineSymbol(e);break;case"simple-fill":t=ne.fromSimpleFillSymbol(e);break;case"picture-fill":t=ne.fromPictureFillSymbol(e);break;case"text":t=ne.fromTextSymbol(e)}return{type:"CIMSymbolReference",symbol:t}}function re(e,t,r){switch(t.type){case"CIMSymbolReference":return re(e,t.symbol,r);case"CIMPointSymbol":null==r&&(r={x:0,y:0}),e.drawSymbol(t,r);break;case"CIMLineSymbol":null==r&&(r={paths:[[[0,0],[10,0]]]}),e.drawSymbol(t,r);break;case"CIMPolygonSymbol":null==r&&(r={rings:[[[0,0],[0,10],[10,10],[10,0],[0,0]]]}),e.drawSymbol(t,r);break;case"CIMTextSymbol":{const r={x:0,y:0};e.drawSymbol(t,r);break}case"CIMVectorMarker":{const r=new y;e.drawMarker(t,r);break}}return e.envelope()}function ae(e){if(!e)return 0;switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAtExtremities":case"CIMMarkerPlacementAtMeasuredUnits":case"CIMMarkerPlacementAtRatioPositions":case"CIMMarkerPlacementOnLine":case"CIMMarkerPlacementOnVertices":return Math.abs(e.offset);default:return 0}}function oe(e){if(!e)return 0;switch(e.type){case"CIMGeometricEffectArrow":return Math.abs(.5*e.width);case"CIMGeometricEffectBuffer":return Math.abs(e.size);case"CIMGeometricEffectExtension":case"CIMGeometricEffectRadial":return Math.abs(e.length);case"CIMGeometricEffectJog":return Math.abs(.5*e.length);case"CIMGeometricEffectMove":return Math.max(Math.abs(E(e.offsetX)),Math.abs(E(e.offsetY)));case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":return Math.abs(e.offset);case"CIMGeometricEffectRegularPolygon":return Math.abs(e.radius);case"CIMGeometricEffectRotate":case"CIMGeometricEffectScale":default:return 0;case"CIMGeometricEffectTaperedPolygon":return.5*Math.max(Math.abs(e.fromWidth),Math.abs(e.toWidth));case"CIMGeometricEffectWave":return Math.abs(e.amplitude);case"CIMGeometricEffectDonut":return Math.abs(e.width)}}function se(e){if(!e)return 0;let t=0;for(const r of e)t+=oe(r);return t}class ie{getSymbolInflateSize(e,t,r,a,o){return e||(e=[0,0,0,0]),t?this._getInflateSize(e,t,r,a,o):e}static safeSize(e){const t=Math.max(Math.abs(e[0]),Math.abs(e[2])),r=Math.max(Math.abs(e[1]),Math.abs(e[3]));return Math.sqrt(t*t+r*r)}_vectorMarkerBounds(e,t,r,a){let o=!0;const s=n();if(t?.markerGraphics)for(const i of t.markerGraphics){const t=[0,0,0,0];i.geometry&&(c(s,i.geometry),t[0]=0,t[1]=0,t[2]=0,t[3]=0,this.getSymbolInflateSize(t,i.symbol,r,0,a),s[0]+=t[0],s[1]+=t[1],s[2]+=t[2],s[3]+=t[3],o?(e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=s[3],o=!1):(e[0]=Math.min(e[0],s[0]),e[1]=Math.min(e[1],s[1]),e[2]=Math.max(e[2],s[2]),e[3]=Math.max(e[3],s[3])))}return e}_getInflateSize(e,t,r,a,o){if(Se(t)){const s=this._getLayersInflateSize(e,t.symbolLayers,r,a,o),i=se(t.effects);return i>0&&(s[0]-=i,s[1]-=i,s[2]+=i,s[3]+=i),s}return this._getTextInflatedSize(e,t,o)}_getLayersInflateSize(e,t,r,a,o){let s=!0;if(!t)return e;for(const i of t){if(!i)continue;let t=[0,0,0,0];switch(i.type){case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const e=i;let r=e.width;null!=r&&(e.capStyle===g.Square||e.joinStyle===I.Miter?r/=1.4142135623730951:r/=2,t[0]=-r,t[1]=-r,t[2]=r,t[3]=r);break}case"CIMCharacterMarker":case"CIMVectorMarker":case"CIMPictureMarker":{const e=i;if("CIMVectorMarker"===i.type){const e=i;if(t=this._vectorMarkerBounds(t,e,r,o),e.frame){const r=(e.frame.xmin+e.frame.xmax)/2,a=(e.frame.ymin+e.frame.ymax)/2;if(t[0]-=r,t[1]-=a,t[2]-=r,t[3]-=a,null!=e.size){const r=e.size/(e.frame.ymax-e.frame.ymin);t[0]*=r,t[1]*=r,t[2]*=r,t[3]*=r}}}else if("CIMPictureMarker"===i.type){const a=i,o=r.getResource(a.url);let s=1;if(null!=o&&o.height&&(s=o.width/o.height),null!=e.size){const r=e.size/2,o=e.size*s*a.scaleX/2;t=[-o,-r,o,r]}}else if(null!=e.size){const r=e.size/2;t=[-r,-r,r,r]}if(e.anchorPoint){let r,a;"Absolute"===e.anchorPointUnits?(r=e.anchorPoint.x,a=e.anchorPoint.y):(r=e.anchorPoint.x*(t[2]-t[0]),a=e.anchorPoint.y*(t[3]-t[1])),t[0]-=r,t[1]-=a,t[2]-=r,t[3]-=a}let s=E(e.rotation);if(e.rotateClockwise&&(s=-s),a&&(s-=a),s){const e=K*s,r=Math.cos(e),a=Math.sin(e),o=n([_,_,-_,-_]);l(o,[t[0]*r-t[1]*a,t[0]*a+t[1]*r]),l(o,[t[0]*r-t[3]*a,t[0]*a+t[3]*r]),l(o,[t[2]*r-t[1]*a,t[2]*a+t[1]*r]),l(o,[t[2]*r-t[3]*a,t[2]*a+t[3]*r]),t=o}let c=E(e.offsetX),f=E(e.offsetY);if(a){const e=K*a,t=Math.cos(e),r=Math.sin(e),o=c*r+f*t;c=c*t-f*r,f=o}t[0]+=c,t[1]+=f,t[2]+=c,t[3]+=f;const m=ae(e.markerPlacement);m>0&&(t[0]-=m,t[1]-=m,t[2]+=m,t[3]+=m);break}}const c=se(i.effects);c>0&&(t[0]-=c,t[1]-=c,t[2]+=c,t[3]+=c),s?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],s=!1):(e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3]))}return e}_getTextInflatedSize(e,r,a){const o=r.height??u;if(e[0]=-o/2,e[1]=-o/2,e[2]=o/2,e[3]=o/2,!a)return e;const s=a.get(r);if(!s)return e;const{text:i,mosaicItem:n}=s;if(!n?.glyphMosaicItems?.length)return e;const{lineGapType:l,lineGap:c}=r,f=l?C(l,c??0,o):0,m=t(i)[1],y=n.glyphMosaicItems,M="CIMBackgroundCallout"===r.callout?.type,d=q(y,m,{scale:o/Y,angle:E(r.angle),xOffset:E(r.offsetX),yOffset:E(r.offsetY),hAlign:h(r.horizontalAlignment),vAlign:p(r.verticalAlignment),maxLineWidth:512,lineHeight:$*Math.max(.25,Math.min(f||1,4)),decoration:r.font.decoration||"none",isCIM:!0,hasBackground:M}).boundsT;return e[0]=d.x-d.halfWidth,e[1]=-d.y-d.halfHeight,e[2]=d.x+d.halfWidth,e[3]=-d.y+d.halfHeight,e}}class ne{static getEnvelope(e,t,r){if(!e)return null;const a=new M(r);if(Array.isArray(e)){let r;for(const o of e)r?r.union(re(a,o,t)):r=re(a,o,t);return r}return re(a,e,t)}static getTextureAnchor(e,t){const r=this.getEnvelope(e,null,t);if(!r)return[0,0,0];const a=(r.x+.5*r.width)*Q,o=(r.y+.5*r.height)*Q,s=r.width*Q+2,i=r.height*Q+2;return[-a/s,-o/i,i]}static rasterize(e,t,r,a,o=!0){const s=r||this.getEnvelope(t,null,a);if(!s)return[null,0,0,0,0];const i=(s.x+.5*s.width)*Q,n=(s.y+.5*s.height)*Q;e.width=s.width*Q,e.height=s.height*Q,r||(e.width+=2,e.height+=2);const l=e.getContext("2d"),c=d.createScale(Q,-Q);c.translate(.5*e.width-i,.5*e.height+n);const f=new S(l,a,c);switch(t.type){case"CIMPointSymbol":{const e={type:"point",x:0,y:0};f.drawSymbol(t,e);break}case"CIMVectorMarker":{const e=new y;f.drawMarker(t,e);break}}const m=l.getImageData(0,0,e.width,e.height),u=new Uint8Array(m.data);if(o){let e;for(let t=0;t<u.length;t+=4)e=u[t+3]/255,u[t]=u[t]*e,u[t+1]=u[t+1]*e,u[t+2]=u[t+2]*e}return[u,e.width,e.height,-i/e.width,-n/e.height]}static fromTextSymbol(e){const{angle:r,color:a,font:o,haloColor:s,haloSize:i,horizontalAlignment:n,kerning:l,text:c,verticalAlignment:f,xoffset:m,yoffset:y,backgroundColor:u,borderLineColor:h,borderLineSize:p}=e;let M,d,S,b,C,g;o&&(M=o.family,d=o.style,S=o.weight,b=o.size,C=o.decoration);let I=!1;if(c){I=t(c)[1]}return(u||p)&&(g={type:"CIMBackgroundCallout",margin:null,backgroundSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",color:ue(u)},{type:"CIMSolidStroke",color:ue(h),width:p}]},accentBarSymbol:null,gap:null,leaderLineSymbol:null,lineStyle:null}),{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,anchorPointUnits:"Relative",dominantSizeAxis3D:"Y",size:10,billboardMode3D:"FaceNearPlane",frame:{xmin:-5,ymin:-5,xmax:5,ymax:5},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",angle:r,blockProgression:k.BTT,depth3D:1,extrapolateBaselines:!0,fontEffects:x.Normal,fontEncoding:w.Unicode,fontFamilyName:M||"Arial",fontStyleName:he(d,S),fontType:P.Unspecified,haloSize:i,height:b,hinting:L.Default,horizontalAlignment:me(n??"center"),kerning:l,letterWidth:100,ligatures:!0,lineGapType:"Multiple",offsetX:E(m),offsetY:E(y),strikethrough:"line-through"===C,underline:"underline"===C,symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:ue(a)}]},haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:ue(s)}]},shadowColor:[0,0,0,255],shadowOffsetX:1,shadowOffsetY:1,textCase:"Normal",textDirection:I?v.RTL:v.LTR,verticalAlignment:ye(f??"baseline"),verticalGlyphOrientation:F.Right,wordSpacing:100,billboardMode3D:D.FaceNearPlane,callout:g},textString:c}],scaleSymbolsProportionally:!0,respectFrame:!0}],scaleX:1,angleAlignment:"Display"}}static fromPictureFillSymbol(e){const{height:t,outline:r,width:a,xoffset:o,xscale:s,yoffset:i,yscale:n}=e,l=[],c={type:"CIMPolygonSymbol",symbolLayers:l};if(r){const e=ke(r);e&&l.push(e)}let f=e.url;"esriPFS"===e.type&&e.imageData&&(f=e.imageData);const m="angle"in e?e.angle??0:0,y=(a??0)*(s||1),u=(t??0)*(n||1);return l.push({type:"CIMPictureFill",invertBackfaceTexture:!1,scaleX:1,textureFilter:G.Picture,tintColor:null,url:f,height:u,width:y,offsetX:E(o),offsetY:E(i),rotation:E(-m),colorSubstitutions:null}),c}static fromSimpleFillSymbol(e){const{color:t,style:a,outline:o}=e,s=[],n={type:"CIMPolygonSymbol",symbolLayers:s};if(o){const e=ke(o);e&&s.push(e)}if(a&&"solid"!==a&&"none"!==a&&"esriSFSSolid"!==a&&"esriSFSNull"!==a){const e={type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",color:ue(t),capStyle:g.Butt,joinStyle:I.Miter,width:.75}]};let o=0;const n=i(Ce(a)?8:10);switch(a){case"vertical":case"esriSFSVertical":o=90;break;case"forward-diagonal":case"esriSFSForwardDiagonal":case"diagonal-cross":case"esriSFSDiagonalCross":o=-45;break;case"backward-diagonal":case"esriSFSBackwardDiagonal":o=45;break;case"cross":case"esriSFSCross":o=0}s.push({type:"CIMHatchFill",lineSymbol:e,offsetX:0,offsetY:0,rotation:o,separation:n}),"cross"===a||"esriSFSCross"===a?s.push({type:"CIMHatchFill",lineSymbol:r(e),offsetX:0,offsetY:0,rotation:90,separation:n}):"diagonal-cross"!==a&&"esriSFSDiagonalCross"!==a||s.push({type:"CIMHatchFill",lineSymbol:r(e),offsetX:0,offsetY:0,rotation:45,separation:n})}else!a||"solid"!==a&&"esriSFSSolid"!==a||s.push({type:"CIMSolidFill",enable:!0,color:ue(t)});return n}static fromSimpleLineSymbol(e){const{cap:t,color:r,join:a,marker:o,miterLimit:s,style:i,width:n}=e;let l=null;"solid"!==i&&"none"!==i&&"esriSLSSolid"!==i&&"esriSLSNull"!==i&&(l=[{type:"CIMGeometricEffectDashes",dashTemplate:de(i,t),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]);const c=[];if(o){let e;switch(o.placement){case"begin-end":e=T.Both;break;case"begin":e=T.JustBegin;break;case"end":e=T.JustEnd;break;default:e=T.None}const t=ne.fromSimpleMarker(o,n,r).symbolLayers[0];t.markerPlacement={type:"CIMMarkerPlacementAtExtremities",angleToLine:!0,offset:0,extremityPlacement:e,offsetAlongLine:0},c.push(t)}return c.push({type:"CIMSolidStroke",color:"none"!==i&&"esriSLSNull"!==i?ue(r):[0,0,0,0],capStyle:ce(t),joinStyle:fe(a),miterLimit:s,width:n,effects:l}),{type:"CIMLineSymbol",symbolLayers:c}}static fromPictureMarker(e){const{angle:t,height:r,width:a,xoffset:o,yoffset:s}=e;let i=e.url;return"esriPMS"===e.type&&e.imageData&&(i=e.imageData),{type:"CIMPointSymbol",symbolLayers:[{type:"CIMPictureMarker",invertBackfaceTexture:!1,scaleX:1,textureFilter:G.Picture,tintColor:null,url:i,size:r,width:a,offsetX:E(o),offsetY:E(s),rotation:E(-t)}]}}static fromSimpleMarker(e,t,r){const{style:a}=e,o=e.color??r;if("path"===a){const t=[];if("outline"in e&&e.outline){const r=e.outline;t.push({type:"CIMSolidStroke",enable:!0,width:s(Math.round(i(r.width))),color:ue(r.color),path:e.path})}t.push({type:"CIMSolidFill",enable:!0,color:ue(o),path:e.path});const[r,a]=be("square");return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:E(-e.angle),size:E(e.size||6),offsetX:E(e.xoffset),offsetY:E(e.yoffset),frame:r,markerGraphics:[{type:"CIMMarkerGraphic",geometry:a,symbol:{type:"CIMPolygonSymbol",symbolLayers:t}}]}]}}const n=[];let l,c;if("outline"in e&&e.outline){const t=e.outline,r="solid"!==t.style&&"esriSLSSolid"!==t.style&&"none"!==t.style;[l,c]=r?be(a,e.size):be(a);const o="cross"===e.style||"x"===e.style?z.FullPattern:z.HalfGap,f=r?[{type:"CIMGeometricEffectAddControlPoints"},{type:"CIMGeometricEffectDashes",dashTemplate:de(t.style,null).map((e=>e*(t.width??1))),lineDashEnding:o,controlPointEnding:z.FullPattern}]:void 0;n.push({type:"CIMSolidStroke",capStyle:r?g.Round:g.Butt,enable:!0,width:null!=t.width&&t.width>.667?s(Math.round(i(t.width))):t.width,color:ue(t.color),effects:f})}else!t||"line-marker"!==e.type||"cross"!==e.style&&"x"!==e.style?[l,c]=be(a):([l,c]=be(a),n.push({type:"CIMSolidStroke",enable:!0,width:t,color:ue(o)}));n.push({type:"CIMSolidFill",enable:!0,color:ue(o)});const f={type:"CIMPolygonSymbol",symbolLayers:n};return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:E(-e.angle),size:E(e.size||6*t),offsetX:E(e.xoffset),offsetY:E(e.yoffset),frame:l,markerGraphics:[{type:"CIMMarkerGraphic",geometry:c,symbol:f}]}]}}static fromCIMHatchFill(e,t){const a=t*(e.separation??b),o=a/2,s=r(e.lineSymbol);s.symbolLayers?.forEach((e=>{switch(e.type){case"CIMSolidStroke":null!=e.width&&(e.width*=t),e.effects?.forEach((e=>{"CIMGeometricEffectDashes"===e.type&&(e.dashTemplate=e.dashTemplate.map((e=>e*t)))}));break;case"CIMVectorMarker":{null!=e.size&&(e.size*=t);const r=e.markerPlacement;null!=r&&"placementTemplate"in r&&(r.placementTemplate=r.placementTemplate.map((e=>e*t)));break}}}));let i=this._getLineSymbolPeriod(s)||Z;for(;i<Z;)i*=2;const n=i/2;return{type:"CIMVectorMarker",frame:{xmin:-n,xmax:n,ymin:-o,ymax:o},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{paths:[[[-n,0],[n,0]]]},symbol:s}],size:a}}static fetchResources(e,t,r){if(e&&t)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const a=e.symbolLayers;if(!a)return;for(const e of a)switch(Ie(e,t,r),e.type){case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":case"CIMPictureStroke":case"CIMGradientStroke":case"CIMCharacterMarker":case"CIMPictureMarker":"url"in e&&e.url&&r.push(t.fetchResource(e.url,null));break;case"CIMVectorMarker":{const a=e.markerGraphics;if(!a)continue;for(const e of a)if(e){const a=e.symbol;a&&ne.fetchResources(a,t,r)}}}break}}}static fetchFonts(e,t,r){if(e&&t)if("symbolLayers"in e&&e.symbolLayers){for(const a of e.symbolLayers)if("CIMVectorMarker"===a.type&&a.markerGraphics)for(const e of a.markerGraphics)e?.symbol&&ne.fetchFonts(e.symbol,t,r)}else if("CIMTextSymbol"===e.type){const{fontFamilyName:a,fontStyleName:o}=e;if(!a||"calcitewebcoreicons"===a.toLowerCase())return;const{style:s,weight:i}=O(o),n=A(e),l=new m({family:a,style:s,weight:i,decoration:n});r.push(t.loadFont(l).catch((()=>{ee.error(`Unsupported font ${a} in CIM symbol`)})))}}static _getLineSymbolPeriod(e){if(e){const t=this._getEffectsRepeat(e.effects);if(t)return t;if(e.symbolLayers)for(const r of e.symbolLayers)if(r){const e=this._getEffectsRepeat(r.effects);if(e)return e;switch(r.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const e=this._getPlacementRepeat(r.markerPlacement);if(e)return e}}}}return 0}static _getEffectsRepeat(e){if(e)for(const t of e)if(t)switch(t.type){case"CIMGeometricEffectDashes":{const e=t.dashTemplate;if(e&&e.length){let t=0;for(const r of e)t+=r;return 1&e.length&&(t*=2),t}break}case"CIMGeometricEffectWave":return t.period;default:ee.error(`unsupported geometric effect type ${t.type}`)}return 0}static _getPlacementRepeat(e){if(e)switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAlongLineVariableSize":{const t=e.placementTemplate;if(t&&t.length){let e=0;for(const r of t)e+=+r;return 1&t.length&&(e*=2),e}break}}return 0}static fromCIMInsidePolygon(e){const t=e.markerPlacement,r={...e};r.markerPlacement=null,r.anchorPoint=null;const a=Math.abs(t.stepX),s=Math.abs(t.stepY),n=(t.randomness??100)/100;let l,c,f,m;if("Random"===t.gridType){const e=i(U),r=Math.max(Math.floor(e/a),1),y=Math.max(Math.floor(e/s),1);l=r*a/2,c=y*s/2,f=2*c;const u=new o(t.seed),h=n*a/1.5,p=n*s/1.5;m=[];for(let t=0;t<r;t++)for(let e=0;e<y;e++){const r=t*a-l+h*(.5-u.getFloat()),o=e*s-c+p*(.5-u.getFloat());m.push({x:r,y:o}),0===t&&m.push({x:r+2*l,y:o}),0===e&&m.push({x:r,y:o+2*c})}}else!0===t.shiftOddRows?(l=a/2,c=s,f=2*s,m=[{x:-l,y:0},{x:l,y:0},{x:0,y:c},{x:0,y:-c}]):(l=a/2,c=s/2,f=s,m=[{x:-a,y:0},{x:0,y:-s},{x:-a,y:-s},{x:0,y:0},{x:a,y:0},{x:0,y:s},{x:a,y:s},{x:-a,y:s},{x:a,y:-s}]);return{type:"CIMVectorMarker",frame:{xmin:-l,xmax:l,ymin:-c,ymax:c},markerGraphics:m.map((e=>({type:"CIMMarkerGraphic",geometry:e,symbol:{type:"CIMPointSymbol",symbolLayers:[r]}}))),size:f}}static getSize(e){if(e)switch(e.type){case"CIMTextSymbol":return e.height;case"CIMPointSymbol":{let t=0;if(e.symbolLayers)for(const r of e.symbolLayers)if(r)switch(r.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const e=r.size;null!=e&&e>t&&(t=e);break}}return t}case"CIMLineSymbol":case"CIMPolygonSymbol":{let t=0;if(e.symbolLayers)for(const r of e.symbolLayers)if(r)switch(r.type){case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const e=r.width;null!=e&&e>t&&(t=e);break}case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":if(r.markerPlacement&&N(r.markerPlacement)){const e=r.size;null!=e&&e>t&&(t=e)}}return t}}}static getMarkerScaleRatio(e){if(e&&"CIMVectorMarker"===e.type)if(!1!==e.scaleSymbolsProportionally&&e.frame&&null!=e.size){const t=e.frame.ymax-e.frame.ymin;return e.size/t}return 1}}class le{static findApplicableOverrides(e,t,r){if(e&&t){if(e.primitiveName){let a=!1;for(const t of r)if(t.primitiveName===e.primitiveName){a=!0;break}if(!a)for(const o of t)o.primitiveName===e.primitiveName&&r.push(o)}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const a of e.effects)le.findApplicableOverrides(a,t,r);if(e.symbolLayers)for(const a of e.symbolLayers)le.findApplicableOverrides(a,t,r);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":case"CIMVectorMarker":case"CIMCharacterMarker":case"CIMPictureMarker":if(e.effects)for(const a of e.effects)le.findApplicableOverrides(a,t,r);if(e.markerPlacement&&le.findApplicableOverrides(e.markerPlacement,t,r),"CIMVectorMarker"===e.type){if(e.markerGraphics)for(const a of e.markerGraphics)le.findApplicableOverrides(a,t,r),le.findApplicableOverrides(a.symbol,t,r)}else"CIMCharacterMarker"===e.type?le.findApplicableOverrides(e.symbol,t,r):"CIMHatchFill"===e.type?le.findApplicableOverrides(e.lineSymbol,t,r):"CIMPictureMarker"===e.type&&le.findApplicableOverrides(e.animatedSymbolProperties,t,r)}}}static findEffectOverrides(e,t,r){if(!t||!e)return;const a=e.length;for(let o=0;o<a;o++){const a=e[o],s=a?.primitiveName;if(s){let e=!1;for(const t of r)if(t.primitiveName===s){e=!0;break}if(!e)for(const a of t)a.primitiveName===s&&r.push(a)}}}static async resolveSymbolOverrides(e,t,a,o,s,i,n){if(!e?.symbol)return null;let{symbol:l,primitiveOverrides:c}=e;const f=!!c;if(!f&&!o)return l;l=r(l);let m=!0;if(t||(t={attributes:{}},m=!1),f){if(m||(c=c.filter((e=>!e.valueExpressionInfo?.expression.includes("$feature")))),n||(c=c.filter((e=>!e.valueExpressionInfo?.expression.includes("$view")))),c.length>0){const e=R(t.attributes);await le.evaluateOverrides(c,t,{spatialReference:a,fields:e,geometryType:s},i,n)}le.applyOverrides(l,c)}return o&&le.applyDictionaryTextOverrides(l,t,o),l}static async evaluateOverrides(e,t,r,a,o){if(!t)return;let s;for(const i of e){const e=i.valueExpressionInfo;if(e&&r?.geometryType){s||(s=[]),i.value=void 0;const n=f(e.expression,r.spatialReference,r.fields).then((e=>{i.value=H(e,t,{$view:o},r.geometryType,a)}));s.push(n)}}void 0!==s&&s.length>0&&await Promise.all(s)}static applyDictionaryTextOverrides(e,t,r,a="Normal"){if(e?.type)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":case"CIMTextSymbol":{const o=e.symbolLayers;if(!o)return;for(const s of o)s&&"CIMVectorMarker"===s.type&&le.applyDictionaryTextOverrides(s,t,r,"CIMTextSymbol"===e.type?e.textCase:a)}break;case"CIMVectorMarker":{const a=e.markerGraphics;if(!a)return;for(const e of a)e&&le.applyDictionaryTextOverrides(e,t,r)}break;case"CIMMarkerGraphic":{const o=e.textString;if(o&&o.includes("[")){const s=V(o,r);e.textString=j(t,s,a)}}}}static applyOverrides(e,t,r,a){if(e.primitiveName)for(const o of t)if(o.primitiveName===e.primitiveName){const t=ge(o.propertyName);if(a&&a.push({cim:e,nocapPropertyName:t,value:e[t]}),o.expression&&(o.value=le.toValue(o.propertyName,o.expression)),r){let t=!1;for(const a of r)a.primitiveName===e.primitiveName&&(t=!0);t||r.push(o)}null!=o.value&&(e[t]=o.value)}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const o of e.effects)le.applyOverrides(o,t,r,a);if(e.symbolLayers)for(const o of e.symbolLayers)le.applyOverrides(o,t,r,a);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMSolidFill":case"CIMVectorMarker":if(e.effects)for(const o of e.effects)le.applyOverrides(o,t,r,a);if("CIMVectorMarker"===e.type&&e.markerGraphics)for(const o of e.markerGraphics)le.applyOverrides(o,t,r,a),le.applyOverrides(o.symbol,t,r,a)}}static restoreOverrides(e){for(const t of e)t.cim[t.nocapPropertyName]=t.value}static buildOverrideKey(e){let t="";for(const r of e)void 0!==r.value&&(t+=`${r.primitiveName}${r.propertyName}${JSON.stringify(r.value)}`);return t}static toValue(t,r){if("DashTemplate"===t)return r.split(" ").map((e=>Number(e)));if("Color"===t){const t=new e(r).toRgba();return t[3]*=255,t}return r}}const ce=e=>{if(!e)return g.Butt;switch(e){case"butt":return g.Butt;case"square":return g.Square;case"round":return g.Round}},fe=e=>{if(!e)return I.Miter;switch(e){case"miter":return I.Miter;case"round":return I.Round;case"bevel":return I.Bevel}},me=e=>{if(null==e)return"Center";switch(e){case"left":return"Left";case"right":return"Right";case"center":return"Center"}},ye=e=>{if(null==e)return"Center";switch(e){case"baseline":return"Baseline";case"top":return"Top";case"middle":return"Center";case"bottom":return"Bottom"}},ue=e=>{if(!e)return[0,0,0,0];const{r:t,g:r,b:a,a:o}=e;return[t,r,a,255*o]},he=(e,t)=>{const r=pe(t),a=Me(e);return r&&a?`${r}-${a}`:`${r}${a}`},pe=e=>{if(!e)return"";switch(e.toLowerCase()){case"bold":case"bolder":return"bold"}return""},Me=e=>{if(!e)return"";switch(e.toLowerCase()){case"italic":case"oblique":return"italic"}return""},de=(e,t)=>{const r="butt"===t;switch(e){case"dash":case"esriSLSDash":return r?[4,3]:[3,4];case"dash-dot":case"esriSLSDashDot":return r?[4,3,1,3]:[3,4,0,4];case"dot":case"esriSLSDot":return r?[1,3]:[0,4];case"long-dash":case"esriSLSLongDash":return r?[8,3]:[7,4];case"long-dash-dot":case"esriSLSLongDashDot":return r?[8,3,1,3]:[7,4,0,4];case"long-dash-dot-dot":case"esriSLSDashDotDot":return r?[8,3,1,3,1,3]:[7,4,0,4,0,4];case"short-dash":case"esriSLSShortDash":return r?[4,1]:[3,2];case"short-dash-dot":case"esriSLSShortDashDot":return r?[4,1,1,1]:[3,2,0,2];case"short-dash-dot-dot":case"esriSLSShortDashDotDot":return r?[4,1,1,1,1,1]:[3,2,0,2,0,2];case"short-dot":case"esriSLSShortDot":return r?[1,1]:[0,2];case"solid":case"esriSLSSolid":case"none":return ee.error("Unexpected: style does not require rasterization"),[0,0];default:return ee.error(`Tried to rasterize SLS, but found an unexpected style: ${e}!`),[0,0]}};function Se(e){return void 0!==e.symbolLayers}const be=(e,t=100)=>{const r=t/2;let a,o;const s=e;if("circle"===s||"esriSMSCircle"===s){const e=.25;let t=Math.acos(1-e/r),s=Math.ceil(W/t/4);0===s&&(s=1),t=J/s,s*=4;const i=[];i.push([r,0]);for(let a=1;a<s;a++)i.push([r*Math.cos(a*t),-r*Math.sin(a*t)]);i.push([r,0]),a={rings:[i]},o={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("cross"===s||"esriSMSCross"===s){const e=0;a={paths:[[[e,r],[e,-r]],[[r,e],[-r,e]]]},o={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("diamond"===s||"esriSMSDiamond"===s)a={rings:[[[-r,0],[0,r],[r,0],[0,-r],[-r,0]]]},o={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("square"===s||"esriSMSSquare"===s)a={rings:[[[-r,-r],[-r,r],[r,r],[r,-r],[-r,-r]]]},o={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("x"===s||"esriSMSX"===s)a={paths:[[[r,r],[-r,-r]],[[r,-r],[-r,r]]]},o={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("triangle"===s||"esriSMSTriangle"===s){const e=t*.5773502691896257,r=-e,s=2/3*t,i=s-t;a={rings:[[[r,i],[0,s],[e,i],[r,i]]]},o={xmin:r,ymin:i,xmax:e,ymax:s}}else"arrow"===s&&(a={rings:[[[-50,50],[50,0],[-50,-50],[-33,-20],[-33,20],[-50,50]]]},o={xmin:-r,ymin:-r,xmax:r,ymax:r});return[o,a]},Ce=e=>"vertical"===e||"horizontal"===e||"cross"===e||"esriSFSCross"===e||"esriSFSVertical"===e||"esriSFSHorizontal"===e,ge=e=>e?e.charAt(0).toLowerCase()+e.substr(1):e;function Ie(e,t,r){if(!e.effects||null!=t.geometryEngine)return;if(t.geometryEnginePromise)return void r.push(t.geometryEnginePromise);B(e.effects)&&(t.geometryEnginePromise=X(),r.push(t.geometryEnginePromise),t.geometryEnginePromise.then((e=>t.geometryEngine=e)))}function ke(e){if(!e)return null;let t=null;const{cap:r,color:a,join:o,miterLimit:s,style:i,width:n}=e;return"solid"!==i&&"none"!==i&&"esriSLSSolid"!==i&&"esriSLSNull"!==i&&(t=[{type:"CIMGeometricEffectDashes",dashTemplate:de(i,r),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]),{type:"CIMSolidStroke",color:"esriSLSNull"!==i&&"none"!==i?ue(a):[0,0,0,0],capStyle:ce(r),joinStyle:fe(o),miterLimit:s,width:n,effects:t}}export{ne as CIMSymbolHelper,ie as CIMSymbolInflatedSizeHelper,le as OverrideHelper,se as getEffectsInflateSize,de as slsDashToTemplateArray,te as symbolToCIM};
|
|
5
|
+
import e from"../../Color.js";import{bidiText as t}from"../../core/BidiText.js";import has from"../../core/has.js";import{clone as r}from"../../core/lang.js";import o from"../../core/Logger.js";import a from"../../core/RandomLCG.js";import{pt2px as s,px2pt as i}from"../../core/screenUtils.js";import{create as n,expandPointInPlace as l}from"../../geometry/support/aaBoundingRect.js";import{getBoundsXY as c}from"../../geometry/support/boundsUtils.js";import{createRendererExpression as f}from"../../support/arcadeOnDemand.js";import m from"../Font.js";import{Placement as y}from"./CIMPlacements.js";import{defaultTextHeight as u,horizontalAlignment2HAlign as h,verticalAlignment2VAlign as p,EnvDrawHelper as M,Transformation as d,CanvasDrawHelper as S,defaultHatchFillSeparation as b,lineGapType2LineHeight as C}from"./CIMSymbolDrawHelper.js";import{LineCapStyle as g,LineJoinStyle as I,BlockProgression as k,FontEffects as x,FontEncoding as w,FontType as P,GlyphHinting as L,TextReadingDirection as v,VerticalGlyphOrientation as F,BillBoardMode as D,TextureFilter as G,ExtremityPlacement as T,LineDashEnding as z}from"./enums.js";import{getValue as E,fromCIMFontStyle as O,fromCIMFontDecoration as A,isCIMMarkerStrokePlacement as N,attributesToFields as R,analyzeTextParts as j,assignTextValuesFromFeature as V,isGeometryEngineRequired as B,importGeometryEngine as X}from"./utils.js";import H from"../../views/2d/arcade/callExpressionWithFeature.js";import{cInfinity as _}from"../../views/2d/engine/vectorTiles/GeometryUtils.js";import{glyphSize as Y,magicLabelLineHeight as $,randomInsidePolygonTextureSize as U}from"../../views/2d/engine/webgl/definitions.js";import{shapeGlyphs as q}from"../../views/2d/engine/webgl/mesh/templates/shapingUtils.js";const W=Math.PI,J=W/2,K=Math.PI/180,Q=96/72,Z=4,ee=o.getLogger("esri.symbols.cim.CIMSymbolHelper");function te(e){if(!e?.type)return null;let t;switch(e.type){case"cim":return e.data;case"web-style":return e;case"simple-marker":{const r=ne.fromSimpleMarker(e);if(!r)return null;t=r;break}case"picture-marker":t=ne.fromPictureMarker(e);break;case"simple-line":t=ne.fromSimpleLineSymbol(e);break;case"simple-fill":t=ne.fromSimpleFillSymbol(e);break;case"picture-fill":t=ne.fromPictureFillSymbol(e);break;case"text":t=ne.fromTextSymbol(e)}return{type:"CIMSymbolReference",symbol:t}}function re(e,t,r){switch(t.type){case"CIMSymbolReference":return re(e,t.symbol,r);case"CIMPointSymbol":null==r&&(r={x:0,y:0}),e.drawSymbol(t,r);break;case"CIMLineSymbol":null==r&&(r={paths:[[[0,0],[10,0]]]}),e.drawSymbol(t,r);break;case"CIMPolygonSymbol":null==r&&(r={rings:[[[0,0],[0,10],[10,10],[10,0],[0,0]]]}),e.drawSymbol(t,r);break;case"CIMTextSymbol":{const r={x:0,y:0};e.drawSymbol(t,r);break}case"CIMVectorMarker":{const r=new y;e.drawMarker(t,r);break}}return e.envelope()}function oe(e){if(!e)return 0;switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAtExtremities":case"CIMMarkerPlacementAtMeasuredUnits":case"CIMMarkerPlacementAtRatioPositions":case"CIMMarkerPlacementOnLine":case"CIMMarkerPlacementOnVertices":return Math.abs(e.offset);default:return 0}}function ae(e){if(!e)return 0;switch(e.type){case"CIMGeometricEffectArrow":return Math.abs(.5*e.width);case"CIMGeometricEffectBuffer":return Math.abs(e.size);case"CIMGeometricEffectExtension":case"CIMGeometricEffectRadial":return Math.abs(e.length);case"CIMGeometricEffectJog":return Math.abs(.5*e.length);case"CIMGeometricEffectMove":return Math.max(Math.abs(E(e.offsetX)),Math.abs(E(e.offsetY)));case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":return Math.abs(e.offset);case"CIMGeometricEffectRegularPolygon":return Math.abs(e.radius);case"CIMGeometricEffectRotate":case"CIMGeometricEffectScale":default:return 0;case"CIMGeometricEffectTaperedPolygon":return.5*Math.max(Math.abs(e.fromWidth),Math.abs(e.toWidth));case"CIMGeometricEffectWave":return Math.abs(e.amplitude);case"CIMGeometricEffectDonut":return Math.abs(e.width)}}function se(e){if(!e)return 0;let t=0;for(const r of e)t+=ae(r);return t}class ie{getSymbolInflateSize(e,t,r,o,a){return e||(e=[0,0,0,0]),t?this._getInflateSize(e,t,r,o,a):e}static safeSize(e){const t=Math.max(Math.abs(e[0]),Math.abs(e[2])),r=Math.max(Math.abs(e[1]),Math.abs(e[3]));return Math.sqrt(t*t+r*r)}_vectorMarkerBounds(e,t,r,o){let a=!0;const s=n();if(t?.markerGraphics)for(const i of t.markerGraphics){const t=[0,0,0,0];i.geometry&&(c(s,i.geometry),t[0]=0,t[1]=0,t[2]=0,t[3]=0,this.getSymbolInflateSize(t,i.symbol,r,0,o),s[0]+=t[0],s[1]+=t[1],s[2]+=t[2],s[3]+=t[3],a?(e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=s[3],a=!1):(e[0]=Math.min(e[0],s[0]),e[1]=Math.min(e[1],s[1]),e[2]=Math.max(e[2],s[2]),e[3]=Math.max(e[3],s[3])))}return e}_getInflateSize(e,t,r,o,a){if(Se(t)){const s=this._getLayersInflateSize(e,t.symbolLayers,r,o,a),i=se(t.effects);return i>0&&(s[0]-=i,s[1]-=i,s[2]+=i,s[3]+=i),s}return this._getTextInflatedSize(e,t,a)}_getLayersInflateSize(e,t,r,o,a){let s=!0;if(!t)return e;for(const i of t){if(!i)continue;let t=[0,0,0,0];switch(i.type){case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const e=i;let r=e.width;null!=r&&(e.capStyle===g.Square||e.joinStyle===I.Miter?r/=1.4142135623730951:r/=2,t[0]=-r,t[1]=-r,t[2]=r,t[3]=r);break}case"CIMCharacterMarker":case"CIMVectorMarker":case"CIMPictureMarker":{const e=i;if("CIMVectorMarker"===i.type){const e=i;if(t=this._vectorMarkerBounds(t,e,r,a),e.frame){const r=(e.frame.xmin+e.frame.xmax)/2,o=(e.frame.ymin+e.frame.ymax)/2;if(t[0]-=r,t[1]-=o,t[2]-=r,t[3]-=o,null!=e.size){const r=e.size/(e.frame.ymax-e.frame.ymin);t[0]*=r,t[1]*=r,t[2]*=r,t[3]*=r}}}else if("CIMPictureMarker"===i.type){const o=i,a=r.getResource(o.url);let s=1;if(null!=a&&a.height&&(s=a.width/a.height),null!=e.size){const r=e.size/2,a=e.size*s*o.scaleX/2;t=[-a,-r,a,r]}}else if(null!=e.size){const r=e.size/2;t=[-r,-r,r,r]}if(e.anchorPoint){let r,o;"Absolute"===e.anchorPointUnits?(r=e.anchorPoint.x,o=e.anchorPoint.y):(r=e.anchorPoint.x*(t[2]-t[0]),o=e.anchorPoint.y*(t[3]-t[1])),t[0]-=r,t[1]-=o,t[2]-=r,t[3]-=o}let s=E(e.rotation);if(e.rotateClockwise&&(s=-s),o&&(s-=o),s){const e=K*s,r=Math.cos(e),o=Math.sin(e),a=n([_,_,-_,-_]);l(a,[t[0]*r-t[1]*o,t[0]*o+t[1]*r]),l(a,[t[0]*r-t[3]*o,t[0]*o+t[3]*r]),l(a,[t[2]*r-t[1]*o,t[2]*o+t[1]*r]),l(a,[t[2]*r-t[3]*o,t[2]*o+t[3]*r]),t=a}let c=E(e.offsetX),f=E(e.offsetY);if(o){const e=K*o,t=Math.cos(e),r=Math.sin(e),a=c*r+f*t;c=c*t-f*r,f=a}t[0]+=c,t[1]+=f,t[2]+=c,t[3]+=f;const m=oe(e.markerPlacement);m>0&&(t[0]-=m,t[1]-=m,t[2]+=m,t[3]+=m);break}}const c=se(i.effects);c>0&&(t[0]-=c,t[1]-=c,t[2]+=c,t[3]+=c),s?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],s=!1):(e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3]))}return e}_getTextInflatedSize(e,r,o){const a=r.height??u;if(e[0]=-a/2,e[1]=-a/2,e[2]=a/2,e[3]=a/2,!o)return e;const s=o.get(r);if(!s)return e;const{text:i,mosaicItem:n}=s;if(!n?.glyphMosaicItems?.length)return e;const{lineGapType:l,lineGap:c}=r,f=l?C(l,c??0,a):0,m=t(i)[1],y=n.glyphMosaicItems,M="CIMBackgroundCallout"===r.callout?.type,d=q(y,m,{scale:a/Y,angle:E(r.angle),xOffset:E(r.offsetX),yOffset:E(r.offsetY),hAlign:h(r.horizontalAlignment),vAlign:p(r.verticalAlignment),maxLineWidth:512,lineHeight:$*Math.max(.25,Math.min(f||1,4)),decoration:r.font.decoration||"none",isCIM:!0,hasBackground:M}).boundsT;return e[0]=d.x-d.halfWidth,e[1]=-d.y-d.halfHeight,e[2]=d.x+d.halfWidth,e[3]=-d.y+d.halfHeight,e}}class ne{static getEnvelope(e,t,r){if(!e)return null;const o=new M(r);if(Array.isArray(e)){let r;for(const a of e)r?r.union(re(o,a,t)):r=re(o,a,t);return r}return re(o,e,t)}static getTextureAnchor(e,t){const r=this.getEnvelope(e,null,t);if(!r)return[0,0,0];const o=(r.x+.5*r.width)*Q,a=(r.y+.5*r.height)*Q,s=r.width*Q+2,i=r.height*Q+2;return[-o/s,-a/i,i]}static rasterize(e,t,r,o,a=!0){const s=r||this.getEnvelope(t,null,o);if(!s)return[null,0,0,0,0];const i=(s.x+.5*s.width)*Q,n=(s.y+.5*s.height)*Q;e.width=s.width*Q,e.height=s.height*Q,r||(e.width+=2,e.height+=2);const l=e.getContext("2d"),c=d.createScale(Q,-Q);c.translate(.5*e.width-i,.5*e.height+n);const f=new S(l,o,c);switch(t.type){case"CIMPointSymbol":{const e={type:"point",x:0,y:0};f.drawSymbol(t,e);break}case"CIMVectorMarker":{const e=new y;f.drawMarker(t,e);break}}const m=l.getImageData(0,0,e.width,e.height),u=new Uint8Array(m.data);if(a){let e;for(let t=0;t<u.length;t+=4)e=u[t+3]/255,u[t]=u[t]*e,u[t+1]=u[t+1]*e,u[t+2]=u[t+2]*e}return[u,e.width,e.height,-i/e.width,-n/e.height]}static fromTextSymbol(e){const{angle:r,color:o,font:a,haloColor:s,haloSize:i,horizontalAlignment:n,kerning:l,text:c,verticalAlignment:f,xoffset:m,yoffset:y,backgroundColor:u,borderLineColor:h,borderLineSize:p}=e;let M,d,S,b,C,g;a&&(M=a.family,d=a.style,S=a.weight,b=a.size,C=a.decoration);let I=!1;if(c){I=t(c)[1]}return(u||p)&&(g={type:"CIMBackgroundCallout",margin:null,backgroundSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",color:ue(u)},{type:"CIMSolidStroke",color:ue(h),width:p}]},accentBarSymbol:null,gap:null,leaderLineSymbol:null,lineStyle:null}),{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,anchorPointUnits:"Relative",dominantSizeAxis3D:"Y",size:10,billboardMode3D:"FaceNearPlane",frame:{xmin:-5,ymin:-5,xmax:5,ymax:5},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",angle:r,blockProgression:k.BTT,depth3D:1,extrapolateBaselines:!0,fontEffects:x.Normal,fontEncoding:w.Unicode,fontFamilyName:M||"Arial",fontStyleName:he(d,S),fontType:P.Unspecified,haloSize:i,height:b,hinting:L.Default,horizontalAlignment:me(n??"center"),kerning:l,letterWidth:100,ligatures:!0,lineGapType:"Multiple",offsetX:E(m),offsetY:E(y),strikethrough:"line-through"===C,underline:"underline"===C,symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:ue(o)}]},haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:ue(s)}]},shadowColor:[0,0,0,255],shadowOffsetX:1,shadowOffsetY:1,textCase:"Normal",textDirection:I?v.RTL:v.LTR,verticalAlignment:ye(f??"baseline"),verticalGlyphOrientation:F.Right,wordSpacing:100,billboardMode3D:D.FaceNearPlane,callout:g},textString:c}],scaleSymbolsProportionally:!0,respectFrame:!0}],scaleX:1,angleAlignment:"Display"}}static fromPictureFillSymbol(e){const{height:t,outline:r,width:o,xoffset:a,xscale:s,yoffset:i,yscale:n}=e,l=[],c={type:"CIMPolygonSymbol",symbolLayers:l};if(r){const e=ke(r);e&&l.push(e)}let f=e.url;"esriPFS"===e.type&&e.imageData&&(f=e.imageData);const m="angle"in e?e.angle??0:0,y=(o??0)*(s||1),u=(t??0)*(n||1);return l.push({type:"CIMPictureFill",invertBackfaceTexture:!1,scaleX:1,textureFilter:G.Picture,tintColor:null,url:f,height:u,width:y,offsetX:E(a),offsetY:E(i),rotation:E(-m),colorSubstitutions:null}),c}static fromSimpleFillSymbol(e){const{color:t,style:o,outline:a}=e,s=[],n={type:"CIMPolygonSymbol",symbolLayers:s};if(a){const e=ke(a);e&&s.push(e)}if(o&&"solid"!==o&&"none"!==o&&"esriSFSSolid"!==o&&"esriSFSNull"!==o){const e={type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",color:ue(t),capStyle:g.Butt,joinStyle:I.Miter,width:.75}]};let a=0;const n=i(Ce(o)?8:10);switch(o){case"vertical":case"esriSFSVertical":a=90;break;case"forward-diagonal":case"esriSFSForwardDiagonal":case"diagonal-cross":case"esriSFSDiagonalCross":a=-45;break;case"backward-diagonal":case"esriSFSBackwardDiagonal":a=45;break;case"cross":case"esriSFSCross":a=0}s.push({type:"CIMHatchFill",lineSymbol:e,offsetX:0,offsetY:0,rotation:a,separation:n}),"cross"===o||"esriSFSCross"===o?s.push({type:"CIMHatchFill",lineSymbol:r(e),offsetX:0,offsetY:0,rotation:90,separation:n}):"diagonal-cross"!==o&&"esriSFSDiagonalCross"!==o||s.push({type:"CIMHatchFill",lineSymbol:r(e),offsetX:0,offsetY:0,rotation:45,separation:n})}else!o||"solid"!==o&&"esriSFSSolid"!==o||s.push({type:"CIMSolidFill",enable:!0,color:ue(t)});return n}static fromSimpleLineSymbol(e){const{cap:t,color:r,join:o,marker:a,miterLimit:s,style:i,width:n}=e;let l=null;"solid"!==i&&"none"!==i&&"esriSLSSolid"!==i&&"esriSLSNull"!==i&&(l=[{type:"CIMGeometricEffectDashes",dashTemplate:de(i,t),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]);const c=[];if(a){let e;switch(a.placement){case"begin-end":e=T.Both;break;case"begin":e=T.JustBegin;break;case"end":e=T.JustEnd;break;default:e=T.None}const t=ne.fromSimpleMarker(a,n,r).symbolLayers[0];t.markerPlacement={type:"CIMMarkerPlacementAtExtremities",angleToLine:!0,offset:0,extremityPlacement:e,offsetAlongLine:0},c.push(t)}return c.push({type:"CIMSolidStroke",color:"none"!==i&&"esriSLSNull"!==i?ue(r):[0,0,0,0],capStyle:ce(t),joinStyle:fe(o),miterLimit:s,width:n,effects:l}),{type:"CIMLineSymbol",symbolLayers:c}}static fromPictureMarker(e){const{angle:t,height:r,width:o,xoffset:a,yoffset:s}=e;let i=e.url;return"esriPMS"===e.type&&e.imageData&&(i=e.imageData),{type:"CIMPointSymbol",symbolLayers:[{type:"CIMPictureMarker",invertBackfaceTexture:!1,scaleX:1,textureFilter:G.Picture,tintColor:null,url:i,size:r,width:o,offsetX:E(a),offsetY:E(s),rotation:E(-t)}]}}static fromSimpleMarker(e,t,r){const{style:o}=e,a=e.color??r;if("path"===o){const t=[];if("outline"in e&&e.outline){const r=e.outline;t.push({type:"CIMSolidStroke",enable:!0,width:s(Math.round(i(r.width))),color:ue(r.color),path:e.path})}t.push({type:"CIMSolidFill",enable:!0,color:ue(a),path:e.path});const[r,o]=be("square");return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:E(-e.angle),size:E(e.size||6),offsetX:E(e.xoffset),offsetY:E(e.yoffset),frame:r,markerGraphics:[{type:"CIMMarkerGraphic",geometry:o,symbol:{type:"CIMPolygonSymbol",symbolLayers:t}}]}]}}const n=[];let l,c;if("outline"in e&&e.outline&&"none"!==e.outline.style&&"esriSLSNull"!==e.outline.style){const t=e.outline,r="solid"!==t.style&&"esriSLSSolid"!==t.style;[l,c]=r?be(o,e.size):be(o);const a="cross"!==e.style&&"x"!==e.style||"dot"===e?.outline.style||"short-dot"===e?.outline.style?z.HalfGap:z.FullPattern,f=r?[{type:"CIMGeometricEffectAddControlPoints"},{type:"CIMGeometricEffectDashes",dashTemplate:de(t.style,null).map((e=>t.width&&t.width>0?e*t.width:e)),lineDashEnding:a,controlPointEnding:z.FullPattern}]:void 0;n.push({type:"CIMSolidStroke",capStyle:r?g.Round:g.Butt,enable:!0,width:null!=t.width&&t.width>.667?s(Math.round(i(t.width))):t.width,color:ue(t.color),effects:f})}else!t||"line-marker"!==e.type||"cross"!==e.style&&"x"!==e.style?[l,c]=be(o):([l,c]=be(o),n.push({type:"CIMSolidStroke",enable:!0,width:t,color:ue(a)}));n.push({type:"CIMSolidFill",enable:!0,color:ue(a)});const f={type:"CIMPolygonSymbol",symbolLayers:n};return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:E(-e.angle),size:E(e.size||6*t),offsetX:E(e.xoffset),offsetY:E(e.yoffset),frame:l,markerGraphics:[{type:"CIMMarkerGraphic",geometry:c,symbol:f}]}]}}static fromCIMHatchFill(e,t){const o=t*(e.separation??b),a=o/2,s=r(e.lineSymbol);s.symbolLayers?.forEach((e=>{switch(e.type){case"CIMSolidStroke":null!=e.width&&(e.width*=t),e.effects?.forEach((e=>{"CIMGeometricEffectDashes"===e.type&&(e.dashTemplate=e.dashTemplate.map((e=>e*t)))}));break;case"CIMVectorMarker":{null!=e.size&&(e.size*=t);const r=e.markerPlacement;null!=r&&"placementTemplate"in r&&(r.placementTemplate=r.placementTemplate.map((e=>e*t)));break}}}));let i=this._getLineSymbolPeriod(s)||Z;for(;i<Z;)i*=2;const n=i/2;return{type:"CIMVectorMarker",frame:{xmin:-n,xmax:n,ymin:-a,ymax:a},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{paths:[[[-n,0],[n,0]]]},symbol:s}],size:o}}static fetchResources(e,t,r){if(e&&t)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const o=e.symbolLayers;if(!o)return;for(const e of o)switch(Ie(e,t,r),e.type){case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":case"CIMPictureStroke":case"CIMGradientStroke":case"CIMCharacterMarker":case"CIMPictureMarker":"url"in e&&e.url&&r.push(t.fetchResource(e.url,null));break;case"CIMVectorMarker":{const o=e.markerGraphics;if(!o)continue;for(const e of o)if(e){const o=e.symbol;o&&ne.fetchResources(o,t,r)}}}break}}}static fetchFonts(e,t,r){if(e&&t)if("symbolLayers"in e&&e.symbolLayers){for(const o of e.symbolLayers)if("CIMVectorMarker"===o.type&&o.markerGraphics)for(const e of o.markerGraphics)e?.symbol&&ne.fetchFonts(e.symbol,t,r)}else if("CIMTextSymbol"===e.type){const{fontFamilyName:o,fontStyleName:a}=e;if(!o||"calcitewebcoreicons"===o.toLowerCase())return;const{style:s,weight:i}=O(a),n=A(e),l=new m({family:o,style:s,weight:i,decoration:n});r.push(t.loadFont(l).catch((()=>{ee.error(`Unsupported font ${o} in CIM symbol`)})))}}static _getLineSymbolPeriod(e){if(e){const t=this._getEffectsRepeat(e.effects);if(t)return t;if(e.symbolLayers)for(const r of e.symbolLayers)if(r){const e=this._getEffectsRepeat(r.effects);if(e)return e;switch(r.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const e=this._getPlacementRepeat(r.markerPlacement);if(e)return e}}}}return 0}static _getEffectsRepeat(e){if(e)for(const t of e)if(t)switch(t.type){case"CIMGeometricEffectDashes":{const e=t.dashTemplate;if(e&&e.length){let t=0;for(const r of e)t+=r;return 1&e.length&&(t*=2),t}break}case"CIMGeometricEffectWave":return t.period;default:ee.error(`unsupported geometric effect type ${t.type}`)}return 0}static _getPlacementRepeat(e){if(e)switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAlongLineVariableSize":{const t=e.placementTemplate;if(t&&t.length){let e=0;for(const r of t)e+=+r;return 1&t.length&&(e*=2),e}break}}return 0}static fromCIMInsidePolygon(e){const t=e.markerPlacement,r={...e};r.markerPlacement=null,r.anchorPoint=null;const o=Math.abs(t.stepX),s=Math.abs(t.stepY),n=(t.randomness??100)/100;let l,c,f,m;if("Random"===t.gridType){const e=i(U),r=Math.max(Math.floor(e/o),1),y=Math.max(Math.floor(e/s),1);l=r*o/2,c=y*s/2,f=2*c;const u=new a(t.seed),h=n*o/1.5,p=n*s/1.5;m=[];for(let t=0;t<r;t++)for(let e=0;e<y;e++){const r=t*o-l+h*(.5-u.getFloat()),a=e*s-c+p*(.5-u.getFloat());m.push({x:r,y:a}),0===t&&m.push({x:r+2*l,y:a}),0===e&&m.push({x:r,y:a+2*c})}}else!0===t.shiftOddRows?(l=o/2,c=s,f=2*s,m=[{x:-l,y:0},{x:l,y:0},{x:0,y:c},{x:0,y:-c}]):(l=o/2,c=s/2,f=s,m=[{x:-o,y:0},{x:0,y:-s},{x:-o,y:-s},{x:0,y:0},{x:o,y:0},{x:0,y:s},{x:o,y:s},{x:-o,y:s},{x:o,y:-s}]);return{type:"CIMVectorMarker",frame:{xmin:-l,xmax:l,ymin:-c,ymax:c},markerGraphics:m.map((e=>({type:"CIMMarkerGraphic",geometry:e,symbol:{type:"CIMPointSymbol",symbolLayers:[r]}}))),size:f}}static getSize(e){if(e)switch(e.type){case"CIMTextSymbol":return e.height;case"CIMPointSymbol":{let t=0;if(e.symbolLayers)for(const r of e.symbolLayers)if(r)switch(r.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const e=r.size;null!=e&&e>t&&(t=e);break}}return t}case"CIMLineSymbol":case"CIMPolygonSymbol":{let t=0;if(e.symbolLayers)for(const r of e.symbolLayers)if(r)switch(r.type){case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const e=r.width;null!=e&&e>t&&(t=e);break}case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":if(r.markerPlacement&&N(r.markerPlacement)){const e=r.size;null!=e&&e>t&&(t=e)}}return t}}}static getMarkerScaleRatio(e){if(e&&"CIMVectorMarker"===e.type)if(!1!==e.scaleSymbolsProportionally&&e.frame&&null!=e.size){const t=e.frame.ymax-e.frame.ymin;return e.size/t}return 1}}class le{static findApplicableOverrides(e,t,r){if(e&&t){if(e.primitiveName){let o=!1;for(const t of r)if(t.primitiveName===e.primitiveName){o=!0;break}if(!o)for(const a of t)a.primitiveName===e.primitiveName&&r.push(a)}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const o of e.effects)le.findApplicableOverrides(o,t,r);if(e.symbolLayers)for(const o of e.symbolLayers)le.findApplicableOverrides(o,t,r);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":case"CIMVectorMarker":case"CIMCharacterMarker":case"CIMPictureMarker":if(e.effects)for(const o of e.effects)le.findApplicableOverrides(o,t,r);if(e.markerPlacement&&le.findApplicableOverrides(e.markerPlacement,t,r),"CIMVectorMarker"===e.type){if(e.markerGraphics)for(const o of e.markerGraphics)le.findApplicableOverrides(o,t,r),le.findApplicableOverrides(o.symbol,t,r)}else"CIMCharacterMarker"===e.type?le.findApplicableOverrides(e.symbol,t,r):"CIMHatchFill"===e.type?le.findApplicableOverrides(e.lineSymbol,t,r):"CIMPictureMarker"===e.type&&le.findApplicableOverrides(e.animatedSymbolProperties,t,r)}}}static findEffectOverrides(e,t,r){if(!t||!e)return;const o=e.length;for(let a=0;a<o;a++){const o=e[a],s=o?.primitiveName;if(s){let e=!1;for(const t of r)if(t.primitiveName===s){e=!0;break}if(!e)for(const o of t)o.primitiveName===s&&r.push(o)}}}static async resolveSymbolOverrides(e,t,o,a,s,i,n){if(!e?.symbol)return null;let{symbol:l,primitiveOverrides:c}=e;const f=!!c;if(!f&&!a)return l;l=r(l);let m=!0;if(t||(t={attributes:{}},m=!1),f){if(m||(c=c.filter((e=>!e.valueExpressionInfo?.expression.includes("$feature")))),n||(c=c.filter((e=>!e.valueExpressionInfo?.expression.includes("$view")))),c.length>0){const e=R(t.attributes);await le.evaluateOverrides(c,t,{spatialReference:o,fields:e,geometryType:s},i,n)}le.applyOverrides(l,c)}return a&&le.applyDictionaryTextOverrides(l,t,a),l}static async evaluateOverrides(e,t,r,o,a){if(!t)return;let s;for(const i of e){const e=i.valueExpressionInfo;if(e&&r?.geometryType){s||(s=[]),i.value=void 0;const n=f(e.expression,r.spatialReference,r.fields).then((e=>{i.value=H(e,t,{$view:a},r.geometryType,o)}));s.push(n)}}void 0!==s&&s.length>0&&await Promise.all(s)}static applyDictionaryTextOverrides(e,t,r,o="Normal"){if(e?.type)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":case"CIMTextSymbol":{const a=e.symbolLayers;if(!a)return;for(const s of a)s&&"CIMVectorMarker"===s.type&&le.applyDictionaryTextOverrides(s,t,r,"CIMTextSymbol"===e.type?e.textCase:o)}break;case"CIMVectorMarker":{const o=e.markerGraphics;if(!o)return;for(const e of o)e&&le.applyDictionaryTextOverrides(e,t,r)}break;case"CIMMarkerGraphic":{const a=e.textString;if(a&&a.includes("[")){const s=j(a,r);e.textString=V(t,s,o)}}}}static applyOverrides(e,t,r,o){if(e.primitiveName)for(const a of t)if(a.primitiveName===e.primitiveName){const t=ge(a.propertyName);if(o&&o.push({cim:e,nocapPropertyName:t,value:e[t]}),a.expression&&(a.value=le.toValue(a.propertyName,a.expression)),r){let t=!1;for(const o of r)o.primitiveName===e.primitiveName&&(t=!0);t||r.push(a)}null!=a.value&&(e[t]=a.value)}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const a of e.effects)le.applyOverrides(a,t,r,o);if(e.symbolLayers)for(const a of e.symbolLayers)le.applyOverrides(a,t,r,o);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMSolidFill":case"CIMVectorMarker":if(e.effects)for(const a of e.effects)le.applyOverrides(a,t,r,o);if("CIMVectorMarker"===e.type&&e.markerGraphics)for(const a of e.markerGraphics)le.applyOverrides(a,t,r,o),le.applyOverrides(a.symbol,t,r,o)}}static restoreOverrides(e){for(const t of e)t.cim[t.nocapPropertyName]=t.value}static buildOverrideKey(e){let t="";for(const r of e)void 0!==r.value&&(t+=`${r.primitiveName}${r.propertyName}${JSON.stringify(r.value)}`);return t}static toValue(t,r){if("DashTemplate"===t)return r.split(" ").map((e=>Number(e)));if("Color"===t){const t=new e(r).toRgba();return t[3]*=255,t}return r}}const ce=e=>{if(!e)return g.Butt;switch(e){case"butt":return g.Butt;case"square":return g.Square;case"round":return g.Round}},fe=e=>{if(!e)return I.Miter;switch(e){case"miter":return I.Miter;case"round":return I.Round;case"bevel":return I.Bevel}},me=e=>{if(null==e)return"Center";switch(e){case"left":return"Left";case"right":return"Right";case"center":return"Center"}},ye=e=>{if(null==e)return"Center";switch(e){case"baseline":return"Baseline";case"top":return"Top";case"middle":return"Center";case"bottom":return"Bottom"}},ue=e=>{if(!e)return[0,0,0,0];const{r:t,g:r,b:o,a}=e;return[t,r,o,255*a]},he=(e,t)=>{const r=pe(t),o=Me(e);return r&&o?`${r}-${o}`:`${r}${o}`},pe=e=>{if(!e)return"";switch(e.toLowerCase()){case"bold":case"bolder":return"bold"}return""},Me=e=>{if(!e)return"";switch(e.toLowerCase()){case"italic":case"oblique":return"italic"}return""},de=(e,t)=>{const r=has("safari")?.001:0,o="butt"===t;switch(e){case"dash":case"esriSLSDash":return o?[4,3]:[3,4];case"dash-dot":case"esriSLSDashDot":return o?[4,3,1,3]:[3,4,r,4];case"dot":case"esriSLSDot":return o?[1,3]:[r,4];case"long-dash":case"esriSLSLongDash":return o?[8,3]:[7,4];case"long-dash-dot":case"esriSLSLongDashDot":return o?[8,3,1,3]:[7,4,r,4];case"long-dash-dot-dot":case"esriSLSDashDotDot":return o?[8,3,1,3,1,3]:[7,4,r,4,r,4];case"short-dash":case"esriSLSShortDash":return o?[4,1]:[3,2];case"short-dash-dot":case"esriSLSShortDashDot":return o?[4,1,1,1]:[3,2,r,2];case"short-dash-dot-dot":case"esriSLSShortDashDotDot":return o?[4,1,1,1,1,1]:[3,2,r,2,r,2];case"short-dot":case"esriSLSShortDot":return o?[1,1]:[r,2];case"solid":case"esriSLSSolid":case"none":return ee.error("Unexpected: style does not require rasterization"),[0,0];default:return ee.error(`Tried to rasterize SLS, but found an unexpected style: ${e}!`),[0,0]}};function Se(e){return void 0!==e.symbolLayers}const be=(e,t=100)=>{const r=t/2;let o,a;const s=e;if("circle"===s||"esriSMSCircle"===s){const e=.25;let t=Math.acos(1-e/r),s=Math.ceil(W/t/4);0===s&&(s=1),t=J/s,s*=4;const i=[];i.push([r,0]);for(let o=1;o<s;o++)i.push([r*Math.cos(o*t),-r*Math.sin(o*t)]);i.push([r,0]),o={rings:[i]},a={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("cross"===s||"esriSMSCross"===s){const e=0;o={paths:[[[e,r],[e,-r]],[[r,e],[-r,e]]]},a={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("diamond"===s||"esriSMSDiamond"===s)o={rings:[[[-r,0],[0,r],[r,0],[0,-r],[-r,0]]]},a={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("square"===s||"esriSMSSquare"===s)o={rings:[[[-r,-r],[-r,r],[r,r],[r,-r],[-r,-r]]]},a={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("x"===s||"esriSMSX"===s)o={paths:[[[r,r],[-r,-r]],[[r,-r],[-r,r]]]},a={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("triangle"===s||"esriSMSTriangle"===s){const e=t*.5773502691896257,r=-e,s=2/3*t,i=s-t;o={rings:[[[r,i],[0,s],[e,i],[r,i]]]},a={xmin:r,ymin:i,xmax:e,ymax:s}}else"arrow"===s&&(o={rings:[[[-50,50],[50,0],[-50,-50],[-33,-20],[-33,20],[-50,50]]]},a={xmin:-r,ymin:-r,xmax:r,ymax:r});return[a,o]},Ce=e=>"vertical"===e||"horizontal"===e||"cross"===e||"esriSFSCross"===e||"esriSFSVertical"===e||"esriSFSHorizontal"===e,ge=e=>e?e.charAt(0).toLowerCase()+e.substr(1):e;function Ie(e,t,r){if(!e.effects||null!=t.geometryEngine)return;if(t.geometryEnginePromise)return void r.push(t.geometryEnginePromise);B(e.effects)&&(t.geometryEnginePromise=X(),r.push(t.geometryEnginePromise),t.geometryEnginePromise.then((e=>t.geometryEngine=e)))}function ke(e){if(!e)return null;let t=null;const{cap:r,color:o,join:a,miterLimit:s,style:i,width:n}=e;return"solid"!==i&&"none"!==i&&"esriSLSSolid"!==i&&"esriSLSNull"!==i&&(t=[{type:"CIMGeometricEffectDashes",dashTemplate:de(i,r),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]),{type:"CIMSolidStroke",color:"esriSLSNull"!==i&&"none"!==i?ue(o):[0,0,0,0],capStyle:ce(r),joinStyle:fe(a),miterLimit:s,width:n,effects:t}}export{ne as CIMSymbolHelper,ie as CIMSymbolInflatedSizeHelper,le as OverrideHelper,se as getEffectsInflateSize,de as slsDashToTemplateArray,te as symbolToCIM};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{GeometryCursor as t}from"../../../geometry/GeometryCursor.js";import{collectPath as e}from"../../../geometry/geometryCursorCollectUtils.js";import{PathEffectCursor as s}from"../CIMCursor.js";import{LineDashEnding as i}from"../enums.js";import{GeometryWalker as r,DashPattern as a}from"../GeometryWalker.js";class n{static local(){return null===n.instance&&(n.instance=new n),n.instance}execute(t,e,s,i,r){return new h(t,e,s)}}n.instance=null;class h extends s{constructor(t,e,s){super(t,!0,!0),this._firstCurve=null,this._walker=new r,this._walker.updateTolerance(s),this._endings=e.lineDashEnding,this._customDashPos=-(e.offsetAlongLine??0)*s,this._offsetAtEnd=(e.customEndingOffset??0)*s,this._pattern=new a,this._pattern.init(e.dashTemplate,!0),this._pattern.scale(s)}processPath(s){if(0===this._pattern.length()){this.iteratePath=!1;const i=e(s);return t.fromJSONCIM({paths:[i]})}if(!this.iteratePath){let r=!0;switch(this._endings){case i.HalfPattern:case i.HalfGap:default:this._pattern.extPtGap=0;break;case i.FullPattern:this.isClosed||(this._pattern.extPtGap=.5*this._pattern.firstValue());break;case i.FullGap:this.isClosed||(this._pattern.extPtGap=.5*this._pattern.lastValue());break;case i.NoConstraint:this.isClosed||(r=!1);break;case i.Custom:this.isClosed||(this._pattern.extPtGap=.5*this._offsetAtEnd)}const a=s.pathLength();if(this._pattern.isEmpty()||a<.1*this._pattern.length()){const i=e(s);return t.fromJSONCIM({paths:[i]})}if(!this._walker.init(s,this._pattern,r)){const i=e(s);return t.fromJSONCIM({paths:[i]})}}let r;if(this.iteratePath)r=this._pattern.nextValue();else{let t;switch(this._endings){case i.HalfPattern:default:t=.5*this._pattern.firstValue();break;case i.HalfGap:t=.5*-this._pattern.lastValue();break;case i.FullGap:t=-this._pattern.lastValue();break;case i.FullPattern:t=0;break;case i.NoConstraint:case i.Custom:t=-this._customDashPos}let e=t/this._pattern.length();e-=Math.floor(e),t=e*this._pattern.length(),this._pattern.reset(),r=this._pattern.nextValue();let s=!1;for(;t>=r;)t-=r,r=this._pattern.nextValue(),s=!s;r-=t,s?(this._walker.nextPosition(r),r=this._pattern.nextValue()):this.isClosed&&(this._firstCurve=this._walker.nextCurve(r),r=this._pattern.nextValue(),this._walker.nextPosition(r),r=this._pattern.nextValue())}let a=this._walker.nextCurve(r);if(a)if(this._walker.isPathEnd()){if(this.iteratePath=!1,this._firstCurve){for(this._firstCurve.nextPath();this._firstCurve.nextPoint();)a.pushXY(this._firstCurve.x,this._firstCurve.y);this._firstCurve=null}}else r=this._pattern.nextValue(),!this._walker.nextPosition(r)||this._walker.isPathEnd()?(this.iteratePath=!1,this._firstCurve&&(a
|
|
5
|
+
import{GeometryCursor as t}from"../../../geometry/GeometryCursor.js";import{collectPath as e}from"../../../geometry/geometryCursorCollectUtils.js";import{PathEffectCursor as s}from"../CIMCursor.js";import{LineDashEnding as i}from"../enums.js";import{GeometryWalker as r,DashPattern as a}from"../GeometryWalker.js";class n{static local(){return null===n.instance&&(n.instance=new n),n.instance}execute(t,e,s,i,r){return new h(t,e,s)}}n.instance=null;class h extends s{constructor(t,e,s){super(t,!0,!0),this._firstCurve=null,this._walker=new r,this._walker.updateTolerance(s),this._endings=e.lineDashEnding,this._customDashPos=-(e.offsetAlongLine??0)*s,this._offsetAtEnd=(e.customEndingOffset??0)*s,this._pattern=new a,this._pattern.init(e.dashTemplate,!0),this._pattern.scale(s)}processPath(s){if(0===this._pattern.length()){this.iteratePath=!1;const i=e(s);return t.fromJSONCIM({paths:[i]})}if(!this.iteratePath){let r=!0;switch(this._endings){case i.HalfPattern:case i.HalfGap:default:this._pattern.extPtGap=0;break;case i.FullPattern:this.isClosed||(this._pattern.extPtGap=.5*this._pattern.firstValue());break;case i.FullGap:this.isClosed||(this._pattern.extPtGap=.5*this._pattern.lastValue());break;case i.NoConstraint:this.isClosed||(r=!1);break;case i.Custom:this.isClosed||(this._pattern.extPtGap=.5*this._offsetAtEnd)}const a=s.pathLength();if(this._pattern.isEmpty()||a<.1*this._pattern.length()){const i=e(s);return t.fromJSONCIM({paths:[i]})}if(!this._walker.init(s,this._pattern,r)){const i=e(s);return t.fromJSONCIM({paths:[i]})}}let r;if(this.iteratePath)r=this._pattern.nextValue();else{let t;switch(this._endings){case i.HalfPattern:default:t=.5*this._pattern.firstValue();break;case i.HalfGap:t=.5*-this._pattern.lastValue();break;case i.FullGap:t=-this._pattern.lastValue();break;case i.FullPattern:t=0;break;case i.NoConstraint:case i.Custom:t=-this._customDashPos}let e=t/this._pattern.length();e-=Math.floor(e),t=e*this._pattern.length(),this._pattern.reset(),r=this._pattern.nextValue();let s=!1;for(;t>=r;)t-=r,r=this._pattern.nextValue(),s=!s;r-=t,s?(this._walker.nextPosition(r),r=this._pattern.nextValue()):this.isClosed&&(this._firstCurve=this._walker.nextCurve(r),r=this._pattern.nextValue(),this._walker.nextPosition(r),r=this._pattern.nextValue())}let a=this._walker.nextCurve(r);if(a)if(this._walker.isPathEnd()){if(this.iteratePath=!1,this._firstCurve){for(this._firstCurve.nextPath();this._firstCurve.nextPoint();)a.pushXY(this._firstCurve.x,this._firstCurve.y);this._firstCurve=null}}else r=this._pattern.nextValue(),!this._walker.nextPosition(r)||this._walker.isPathEnd()?(this.iteratePath=!1,this._firstCurve&&(a.pushCursor(this._firstCurve),this._firstCurve=null)):this.iteratePath=!0;else this.iteratePath=!1,a=this._firstCurve,this._firstCurve=null;return a?.reset(),a}}export{n as EffectDashes};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{px2pt as e,pt2px as t}from"../../core/screenUtils.js";import{OverrideHelper as i,CIMSymbolHelper as l}from"../cim/CIMSymbolHelper.js";import{CIMSymbolRasterizer as n}from"../cim/CIMSymbolRasterizer.js";import{mapCIMSymbolToGeometryType as
|
|
5
|
+
import{px2pt as e,pt2px as t}from"../../core/screenUtils.js";import{OverrideHelper as i,CIMSymbolHelper as l}from"../cim/CIMSymbolHelper.js";import{CIMSymbolRasterizer as n}from"../cim/CIMSymbolRasterizer.js";import{mapCIMSymbolToGeometryType as a}from"../cim/utils.js";import{SymbolSizeDefaults as r}from"./previewUtils.js";import{renderSymbol as o}from"./renderUtils.js";const s=new n(null,!0),c=e(r.size),m=e(r.maxSize),u=e(r.lineWidth),f=1;async function h(e,t,i){const l=t?.size;let n=null!=l&&"object"==typeof l&&"width"in l?l.width:l,a=null!=l&&"object"==typeof l&&"height"in l?l.height:l;if(null==n||null==a)if("esriGeometryPolygon"===i)n=c,a=c;else{const l=await y(e,t,i);l&&(n=l.width,a=l.height),"esriGeometryPolyline"===i&&(n=u),n=null!=n&&isFinite(n)?Math.min(n,m):c,a=null!=a&&isFinite(a)?Math.max(Math.min(a,m),f):c}return"legend"===t.style&&"esriGeometryPolyline"===i&&(n=u),{width:n,height:a}}async function y(e,t,n){const{feature:a,fieldMap:r,viewParams:o}=t.cimOptions||t,c=await i.resolveSymbolOverrides(e.data,a,null,r,n,null,o);if(!c)return null;(e=e.clone()).data={type:"CIMSymbolReference",symbol:c},e.data.primitiveOverrides=void 0;const m=[];return l.fetchResources(c,s.resourceManager,m),l.fetchFonts(c,s.resourceManager,m),m.length>0&&await Promise.all(m),l.getEnvelope(c,null,s.resourceManager)}async function p(e,i={}){const{node:l,opacity:n,symbolConfig:r}=i,c=null!=r&&"object"==typeof r&&"isSquareFill"in r&&r.isSquareFill,m=i.cimOptions||i,u=m.geometryType||a(e?.data?.symbol),f=await h(e,i,u),{feature:y,fieldMap:p}=m,d=c||"esriGeometryPolygon"!==u?"preview":"legend",g=await s.rasterizeCIMSymbolAsync(e,y,f,d,p,u,null,m.viewParams,m.allowScalingUp);if(!g)return null;const{width:w,height:b}=g,M=document.createElement("canvas");M.width=w,M.height=b;M.getContext("2d").putImageData(g,0,0);const v=t(f.width),j=t(f.height),S=new Image(v,j);S.src=M.toDataURL(),S.ariaLabel=i.ariaLabel??null,S.alt=i.ariaLabel??"",null!=n&&(S.style.opacity=`${n}`);let C=S;if(null!=i.effectView){const e={shape:{type:"image",x:0,y:0,width:v,height:j,src:S.src},fill:null,stroke:null,offset:[0,0]};C=o([[e]],[v,j],{effectView:i.effectView,ariaLabel:i.ariaLabel})}return l&&C&&l.appendChild(C),C}export{p as previewCIMSymbol};
|
package/time/timeZoneUtils.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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{legacyTimeZoneMap as t}from"./legacyTimeZoneMap.js";import{DateTime as e,FixedOffsetZone as n}from"luxon";const o="system",r="unknown",i="UTC",s=Intl.DateTimeFormat().resolvedOptions().timeZone,a="shortOffset";function m(t){return"timeZoneIANA"in t}function u(t){return t.startsWith("UTC")}function c(t,e=!1){return{json:{read:{source:t,reader:(e,n)=>n[t]?f(n[t]):null},write:!!e&&{allowNull:!0,writer(e,n){n[t]=e?l(e):null}}}}}function f(t,e=o){return t?m(t)?t.timeZoneIANA:Z(t,e):e}function l(t){return{timeZoneIANA:t}}function Z(e,n=o){if(!e||!t.has(e.timeZone))return n;const r=t.get(e.timeZone);return u(e.timeZone)||e.respectsDaylightSaving?r:d(r)}function d(t){const o=e.local().setZone(t),r=Math.min(o.set({month:1,day:1}).offset,o.set({month:5}).offset);if(0===r)return"Etc/UTC";return`Etc/GMT${n.instance(-r).formatOffset(0,"narrow")}`}function g(t,e,n,o,s){if(e&&"date"===s)return{timeZone:i,timeZoneName:void 0};const m=o.timeStyle||o.hour,u=n===r;return{timeZone:u?"timestamp-offset"===s?void 0:t??i:n,timeZoneName:u&&m?a:void 0}}function h(t){const e=t===o?s:t,n=/^(?<area>[\w-]+)(?:\/(?<region>[\w-]+))?\/(?<location>[\w+-]+)$/;if(n.test(e)){const t=n.exec(e)?.groups,{area:o,region:r,location:i}=t;return{area:o,region:r,location:i,timeZone:e}}return{timeZone:e}}export{Z as convertLegacyTimeZone,f as fromTimeReference,h as getTimeZoneComponents,g as getTimeZoneFormattingOptions,a as shortTimeZoneName,o as system,s as systemTimeZone,c as timeZoneProperty,l as toTimeReference,r as unknown,i as utc};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import t from"../request.js";import{JSONSupportMixin as r}from"../core/JSONSupport.js";import i from"../core/Loadable.js";import{removeTrailingSlash as s,Url as n}from"../core/urlUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{reader as a}from"../core/accessorSupport/decorators/reader.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import{writer as
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../request.js";import{JSONSupportMixin as r}from"../core/JSONSupport.js";import i from"../core/Loadable.js";import{removeTrailingSlash as s,Url as n}from"../core/urlUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{reader as a}from"../core/accessorSupport/decorators/reader.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import{writer as l}from"../core/accessorSupport/decorators/writer.js";import{onApplyEditsEvent as u,emitUpdateMomentEvent as c}from"../layers/mixins/EditBusLayer.js";import{parseUrl as m}from"../rest/utils.js";import g from"./support/EditMomentStack.js";import{versionCollection as p,versionCollectionCount as f,defaultVersionNameLookup as h,currentSessionId as V}from"./support/versionManagementUtils.js";let v=class extends(r(i)){constructor(e){super(e),this.url=null,this.sourceJSON=null,this.name=null,this.defaultVersionIdentifier=null,this.capabilities=null,this._applyEditsHandler=e=>{const{serviceUrl:t,gdbVersion:r,result:i}=e;t===this._featureServiceUrl&&i.then((e=>{const t=e.historicMoment;t&&this._addMomentToVersionItem(r,t)}))}}initialize(){this.url=s(this.url),this._featureServiceUrl=this.url.replace(/\/VersionManagementServer/i,"/FeatureServer"),p.has(this.url)||p.set(this.url,new Map);const e=(f.get(this.url)??0)+1;f.set(this.url,e),this.when().then((()=>this.addHandles(u(this._applyEditsHandler))),(()=>{}))}destroy(){const e=(f.get(this.url)??1)-1;f.set(this.url,e),0===e&&p.delete(this.url),h.delete(this._featureServiceUrl)}read(e,t){this.sourceJSON=e,super.read(e,t)}readDefaultVersionIdentifier(e,t){return{name:t.defaultVersionName,guid:t.defaultVersionGuid}}writeDefaultVersionIdentifier(e,t){t.defaultVersionName=e.name,t.defaultVersionGuid=e.guid}load(e){return this.addResolvingPromise(this._fetchService(this.url,e)),Promise.resolve(this)}async createVersion(e){const[{createVersion:t},{default:r}]=await Promise.all([import("../rest/versionManagement/createVersion.js"),import("../rest/versionManagement/support/CreateVersionParameters.js")]),i=r.from(e);return t(this.url,i)}async deleteVersion(e){const[{deleteVersion:t},{default:r}]=await Promise.all([import("../rest/versionManagement/deleteVersion.js"),import("../rest/versionManagement/support/DeleteVersionParameters.js")]);let i;e.guid&&p.get(this.url)?.has(e.guid)&&(i=V??void 0);const s=new r({versionName:e.name,sessionId:i});return t(this.url,s)}async getVersionInfoExtended(e){const{getVersion:t}=await import("../rest/versionManagement/getVersion.js");return t(this.url,e.guid)}async getVersionInfos(e={}){const[{getVersionInfos:t},{default:r}]=await Promise.all([import("../rest/versionManagement/getVersionInfos.js"),import("../rest/versionManagement/support/GetVersionInfosParameters.js")]),i=r.from(e);return t(this.url,i)}async reconcile(e,t={}){const[{reconcile:r},{default:i}]=await Promise.all([import("../rest/versionManagement/gdbVersion/reconcile.js"),import("../rest/versionManagement/gdbVersion/support/ReconcileParameters.js")]),s=i.from(t);return s.sessionId=V,r(this.url,e.guid,s)}async post(e){const[{post:t},{default:r}]=await Promise.all([import("../rest/versionManagement/gdbVersion/post.js"),import("../rest/versionManagement/gdbVersion/support/PostParameters.js")]),i=r.from({sessionId:V});return t(this.url,e.guid,i)}async alterVersion(e,t){const[{alterVersion:r},{default:i}]=await Promise.all([import("../rest/versionManagement/gdbVersion/alterVersion.js"),import("../rest/versionManagement/gdbVersion/support/AlterVersionParameters.js")]),s=i.from(t);return r(this.url,e.guid,s)}async startReading(e){const{startReading:t}=await import("../rest/versionManagement/gdbVersion/startReading.js"),r=await t(this.url,e.guid,V);if(r){const t=await this.getVersionInfoExtended(e),r=new Date(t.modifiedDate),i={name:t.versionIdentifier.name,moment:r,lockType:"read"};this._addOrUpdateItem(e.guid,i),c(this._featureServiceUrl,null,e.name,r)}return r}async stopReading(e){const{stopReading:t}=await import("../rest/versionManagement/gdbVersion/stopReading.js"),r=await t(this.url,e.guid,V);return r&&(p.get(this.url)?.delete(e.guid),c(this._featureServiceUrl,null,e.name,null)),r}async startEditing(e){const{startEditing:t}=await import("../rest/versionManagement/gdbVersion/startEditing.js"),r=await t(this.url,e.guid,V);if(r){const t=await this.getVersionInfoExtended(e),r=new Date(t.modifiedDate),i=new g(r),s={name:e.name,moment:r,lockType:"edit",stack:i};this._addOrUpdateItem(e.guid,s),c(this._featureServiceUrl,null,e.name,r)}return r}async stopEditing(e,t){if(t){const t=p.get(this.url)?.get(e.guid);if(t?.stack?.canRedo()){const[{deleteForwardEdits:r},{default:i}]=await Promise.all([import("../rest/versionManagement/gdbVersion/deleteForwardEdits.js"),import("../rest/versionManagement/gdbVersion/support/DeleteForwardEditsParameters.js")]);if(!await r(this.url,e.guid,new i({sessionId:V,moment:t.moment})))return!1}}const{stopEditing:r}=await import("../rest/versionManagement/gdbVersion/stopEditing.js"),i=await r(this.url,e.guid,V,t);if(i){const t=await this.getVersionInfoExtended(e),r=new Date(t.modifiedDate);this._addOrUpdateItem(e.guid,{name:e.name,moment:r,lockType:"read",editMomentStack:void 0}),c(this._featureServiceUrl,null,e.name,r)}return i}getLockType(e){const t=p.get(this.url)?.get(e.guid)?.lockType;return t??"none"}changeVersionInternal(e,t,r){let i=null,s=null,n=null,o=null;const a=e=>!e||e===this.defaultVersionIdentifier.name,d=e=>{const t=p?.get(this.url)?.get(e.guid);n=e.name,o=t?.moment??null},l=(e,t)=>!e&&!t||!(!e||!t)&&e.toISOString()===t.toISOString();if("name"in t){if("none"!==this.getLockType(t))return!1;i=t.name,s=null,"name"in r?d(r):(n=this.defaultVersionIdentifier.name,o=r)}else i=this.defaultVersionIdentifier.name,s=t,"name"in r?d(r):(n=this.defaultVersionIdentifier.name,o=r);return(a(i)&&a(e.gdbVersion)&&l(e.historicMoment,s)||i===e.gdbVersion&&l(e.historicMoment,s))&&(e.gdbVersion=n,e.historicMoment=o),!0}changeVersion(e,t,r){if("networkServiceUrl"in e){if(this._featureServiceUrl.toLowerCase()===e.featureServiceUrl.toLowerCase())return this.changeVersionInternal(e,t,r)}else{let i;"layers"in e?(i=e.allTables.concat(e.allLayers),e.utilityNetworks&&e.utilityNetworks.forEach((e=>{this._featureServiceUrl.toLowerCase()===e.featureServiceUrl.toLowerCase()&&this.changeVersionInternal(e,t,r)}))):i=e;for(const e of i)if("feature"===e.type){const i=/^(.*\/FeatureServer)\/\d+$/,s=e.url.replace(i,"$1");if(this._featureServiceUrl.toLowerCase()===s.toLowerCase()&&!this.changeVersionInternal(e,t,r))return!1}}return!0}async getVersionIdentifierFromName(e){try{const t=await this.getVersionInfos({includeHidden:!0});return t.find((t=>t.versionIdentifier.name===e))?.versionIdentifier||null}catch{return null}}async getVersionIdentifierFromGuid(e){const{getVersion:t}=await import("../rest/versionManagement/getVersion.js");try{return(await t(this.url,e)).versionIdentifier}catch{return null}}canUndo(e){const t=p.get(this.url)?.get(e.guid);return!!t?.stack?.canUndo()}canRedo(e){const t=p.get(this.url)?.get(e.guid);return!!t?.stack?.canRedo()}undo(e){const t=p.get(this.url)?.get(e.guid),r=t?.stack?.undo()||void 0;if(t&&r){const r=t.stack.peek();c(this._featureServiceUrl,null,e.name,r),p.get(this.url)?.set(e.guid,{...t,moment:r})}}redo(e){const t=p.get(this.url)?.get(e.guid),r=t?.stack?.redo()||void 0;t&&r&&(c(this._featureServiceUrl,null,e.name,r),p.get(this.url)?.set(e.guid,{...t,moment:r}))}_addMomentToVersionItem(e,t){const r=p.get(this.url);if(r)for(const[i,s]of r){s.name===e&&this._addToStack(i,t)}}_canAddToStack(e,t){if(e){return e.getTime()<t.getTime()}return!0}_addToStack(e,t){const r=p.get(this.url),i=r?.get(e);return!!i?.stack&&(this._canAddToStack(i.stack.peek(),t)&&i.stack.push(t),r.set(e,{...i,moment:t}),!0)}_addOrUpdateItem(e,t){const r=p.get(this.url),i=r?.get(e);return i?(r.set(e,{...i,...t}),!0):!(!t.name||!t.lockType)&&(r?.set(e,{...t,lockType:t.lockType}),!0)}async _fetchService(e,r){if(this.sourceJSON){this.read(this.sourceJSON,{origin:"service",url:m(e)});const t=new n(this.url).host;return void h.set(t,this.defaultVersionIdentifier.name)}const i=await t(e,{responseType:"json",query:{f:"json"},...r});this.read(i.data)}};e([o()],v.prototype,"url",void 0),e([o()],v.prototype,"sourceJSON",void 0),e([o({type:String,json:{write:!0}})],v.prototype,"name",void 0),e([o({json:{write:{target:{defaultVersionName:{type:String},defaultVersionGuid:{type:String}}},read:{source:["defaultVersionName","defaultVersionGuid"]}}})],v.prototype,"defaultVersionIdentifier",void 0),e([a("defaultVersionIdentifier",["defaultVersionName","defaultVersionGuid"])],v.prototype,"readDefaultVersionIdentifier",null),e([l("defaultVersionIdentifier",{defaultVersionName:{type:String},defaultVersionGuid:{type:String}})],v.prototype,"writeDefaultVersionIdentifier",null),e([o({json:{write:!0}})],v.prototype,"capabilities",void 0),v=e([d("esri.versionManagement.VersionManagementService")],v);const y=v;export{y 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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{disposeMaybe as t}from"../../../../core/maybe.js";import{estimateSize as e}from"../../../../core/typedArrayUtil.js";import{BucketType as r}from"./enums.js";import{deserializeSymbols as n}from"./decluttering/util.js";import{BufferObject as s}from"../../../webgl/BufferObject.js";import{Usage as i}from"../../../webgl/enums.js";import{VertexArrayObject as a}from"../../../webgl/VertexArrayObject.js";class o{constructor(t,e){this.layerUIDs=[],this.isDestroyed=!1,this._data=t;let r=1;const n=new Uint32Array(t);this.layerUIDs=[];const s=n[r++];for(let i=0;i<s;i++)this.layerUIDs[i]=n[r++];this.bufferDataOffset=r,e&&(this.layer=e.getStyleLayerByUID(this.layerUIDs[0]))}get isPreparedForRendering(){return null==this._data}get offset(){return this.bufferDataOffset}get data(){return this._data}destroy(){this.isDestroyed||(this.doDestroy(),this._data=null,this.isDestroyed=!0)}prepareForRendering(t){null!=this._data&&(this.doPrepareForRendering(t,this._data,this.bufferDataOffset),this._data=null)}}class h extends o{constructor(t,e){super(t,e),this.type=r.LINE,this.lineIndexStart=0,this.lineIndexCount=0;const n=new Uint32Array(t);let s=this.bufferDataOffset;this.lineIndexStart=n[s++],this.lineIndexCount=n[s++];const i=n[s++];if(i>0){this.patternMap=new Map;for(let t=0;t<i;t++){const t=n[s++],e=n[s++],r=n[s++];this.patternMap.set(t,[e,r])}}this.bufferDataOffset=s}get memoryUsed(){return(this.data?.byteLength??0)+(this.vao?.
|
|
5
|
+
import{disposeMaybe as t}from"../../../../core/maybe.js";import{estimateSize as e}from"../../../../core/typedArrayUtil.js";import{BucketType as r}from"./enums.js";import{deserializeSymbols as n}from"./decluttering/util.js";import{BufferObject as s}from"../../../webgl/BufferObject.js";import{Usage as i}from"../../../webgl/enums.js";import{VertexArrayObject as a}from"../../../webgl/VertexArrayObject.js";class o{constructor(t,e){this.layerUIDs=[],this.isDestroyed=!1,this._data=t;let r=1;const n=new Uint32Array(t);this.layerUIDs=[];const s=n[r++];for(let i=0;i<s;i++)this.layerUIDs[i]=n[r++];this.bufferDataOffset=r,e&&(this.layer=e.getStyleLayerByUID(this.layerUIDs[0]))}get isPreparedForRendering(){return null==this._data}get offset(){return this.bufferDataOffset}get data(){return this._data}destroy(){this.isDestroyed||(this.doDestroy(),this._data=null,this.isDestroyed=!0)}prepareForRendering(t){null!=this._data&&(this.doPrepareForRendering(t,this._data,this.bufferDataOffset),this._data=null)}}class h extends o{constructor(t,e){super(t,e),this.type=r.LINE,this.lineIndexStart=0,this.lineIndexCount=0;const n=new Uint32Array(t);let s=this.bufferDataOffset;this.lineIndexStart=n[s++],this.lineIndexCount=n[s++];const i=n[s++];if(i>0){this.patternMap=new Map;for(let t=0;t<i;t++){const t=n[s++],e=n[s++],r=n[s++];this.patternMap.set(t,[e,r])}}this.bufferDataOffset=s}get memoryUsed(){return(this.data?.byteLength??0)+(this.vao?.usedMemory??0)}hasData(){return this.lineIndexCount>0}triangleCount(){return this.lineIndexCount/3}doDestroy(){this.vao=t(this.vao)}doPrepareForRendering(t,e,r){const n=new Uint32Array(e),o=new Int32Array(n.buffer),h=n[r++],f=s.createVertex(t,i.STATIC_DRAW,new Int32Array(o.buffer,4*r,h));r+=h;const c=n[r++],l=s.createIndex(t,i.STATIC_DRAW,new Uint32Array(n.buffer,4*r,c));r+=c;const u=this.layer.lineMaterial;this.vao=new a(t,u.getAttributeLocations(),u.getLayoutInfo(),{geometry:f},l)}}class f extends o{constructor(t,e){super(t,e),this.type=r.FILL,this.fillIndexStart=0,this.fillIndexCount=0,this.outlineIndexStart=0,this.outlineIndexCount=0;const n=new Uint32Array(t);let s=this.bufferDataOffset;this.fillIndexStart=n[s++],this.fillIndexCount=n[s++],this.outlineIndexStart=n[s++],this.outlineIndexCount=n[s++];const i=n[s++];if(i>0){this.patternMap=new Map;for(let t=0;t<i;t++){const t=n[s++],e=n[s++],r=n[s++];this.patternMap.set(t,[e,r])}}this.bufferDataOffset=s}get memoryUsed(){return(this.data?.byteLength??0)+(this.fillVAO?.usedMemory??0)+(this.outlineVAO?.usedMemory??0)}hasData(){return this.fillIndexCount>0||this.outlineIndexCount>0}triangleCount(){return(this.fillIndexCount+this.outlineIndexCount)/3}doDestroy(){this.fillVAO=t(this.fillVAO),this.outlineVAO=t(this.outlineVAO)}doPrepareForRendering(t,e,r){const n=new Uint32Array(e),o=new Int32Array(n.buffer),h=n[r++],f=s.createVertex(t,i.STATIC_DRAW,new Int32Array(o.buffer,4*r,h));r+=h;const c=n[r++],l=s.createIndex(t,i.STATIC_DRAW,new Uint32Array(n.buffer,4*r,c));r+=c;const u=n[r++],y=s.createVertex(t,i.STATIC_DRAW,new Int32Array(o.buffer,4*r,u));r+=u;const d=n[r++],A=s.createIndex(t,i.STATIC_DRAW,new Uint32Array(n.buffer,4*r,d));r+=d;const I=this.layer,g=I.fillMaterial,p=I.outlineMaterial;this.fillVAO=new a(t,g.getAttributeLocations(),g.getLayoutInfo(),{geometry:f},l),this.outlineVAO=new a(t,p.getAttributeLocations(),p.getLayoutInfo(),{geometry:y},A)}}class c extends o{constructor(t,e,s){super(t,e),this.type=r.SYMBOL,this.iconPerPageElementsMap=new Map,this.glyphPerPageElementsMap=new Map,this.symbolInstances=[],this.isIconSDF=!1,this.opacityChanged=!1,this.lastOpacityUpdate=0,this.symbols=[];const i=new Uint32Array(t),a=new Int32Array(t),o=new Float32Array(t);let h=this.bufferDataOffset;this.isIconSDF=!!i[h++];const f=i[h++];for(let r=0;r<f;r++){const t=i[h++],e=i[h++],r=i[h++];this.iconPerPageElementsMap.set(t,[e,r])}const c=i[h++];for(let r=0;r<c;r++){const t=i[h++],e=i[h++],r=i[h++];this.glyphPerPageElementsMap.set(t,[e,r])}const l=i[h++],u=i[h++];this.iconOpacity=new Int32Array(l),this.textOpacity=new Int32Array(u),h=n(i,a,o,h,this.symbols,s),this.bufferDataOffset=h}get memoryUsed(){return(this.data?.byteLength??0)+(this.iconVAO?.usedMemory??0)+(this.textVAO?.usedMemory??0)+e(this.iconOpacity)+e(this.textOpacity)}hasData(){return this.iconPerPageElementsMap.size>0||this.glyphPerPageElementsMap.size>0}triangleCount(){let t=0;for(const[e,r]of this.iconPerPageElementsMap)t+=r[1];for(const[e,r]of this.glyphPerPageElementsMap)t+=r[1];return t/3}doDestroy(){this.iconVAO=t(this.iconVAO),this.textVAO=t(this.textVAO)}updateOpacityInfo(){if(!this.opacityChanged)return;this.opacityChanged=!1;const t=this.iconOpacity,e=this.iconVAO.vertexBuffers.opacity;t.length>0&&t.byteLength===e.byteLength&&e.setSubData(t,0,0,t.length);const r=this.textOpacity,n=this.textVAO.vertexBuffers.opacity;r.length>0&&r.byteLength===n.byteLength&&n.setSubData(r,0,0,r.length)}doPrepareForRendering(t,e,r){const n=new Uint32Array(e),o=new Int32Array(n.buffer),h=n[r++],f=s.createVertex(t,i.STATIC_DRAW,new Int32Array(o.buffer,4*r,h));r+=h;const c=n[r++],l=s.createIndex(t,i.STATIC_DRAW,new Uint32Array(n.buffer,4*r,c));r+=c;const u=n[r++],y=s.createVertex(t,i.STATIC_DRAW,new Int32Array(o.buffer,4*r,u));r+=u;const d=n[r++],A=s.createIndex(t,i.STATIC_DRAW,new Uint32Array(n.buffer,4*r,d));r+=d;const I=s.createVertex(t,i.STATIC_DRAW,this.iconOpacity.buffer),g=s.createVertex(t,i.STATIC_DRAW,this.textOpacity.buffer),p=this.layer,x=p.iconMaterial,b=p.textMaterial;this.iconVAO=new a(t,x.getAttributeLocations(),x.getLayoutInfo(),{geometry:f,opacity:I},l),this.textVAO=new a(t,b.getAttributeLocations(),b.getLayoutInfo(),{geometry:y,opacity:g},A)}}class l extends o{constructor(t,e){super(t,e),this.type=r.CIRCLE,this.circleIndexStart=0,this.circleIndexCount=0;const n=new Uint32Array(t);let s=this.bufferDataOffset;this.circleIndexStart=n[s++],this.circleIndexCount=n[s++],this.bufferDataOffset=s}get memoryUsed(){return(this.data?.byteLength??0)+(this.vao?.usedMemory??0)}hasData(){return this.circleIndexCount>0}triangleCount(){return this.circleIndexCount/3}doDestroy(){this.vao=t(this.vao)}doPrepareForRendering(t,e,r){const n=new Uint32Array(e),o=new Int32Array(n.buffer),h=n[r++],f=s.createVertex(t,i.STATIC_DRAW,new Int32Array(o.buffer,4*r,h));r+=h;const c=n[r++],l=s.createIndex(t,i.STATIC_DRAW,new Uint32Array(n.buffer,4*r,c));r+=c;const u=this.layer.circleMaterial;this.vao=new a(t,u.getAttributeLocations(),u.getLayoutInfo(),{geometry:f},l)}}export{l as CircleRenderBucket,f as FillRenderBucket,h as LineRenderBucket,o as RenderBucketBase,c as SymbolRenderBucket};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{disposeMaybe as e}from"../../../../core/maybe.js";import{vtlBrushes as t}from"../vtlBrushes.js";import s from"./shaders/VTLMaterialManager.js";import{StyleLayerType as r,Visibility as a}from"./style/StyleDefinition.js";import{CompareFunction as n,BlendFactor as i}from"../../../webgl/enums.js";const o=1e-6;class l{constructor(e,t){this.spriteMosaic=e,this.glyphMosaic=t,this._brushCache=new Map,this._vtlMaterialManager=new s}dispose(){this._brushCache&&(this._brushCache.forEach((e=>e.dispose())),this._brushCache=null),this._vtlMaterialManager=e(this._vtlMaterialManager),this.spriteMosaic.dispose(),this.glyphMosaic.dispose()}get vectorTilesMaterialManager(){return this._vtlMaterialManager}drawSymbols(e,t,s){const n=s.layers;e.renderPass="translucent";for(let i=0;i<n.length;i++){const s=n[i];if(s.type!==r.SYMBOL)continue;const l=s.getLayoutProperty("visibility");if(l&&l.getValue()===a.NONE)continue;const c=e.displayLevel;void 0!==s.minzoom&&s.minzoom>c+o||void 0!==s.maxzoom&&s.maxzoom<=c-o||(e.styleLayerUID=s.uid,e.styleLayer=s,this._drawWithBrush(e,t,"vtlSymbol"))}}drawBackground(e,t,s){if(0===s.backgroundBucketIds.length)return;const{context:n,displayLevel:i}=e;n.setBlendingEnabled(!0),n.setDepthTestEnabled(!1),n.setStencilTestEnabled(!1),e.renderPass="background",s.backgroundBucketIds.forEach((n=>{const l=s.getLayerById(n);if(l.type!==r.BACKGROUND)return;const c=l.getLayoutProperty("visibility");c&&c.getValue()===a.NONE||void 0!==l.minzoom&&l.minzoom>i+o||void 0!==l.maxzoom&&l.maxzoom<=i-o||(e.styleLayerUID=l.uid,e.styleLayer=l,this._drawWithBrush(e,t,"vtlBackground"))}))}drawTile(e,t,s,r){const{context:a}=e,o=s.layers;a.setBlendingEnabled(!1),a.setDepthTestEnabled(!0),a.setDepthWriteEnabled(!0),a.setDepthFunction(n.LEQUAL),e.renderPass="opaque";for(let n=o.length-1;n>=0;n--){const s=o[n];null!=r&&r!==s.type||this._renderStyleLayer(s,e,t,!1)}a.setDepthWriteEnabled(!1),a.setBlendingEnabled(!0),a.setBlendFunctionSeparate(i.ONE,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),e.renderPass="translucent";for(let n=0;n<o.length;n++){const s=o[n];null!=r&&r!==s.type||this._renderStyleLayer(s,e,t,!1)}a.setDepthTestEnabled(!1),a.bindVAO()}_renderStyleLayer(e,t,s,n){if(!(n||e&&s.layerData.has(e.uid)))return;const i=e.getLayoutProperty("visibility");if(i&&i.getValue()===a.NONE)return;const{renderPass:l}=t;let c;switch(e.type){case r.BACKGROUND:if("background"!==l)return;c="vtlBackground";break;case r.FILL:if("opaque"!==l&&"translucent"!==t.renderPass)return;c="vtlFill";break;case r.LINE:if("translucent"!==l)return;c="vtlLine";break;case r.CIRCLE:if("translucent"!==l)return;c="vtlCircle";break;case r.SYMBOL:if("translucent"!==l)return;c="vtlSymbol"}const d=t.displayLevel;if(void 0!==e.minzoom&&e.minzoom>d+o||void 0!==e.maxzoom&&e.maxzoom<=d-o)return;const{context:h}=t;h.setStencilTestEnabled(!1),h.setStencilWriteMask(0),t.styleLayerUID=e.uid,t.styleLayer=e,this._drawWithBrush(t,s,c)}_drawWithBrush(e,s,r){if(!this._brushCache.has(r)){const e=t[r];this._brushCache.set(r,new e)}this._brushCache.get(r).drawMany(e,[s])}}export{l as default};
|
|
5
|
+
import{disposeMaybe as e}from"../../../../core/maybe.js";import{vtlBrushes as t}from"../vtlBrushes.js";import s from"./shaders/VTLMaterialManager.js";import{StyleLayerType as r,Visibility as a}from"./style/StyleDefinition.js";import{CompareFunction as n,BlendFactor as i}from"../../../webgl/enums.js";const o=1e-6;class l{constructor(e,t){this.spriteMosaic=e,this.glyphMosaic=t,this._brushCache=new Map,this._vtlMaterialManager=new s}dispose(){this._brushCache&&(this._brushCache.forEach((e=>e.dispose())),this._brushCache=null),this._vtlMaterialManager=e(this._vtlMaterialManager),this.spriteMosaic.dispose(),this.glyphMosaic.dispose()}get vectorTilesMaterialManager(){return this._vtlMaterialManager}drawSymbols(e,t,s){const n=s.layers;e.renderPass="translucent";for(let i=0;i<n.length;i++){const s=n[i];if(s.type!==r.SYMBOL)continue;const l=s.getLayoutProperty("visibility");if(l&&l.getValue()===a.NONE)continue;const c=e.displayLevel;void 0!==s.minzoom&&s.minzoom>c+o||void 0!==s.maxzoom&&s.maxzoom<=c-o||(e.styleLayerUID=s.uid,e.styleLayer=s,this._drawWithBrush(e,t,"vtlSymbol"))}}drawBackground(e,t,s){if(0===s.backgroundBucketIds.length)return;const{context:n,displayLevel:i,requiredLevel:l}=e;t.key.level=l,n.setBlendingEnabled(!0),n.setDepthTestEnabled(!1),n.setStencilTestEnabled(!1),e.renderPass="background",s.backgroundBucketIds.forEach((n=>{const l=s.getLayerById(n);if(l.type!==r.BACKGROUND)return;const c=l.getLayoutProperty("visibility");c&&c.getValue()===a.NONE||void 0!==l.minzoom&&l.minzoom>i+o||void 0!==l.maxzoom&&l.maxzoom<=i-o||(e.styleLayerUID=l.uid,e.styleLayer=l,this._drawWithBrush(e,t,"vtlBackground"))}))}drawTile(e,t,s,r){const{context:a}=e,o=s.layers;a.setBlendingEnabled(!1),a.setDepthTestEnabled(!0),a.setDepthWriteEnabled(!0),a.setDepthFunction(n.LEQUAL),e.renderPass="opaque";for(let n=o.length-1;n>=0;n--){const s=o[n];null!=r&&r!==s.type||this._renderStyleLayer(s,e,t,!1)}a.setDepthWriteEnabled(!1),a.setBlendingEnabled(!0),a.setBlendFunctionSeparate(i.ONE,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),e.renderPass="translucent";for(let n=0;n<o.length;n++){const s=o[n];null!=r&&r!==s.type||this._renderStyleLayer(s,e,t,!1)}a.setDepthTestEnabled(!1),a.bindVAO()}_renderStyleLayer(e,t,s,n){if(!(n||e&&s.layerData.has(e.uid)))return;const i=e.getLayoutProperty("visibility");if(i&&i.getValue()===a.NONE)return;const{renderPass:l}=t;let c;switch(e.type){case r.BACKGROUND:if("background"!==l)return;c="vtlBackground";break;case r.FILL:if("opaque"!==l&&"translucent"!==t.renderPass)return;c="vtlFill";break;case r.LINE:if("translucent"!==l)return;c="vtlLine";break;case r.CIRCLE:if("translucent"!==l)return;c="vtlCircle";break;case r.SYMBOL:if("translucent"!==l)return;c="vtlSymbol"}const d=t.displayLevel;if(void 0!==e.minzoom&&e.minzoom>d+o||void 0!==e.maxzoom&&e.maxzoom<=d-o)return;const{context:h}=t;h.setStencilTestEnabled(!1),h.setStencilWriteMask(0),t.styleLayerUID=e.uid,t.styleLayer=e,this._drawWithBrush(t,s,c)}_drawWithBrush(e,s,r){if(!this._brushCache.has(r)){const e=t[r];this._brushCache.set(r,new e)}this._brushCache.get(r).drawMany(e,[s])}}export{l 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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../../core/Error.js";import{on as t}from"../../../../core/events.js";import r from"../../../../core/Logger.js";import{isPowerOfTwo as s}from"../../../../core/mathUtils.js";import{disposeMaybe as i}from"../../../../core/maybe.js";import{getProjectiveTransform as o}from"../../../../core/perspectiveUtils.js";import{watch as n,when as a,initial as m}from"../../../../core/reactiveUtils.js";import{a as l}from"../../../../chunks/mat3f64.js";import{s as h}from"../../../../chunks/vec2.js";import{a as p}from"../../../../chunks/vec2f64.js";import{AnimatedSymbolRepeatType as c}from"../../../../symbols/cim/enums.js";import{DisplayObject as u}from"../DisplayObject.js";import{play as d}from"./animatedFormats/utils.js";import{BufferObject as f}from"../../../webgl/BufferObject.js";import{ContextType as
|
|
5
|
+
import e from"../../../../core/Error.js";import{on as t}from"../../../../core/events.js";import r from"../../../../core/Logger.js";import{isPowerOfTwo as s}from"../../../../core/mathUtils.js";import{disposeMaybe as i}from"../../../../core/maybe.js";import{getProjectiveTransform as o}from"../../../../core/perspectiveUtils.js";import{watch as n,when as a,initial as m}from"../../../../core/reactiveUtils.js";import{a as l}from"../../../../chunks/mat3f64.js";import{s as h}from"../../../../chunks/vec2.js";import{a as p}from"../../../../chunks/vec2f64.js";import{AnimatedSymbolRepeatType as c}from"../../../../symbols/cim/enums.js";import{DisplayObject as u}from"../DisplayObject.js";import{play as d}from"./animatedFormats/utils.js";import{BufferObject as f}from"../../../webgl/BufferObject.js";import{ContextType as y}from"../../../webgl/contextUtils.js";import{TextureWrapMode as w,Usage as g}from"../../../webgl/enums.js";import{Texture as v}from"../../../webgl/Texture.js";import{TextureDescriptor as x}from"../../../webgl/TextureDescriptor.js";import{VertexArrayObject as _}from"../../../webgl/VertexArrayObject.js";const j=l(),V={none:c.None,loop:c.Loop,oscillate:c.Oscillate};function b(e){return e?{...e,playAnimation:e.playing,repeatType:e.repeatType?V[e.repeatType]:void 0}:{}}class T extends u{constructor(s){super(),this.elementView=s,this.isWrapAround=!1,this.perspectiveTransform=p(),this._playHandle=null,this._vertices=new Float32Array(20),this._handles=[],this._handles.push(n((()=>this.elementView.element.opacity),(e=>this.opacity=e),m),n((()=>[this.elementView.coords]),(()=>{this.requestRender()}),m),n((()=>["animationOptions"in this.elementView.element&&this.elementView.element.animationOptions]),(()=>{this._playHandle?.remove(),this.texture=i(this.texture),this.requestRender()}),m),a((()=>this.elementView.element.loaded),(()=>{const e=this.elementView.element;this.ready(),"video"===e.type&&null!=e.content&&this._handles.push(t(e.content,"play",(()=>this.requestRender())))}),m)),s.element.load().catch((t=>{r.getLogger("esri.views.2d.layers.MediaLayerView2D").error(new e("element-load-error","Element cannot be displayed",{element:s,error:t}))}))}destroy(){this._playHandle?.remove(),this._handles.forEach((e=>e.remove())),this.texture=i(this.texture)}get dvsMat3(){return this.parent.dvsMat3}beforeRender(e){const{context:t}=e,r=this.elementView.element.content;if(null!=r){const e=r instanceof HTMLImageElement,i=r instanceof HTMLVideoElement,o=e?r.naturalWidth:i?r.videoWidth:r.width,n=e?r.naturalHeight:i?r.videoHeight:r.height;if(this._updatePerspectiveTransform(o,n),this.texture)i&&!r.paused&&(this.texture.setData(r),this.requestRender(),(t.type===y.WEBGL2||s(o)&&s(n))&&this.texture.generateMipmap());else{const e=new x;if(e.wrapMode=w.CLAMP_TO_EDGE,e.preMultiplyAlpha=!0,e.width=o,e.height=n,"getFrame"in r){const s=r=>{this.texture?this.texture.setData(r):this.texture=new v(t,e,r),this.requestRender()};"animationOptions"in this.elementView.element&&(this._playHandle=d(r,b(this.elementView.element.animationOptions),null,s))}else this.texture=new v(t,e,r);(t.type===y.WEBGL2||s(o)&&s(n))&&this.texture.generateMipmap(),i&&!r.paused&&this.requestRender()}}super.beforeRender(e)}_createTransforms(){return null}updateDrawCoords(e,t){const r=this.elementView.coords;if(null==r)return;const[s,i,o,n]=r.rings[0],a=this._vertices,{x:m,y:l}=e,h=0!==t;h?a.set([i[0]-m,i[1]-l,s[0]-m,s[1]-l,o[0]-m,o[1]-l,n[0]-m,n[1]-l,n[0]-m,n[1]-l,i[0]+t-m,i[1]-l,i[0]+t-m,i[1]-l,s[0]+t-m,s[1]-l,o[0]+t-m,o[1]-l,n[0]+t-m,n[1]-l]):a.set([i[0]-m,i[1]-l,s[0]-m,s[1]-l,o[0]-m,o[1]-l,n[0]-m,n[1]-l]),this.isWrapAround=h}getVAO(e,t,r){if(null==this.elementView.coords)return null;const s=this._vertices;if(this._vao)this._geometryVbo.setData(s);else{this._geometryVbo=f.createVertex(e,g.DYNAMIC_DRAW,s);const i=f.createVertex(e,g.STATIC_DRAW,new Uint16Array([0,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,1,0,1,1]));this._vao=new _(e,r,t,{geometry:this._geometryVbo,tex:i})}return this._vao}_updatePerspectiveTransform(e,t){const r=this._vertices;o(j,[0,0,e,0,0,t,e,t],[r[0],r[1],r[4],r[5],r[2],r[3],r[6],r[7]]),h(this.perspectiveTransform,j[6]/j[8]*e,j[7]/j[8]*t)}}export{T 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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{InputHandler as i}from"../../../input/InputHandler.js";import{onVisibilityChange as t}from"../../../input/VisibilityChange.js";class e extends i{constructor(i,e,s){super(!0),this.view=i,this.keys=e,this._isSticky=!1,this._pressedKeys=new Set,this._timeout=void 0,this._currentDirection=void 0,this._stickyKeyDuration=200,this._handleKey=i=>{const t=this._keyMap[i.data.key];if(null==t)return;i.stopPropagation(),i.preventDefault();const e="key-down"===i.type;if(this._pressedKeys[e?"add":"delete"](t),e){if(this._direction===t)return;this._direction=t,this._isSticky=!1,this._setTimeout((()=>{this._isSticky&&this._handlePopKey()}))}else{const i=void 0===this._timeout,t=this._pressedKeys.size>0;i||t?this._handlePopKey():this._isSticky=!0}},this._handlePopKey=()=>{this._direction=Array.from(this._pressedKeys).pop(),null==this._direction&&this._stopMovement()},this._stopMovement=()=>{this._isSticky=!1,this._direction=void 0,this._pressedKeys.clear(),this._setTimeout(void 0)},this._keyMap={[e.left]:"left",[e.right]:"right",[e.up]:"up",[e.down]:"down"},this.registerIncoming("key-down",s,this._handleKey),this.registerIncoming("key-up",s,this._handleKey),this.registerIncoming("blur",s,this._stopMovement),this._visibilityHandle=t((i=>i?null:this._stopMovement()))}onUninstall(){this._stopMovement(),this._visibilityHandle?.remove()}get _direction(){return this._currentDirection}set _direction(i){const t=null!=this._currentDirection;if(null!=i){if(t||this.view.mapViewNavigation.begin(),this._currentDirection!==i)switch(i){case"left":this.view.mapViewNavigation.continousPanLeft();break;case"right":this.view.mapViewNavigation.continousPanRight();break;case"up":this.view.mapViewNavigation.continousPanUp();break;case"down":this.view.mapViewNavigation.continousPanDown()}}else t&&this.view.mapViewNavigation.stop();this._currentDirection=i}_setTimeout(i){clearTimeout(this._timeout),this._timeout=void 0===i?void 0:setTimeout((()=>{this._timeout=void 0,i()}),this._stickyKeyDuration)}}export{e as KeyPan};
|
|
5
|
+
import{InputHandler as i}from"../../../input/InputHandler.js";import{onVisibilityChange as t}from"../../../input/VisibilityChange.js";class e extends i{constructor(i,e,s){super(!0),this.view=i,this.keys=e,this._isSticky=!1,this._pressedKeys=new Set,this._timeout=void 0,this._currentDirection=void 0,this._stickyKeyDuration=200,this._handleKey=i=>{const t=this._keyMap[i.data.key];if(i.modifiers.has("Meta")||i.modifiers.has("Ctrl"))return void this._stopMovement();if(null==t)return;i.stopPropagation(),i.preventDefault();const e="key-down"===i.type;if(this._pressedKeys[e?"add":"delete"](t),e){if(this._direction===t)return;this._direction=t,this._isSticky=!1,this._setTimeout((()=>{this._isSticky&&this._handlePopKey()}))}else{const i=void 0===this._timeout,t=this._pressedKeys.size>0;i||t?this._handlePopKey():this._isSticky=!0}},this._handlePopKey=()=>{this._direction=Array.from(this._pressedKeys).pop(),null==this._direction&&this._stopMovement()},this._stopMovement=()=>{this._isSticky=!1,this._direction=void 0,this._pressedKeys.clear(),this._setTimeout(void 0)},this._keyMap={[e.left]:"left",[e.right]:"right",[e.up]:"up",[e.down]:"down"},this.registerIncoming("key-down",s,this._handleKey),this.registerIncoming("key-up",s,this._handleKey),this.registerIncoming("blur",s,this._stopMovement),this._visibilityHandle=t((i=>i?null:this._stopMovement()))}onUninstall(){this._stopMovement(),this._visibilityHandle?.remove()}get _direction(){return this._currentDirection}set _direction(i){const t=null!=this._currentDirection;if(null!=i){if(t||this.view.mapViewNavigation.begin(),this._currentDirection!==i)switch(i){case"left":this.view.mapViewNavigation.continousPanLeft();break;case"right":this.view.mapViewNavigation.continousPanRight();break;case"up":this.view.mapViewNavigation.continousPanUp();break;case"down":this.view.mapViewNavigation.continousPanDown()}}else t&&this.view.mapViewNavigation.stop();this._currentDirection=i}_setTimeout(i){clearTimeout(this._timeout),this._timeout=void 0===i?void 0:setTimeout((()=>{this._timeout=void 0,i()}),this._stickyKeyDuration)}}export{e as KeyPan};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{Manipulation as t,ManipulatorType as i}from"./Manipulation.js";import{createManipulatorDragEventPipeline as r,screenToMap as a}from"../../../../interactive/dragEventPipeline.js";import{GraphicManipulator as o}from"../../../../interactive/GraphicManipulator.js";import{AccumulationBehaviour as e}from"../../../../interactive/editGeometry/interfaces.js";import{getSymbolInfo as s}from"../../../../interactive/support/utils.js";class n extends t{constructor(t){super(),this._view=t.view,this._tool=t.tool,this._graphic=t.graphic,this._manipulator=this._createManipulator(),this.forEachManipulator((t=>this._tool.manipulators.add(t)))}destroy(){this.forEachManipulator((t=>{this._tool.manipulators.remove(t),t.destroy()})),this._tool=null,this._view=null,this._manipulator=null,this._graphic=null}forEachManipulator(t){t(this._manipulator,i.TRANSLATE_XY)}createDragPipeline(t,i){let o=null,n=null,c=0,l=0,p=0;const{offsetX:m,offsetY:h,size:u}=s(this._graphic.symbol);return r(this._manipulator,((r,s)=>{s.next((i=>{if("start"===i.action){const i=t();o=i.editGeometryOperations,n=i.constraints}return i})).next(a(this._view)).next((t=>{const{x:r,y:a,z:s}=t.mapEnd;if(n&&(r+m<n.xmin||a+h-u<n.ymin||r+m>n.xmax||a+h-u>n.ymax))return t;"start"===t.action&&(c=t.mapStart.x,l=t.mapStart.y,p=t.mapStart.z);const _=r-c,f=a-l,v=s-p;c=r,l=a,p=s;const x=[];for(const i of o.data.components)x.push(...i.vertices);const d="start"===t.action?e.NEW_STEP:e.ACCUMULATE_STEPS,E=o.moveVertices(x,_,f,v,d);return i(t,E),t}))}))}_createManipulator(){const t=this._view,i=this._graphic;return new o({view:t,graphic:i,selectable:!0,cursor:"move"})}}export{n as DragManipulation};
|
|
5
|
+
import{Manipulation as t,ManipulatorType as i}from"./Manipulation.js";import{createManipulatorDragEventPipeline as r,screenToMap as a}from"../../../../interactive/dragEventPipeline.js";import{GraphicManipulator as o}from"../../../../interactive/GraphicManipulator.js";import{AccumulationBehaviour as e}from"../../../../interactive/editGeometry/interfaces.js";import{getSymbolInfo as s}from"../../../../interactive/support/utils.js";class n extends t{constructor(t){super(),this._view=t.view,this._tool=t.tool,this._graphic=t.graphic,this._manipulator=this._createManipulator(),this.forEachManipulator((t=>this._tool.manipulators.add(t)))}destroy(){this.forEachManipulator((t=>{this._tool.manipulators.remove(t),t.destroy()})),this._tool=null,this._view=null,this._manipulator=null,this._graphic=null}forEachManipulator(t){t(this._manipulator,i.TRANSLATE_XY)}createDragPipeline(t,i){let o=null,n=null,c=0,l=0,p=0;const{offsetX:m,offsetY:h,size:u}=s(this._graphic.symbol);return r(this._manipulator,((r,s)=>{s.next((i=>{if("start"===i.action){const i=t();o=i.editGeometryOperations,n=i.constraints}return i})).next(a(this._view)).next((t=>{const{x:r,y:a,z:s}=t.mapEnd;if(n&&(r+m<n.xmin||a+h-u<n.ymin||r+m>n.xmax||a+h-u>n.ymax))return t;("start"===t.action||0===c&&0===l&&0===p)&&(c=t.mapStart.x,l=t.mapStart.y,p=t.mapStart.z);const _=r-c,f=a-l,v=s-p;c=r,l=a,p=s;const x=[];for(const i of o.data.components)x.push(...i.vertices);const d="start"===t.action?e.NEW_STEP:e.ACCUMULATE_STEPS,E=o.moveVertices(x,_,f,v,d);return i(t,E),t}))}))}_createManipulator(){const t=this._view,i=this._graphic;return new o({view:t,graphic:i,selectable:!0,cursor:"move"})}}export{n as DragManipulation};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../AggregateGraphic.js";import"../../../geometry.js";import i from"../../../Graphic.js";import{isSome as r}from"../../../core/arrayUtils.js";import s from"../../../core/Collection.js";import a from"../../../core/Error.js";import{makeHandle as n}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import{clone as o}from"../../../core/lang.js";import l from"../../../core/Logger.js";import{destroyMaybe as u,removeMaybe as d}from"../../../core/maybe.js";import{debounce as h,isAbortError as p}from"../../../core/promiseUtils.js";import{watch as c,syncAndInitial as y,initial as g}from"../../../core/reactiveUtils.js";import{pt2px as f}from"../../../core/screenUtils.js";import{property as m}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as _}from"../../../core/accessorSupport/decorators/subclass.js";import b from"../../../layers/effects/FeatureEffectView.js";import v from"../../../layers/support/FeatureFilter.js";import{getEffectiveLayerCapabilities as R}from"../../../layers/support/layerUtils.js";import w from"../../../rest/support/AggregateFeatureSet.js";import x from"../../../rest/support/FeatureSet.js";import S from"../../../rest/support/Query.js";import{maxFilters as F}from"../engine/webgl/definitions.js";import{LayerView2DMixin as U}from"./LayerView2D.js";import{createSchema as C}from"./features/schemaUtils.js";import{createOrReuseTileRenderer as I}from"./features/tileRenderers.js";import{isRendererSupported as q}from"./features/support/rendererUtils.js";import{findSizeVV as V,createClusterCountSizeVariable as E,injectDynamicLevelDependentSizeVisualVariable as O,isClusterCompatibleRenderer as T,createClusterRenderer as j}from"./support/clusterUtils.js";import A from"./support/FeatureCommandQueue.js";import L from"./support/FeatureLayerProxy.js";import{toJSONGeometryType as Q}from"./support/util.js";import{getSizeForValueSimple as N}from"./support/visualVariableSimpleUtils.js";import{TileManager as k}from"../tiling/TileManager.js";import H from"../../layers/FeatureLayerView.js";import P from"../../layers/LayerView.js";import z from"../../layers/RefreshableLayerView.js";import{getWebGLCapabilities as J}from"../../webgl/capabilities.js";import D from"../../../geometry/Extent.js";function M(e){return e&&"openPorts"in e}function B(e){for(const t of e){const e="featureReduction"in t&&t.featureReduction&&"labelingInfo"in t.featureReduction?t.featureReduction:void 0,i=[...t.labelingInfo||[],...e?.labelingInfo||[]];if(!t.labelsVisible||!i.length)continue;if(i.some((e=>"none"===e.deconflictionStrategy)))return!0}return!1}function $(e){return t=>f(N(t,e))}function G(e){const t=null!=e&&"visualVariables"in e&&e.visualVariables;if(!t)return null;for(const i of t)if("size"===i.type)return $(i);return null}let K=class extends(H(z(U(P)))){constructor(){super(...arguments),this._pipelineIsUpdating=!0,this._commandsQueue=new A({process:e=>{switch(e.type){case"processed-edit":return this._doEdit(e);case"refresh":return this._doRefresh(e.dataChanged);case"update":return this._doUpdate()}}}),this._visibilityOverrides=new Set,this._highlightIds=new Map,this._updateHighlight=h((async()=>this._proxy.setHighlight(Array.from(this._highlightIds.keys())))),this._uploadsLocked=!1,this._needsClusterSizeUpdate=!1,this.featureEffectView=new b,this._lastDefinitionExpression=null}destroy(){this._updateClusterSizeTask?.remove(),this._proxy?.destroy(),this._commandsQueue.destroy()}initialize(){this.addResolvingPromise(Promise.all([this._initProxy(),this._initServiceOptions()])),this.addHandles([this.on("valueRangesChanged",(e=>{this._set("_aggregateValueRanges",e.valueRanges)})),c((()=>this.featureEffect),(e=>{this.featureEffectView.featureEffect=e}),y)],"constructor"),this.featureEffectView.endTransitions()}async _initProxy(){const e=this.layer;if("isTable"in e&&e.isTable)throw new a("featurelayerview:table-not-supported","table feature layer can't be displayed",{layer:this.layer});if(("feature"===e.type||"subtype-group"===e.type)&&!R(e)?.operations.supportsQuery)throw new a("featurelayerview:query-not-supported","layer view requires a layer with query capability",{layer:e});this._proxy&&this._proxy.destroy();const t=this._createClientOptions();return this._set("_proxy",new L({client:t})),this._proxy.when()}async _initServiceOptions(){return this._set("_serviceOptions",await this._createServiceOptions()),this._serviceOptions}get _effectiveFeatureReduction(){if(!("featureReduction"in this.layer))return null;const e=this.layer.featureReduction;return e&&(!("maxScale"in e)||!e.maxScale||e.maxScale<this.view.scale)?e:null}get orderByFields(){return"stream"!==this._serviceOptions?.type?this._serviceOptions?.orderByFields:void 0}get labelsVisible(){const e="subtype-group"===this.layer.type?this.layer.sublayers.items:[this.layer];return!this.suspended&&e.some((e=>e.labelingInfo&&e.labelsVisible))}get labelingCollisionInfos(){const{tileRenderer:e,layer:t}=this;if(null==e)return null;const i="subtype-group"===this.layer.type?this.layer.sublayers.items:[this.layer],r=t.geometryType,s=!B(i),a={};if("subtype-group"!==t.type){if("heatmap"===e?.type)return null;const i=G(t.renderer);a[0]=i}return[{tileRenderer:e,vvEvaluators:a,deconflictionEnabled:s,geometryType:r,visible:!this.suspended}]}get queryMode(){return this._serviceOptions?.type}get renderingConfigHash(){if(!this.layer)return null;const e=this.availableFields,t=this.layer,i=this.view.floors,{definitionExpression:r}=t,s="subtype-group"!==this.layer.type&&this.layer.labelsVisible&&this.layer.labelingInfo,a="renderer"in t&&t.renderer,n="gdbVersion"in t?t.gdbVersion:void 0,o="historicMoment"in t?t.historicMoment?.getTime():void 0,{timeExtent:l}=this,u="customParameters"in t?JSON.stringify(t.customParameters):void 0,d="apiKey"in t?t.apiKey:void 0,h="stream"===t.type?`${JSON.stringify(t.geometryDefinition)}${t.definitionExpression}`:null,p=JSON.stringify(this.clips),c=this._effectiveFeatureReduction?.toJSON(),y="orderBy"in this.layer&&JSON.stringify(this.layer.orderBy),g="sublayers"in this.layer&&this.layer.sublayers.items.reduce(((e,t)=>e+`${t.visible?1:0}.${JSON.stringify(t.renderer)}.${t.labelsVisible}\n.${JSON.stringify(t.labelingInfo)}`),""),f="subtypeCode"in this.layer&&this.layer.subtypeCode;return JSON.stringify({orderBy:y,sublayerHash:g,subtypeCode:f,filterHash:null!=this.filter&&this.filter.toJSON(),effectHash:null!=this.featureEffect&&this.featureEffect.toJSON(),streamFilter:h,gdbVersion:n,definitionExpression:r,historicMoment:o,availableFields:e,renderer:a,labelingInfo:s,timeExtent:l,floors:i,clipsHash:p,featureReduction:c,customParameters:u,apiKey:d,timeZone:this.view.timeZone})}highlight(e){let t;e instanceof i?t=[e.getObjectId()]:"number"==typeof e||"string"==typeof e?t=[e]:s.isCollection(e)&&e.length>0?t=e.map((e=>e?.getObjectId())).toArray():Array.isArray(e)&&e.length>0&&(t="number"==typeof e[0]||"string"==typeof e[0]?e:e.map((e=>e?.getObjectId())));const a=t?.filter(r);return a?.length?(this._addHighlight(a),n((()=>this._removeHighlight(a)))):n()}hasHighlight(){return!!this._highlightIds.size}async hitTest(e,r){if(!this.tileRenderer)return null;const s=await this.tileRenderer.hitTest(r);if(0===s.length)return null;has("featurelayer-force-marker-text-draw-order")&&s.sort(((e,t)=>e-t));const{features:a,aggregates:n}=await this._proxy.getFeatures(s);return[...n.map((i=>this._createGraphicHit(e,t.fromJSON(i)))),...a.map((t=>this._createGraphicHit(e,i.fromJSON(t))))]}queryStatistics(){return this._proxy.queryStatistics()}async querySummaryStatistics(e,t,i){const r={...t,scale:this.view.scale};return this._proxy.querySummaryStatistics(this._cleanUpQuery(e),r,i)}async queryAggregateSummaryStatistics(e,t,i){const r={...t,scale:this.view.scale};return this._proxy.queryAggregateSummaryStatistics(this._cleanUpAggregateQuery(e),r,i)}async queryUniqueValues(e,t,i){const r={...t,scale:this.view.scale};return this._proxy.queryUniqueValues(this._cleanUpQuery(e),r,i)}async queryAggregateUniqueValues(e,t,i){const r={...t,scale:this.view.scale};return this._proxy.queryAggregateUniqueValues(this._cleanUpAggregateQuery(e),r,i)}async queryClassBreaks(e,t,i){const r={...t,scale:this.view.scale};return this._proxy.queryClassBreaks(this._cleanUpQuery(e),r,i)}async queryAggregateClassBreaks(e,t,i){const r={...t,scale:this.view.scale};return this._proxy.queryAggregateClassBreaks(this._cleanUpAggregateQuery(e),r,i)}async queryHistogram(e,t,i){const r={...t,scale:this.view.scale};return this._proxy.queryHistogram(this._cleanUpQuery(e),r,i)}async queryAggregateHistogram(e,t,i){const r={...t,scale:this.view.scale};return this._proxy.queryAggregateHistogram(this._cleanUpAggregateQuery(e),r,i)}queryFeatures(e,t){return this.queryFeaturesJSON(e,t).then((e=>{const t=x.fromJSON(e);return t.features.forEach((e=>this._setLayersForFeature(e))),t}))}queryVisibleFeatures(e,t){return this._proxy.queryVisibleFeatures(this._cleanUpQuery(e),t).then((e=>{const t=x.fromJSON(e);return t.features.forEach((e=>this._setLayersForFeature(e))),t}))}async queryAggregates(e,t){const i=await this._proxy.queryAggregates(this._cleanUpAggregateQuery(e),t),r=w.fromJSON(i);return r.features.forEach((e=>this._setLayersForFeature(e))),r}queryAggregateIds(e,t){return this._proxy.queryAggregateIds(this._cleanUpAggregateQuery(e),t)}queryAggregateCount(e,t){return this._proxy.queryAggregateCount(this._cleanUpAggregateQuery(e),t)}queryAggregateJSON(e,t){return this._proxy.queryAggregates(this._cleanUpAggregateQuery(e),t)}queryFeaturesJSON(e,t){return this._proxy.queryFeatures(this._cleanUpQuery(e),t)}queryObjectIds(e,t){return this._proxy.queryObjectIds(this._cleanUpQuery(e),t)}queryFeatureCount(e,t){return this._proxy.queryFeatureCount(this._cleanUpQuery(e),t)}queryExtent(e,t){return this._proxy.queryExtent(this._cleanUpQuery(e),t).then((e=>({count:e.count,extent:D.fromJSON(e.extent)})))}setVisibility(e,t){t?this._visibilityOverrides.delete(e):this._visibilityOverrides.add(e),this._update()}update(e){if(!this._tileStrategy||!this.tileRenderer)return;const{hasMissingTiles:t,added:i,removed:r}=this._tileStrategy.update(e);(i.length||r.length)&&this._proxy.updateTiles({added:i,removed:r}),t&&this.requestUpdate(),this.notifyChange("updating")}attach(){this.view.timeline.record(`${this.layer.title} (FeatureLayer) Attach`),this._tileStrategy=new k({acquireTile:e=>this._acquireTile(e),releaseTile:e=>this._releaseTile(e),tileInfoView:this.view.featuresTilingScheme,buffer:0}),this.addAttachHandles(c((()=>this.renderingConfigHash),(()=>this._update()),g)),"stream"!==this.layer.type&&this.addAttachHandles(this.layer.on("edits",(e=>this._edit(e))))}detach(){this._commandsQueue.clear(),this._proxy?.stop(),this.container.removeAllChildren(),this.tileRenderer?.uninstall(this.container),this.tileRenderer=null,this._tileStrategy=u(this._tileStrategy),this._tileRendererHash=null}moveStart(){this.requestUpdate()}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}isUpdating(){const e="renderer"in this.layer&&null!=this.layer.renderer,t=this._commandsQueue.updating,i=null!=this._updatingRequiredFieldsPromise,r=!this._proxy||!this._proxy.isReady,s=this._pipelineIsUpdating,a=null==this.tileRenderer||this.tileRenderer?.updating,n=e&&(t||i||r||s||this.dataUpdating||a);return has("esri-2d-log-updating")&&console.log(`Updating FLV2D (${this.layer.id}): ${n}\n -> hasRenderer ${e}\n -> hasPendingCommand ${t}\n -> updatingRequiredFields ${i}\n -> updatingProxy ${r}\n -> updatingPipeline ${s}\n -> updatingData: ${this.dataUpdating}\n -> updatingTileRenderer ${a}\n`),n}_createClientOptions(){return{setUpdating:e=>{this._set("_pipelineIsUpdating",e)},setDataUpdating:e=>{this._set("dataUpdating",e)},emitEvent:e=>{this.emit(e.name,e.event)}}}async _detectQueryMode(e){const t="path"in e,{layer:i}=this,r="editingInfo"in i&&i.editingInfo?.lastEditDate,s="refreshInterval"in i&&!!i.refreshInterval,a=!r&&s,n=R(i);if(t&&("feature"===i.type||"subtype-group"===i.type)&&"point"===i.geometryType&&n?.query.supportsPagination&&!n?.operations.supportsEditing&&!a&&has("featurelayer-snapshot-enabled"))try{const e=await i.queryFeatureCount();if(e<=has("featurelayer-snapshot-point-min-threshold"))return{mode:"snapshot",featureCount:e};const t=has("featurelayer-snapshot-point-max-threshold"),r=has("featurelayer-snapshot-point-coverage"),s=this.view.extent,a=i.fullExtent,n=a?.clone().intersection(s),o=null!=n?n.width*n.height:0,l=a?.width*a?.height;if(e<=t&&(0===l?0:o/l)>=r)return{mode:"snapshot",featureCount:e}}catch(o){l.getLogger(this).warn("mapview-feature-layer","Encountered an error when querying for featureCount",{error:o})}return{mode:"on-demand"}}async _createServiceOptions(){const e=this.layer;if("stream"===e.type)return null;const t=R(e),{capabilities:i,objectIdField:r}=e,s=e.fieldsIndex.toJSON(),a=s.fields,n=null!=e.fullExtent?e.fullExtent.toJSON():null,l=Q(e.geometryType),u="timeInfo"in e&&e.timeInfo?.toJSON()||null,d=e.spatialReference?e.spatialReference.toJSON():null,h="feature"===e.type?e.globalIdField:null;let p;"ogc-feature"===e.type?p=e.source.getSource():M(e.source)?p=await e.source.openPorts():e.parsedUrl&&(p=o(e.parsedUrl),"dynamicDataSource"in e&&e.dynamicDataSource&&(p.query={layer:JSON.stringify({source:e.dynamicDataSource})}));const c="datesInUnknownTimezone"in this.layer&&this.layer.datesInUnknownTimezone,y=("subtypeField"in this.layer?this.layer.subtypeField:null)??null,{mode:g,featureCount:f}=await this._detectQueryMode(p);let m=this.layer.objectIdField;if("feature"===this.layer.type&&null!=this.layer.orderBy&&this.layer.orderBy.length){const e=!this.layer.orderBy[0].valueExpression&&this.layer.orderBy[0].field;e&&(m=e)}return{type:g,typeIdField:"typeIdField"in e&&e.typeIdField||void 0,types:"types"in e&&e.types?.map((e=>e.toJSON()))||void 0,timeReferenceUnknownClient:c,subtypeField:y,featureCount:f,globalIdField:h,maxRecordCount:i.query.maxRecordCount,tileMaxRecordCount:i.query.tileMaxRecordCount,capabilities:i,effectiveCapabilities:t,fields:a,fieldsIndex:s,fullExtent:n,geometryType:l,objectIdField:r,source:p,timeInfo:u,spatialReference:d,orderByFields:m}}async _createMemoryServiceOptions(e){const t=await e.openPorts();return{...this._createServiceOptions(),type:"memory",source:t}}_cleanUpQuery(e){const t=S.from(e)||this.createQuery();return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t}_cleanUpAggregateQuery(e){const t=S.from(e)||this.createAggregateQuery();return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t}async _update(){return this._commandsQueue.push({type:"update"})}async _edit(e){if(this.suspended)return void this._clearTiles();return this._validateEdit(e)?this._commandsQueue.push({type:"edit",edits:e}):void 0}async doRefresh(e){if(this.attached&&this._tileStrategy.tileKeys().length)return this.suspended&&e?void this._clearTiles():this._commandsQueue.push({type:"refresh",dataChanged:e})}_clearTiles(){this._tileStrategy.tileKeys().length&&(this._proxy.updateTiles({added:[],removed:this._tileStrategy.tileKeys()}),this._tileStrategy.clear(),this.requestUpdate(),this._commandsQueue.clear(),this._update())}_validateEdit(e){const t="globalIdField"in this.layer&&this.layer.globalIdField,i=e.deletedFeatures.some((e=>-1===e.objectId||!e.objectId)),r=t&&this.availableFields.includes(t);return i&&!r?(l.getLogger(this).error(new a("mapview-apply-edits",`Editing the specified service requires the layer's globalIdField, ${t} to be included the layer's outFields for updates to be reflected on the map`)),null):e}async _doUpdate(){try{if(this.destroyed||!this._hasRequiredSupport(this.layer)||!this._tileStrategy)return;const{featureEffectView:t,filter:i}=this;if(await this._updateRequiredFields(),this.destroyed)return;const{renderer:r}=this._getEffectiveRenderer();this._set("_effectiveRenderer",r);const s=this._createSchemaConfig(),a=this._createConfiguration(s,i,t.filter),n=this._lastDefinitionExpression!==a.schema.source.definitionExpression;this._lastDefinitionExpression=a.schema.source.definitionExpression;const o=a.schema.tileRenderer,u=this._createTileRendererHash(o);if("snapshot"===this._serviceOptions.type&&(a.schema.source.initialFeatureCount=this._serviceOptions.featureCount),u!==this._tileRendererHash){this._initTileRenderer(o,r);const e=this.layer,t="stream"===e.type?await this._initServiceOptions():this._serviceOptions;this.tileRenderer.onConfigUpdate(r),"stream"!==e.type&&M(e.source)&&(t.source=await e.source.openPorts());const i={added:this._tileStrategy.tileKeys(),removed:[]};has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Proxy startup"),await this._proxy.startup(this.view.featuresTilingScheme,a,t,i),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Finished proxy startup"),this.hasHighlight()&&(has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Updating highlight"),await this._proxy.setHighlight(Array.from(this._highlightIds.keys())),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Finished highlight update")),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: onConfigUpdate start"),this.tileRenderer.onConfigUpdate(r),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: onConfigUpdate end")}else{"snapshot"===this._serviceOptions.type&&n&&(a.schema.source.changedFeatureCount=await this.layer.queryFeatureCount()),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Updating proxy");const t=await this._proxy.update(a);has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Finished proxy update"),(t.mesh||t.targets?.aggregate)&&(has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Locking GPU Uploads"),this._lockGPUUploads());try{has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Applying update to proxy"),await this._proxy.applyUpdate(t),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Finished applying update to proxy")}catch(e){p(e)||l.getLogger(this).error(e)}(t.mesh||t.targets?.aggregate)&&this._unlockGPUUploads(),this.tileRenderer.onConfigUpdate(r),this._updateClusterSizeVariable(),this._forceAttributeTextureUpload()}this._tileRendererHash=u,this.tileRenderer.invalidateLabels(),this.requestUpdate()}catch(e){}}async _doEdit(e){try{await this._proxy.onEdits(e)}catch(t){p(t),0}}async _doRefresh(e){this._lockGPUUploads();try{let t;e&&"snapshot"===this.queryMode&&"queryFeatureCount"in this.layer&&(t=await this.layer.queryFeatureCount()),await this._proxy.refresh({dataChanged:e,featureCount:t})}catch(t){p(t),0}this._unlockGPUUploads(),this._effectiveFeatureReduction&&this._updateClusterSizeVariable()}_updateClusterSizeVariable(){this._needsClusterSizeUpdate&&(this.tileRenderer.onConfigUpdate(this._effectiveRenderer),this._needsClusterSizeUpdate=!1)}_createUpdateClusterSizeTask(e,t){return c((()=>this._aggregateValueRanges),(i=>{this._updateClusterEffectiveRendererSizeVariable(e,t,i),this._needsClusterSizeUpdate=!0,this._uploadsLocked||this._updateClusterSizeVariable()}))}async _updateClusterEffectiveRendererSizeVariable(e,t,i){if(e.dynamicClusterSize&&"visualVariables"in e&&e.visualVariables){const r=V(e.visualVariables);if(null!=r&&"cluster_count"===r.field){const s=e.visualVariables.indexOf(r);e.visualVariables[s]=E(t,i);const a=e.clone();a.dynamicClusterSize=!0,this._set("_effectiveRenderer",a)}}}_getEffectiveRenderer(){const e=this.layer,t="renderer"in e?e.renderer:null,i=this._effectiveFeatureReduction;if(this._updateClusterSizeTask=d(this._updateClusterSizeTask),i&&"renderer"in i&&i.renderer&&!i.renderer.authoringInfo?.isAutoGenerated){const e=i.fields;if("cluster"===i.type){const{renderer:t,didInject:r}=O(i.renderer,i,this._aggregateValueRanges);return r&&(this._updateClusterSizeTask=this._createUpdateClusterSizeTask(t,i)),{renderer:t,aggregateFields:e,featureReduction:i}}return{renderer:i.renderer,aggregateFields:e,featureReduction:i}}if(i&&"cluster"===i.type&&t&&T(t)){const e=i,r=[],s=j(r,t,e,this._aggregateValueRanges,!0);return this._updateClusterSizeTask=this._createUpdateClusterSizeTask(s,e),{renderer:s,aggregateFields:r,featureReduction:i}}return{renderer:t,aggregateFields:[],featureReduction:null}}_acquireTile(e){const t=this.tileRenderer.acquireTile(e);return t.once("attach",(()=>{this.requestUpdate()})),t}_releaseTile(e){this.tileRenderer.releaseTile(e)}_initTileRenderer(e,t){const i=I(e,{layerView:this,tileInfoView:this.view.featuresTilingScheme,layer:this.layer});return this.tileRenderer&&(this._tileStrategy.clear(),this.tileRenderer.uninstall(this.container),this.tileRenderer=u(this.tileRenderer)),this.destroyed?null:(this._proxy.tileRenderer=i,this._set("tileRenderer",i),this.tileRenderer.install(this.container),this.tileRenderer.onConfigUpdate(t),this.requestUpdate(),this.tileRenderer)}_createTileRendererHash(e){return`${e.type}`}get hasFilter(){const e=!!("floorInfo"in this.layer&&this.layer.floorInfo&&this.view.floors&&this.view.floors.length);return!!this.filter||e||!!this._visibilityOverrides.size||!!this.timeExtent}_injectOverrides(e){const t=null!=e?e.timeExtent:null,i=null!=this.timeExtent&&null!=t?this.timeExtent.intersection(t):this.timeExtent||t;let r=null;const s="floorInfo"in this.layer&&this.layer.floorInfo;if(s){const t=null!=e?e.where:null;r=this._addFloorFilterClause(t)}if(!this._visibilityOverrides.size&&!i&&!s)return null!=e?e.toJSON():null;(e=null!=e&&e.clone()||new v).timeExtent=i,r&&(e.where=r);const a=e.toJSON();return a.hiddenIds=Array.from(this._visibilityOverrides),a}_addFloorFilterClause(e){const t=this.layer;let i=e||"";if("floorInfo"in t&&t.floorInfo){let e=this.view.floors;if(!e?.length)return i;t.floorInfo.viewAllLevelIds?.length&&(e=t.floorInfo.viewAllLevelIds);const r=e.filter((e=>""!==e)).map((e=>"'"+e+"'"));r.push("''");const s=t.floorInfo.floorField;let a="("+s+" IN ({ids}) OR "+s+" IS NULL)";if(a=a.replace("{ids}",r.join(", ")),null!=i&&i.includes(s)){let e=new RegExp("AND \\("+s+".*NULL\\)","g");i=i.replace(e,""),e=new RegExp("\\("+s+".*NULL\\)","g"),i=i.replace(e,""),i=i.replaceAll(/\s+/g," ").trim()}i=""!==i?"("+i+") AND "+a:a}return""!==i?i:null}_createConfiguration(e,t,i){const r="feature"===this.layer.type&&this.layer.historicMoment?this.layer.historicMoment.getTime():void 0,s="feature"===this.layer.type?this.layer.gdbVersion??void 0:void 0,a=new Array(F),n=this._injectOverrides(t);a[0]=n,a[1]=null!=i?i.toJSON():null;const o=C(e);if(null==o)return null;const l=J("2d");return{availableFields:this.availableFields,gdbVersion:s,historicMoment:r,devicePixelRatio:window.devicePixelRatio||1,filters:a,schema:o,supportsTextureFloat:l.supportsTextureFloat,maxTextureSize:l.maxTextureSize,timeZone:this.view.timeZone}}_hasRequiredSupport(e){return!("renderer"in e)||q(e.renderer)}_lockGPUUploads(){this.tileRenderer&&(this._uploadsLocked=!0,this.tileRenderer.lockGPUUploads())}_unlockGPUUploads(){this.tileRenderer&&(this._uploadsLocked=!1,this.tileRenderer.unlockGPUUploads())}_forceAttributeTextureUpload(){this.tileRenderer&&this.tileRenderer.forceAttributeTextureUpload()}_createSchemaConfig(){const e=this.layer;return{renderer:"renderer"in e?e.renderer:null,spatialReference:e.spatialReference,timeExtent:"timeExtent"in e?e.timeExtent:null,definitionExpression:e.definitionExpression,featureReduction:this._effectiveFeatureReduction,fields:e.fields,geometryType:e.geometryType,historicMoment:"historicMoment"in e?e.historicMoment:null,labelsVisible:"labelsVisible"in e&&e.labelsVisible,labelingInfo:"labelingInfo"in e?e.labelingInfo:null,availableFields:this.availableFields,featureEffect:this.featureEffect,filter:this.filter,gdbVersion:"gdbVersion"in e?e.gdbVersion:null,pixelBuffer:0,orderBy:"orderBy"in e&&e.orderBy?e.orderBy:null,customParameters:{..."customParameters"in e?e.customParameters:void 0,token:"apiKey"in e?e.apiKey??void 0:void 0},subtypeCode:"subtypeCode"in e?e.subtypeCode:void 0,subtypeField:"subtypeField"in e?e.subtypeField:void 0}}_addHighlight(e){for(const t of e)if(this._highlightIds.has(t)){const e=this._highlightIds.get(t);this._highlightIds.set(t,e+1)}else this._highlightIds.set(t,1);this._updateHighlight().catch((e=>{p(e)||l.getLogger(this).error(e)}))}_removeHighlight(e){for(const t of e)if(this._highlightIds.has(t)){const e=this._highlightIds.get(t)-1;0===e?this._highlightIds.delete(t):this._highlightIds.set(t,e)}this._updateHighlight().catch((e=>{p(e)||l.getLogger(this).error(e)}))}_setLayersForFeature(e){const t=this.layer;e.layer=t,e.sourceLayer=t}_createGraphicHit(e,t){return this._setLayersForFeature(t),null!=t.geometry&&(t.geometry.spatialReference=this.view.spatialReference),{type:"graphic",graphic:t,layer:this.layer,mapPoint:e}}};e([m()],K.prototype,"_serviceOptions",void 0),e([m()],K.prototype,"_proxy",void 0),e([m()],K.prototype,"_pipelineIsUpdating",void 0),e([m()],K.prototype,"_effectiveRenderer",void 0),e([m()],K.prototype,"_effectiveFeatureReduction",null),e([m()],K.prototype,"_aggregateValueRanges",void 0),e([m()],K.prototype,"_commandsQueue",void 0),e([m()],K.prototype,"featureEffectView",void 0),e([m()],K.prototype,"labelsVisible",null),e([m()],K.prototype,"labelingCollisionInfos",null),e([m({readOnly:!0})],K.prototype,"queryMode",null),e([m()],K.prototype,"renderingConfigHash",null),e([m()],K.prototype,"tileRenderer",void 0),e([m()],K.prototype,"updating",void 0),K=e([_("esri.views.2d.layers.FeatureLayerView2D")],K);const Z=K;export{Z as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../AggregateGraphic.js";import"../../../geometry.js";import r from"../../../Graphic.js";import{isSome as i}from"../../../core/arrayUtils.js";import s from"../../../core/Collection.js";import a from"../../../core/Error.js";import{makeHandle as n}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import{clone as o}from"../../../core/lang.js";import l from"../../../core/Logger.js";import{destroyMaybe as u,removeMaybe as d}from"../../../core/maybe.js";import{debounce as h,isAbortError as p}from"../../../core/promiseUtils.js";import{watch as c,syncAndInitial as y,initial as g}from"../../../core/reactiveUtils.js";import{pt2px as f}from"../../../core/screenUtils.js";import{property as m}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as _}from"../../../core/accessorSupport/decorators/subclass.js";import b from"../../../layers/effects/FeatureEffectView.js";import v from"../../../layers/support/FeatureFilter.js";import{getEffectiveLayerCapabilities as w}from"../../../layers/support/layerUtils.js";import R from"../../../rest/support/AggregateFeatureSet.js";import x from"../../../rest/support/FeatureSet.js";import S from"../../../rest/support/Query.js";import{maxFilters as F}from"../engine/webgl/definitions.js";import{LayerView2DMixin as U}from"./LayerView2D.js";import{createSchema as C}from"./features/schemaUtils.js";import{createOrReuseTileRenderer as I}from"./features/tileRenderers.js";import{isRendererSupported as q}from"./features/support/rendererUtils.js";import{findSizeVV as V,createClusterCountSizeVariable as E,injectDynamicLevelDependentSizeVisualVariable as O,isClusterCompatibleRenderer as T,createClusterRenderer as j}from"./support/clusterUtils.js";import A from"./support/FeatureCommandQueue.js";import L from"./support/FeatureLayerProxy.js";import{getSizeForValueSimple as P}from"./support/visualVariableSimpleUtils.js";import{TileManager as Q}from"../tiling/TileManager.js";import N from"../../layers/FeatureLayerView.js";import k from"../../layers/LayerView.js";import H from"../../layers/RefreshableLayerView.js";import{getWebGLCapabilities as z}from"../../webgl/capabilities.js";import J from"../../../geometry/Extent.js";function D(e){return e&&"openPorts"in e}function M(e){for(const t of e){const e="featureReduction"in t&&t.featureReduction&&"labelingInfo"in t.featureReduction?t.featureReduction:void 0,r=[...t.labelingInfo||[],...e?.labelingInfo||[]];if(!t.labelsVisible||!r.length)continue;if(r.some((e=>"none"===e.deconflictionStrategy)))return!0}return!1}function G(e){return t=>f(P(t,e))}function B(e){const t=null!=e&&"visualVariables"in e&&e.visualVariables;if(!t)return null;for(const r of t)if("size"===r.type)return G(r);return null}const $="esri.views.2d.layers.FeatureLayerView2D";function K(e){switch(e.geometryType){case"point":return"esriGeometryPoint";case"polyline":return"esriGeometryPolyline";case"polygon":case"multipatch":return"esriGeometryPolygon";case"multipoint":return"esriGeometryMultipoint";default:return l.getLogger($).error(new a("unsupported-geometry-type",`Geometry type of ${e.geometryType} is not supported`)),null}}let Z=class extends(N(H(U(k)))){constructor(){super(...arguments),this._pipelineIsUpdating=!0,this._commandsQueue=new A({process:e=>{switch(e.type){case"processed-edit":return this._doEdit(e);case"refresh":return this._doRefresh(e.dataChanged);case"update":return this._doUpdate()}}}),this._visibilityOverrides=new Set,this._highlightIds=new Map,this._updateHighlight=h((async()=>this._proxy.setHighlight(Array.from(this._highlightIds.keys())))),this._uploadsLocked=!1,this._needsClusterSizeUpdate=!1,this.featureEffectView=new b,this._lastDefinitionExpression=null}destroy(){this._updateClusterSizeTask?.remove(),this._proxy?.destroy(),this._commandsQueue.destroy()}initialize(){this.addResolvingPromise(Promise.all([this._initProxy(),this._initServiceOptions()])),this.addHandles([this.on("valueRangesChanged",(e=>{this._set("_aggregateValueRanges",e.valueRanges)})),c((()=>this.featureEffect),(e=>{this.featureEffectView.featureEffect=e}),y)],"constructor"),this.featureEffectView.endTransitions()}async _initProxy(){const e=this.layer;if("isTable"in e&&e.isTable)throw new a("featurelayerview:table-not-supported","table feature layer can't be displayed",{layer:this.layer});if(("feature"===e.type||"subtype-group"===e.type)&&!w(e)?.operations.supportsQuery)throw new a("featurelayerview:query-not-supported","layer view requires a layer with query capability",{layer:e});this._proxy&&this._proxy.destroy();const t=this._createClientOptions();return this._set("_proxy",new L({client:t})),this._proxy.when()}async _initServiceOptions(){return this._set("_serviceOptions",await this._createServiceOptions()),this._serviceOptions}get _effectiveFeatureReduction(){if(!("featureReduction"in this.layer))return null;const e=this.layer.featureReduction;return e&&(!("maxScale"in e)||!e.maxScale||e.maxScale<this.view.scale)?e:null}get orderByFields(){return"stream"!==this._serviceOptions?.type?this._serviceOptions?.orderByFields:void 0}get labelsVisible(){const e="subtype-group"===this.layer.type?this.layer.sublayers.items:[this.layer];return!this.suspended&&e.some((e=>e.labelingInfo&&e.labelsVisible))}get labelingCollisionInfos(){const{tileRenderer:e,layer:t}=this;if(null==e)return null;const r="subtype-group"===this.layer.type?this.layer.sublayers.items:[this.layer],i=t.geometryType,s=!M(r),a={};if("subtype-group"!==t.type){if("heatmap"===e?.type)return null;const r=B(t.renderer);a[0]=r}return[{tileRenderer:e,vvEvaluators:a,deconflictionEnabled:s,geometryType:i,visible:!this.suspended}]}get queryMode(){return this._serviceOptions?.type}get renderingConfigHash(){if(!this.layer)return null;const e=this.availableFields,t=this.layer,r=this.view.floors,{definitionExpression:i}=t,s="subtype-group"!==this.layer.type&&this.layer.labelsVisible&&this.layer.labelingInfo,a="renderer"in t&&t.renderer,n="gdbVersion"in t?t.gdbVersion:void 0,o="historicMoment"in t?t.historicMoment?.getTime():void 0,{timeExtent:l}=this,u="customParameters"in t?JSON.stringify(t.customParameters):void 0,d="apiKey"in t?t.apiKey:void 0,h="stream"===t.type?`${JSON.stringify(t.geometryDefinition)}${t.definitionExpression}`:null,p=JSON.stringify(this.clips),c=this._effectiveFeatureReduction?.toJSON(),y="orderBy"in this.layer&&JSON.stringify(this.layer.orderBy),g="sublayers"in this.layer&&this.layer.sublayers.items.reduce(((e,t)=>e+`${t.visible?1:0}.${JSON.stringify(t.renderer)}.${t.labelsVisible}\n.${JSON.stringify(t.labelingInfo)}`),""),f="subtypeCode"in this.layer&&this.layer.subtypeCode;return JSON.stringify({orderBy:y,sublayerHash:g,subtypeCode:f,filterHash:null!=this.filter&&this.filter.toJSON(),effectHash:null!=this.featureEffect&&this.featureEffect.toJSON(),streamFilter:h,gdbVersion:n,definitionExpression:i,historicMoment:o,availableFields:e,renderer:a,labelingInfo:s,timeExtent:l,floors:r,clipsHash:p,featureReduction:c,customParameters:u,apiKey:d,timeZone:this.view.timeZone})}highlight(e){let t;e instanceof r?t=[e.getObjectId()]:"number"==typeof e||"string"==typeof e?t=[e]:s.isCollection(e)&&e.length>0?t=e.map((e=>e?.getObjectId())).toArray():Array.isArray(e)&&e.length>0&&(t="number"==typeof e[0]||"string"==typeof e[0]?e:e.map((e=>e?.getObjectId())));const a=t?.filter(i);return a?.length?(this._addHighlight(a),n((()=>this._removeHighlight(a)))):n()}hasHighlight(){return!!this._highlightIds.size}async hitTest(e,i){if(!this.tileRenderer)return null;const s=await this.tileRenderer.hitTest(i);if(0===s.length)return null;has("featurelayer-force-marker-text-draw-order")&&s.sort(((e,t)=>e-t));const{features:a,aggregates:n}=await this._proxy.getFeatures(s);return[...n.map((r=>this._createGraphicHit(e,t.fromJSON(r)))),...a.map((t=>this._createGraphicHit(e,r.fromJSON(t))))]}queryStatistics(){return this._proxy.queryStatistics()}async querySummaryStatistics(e,t,r){const i={...t,scale:this.view.scale};return this._proxy.querySummaryStatistics(this._cleanUpQuery(e),i,r)}async queryAggregateSummaryStatistics(e,t,r){const i={...t,scale:this.view.scale};return this._proxy.queryAggregateSummaryStatistics(this._cleanUpAggregateQuery(e),i,r)}async queryUniqueValues(e,t,r){const i={...t,scale:this.view.scale};return this._proxy.queryUniqueValues(this._cleanUpQuery(e),i,r)}async queryAggregateUniqueValues(e,t,r){const i={...t,scale:this.view.scale};return this._proxy.queryAggregateUniqueValues(this._cleanUpAggregateQuery(e),i,r)}async queryClassBreaks(e,t,r){const i={...t,scale:this.view.scale};return this._proxy.queryClassBreaks(this._cleanUpQuery(e),i,r)}async queryAggregateClassBreaks(e,t,r){const i={...t,scale:this.view.scale};return this._proxy.queryAggregateClassBreaks(this._cleanUpAggregateQuery(e),i,r)}async queryHistogram(e,t,r){const i={...t,scale:this.view.scale};return this._proxy.queryHistogram(this._cleanUpQuery(e),i,r)}async queryAggregateHistogram(e,t,r){const i={...t,scale:this.view.scale};return this._proxy.queryAggregateHistogram(this._cleanUpAggregateQuery(e),i,r)}queryFeatures(e,t){return this.queryFeaturesJSON(e,t).then((e=>{const t=x.fromJSON(e);return t.features.forEach((e=>this._setLayersForFeature(e))),t}))}queryVisibleFeatures(e,t){return this._proxy.queryVisibleFeatures(this._cleanUpQuery(e),t).then((e=>{const t=x.fromJSON(e);return t.features.forEach((e=>this._setLayersForFeature(e))),t}))}async queryAggregates(e,t){const r=await this._proxy.queryAggregates(this._cleanUpAggregateQuery(e),t),i=R.fromJSON(r);return i.features.forEach((e=>this._setLayersForFeature(e))),i}queryAggregateIds(e,t){return this._proxy.queryAggregateIds(this._cleanUpAggregateQuery(e),t)}queryAggregateCount(e,t){return this._proxy.queryAggregateCount(this._cleanUpAggregateQuery(e),t)}queryAggregateJSON(e,t){return this._proxy.queryAggregates(this._cleanUpAggregateQuery(e),t)}queryFeaturesJSON(e,t){return this._proxy.queryFeatures(this._cleanUpQuery(e),t)}queryObjectIds(e,t){return this._proxy.queryObjectIds(this._cleanUpQuery(e),t)}queryFeatureCount(e,t){return this._proxy.queryFeatureCount(this._cleanUpQuery(e),t)}queryExtent(e,t){return this._proxy.queryExtent(this._cleanUpQuery(e),t).then((e=>({count:e.count,extent:J.fromJSON(e.extent)})))}setVisibility(e,t){t?this._visibilityOverrides.delete(e):this._visibilityOverrides.add(e),this._update()}update(e){if(!this._tileStrategy||!this.tileRenderer)return;const{hasMissingTiles:t,added:r,removed:i}=this._tileStrategy.update(e);(r.length||i.length)&&this._proxy.updateTiles({added:r,removed:i}),t&&this.requestUpdate(),this.notifyChange("updating")}attach(){this.view.timeline.record(`${this.layer.title} (FeatureLayer) Attach`),this._tileStrategy=new Q({acquireTile:e=>this._acquireTile(e),releaseTile:e=>this._releaseTile(e),tileInfoView:this.view.featuresTilingScheme,buffer:0}),this.addAttachHandles(c((()=>this.renderingConfigHash),(()=>this._update()),g)),"stream"!==this.layer.type&&this.addAttachHandles(this.layer.on("edits",(e=>this._edit(e))))}detach(){this._commandsQueue.clear(),this._proxy?.stop(),this.container.removeAllChildren(),this.tileRenderer?.uninstall(this.container),this.tileRenderer=null,this._tileStrategy=u(this._tileStrategy),this._tileRendererHash=null}moveStart(){this.requestUpdate()}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}isUpdating(){const e="renderer"in this.layer&&null!=this.layer.renderer,t=this._commandsQueue.updating,r=null!=this._updatingRequiredFieldsPromise,i=!this._proxy||!this._proxy.isReady,s=this._pipelineIsUpdating,a=null==this.tileRenderer||this.tileRenderer?.updating,n=e&&(t||r||i||s||this.dataUpdating||a);return has("esri-2d-log-updating")&&console.log(`Updating FLV2D (${this.layer.id}): ${n}\n -> hasRenderer ${e}\n -> hasPendingCommand ${t}\n -> updatingRequiredFields ${r}\n -> updatingProxy ${i}\n -> updatingPipeline ${s}\n -> updatingData: ${this.dataUpdating}\n -> updatingTileRenderer ${a}\n`),n}_createClientOptions(){return{setUpdating:e=>{this._set("_pipelineIsUpdating",e)},setDataUpdating:e=>{this._set("dataUpdating",e)},emitEvent:e=>{this.emit(e.name,e.event)}}}async _detectQueryMode(e){const t="path"in e,{layer:r}=this,i="editingInfo"in r&&r.editingInfo?.lastEditDate,s="refreshInterval"in r&&!!r.refreshInterval,a=!i&&s,n=w(r);if(t&&("feature"===r.type||"subtype-group"===r.type)&&"point"===r.geometryType&&n?.query.supportsPagination&&!n?.operations.supportsEditing&&!a&&has("featurelayer-snapshot-enabled"))try{const e=await r.queryFeatureCount();if(e<=has("featurelayer-snapshot-point-min-threshold"))return{mode:"snapshot",featureCount:e};const t=has("featurelayer-snapshot-point-max-threshold"),i=has("featurelayer-snapshot-point-coverage"),s=this.view.extent,a=r.fullExtent,n=a?.clone().intersection(s),o=null!=n?n.width*n.height:0,l=a?.width*a?.height;if(e<=t&&(0===l?0:o/l)>=i)return{mode:"snapshot",featureCount:e}}catch(o){l.getLogger(this).warn("mapview-feature-layer","Encountered an error when querying for featureCount",{error:o})}return{mode:"on-demand"}}async _createServiceOptions(){const e=this.layer;if("stream"===e.type)return null;const t=w(e),{capabilities:r,objectIdField:i}=e,s=e.fieldsIndex.toJSON(),a=s.fields,n=null!=e.fullExtent?e.fullExtent.toJSON():null,l=K(e),u="timeInfo"in e&&e.timeInfo?.toJSON()||null,d=e.spatialReference?e.spatialReference.toJSON():null,h="feature"===e.type?e.globalIdField:null;let p;"ogc-feature"===e.type?p=e.source.getSource():D(e.source)?p=await e.source.openPorts():e.parsedUrl&&(p=o(e.parsedUrl),"dynamicDataSource"in e&&e.dynamicDataSource&&(p.query={layer:JSON.stringify({source:e.dynamicDataSource})}));const c="datesInUnknownTimezone"in this.layer&&this.layer.datesInUnknownTimezone,y=("subtypeField"in this.layer?this.layer.subtypeField:null)??null,{mode:g,featureCount:f}=await this._detectQueryMode(p);let m=this.layer.objectIdField;if("feature"===this.layer.type&&null!=this.layer.orderBy&&this.layer.orderBy.length){const e=!this.layer.orderBy[0].valueExpression&&this.layer.orderBy[0].field;e&&(m=e)}return{type:g,typeIdField:"typeIdField"in e&&e.typeIdField||void 0,types:"types"in e&&e.types?.map((e=>e.toJSON()))||void 0,timeReferenceUnknownClient:c,subtypeField:y,featureCount:f,globalIdField:h,maxRecordCount:r.query.maxRecordCount,tileMaxRecordCount:r.query.tileMaxRecordCount,capabilities:r,effectiveCapabilities:t,fields:a,fieldsIndex:s,fullExtent:n,geometryType:l,objectIdField:i,source:p,timeInfo:u,spatialReference:d,orderByFields:m}}async _createMemoryServiceOptions(e){const t=await e.openPorts();return{...this._createServiceOptions(),type:"memory",source:t}}_cleanUpQuery(e){const t=S.from(e)||this.createQuery();return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t}_cleanUpAggregateQuery(e){const t=S.from(e)||this.createAggregateQuery();return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t}async _update(){return this._commandsQueue.push({type:"update"})}async _edit(e){if(this.suspended)return void this._clearTiles();return this._validateEdit(e)?this._commandsQueue.push({type:"edit",edits:e}):void 0}async doRefresh(e){if(this.attached&&this._tileStrategy.tileKeys().length)return this.suspended&&e?void this._clearTiles():this._commandsQueue.push({type:"refresh",dataChanged:e})}_clearTiles(){this._tileStrategy.tileKeys().length&&(this._proxy.updateTiles({added:[],removed:this._tileStrategy.tileKeys()}),this._tileStrategy.clear(),this.requestUpdate(),this._commandsQueue.clear(),this._update())}_validateEdit(e){const t="globalIdField"in this.layer&&this.layer.globalIdField,r=e.deletedFeatures.some((e=>-1===e.objectId||!e.objectId)),i=t&&this.availableFields.includes(t);return r&&!i?(l.getLogger(this).error(new a("mapview-apply-edits",`Editing the specified service requires the layer's globalIdField, ${t} to be included the layer's outFields for updates to be reflected on the map`)),null):e}async _doUpdate(){try{if(this.destroyed||!this._hasRequiredSupport(this.layer)||!this._tileStrategy)return;const{featureEffectView:t,filter:r}=this;if(await this._updateRequiredFields(),this.destroyed)return;const{renderer:i}=this._getEffectiveRenderer();this._set("_effectiveRenderer",i);const s=this._createSchemaConfig(),a=this._createConfiguration(s,r,t.filter),n=this._lastDefinitionExpression!==a.schema.source.definitionExpression;this._lastDefinitionExpression=a.schema.source.definitionExpression;const o=a.schema.tileRenderer,u=this._createTileRendererHash(o);if("snapshot"===this._serviceOptions.type&&(a.schema.source.initialFeatureCount=this._serviceOptions.featureCount),u!==this._tileRendererHash){this._initTileRenderer(o,i);const e=this.layer,t="stream"===e.type?await this._initServiceOptions():this._serviceOptions;this.tileRenderer.onConfigUpdate(i),"stream"!==e.type&&D(e.source)&&(t.source=await e.source.openPorts());const r={added:this._tileStrategy.tileKeys(),removed:[]};has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Proxy startup"),await this._proxy.startup(this.view.featuresTilingScheme,a,t,r),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Finished proxy startup"),this.hasHighlight()&&(has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Updating highlight"),await this._proxy.setHighlight(Array.from(this._highlightIds.keys())),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Finished highlight update")),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: onConfigUpdate start"),this.tileRenderer.onConfigUpdate(i),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: onConfigUpdate end")}else{"snapshot"===this._serviceOptions.type&&n&&(a.schema.source.changedFeatureCount=await this.layer.queryFeatureCount()),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Updating proxy");const t=await this._proxy.update(a);has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Finished proxy update"),(t.mesh||t.targets?.aggregate)&&(has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Locking GPU Uploads"),this._lockGPUUploads());try{has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Applying update to proxy"),await this._proxy.applyUpdate(t),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D: Finished applying update to proxy")}catch(e){p(e)||l.getLogger(this).error(e)}(t.mesh||t.targets?.aggregate)&&this._unlockGPUUploads(),this.tileRenderer.onConfigUpdate(i),this._updateClusterSizeVariable(),this._forceAttributeTextureUpload()}this._tileRendererHash=u,this.tileRenderer.invalidateLabels(),this.requestUpdate()}catch(e){}}async _doEdit(e){try{await this._proxy.onEdits(e)}catch(t){p(t),0}}async _doRefresh(e){this._lockGPUUploads();try{let t;e&&"snapshot"===this.queryMode&&"queryFeatureCount"in this.layer&&(t=await this.layer.queryFeatureCount()),await this._proxy.refresh({dataChanged:e,featureCount:t})}catch(t){p(t),0}this._unlockGPUUploads(),this._effectiveFeatureReduction&&this._updateClusterSizeVariable()}_updateClusterSizeVariable(){this._needsClusterSizeUpdate&&(this.tileRenderer.onConfigUpdate(this._effectiveRenderer),this._needsClusterSizeUpdate=!1)}_createUpdateClusterSizeTask(e,t){return c((()=>this._aggregateValueRanges),(r=>{this._updateClusterEffectiveRendererSizeVariable(e,t,r),this._needsClusterSizeUpdate=!0,this._uploadsLocked||this._updateClusterSizeVariable()}))}async _updateClusterEffectiveRendererSizeVariable(e,t,r){if(e.dynamicClusterSize&&"visualVariables"in e&&e.visualVariables){const i=V(e.visualVariables);if(null!=i&&"cluster_count"===i.field){const s=e.visualVariables.indexOf(i);e.visualVariables[s]=E(t,r);const a=e.clone();a.dynamicClusterSize=!0,this._set("_effectiveRenderer",a)}}}_getEffectiveRenderer(){const e=this.layer,t="renderer"in e?e.renderer:null,r=this._effectiveFeatureReduction;if(this._updateClusterSizeTask=d(this._updateClusterSizeTask),r&&"renderer"in r&&r.renderer&&!r.renderer.authoringInfo?.isAutoGenerated){const e=r.fields;if("cluster"===r.type){const{renderer:t,didInject:i}=O(r.renderer,r,this._aggregateValueRanges);return i&&(this._updateClusterSizeTask=this._createUpdateClusterSizeTask(t,r)),{renderer:t,aggregateFields:e,featureReduction:r}}return{renderer:r.renderer,aggregateFields:e,featureReduction:r}}if(r&&"cluster"===r.type&&t&&T(t)){const e=r,i=[],s=j(i,t,e,this._aggregateValueRanges,!0);return this._updateClusterSizeTask=this._createUpdateClusterSizeTask(s,e),{renderer:s,aggregateFields:i,featureReduction:r}}return{renderer:t,aggregateFields:[],featureReduction:null}}_acquireTile(e){const t=this.tileRenderer.acquireTile(e);return t.once("attach",(()=>{this.requestUpdate()})),t}_releaseTile(e){this.tileRenderer.releaseTile(e)}_initTileRenderer(e,t){const r=I(e,{layerView:this,tileInfoView:this.view.featuresTilingScheme,layer:this.layer});return this.tileRenderer&&(this._tileStrategy.clear(),this.tileRenderer.uninstall(this.container),this.tileRenderer=u(this.tileRenderer)),this.destroyed?null:(this._proxy.tileRenderer=r,this._set("tileRenderer",r),this.tileRenderer.install(this.container),this.tileRenderer.onConfigUpdate(t),this.requestUpdate(),this.tileRenderer)}_createTileRendererHash(e){return`${e.type}`}get hasFilter(){const e=!!("floorInfo"in this.layer&&this.layer.floorInfo&&this.view.floors&&this.view.floors.length);return!!this.filter||e||!!this._visibilityOverrides.size||!!this.timeExtent}_injectOverrides(e){const t=null!=e?e.timeExtent:null,r=null!=this.timeExtent&&null!=t?this.timeExtent.intersection(t):this.timeExtent||t;let i=null;const s="floorInfo"in this.layer&&this.layer.floorInfo;if(s){const t=null!=e?e.where:null;i=this._addFloorFilterClause(t)}if(!this._visibilityOverrides.size&&!r&&!s)return null!=e?e.toJSON():null;(e=null!=e&&e.clone()||new v).timeExtent=r,i&&(e.where=i);const a=e.toJSON();return a.hiddenIds=Array.from(this._visibilityOverrides),a}_addFloorFilterClause(e){const t=this.layer;let r=e||"";if("floorInfo"in t&&t.floorInfo){let e=this.view.floors;if(!e?.length)return r;t.floorInfo.viewAllLevelIds?.length&&(e=t.floorInfo.viewAllLevelIds);const i=e.filter((e=>""!==e)).map((e=>"'"+e+"'"));i.push("''");const s=t.floorInfo.floorField;let a="("+s+" IN ({ids}) OR "+s+" IS NULL)";if(a=a.replace("{ids}",i.join(", ")),null!=r&&r.includes(s)){let e=new RegExp("AND \\("+s+".*NULL\\)","g");r=r.replace(e,""),e=new RegExp("\\("+s+".*NULL\\)","g"),r=r.replace(e,""),r=r.replaceAll(/\s+/g," ").trim()}r=""!==r?"("+r+") AND "+a:a}return""!==r?r:null}_createConfiguration(e,t,r){const i="feature"===this.layer.type&&this.layer.historicMoment?this.layer.historicMoment.getTime():void 0,s="feature"===this.layer.type?this.layer.gdbVersion??void 0:void 0,a=new Array(F),n=this._injectOverrides(t);a[0]=n,a[1]=null!=r?r.toJSON():null;const o=C(e);if(null==o)return null;const l=z("2d");return{availableFields:this.availableFields,gdbVersion:s,historicMoment:i,devicePixelRatio:window.devicePixelRatio||1,filters:a,schema:o,supportsTextureFloat:l.supportsTextureFloat,maxTextureSize:l.maxTextureSize,timeZone:this.view.timeZone}}_hasRequiredSupport(e){return!("renderer"in e)||q(e.renderer)}_lockGPUUploads(){this.tileRenderer&&(this._uploadsLocked=!0,this.tileRenderer.lockGPUUploads())}_unlockGPUUploads(){this.tileRenderer&&(this._uploadsLocked=!1,this.tileRenderer.unlockGPUUploads())}_forceAttributeTextureUpload(){this.tileRenderer&&this.tileRenderer.forceAttributeTextureUpload()}_createSchemaConfig(){const e=this.layer;return{renderer:"renderer"in e?e.renderer:null,spatialReference:e.spatialReference,timeExtent:"timeExtent"in e?e.timeExtent:null,definitionExpression:e.definitionExpression,featureReduction:this._effectiveFeatureReduction,fields:e.fields,geometryType:e.geometryType,historicMoment:"historicMoment"in e?e.historicMoment:null,labelsVisible:"labelsVisible"in e&&e.labelsVisible,labelingInfo:"labelingInfo"in e?e.labelingInfo:null,availableFields:this.availableFields,featureEffect:this.featureEffect,filter:this.filter,gdbVersion:"gdbVersion"in e?e.gdbVersion:null,pixelBuffer:0,orderBy:"orderBy"in e&&e.orderBy?e.orderBy:null,customParameters:{..."customParameters"in e?e.customParameters:void 0,token:"apiKey"in e?e.apiKey??void 0:void 0},subtypeCode:"subtypeCode"in e?e.subtypeCode:void 0,subtypeField:"subtypeField"in e?e.subtypeField:void 0}}_addHighlight(e){for(const t of e)if(this._highlightIds.has(t)){const e=this._highlightIds.get(t);this._highlightIds.set(t,e+1)}else this._highlightIds.set(t,1);this._updateHighlight().catch((e=>{p(e)||l.getLogger(this).error(e)}))}_removeHighlight(e){for(const t of e)if(this._highlightIds.has(t)){const e=this._highlightIds.get(t)-1;0===e?this._highlightIds.delete(t):this._highlightIds.set(t,e)}this._updateHighlight().catch((e=>{p(e)||l.getLogger(this).error(e)}))}_setLayersForFeature(e){const t=this.layer;e.layer=t,e.sourceLayer=t}_createGraphicHit(e,t){return this._setLayersForFeature(t),null!=t.geometry&&(t.geometry.spatialReference=this.view.spatialReference),{type:"graphic",graphic:t,layer:this.layer,mapPoint:e}}};e([m()],Z.prototype,"_serviceOptions",void 0),e([m()],Z.prototype,"_proxy",void 0),e([m()],Z.prototype,"_pipelineIsUpdating",void 0),e([m()],Z.prototype,"_effectiveRenderer",void 0),e([m()],Z.prototype,"_effectiveFeatureReduction",null),e([m()],Z.prototype,"_aggregateValueRanges",void 0),e([m()],Z.prototype,"_commandsQueue",void 0),e([m()],Z.prototype,"featureEffectView",void 0),e([m()],Z.prototype,"labelsVisible",null),e([m()],Z.prototype,"labelingCollisionInfos",null),e([m({readOnly:!0})],Z.prototype,"queryMode",null),e([m()],Z.prototype,"renderingConfigHash",null),e([m()],Z.prototype,"tileRenderer",void 0),e([m()],Z.prototype,"updating",void 0),Z=e([_($)],Z);const W=Z;export{W as default};
|