@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
|
@@ -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 i from"../../core/Error.js";import{
|
|
5
|
+
import i from"../../core/Error.js";import{numericTypes as e,isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import{verifyBasicFieldValidity as s,verifyFieldType as a,verifyFilterValidty as o}from"./support/utils.js";import{verifyBinningParams as t}from"../support/binningUtils.js";import{dateTypes as n,getNormalizationType as l,getFieldsList as p,isAnyDateField as m}from"../support/utils.js";import{binningCapableLayerTypes as f,defaultSupportedLayerTypes as d,createLayerAdapter as h,getLayerTypeLabels as u}from"../support/adapters/support/layerUtils.js";const w=[...n,"time-only",...e];async function c(e){if(!e?.layer||!(e.field||e.valueExpression||e.sqlExpression))throw new i("histogram:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(e.valueExpression&&!e.sqlExpression&&!e.view)throw new i("histogram:missing-parameters","View is required when 'valueExpression' is specified");e.forBinning&&t(e,"histogram");const{layer:n,...c}=e,g=e.forBinning?f:d,v=h(n,g,e.forBinning);if(!v)throw new i("histogram:invalid-parameters","'layer' must be one of these types: "+u(g).join(", "));const x={layerAdapter:v,...c};x.normalizationType=l(x);const E=null!=x.signal?{signal:x.signal}:null;await v.load(E);const y=x.valueExpression||x.sqlExpression,q=x.field,j=q?v.getField(q):null,z=!x.classificationMethod||"equal-interval"===x.classificationMethod,M=await p({field:q,normalizationField:x.normalizationField,valueExpression:x.valueExpression}),B=s(v,M,"histogram:invalid-parameters");if(B)throw B;if(j){const e=a(v,j,"histogram:invalid-parameters",w);if(e)throw e;if(m(j)||r(j)){if(x.normalizationType)throw new i("histogram:invalid-parameters","Normalization is not allowed for date fields");if(!z)throw new i("histogram:invalid-parameters","'classificationMethod' other than 'equal-interval' is not allowed for date fields")}}else if(y){if(x.normalizationType)throw new i("histogram:invalid-parameters","Normalization is not allowed when 'valueExpression' or 'sqlExpression' is specified");if(!z)throw new i("histogram:invalid-parameters","'classificationMethod' other than 'equal-interval' is not allowed when 'valueExpression' or 'sqlExpression' is specified")}const F=o(x.filter,"histogram:invalid-parameters");if(F)throw F;return x}async function g(i){const{layerAdapter:e,...r}=await c(i);return e.histogram(r)}export{g 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 s from"../../core/Error.js";import{numericTypes as i,
|
|
5
|
+
import s from"../../core/Error.js";import{numericTypes as i,isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import{verifyBasicFieldValidity as t,verifyFieldType as e,verifyFilterValidty as a}from"./support/utils.js";import{verifyBinningParams as n}from"../support/binningUtils.js";import{dateTypes as o,getNormalizationType as l,getFieldsList as m,isAnyDateField as p}from"../support/utils.js";import{binningCapableLayerTypes as u,defaultSupportedLayerTypes as f,createLayerAdapter as d,getLayerTypeLabels as c}from"../support/adapters/support/layerUtils.js";const y=[...i,...o,"time-only","string"];async function w(i){if(!i?.layer||!(i.field||i.valueExpression||i.sqlExpression))throw new s("summary-statistics:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(i.valueExpression&&!i.sqlExpression&&!i.view)throw new s("summary-statistics:missing-parameters","View is required when 'valueExpression' is specified");i.forBinning&&n(i,"summary-statistics");const{layer:o,...w}=i,v=i.forBinning?u:f,x=d(o,v,i.forBinning);if(!x)throw new s("summary-statistics:invalid-parameters","'layer' must be one of these types: "+c(v).join(", "));const E={layerAdapter:x,...w};E.normalizationType=l(E);const g=null!=E.signal?{signal:E.signal}:null;await x.load(g);const h=E.field,j=E.normalizationType,q=E.valueExpression||E.sqlExpression,z=h?x.getField(h):null,B=await m({field:E.field,normalizationField:E.normalizationField,valueExpression:E.valueExpression}),F=t(x,B,"summary-statistics:invalid-parameters");if(F)throw F;if(z){const i=e(x,z,"summary-statistics:invalid-parameters",y);if(i)throw i;if((p(z)||r(z))&&j)throw new s("summary-statistics:invalid-parameters","Normalization is not allowed for date fields")}else if(q&&j)throw new s("summary-statistics:invalid-parameters","Normalization is not allowed when 'valueExpression' or 'sqlExpression' is specified");const U=a(E.filter,"summary-statistics:invalid-parameters");if(U)throw U;return E}async function v(s){const{layerAdapter:i,...r}=await w(s);return i.summaryStatistics(r)}export{v 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{getDataValues as i,quantizeFeatures as e,calculateHeatmapStats as a}from"./utils.js";import{isNullCountSupported as n,calculateStringStatistics as o,calculateStatistics as t,processSummaryStatisticsResult as l,calculateUniqueValuesCount as s,createUVResult as r,calculateClassBreaks as m,resolveCBResult as f,calculateHistogram as u}from"../../../statistics/utils.js";async function d(e){const{attribute:a,features:s}=e,{normalizationType:r,normalizationField:m,minValue:f,maxValue:u,fieldType:d}=a,p=await i({field:a.field,valueExpression:a.valueExpression,normalizationType:r,normalizationField:m,normalizationTotal:a.normalizationTotal,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},s),v=n({normalizationType:r,normalizationField:m,minValue:f,maxValue:u}),c={value:.5,fieldType:d},z="esriFieldTypeString"===d?o({values:p,supportsNullCount:v,percentileParams:c}):t({values:p,minValue:f,maxValue:u,useSampleStdDev:!r,supportsNullCount:v,percentileParams:c});return l(z,"esriFieldTypeDate"===d)}async function p(e){const{attribute:a,features:n}=e,o=await i({field:a.field,field2:a.field2,field3:a.field3,fieldDelimiter:a.fieldDelimiter,valueExpression:a.valueExpression,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},n),t=s(o);return r(t,a.domains,a.returnAllCodedValues,a.fieldDelimiter)}async function v(e){const{attribute:a,features:n}=e,{field:o,normalizationType:t,normalizationField:l,normalizationTotal:s,classificationMethod:r}=a,u=await i({field:o,valueExpression:a.valueExpression,normalizationType:t,normalizationField:l,normalizationTotal:s,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},n),d=m(u,{field:o,normalizationType:t,normalizationField:l,normalizationTotal:s,classificationMethod:r,standardDeviationInterval:a.standardDeviationInterval,numClasses:a.numClasses,minValue:a.minValue,maxValue:a.maxValue});return f(d,r)}async function c(e){const{attribute:a,features:n}=e,{field:o,normalizationType:t,normalizationField:l,normalizationTotal:s,classificationMethod:r}=a,m=await i({field:o,valueExpression:a.valueExpression,normalizationType:t,normalizationField:l,normalizationTotal:s,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},n);return u(m,{field:o,normalizationType:t,normalizationField:l,normalizationTotal:s,classificationMethod:r,standardDeviationInterval:a.standardDeviationInterval,numBins:a.numBins,minValue:a.minValue,maxValue:a.maxValue})}async function z(i){const{attribute:n,features:o}=i,{field:t,radius:l,fieldOffset:s,transform:r,spatialReference:m}=n,f=n.size??[0,0],u=e(o??[],r,m,f),{count:d,min:p,max:v,mean:c,stdDev:z}=a(u,l??void 0,s,t,f[0],f[1]);return{count:d,min:p,max:v,avg:c,stddev:z}}export{v as classBreaks,z as heatmapStatistics,c as histogram,d as summaryStatistics,p as uniqueValues};
|
|
5
|
+
import{getDataValues as i,quantizeFeatures as e,calculateHeatmapStats as a}from"./utils.js";import{isNullCountSupported as n,calculateStringStatistics as o,calculateStatistics as t,processSummaryStatisticsResult as l,calculateUniqueValuesCount as s,createUVResult as r,calculateClassBreaks as m,resolveCBResult as f,calculateHistogram as u}from"../../../statistics/utils.js";async function d(e){const{attribute:a,features:s}=e,{normalizationType:r,normalizationField:m,minValue:f,maxValue:u,fieldType:d}=a,p=await i({field:a.field,valueExpression:a.valueExpression,normalizationType:r,normalizationField:m,normalizationTotal:a.normalizationTotal,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},s),v=n({normalizationType:r,normalizationField:m,minValue:f,maxValue:u}),c={value:.5,fieldType:d},z="esriFieldTypeString"===d?o({values:p,supportsNullCount:v,percentileParams:c}):t({values:p,minValue:f,maxValue:u,useSampleStdDev:!r,supportsNullCount:v,percentileParams:c});return l(z,"esriFieldTypeDate"===d)}async function p(e){const{attribute:a,features:n}=e,o=await i({field:a.field,field2:a.field2,field3:a.field3,fieldDelimiter:a.fieldDelimiter,valueExpression:a.valueExpression,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},n,!1),t=s(o);return r(t,a.domains,a.returnAllCodedValues,a.fieldDelimiter)}async function v(e){const{attribute:a,features:n}=e,{field:o,normalizationType:t,normalizationField:l,normalizationTotal:s,classificationMethod:r}=a,u=await i({field:o,valueExpression:a.valueExpression,normalizationType:t,normalizationField:l,normalizationTotal:s,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},n),d=m(u,{field:o,normalizationType:t,normalizationField:l,normalizationTotal:s,classificationMethod:r,standardDeviationInterval:a.standardDeviationInterval,numClasses:a.numClasses,minValue:a.minValue,maxValue:a.maxValue});return f(d,r)}async function c(e){const{attribute:a,features:n}=e,{field:o,normalizationType:t,normalizationField:l,normalizationTotal:s,classificationMethod:r}=a,m=await i({field:o,valueExpression:a.valueExpression,normalizationType:t,normalizationField:l,normalizationTotal:s,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},n);return u(m,{field:o,normalizationType:t,normalizationField:l,normalizationTotal:s,classificationMethod:r,standardDeviationInterval:a.standardDeviationInterval,numBins:a.numBins,minValue:a.minValue,maxValue:a.maxValue})}async function z(i){const{attribute:n,features:o}=i,{field:t,radius:l,fieldOffset:s,transform:r,spatialReference:m}=n,f=n.size??[0,0],u=e(o??[],r,m,f),{count:d,min:p,max:v,mean:c,stdDev:z}=a(u,l??void 0,s,t,f[0],f[1]);return{count:d,min:p,max:v,avg:c,stddev:z}}export{v as classBreaks,z as heatmapStatistics,c as histogram,d as summaryStatistics,p as uniqueValues};
|
|
@@ -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"../../../geometry.js";import e from"../../../core/Error.js";import{pt2px as t}from"../../../core/screenUtils.js";import n from"../../../geometry/SpatialReference.js";import{quantizePoint as
|
|
5
|
+
import"../../../geometry.js";import e from"../../../core/Error.js";import{pt2px as t}from"../../../core/screenUtils.js";import{millisecondsPerTimeUnit as n}from"../../../core/timeUtils.js";import r from"../../../geometry/SpatialReference.js";import{quantizePoint as o}from"../../../geometry/support/quantizationUtils.js";import{isWrappable as i,getInfo as s}from"../../../geometry/support/spatialReferenceUtils.js";import{isTimeOnlyField as l,isNumericField as u,numericTypes as a}from"../../../layers/support/fieldUtils.js";import{evaluateDensityKernel as f,createValueFunction as m}from"../../../renderers/support/heatmapUtils.js";import{isAnyDateField as c}from"../../support/utils.js";import{processNullValue as d,getNormalizedValue as p}from"../../../statistics/utils.js";import{loadArcade as h}from"../../../support/arcadeOnDemand.js";import y from"../../../geometry/Point.js";let $=null;const g=/^(?<hh>([0-1][0-9])|([2][0-3])):(?<mm>[0-5][0-9])(:(?<ss>[0-5][0-9]))?([.](?<ms>\d+))?$/;function I(e,t,n){return e.x<0?e.x+=t:e.x>n&&(e.x-=t),e}function j(e,t,n,r){const l=i(n)?s(n):null,u=l?Math.round((l.valid[1]-l.valid[0])/t.scale[0]):null;return e.map((e=>{const n=new y(e.geometry);return o(t,n,n,n.hasZ,n.hasM),e.geometry=l?I(n,u??0,r[0]):n,e}))}function x(e,n=18,r,o,i,s){const l=new Float64Array(i*s);n=Math.round(t(n));let u=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY,c=0,d=0,p=0,h=0;const y=m(o,r);for(const{geometry:t,attributes:m}of e){const{x:e,y:r}=t,o=Math.max(0,e-n),$=Math.max(0,r-n),g=Math.min(s,r+n),I=Math.min(i,e+n),j=+y(m);for(let t=$;t<g;t++)for(let s=o;s<I;s++){const o=t*i+s,m=f(s-e,t-r,n),y=l[o];c=l[o]+=m*j;const $=c-y;d+=$,p+=$*$,c<u&&(u=c),c>a&&(a=c),h++}}if(!h)return{mean:0,stddev:0,min:0,max:0,mid:0,count:0};const $=(a-u)/2;return{mean:d/h,stdDev:Math.sqrt((p-d*d/h)/h),min:u,max:a,mid:$,count:h}}function w(e){const t=g.exec(e);if(!t)return null;const{hh:r,mm:o,ss:i,ms:s}=t.groups;return Number(r)*n.hours+Number(o)*n.minutes+Number(i)*n.seconds+Number(s||0)}async function b(e,t,n=!0){if(!t)return[];const{field:o,field2:i,field3:s,fieldDelimiter:u,fieldInfos:a,timeZone:f}=e,m=o&&a?.find((e=>e.name.toLowerCase()===o.toLowerCase())),y=!!m&&l(m),g=!!m&&c(m),I=e.valueExpression,j=e.normalizationType,x=e.normalizationField,b=e.normalizationTotal,F=[],N=e.viewInfoParams;let v=null,E=null;if(I){if(!$){const{arcadeUtils:e}=await h();$=e}$.hasGeometryOperations(I)&&await $.enableGeometryOperations(),v=$.createFunction(I),E=N?$.getViewInfo({viewingMode:N.viewingMode,scale:N.scale,spatialReference:new r(N.spatialReference)}):null}const U=e.fieldInfos,M=!(t[0]&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass)&&U?{fields:U}:null;return t.forEach((e=>{const t=e.attributes;let r;if(I){const t=M?{...e,layer:M}:e,n=$.createExecContext(t,E,f);r=$.executeFunction(v,n)}else t&&(r=t[o],i?(r=`${d(r)}${u}${d(t[i])}`,s&&(r=`${r}${u}${d(t[s])}`)):"string"==typeof r&&n&&(g?r=r?new Date(r).getTime():null:y&&(r=r?w(r):null)));if(j&&"number"==typeof r&&isFinite(r)){const e=t&&parseFloat(t[x]);r=p(r,j,e,b)}F.push(r)})),F}function F(e){const t=e.field,n=e.normalizationType,r=e.normalizationField;let o;return"field"===n?o="(NOT "+r+" = 0)":"log"!==n&&"natural-log"!==n&&"square-root"!==n||(o=`(${t} > 0)`),o}function N(e,t,n){const r=null!=t?e+" >= "+t:"",o=null!=n?e+" <= "+n:"";let i="";return i=r&&o?U(r,o):r||o,i?"("+i+")":""}function v(t,n,r,o){let i;return n?n.name!==t.objectIdField&&o.includes(n.type)||(i=new e(r,"'field' should be one of these types: "+o.join(","))):i=new e(r,"'field' is not defined in the layer schema"),i}function E(t,n,r){let o;return n?n.name!==t.objectIdField&&u(n)||(o=new e(r,"'field' should be one of these numeric types: "+a.join(","))):o=new e(r,"'field' is not defined in the layer schema"),o}function U(e,t){let n=null!=e?e:"";return null!=t&&t&&(n=n?"("+n+") AND ("+t+")":t),n}function M(t,n){if(t&&"intersects"!==t.spatialRelationship)return new e(n,"Only 'intersects' spatialRelationship is supported for featureFilter")}function T(t,n,r){const o=z({layer:t,fields:n});if(o.length)return new e(r,"Unknown fields: "+o.join(", ")+". You can only use fields defined in the layer schema");const i=O({layer:t,fields:n});return i.length?new e(r,"Unsupported fields: "+i.join(", ")+". You can only use fields that can be fetched i.e. AdapterFieldUsageInfo.supportsStatistics must be true"):void 0}function z(e){const t=e.layer;return e.fields.filter((e=>!t.getField(e)))}function O(e){const t=e.layer;return e.fields.filter((e=>{const n=t.getFieldUsageInfo(e);return!n||!n.supportsStatistics}))}function R(e,t,n){const r=[],o=[],i=[],s=[],l=[];e.forEach(((e,t)=>{const u=e.field?"field":"expression",a=e.field||e.valueExpression;e.field?(l.push(a),o.push(`var ${u}${t} = Number($feature["${a}"]);`)):(r.push(`function getValueForExpr${t}() {\n ${a} \n}`),o.push(`var ${u}${t} = Number(getValueForExpr${t}());`)),n||i.push(`${u}${t} = IIf(${u}${t} < 0, 0, ${u}${t});`),s.push(`${u}${t}`)}));let u="return sum;";const a=r.length?null:l.reduce(((e,t)=>`${e} + ${t}`));let f=null;t||n?t?n||(u="return IIf(sum >= 0, sum, null);",a&&(f=`(( ${a} ) >= 0)`)):(u="return IIf(sum != 0, sum, null);",a&&(f=`(( ${a} ) <> 0)`)):(u="return IIf(sum > 0, sum, null);",a&&(f=`(( ${a} ) > 0)`));return{valueExpression:[r.length?r.join("\n"):"",o.join("\n"),i.join("\n"),`var sum = ${s.join(" + ")};`,u].filter(Boolean).join("\n\n"),sqlExpression:a,sqlWhere:f}}export{x as calculateHeatmapStats,b as getDataValues,N as getRangeExpr,F as getSQLFilterForNormalization,R as getSumOfAttributesExpr,U as mergeWhereClauses,j as quantizeFeatures,w as timeOnlyToMilliseconds,T as verifyBasicFieldValidity,v as verifyFieldType,M as verifyFilterValidty,E as verifyNumericField};
|
|
@@ -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{pickRandom as t}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{assertIsSome as i}from"../../../core/maybe.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import{isHostedAgolService as o}from"../../../layers/support/arcgisLayerUrl.js";import{isNumericField as l,isDateField as u}from"../../../layers/support/fieldUtils.js";import{generateRenderer as m}from"../../../rest/generateRenderer.js";import c from"../../../rest/support/GenerateRendererParameters.js";import h from"../../../rest/support/StatisticDefinition.js";import p from"../../../rest/support/UniqueValueDefinition.js";import{getArcadeForPredominantCategory as d,getSQLForPredominantCategoryName as f}from"../../statistics/support/predominanceUtils.js";import{mergeWhereClauses as y,getSQLFilterForNormalization as F,getRangeExpr as S}from"../../statistics/support/utils.js";import{WorkerClient as g}from"../../statistics/support/WorkerClient.js";import{fieldDelimiter as v}from"../utils.js";import w from"./InMemoryLayerAdapter.js";import{ensureFeaturesJSON as x,getSummaryStatsQuery as _,getSummaryStatisticsFromFeatureSet as z,getUVQuery as E,getUniqueValuesFromFeatureSet as q,msSinceUnixEpochSQL as T,getFieldExpr as L,defaultNumBins as V,updateQueryWithFeatureFilter as j,getHistogramFromFeatureSet as Q,generateBinParams as b,getDomainsForFields as R,getBins as N,getPredominantCategoriesFromUVInfos as C,getMissingFields as M}from"./support/utils.js";import{processSummaryStatisticsResult as I,createUVResult as B,getEqualIntervalBins as $,createClassBreaksDefinition as k,resolveCBResult as D}from"../../../statistics/utils.js";const O=5,G=2e4,P=4e5;let A=class extends w{constructor(){super(...arguments),this.adapterName="feature-layer-adapter"}_isStatsSupportedOnService(){const e=this.layer;if(!e.capabilities?.query?.supportsStatistics||"multipatch"===this.geometryType&&!o(e.url)&&e.version<10.5)throw new r(`${this.adapterName}:not-supported`,"Layer does not support statistics query");return Promise.resolve()}_fetchFeaturesFromService(e,t){return this.layer.queryFeatures(e,{signal:t}).then((e=>e.features))}_fetchFeaturesJSONFromService(e,t){return this._fetchFeaturesFromService(e,t).then(x)}_summaryStatsFromGenRend(e){const t=e.normalizationType,r=e.normalizationField;return this.classBreaks({field:e.field,numClasses:O,classificationMethod:"standard-deviation",standardDeviationInterval:.25,normalizationType:t,normalizationField:"field"===t?r:void 0,minValue:e.minValue,maxValue:e.maxValue,filter:e.filter,signal:e.signal}).then((e=>{let t,r,i;if(e.classBreakInfos?.some((e=>(e.hasAvg&&(t=e),!!t))),t){const e=t.maxValue-t.minValue;r=t.minValue+e/2,i=4*e}const s={min:e.minValue,max:e.maxValue,avg:r,stddev:i};return I(s)}))}async _summaryStatsFromServiceQuery(e,t){await this._isStatsSupportedOnService(),"percent-of-total"===e.normalizationType&&(e.normalizationTotal=await this._getNormalizationTotal(e.field,e.normalizationType,e.filter));const r=_(this,e,t),i=await this.layer.queryFeatures(r,{signal:e.signal}),s=z(i,t);return I(s)}_uvFromGenRenderer(e,t){const r=e.field??void 0,i=new p;i.attributeField=r;const s=new c;return s.classificationDefinition=i,this.generateRenderer(s,e.signal).then((e=>{const t={},i=this.getField(r);return e.uniqueValues.forEach((e=>{let r=e.value;null!=r&&""!==r&&("string"!=typeof r||""!==r.trim()&&"<null>"!==r.toLowerCase())||(r=null),null==t[r]?t[r]={count:e.count,data:l(i)&&r?Number(r):r}:t[r].count=t[r].count+e.count})),{count:t}})).then((r=>B(r,[t],e.returnAllCodedValues)))}async _uvFromServiceQuery(e,t){return this._isStatsSupportedOnService().then((()=>this.layer.queryFeatures(E(this,e),{signal:e.signal}))).then((t=>q(t,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:v,view:e.view,signal:e.signal}))).then((r=>B(r,t,e.returnAllCodedValues,v)))}_calcBinsSQL(e,t,r){const i=[],s=t.length;return t.forEach(((t,a)=>{const[n,o]=t;let l=null;l=0!==a||r?a!==s-1||r?y(`${e} >= ${n}`,`${e} ${a===s-1?" <= ":" < "} ${o}`):`${e} >= ${n}`:`${e} < ${o}`,i.push("WHEN ("+l+") THEN "+(a+1))})),["CASE",i.join(" "),"ELSE 0","END"].join(" ")}_getNormalizationTotal(e,t,r,i){return e&&"percent-of-total"===t?this.summaryStatistics({field:e,filter:r,signal:i}).then((e=>e.sum)):Promise.resolve(null)}_getQueryParamsForExpr(e,t){const r=e.valueExpression||e.sqlExpression,i=e.signal;if(!r){const{field:r,normalizationType:s,normalizationField:a}=e,n=r?this.getField(r):null,o=u(n),l={field:r,normalizationType:s,normalizationField:a,normalizationTotal:t,layer:this};return{sqlExpression:o?T(this,r):L(l),sqlWhere:o?null:e.sqlWhere||F({field:r,normalizationType:s,normalizationField:a}),filter:e.filter,signal:i}}return{valueExpression:e.valueExpression,sqlExpression:e.sqlExpression,sqlWhere:e.sqlWhere,filter:e.filter,signal:i}}_getDataRange(e,t,r){return null!=t&&null!=r?Promise.resolve({min:t,max:r}):this.summaryStatistics(e).then((e=>({min:e.min,max:e.max})))}_histogramForExpr(e){return this._getNormalizationTotal(e.field,e.normalizationType,e.filter,e.signal).then((t=>{const r=this._getQueryParamsForExpr(e,t);return this._getDataRange(r,e.minValue,e.maxValue).then((i=>{const s=i.min,a=i.max;if(null==s||null==a)return{bins:[],minValue:s,maxValue:a,normalizationTotal:t};const n=e.numBins||V,o=$(s,a,n),l=this._calcBinsSQL(r.sqlExpression,o,null!=e.minValue&&null!=e.maxValue),u=new h({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:"1"}),m=this.layer.createQuery();return m.where=y(m.where,r.sqlWhere),m.sqlFormat="standard",m.outStatistics=[u],m.groupByFieldsForStatistics=[l],m.orderByFields=[l],j(m,e.filter),this._isStatsSupportedOnService().then((()=>this.layer.queryFeatures(m,{signal:r.signal}))).then((e=>Q(e,s,a,n,t)))}))}))}_binParamsFromGenRend(e,t){const{field:r,normalizationType:i,normalizationField:s,signal:a}=e,n=F({field:r,normalizationType:i,normalizationField:s}),o=new c({classificationDefinition:k({field:r,normalizationType:i,normalizationField:s,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numBins||V}),where:y(n,t)});return this.generateRenderer(o,a).then((e=>{const{normalizationTotal:t,classBreaks:a}=e;return b({field:r,normalizationType:i,normalizationField:s,normalizationTotal:t,classBreaks:a,where:n,layer:this})}))}_classBreaksFromGenRend(e){const{field:t,normalizationType:r,normalizationField:i,normalizationTotal:s,signal:a}=e,n=F({field:t,normalizationType:r,normalizationField:i}),o=L({field:t,normalizationType:r,normalizationField:i,normalizationTotal:s,layer:this}),l=S(o,e.minValue,e.maxValue),u=k({field:t,normalizationType:r,normalizationField:i,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numClasses||O}),m=new c;return m.classificationDefinition=u,m.where=y(n,l),this.generateRenderer(m,a).then((t=>D(t,e.classificationMethod)))}async summaryStatistics(e){const{field:t,normalizationType:i,sqlExpression:a,view:n,features:o,useFeaturesInView:l}=e,m=t?this.getField(t):null,c=u(m),h=e.valueExpression||a,p=h&&!a,d=this._hasLocalSource||o||l,f=n&&"3d"===n.type;if(d||p)return p||o||l||f?this._summaryStatsFromMemory(e,m):this._summaryStatsFromClientQuery(e,c);if(!this.supportsSQLExpression&&(c||h||"natural-log"===i||"square-root"===i))throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return(i&&!this.supportsSQLExpression?this._summaryStatsFromGenRend(e):this._summaryStatsFromServiceQuery(e,c)).catch((()=>(s(e.signal),this._summaryStatsFromMemory(e,m))))}async uniqueValues(e){const{valueExpression:t,sqlExpression:r,features:i,useFeaturesInView:a,signal:n}=e,o=t&&(!r||!this.supportsSQLExpression),l=this._hasLocalSource||i||a||o,u=e.view,m=u&&"3d"===u.type,c=await R(e,this);return l?o||i||a||m?this._uvFromMemory(e,c):this._uvFromClientQuery(e,c):this._uvFromServiceQuery(e,c).catch((t=>(s(n),!e.field||e.field2||e.field3||e.filter?t:this._uvFromGenRenderer(e,c[0])))).catch((()=>(s(n),m?this._uvFromMemory(e,c):this._uvFromClientQuery(e,c))))}async histogram(e){const{field:t,normalizationType:i,normalizationField:s,classificationMethod:a,view:n,filter:o,signal:l}=e,m=t?this.getField(t):null,c=u(m),h=e.valueExpression||e.sqlExpression,p=h&&!e.sqlExpression,d=this._hasLocalSource||e.features||e.useFeaturesInView||p,f=this.supportsSQLExpression,y=!a||"equal-interval"===a,F=e.minValue,g=e.maxValue,v=null!=F&&null!=g,w=e.numBins||V;if(d)return this._histogramFromMemory(e);if((h||f)&&y){if(!f&&(h||"natural-log"===i||"square-root"===i))throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return this._histogramForExpr(e)}if(c&&y)throw new r(`${this.adapterName}:not-supported`,"Normalization and date field are not allowed when layer does not support standardized SQL expression for queries");return i||!y?this._binParamsFromGenRend(e).then((a=>{if(!v)return N(this,a,t,w,n,o,l);if(F>a.max||g<a.min)throw new r(`${this.adapterName}:insufficient-data`,"Range defined by 'minValue' and 'maxValue' does not intersect available data range of the field");if(y)return N(this,{min:F,max:g,sqlExpr:a.sqlExpr,excludeZerosExpr:a.excludeZerosExpr},t,w,n,o,l);{const r={field:t,normalizationType:i,normalizationField:s,normalizationTotal:a.normTotal,layer:this},u=L(r),m=S(u,F,g);return this._binParamsFromGenRend(e,m).then((e=>N(this,e,t,w,n,o,l)))}})):this._histogramForField(e)}async classBreaks(e){const t=!1!==e.analyzeData,r=this._hasLocalSource||e.features||e.useFeaturesInView||e.valueExpression||e.filter;if(t&&r)return this._classBreaksFromMemory(e);return(t?this._classBreaksFromGenRend(e):this._classBreaksFromInterpolation(e)).catch((()=>(s(e.signal),this._classBreaksFromMemory(e))))}async queryFeatureCount(e){if(this._hasLocalSource)throw new r(`${this.adapterName}:not-supported`,"Layer does not support count query");const t=this.layer,i=t.createQuery();return i.where=y(i.where,e.whereClause),j(i,e.filter),t.queryFeatureCount(i,{signal:e.signal})}async generateRenderer(e,t){const i=this.layer;if(this._hasLocalSource||i.version<10.1)throw new r(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation (requires ArcGIS Server version 10.1+)");const s=i.createQuery();return e.where=y(e.where,s.where),m(i.parsedUrl.path,{source:i.dynamicDataSource??void 0,gdbVersion:i.gdbVersion??void 0},e,{signal:t})}async heatmapStatistics(e){const{field:t,fieldOffset:r,view:i,signal:s}=e;return(t&&null==r?this.summaryStatistics({field:t,view:i,signal:s}):Promise.resolve(null)).then((t=>{let i=r||0;if(t){const{count:e,min:r,max:s}=t;e?r===s&&0===r?i=1:s<=0?i="abs":r<0&&(i=-1.01*r):i=1}return this._heatmapStatsFromMemory(e,i).then((e=>({...e,summaryStatistics:t,fieldOffset:i})))}))}async predominantCategories(e){if(!this._hasLocalSource&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support advanced SQL expressions and standardized queries");const{fields:t,view:i,signal:s}=e,a=d(t),n=f(t),o=i&&this._hasLocalSource?await this._uvFromMemory({valueExpression:a,view:i,signal:s}):await this._uvFromServiceQuery({sqlExpression:n.expression,valueExpression:a,signal:s});return C(o.uniqueValueInfos,t)}async getSampleFeatures(e,r){const{view:a,sampleSize:n,requiredFields:o,returnGeometry:l,filter:u,signal:m}=e,c=this.layer.createQuery(),h=1,p="json"===r;c.outSpatialReference=e.spatialReference||a?.spatialReference,c.returnGeometry=!!l,c.outFields=o,j(c,u);let d=[],f=!1;if(a)try{const e=await a.whenLayerView(this.layer);if(f=!M(this,o,e).length,f&&(d=await this._fetchFeaturesFromMemory(e,c,m,r),d.length&&null!=n&&n>0&&n<=d.length))return t(d,n,h)}catch(y){s(m)}try{if(this._hasLocalSource)return f?d:p?this._fetchFeaturesJSONFromService(c,m):this._fetchFeaturesFromService(c,m);const r=await this.queryFeatureCount({view:a,filter:u,signal:m}),s=this.layer.capabilities.query.maxRecordCount;let o=-1===n?r:n;if(o=s&&o>s?s:o,r<=d.length||d.length>=s)return d;i(a,"FeatureLayerAdapter: must have a view");const l=a.extent.width/a.width/a.scale*P;if(c.maxAllowableOffset=e.resolution||l,r<=o)return p?this._fetchFeaturesJSONFromService(c,m):this._fetchFeaturesFromService(c,m);if(r<=G){const e=this.layer.createQuery();j(e,u);const r=await this.layer.queryObjectIds();return c.objectIds=t(r,o,h),p?this._fetchFeaturesJSONFromService(c,m):this._fetchFeaturesFromService(c,m)}return this.layer.capabilities?.query?.supportsPagination&&(c.num=Math.min(o,G)),p?this._fetchFeaturesJSONFromService(c,m):this._fetchFeaturesFromService(c,m)}catch(y){return s(m),d}}load(e){const t=this.layer.load(e).then((async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.capabilities?.query?.supportsSqlExpression,this._hasLocalSource=!t.url&&!!t.source,this.hasQueryEngine=this._hasLocalSource,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this.workerClient=g.getInstance(),await this.workerClient.open(e.signal)}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([a({constructOnly:!0})],A.prototype,"layer",void 0),A=e([n("esri.smartMapping.support.adapters.FeatureLayerAdapter")],A);const U=A;export{U as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{pickRandom as t}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{assertIsSome as i}from"../../../core/maybe.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import{isHostedAgolService as o}from"../../../layers/support/arcgisLayerUrl.js";import{isTimeOnlyField as l,isNumericField as u}from"../../../layers/support/fieldUtils.js";import{generateRenderer as m}from"../../../rest/generateRenderer.js";import c from"../../../rest/support/GenerateRendererParameters.js";import h from"../../../rest/support/StatisticDefinition.js";import p from"../../../rest/support/UniqueValueDefinition.js";import{getArcadeForPredominantCategory as d,getSQLForPredominantCategoryName as f}from"../../statistics/support/predominanceUtils.js";import{mergeWhereClauses as y,getSQLFilterForNormalization as F,getRangeExpr as S}from"../../statistics/support/utils.js";import{WorkerClient as g}from"../../statistics/support/WorkerClient.js";import{isAnyDateField as v,fieldDelimiter as w}from"../utils.js";import x from"./InMemoryLayerAdapter.js";import{ensureFeaturesJSON as _,getSummaryStatsQuery as z,getSummaryStatisticsFromFeatureSet as E,getUVQuery as q,getUniqueValuesFromFeatureSet as T,getSQLExpressionForDateOrTimeField as L,getFieldExpr as V,defaultNumBins as j,updateQueryWithFeatureFilter as Q,getHistogramFromFeatureSet as b,generateBinParams as R,getDomainsForFields as N,getBins as C,getPredominantCategoriesFromUVInfos as M,getMissingFields as I}from"./support/utils.js";import{processSummaryStatisticsResult as B,createUVResult as $,getEqualIntervalBins as k,createClassBreaksDefinition as D,resolveCBResult as O}from"../../../statistics/utils.js";const G=5,P=2e4,A=4e5;let U=class extends x{constructor(){super(...arguments),this.adapterName="feature-layer-adapter"}_isStatsSupportedOnService(){const e=this.layer;if(!e.capabilities?.query?.supportsStatistics||"multipatch"===this.geometryType&&!o(e.url)&&e.version<10.5)throw new r(`${this.adapterName}:not-supported`,"Layer does not support statistics query");return Promise.resolve()}_fetchFeaturesFromService(e,t){return this.layer.queryFeatures(e,{signal:t}).then((e=>e.features))}_fetchFeaturesJSONFromService(e,t){return this._fetchFeaturesFromService(e,t).then(_)}_summaryStatsFromGenRend(e){const t=e.normalizationType,r=e.normalizationField;return this.classBreaks({field:e.field,numClasses:G,classificationMethod:"standard-deviation",standardDeviationInterval:.25,normalizationType:t,normalizationField:"field"===t?r:void 0,minValue:e.minValue,maxValue:e.maxValue,filter:e.filter,signal:e.signal}).then((e=>{let t,r,i;if(e.classBreakInfos?.some((e=>(e.hasAvg&&(t=e),!!t))),t){const e=t.maxValue-t.minValue;r=t.minValue+e/2,i=4*e}const s={min:e.minValue,max:e.maxValue,avg:r,stddev:i};return B(s)}))}async _summaryStatsFromServiceQuery(e,t){await this._isStatsSupportedOnService(),"percent-of-total"===e.normalizationType&&(e.normalizationTotal=await this._getNormalizationTotal(e.field,e.normalizationType,e.filter));const r=v(t)||l(t),i=z(this,e,t),s=await this.layer.queryFeatures(i,{signal:e.signal}),a=E(s,r);return B(a)}_uvFromGenRenderer(e,t){const r=e.field??void 0,i=new p;i.attributeField=r;const s=new c;return s.classificationDefinition=i,this.generateRenderer(s,e.signal).then((e=>{const t={},i=this.getField(r);return e.uniqueValues.forEach((e=>{let r=e.value;null!=r&&""!==r&&("string"!=typeof r||""!==r.trim()&&"<null>"!==r.toLowerCase())||(r=null),null==t[r]?t[r]={count:e.count,data:u(i)&&r?Number(r):r}:t[r].count=t[r].count+e.count})),{count:t}})).then((r=>$(r,[t],e.returnAllCodedValues)))}async _uvFromServiceQuery(e,t){return this._isStatsSupportedOnService().then((()=>this.layer.queryFeatures(q(this,e),{signal:e.signal}))).then((t=>T(t,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:w,view:e.view,signal:e.signal}))).then((r=>$(r,t,e.returnAllCodedValues,w)))}_calcBinsSQL(e,t,r){const i=[],s=t.length;return t.forEach(((t,a)=>{const[n,o]=t;let l=null;l=0!==a||r?a!==s-1||r?y(`${e} >= ${n}`,`${e} ${a===s-1?" <= ":" < "} ${o}`):`${e} >= ${n}`:`${e} < ${o}`,i.push("WHEN ("+l+") THEN "+(a+1))})),["CASE",i.join(" "),"ELSE 0","END"].join(" ")}_getNormalizationTotal(e,t,r,i){return e&&"percent-of-total"===t?this.summaryStatistics({field:e,filter:r,signal:i}).then((e=>e.sum)):Promise.resolve(null)}_getQueryParamsForExpr(e,t){const r=e.valueExpression||e.sqlExpression,i=e.signal;if(!r){const{field:r,normalizationType:s,normalizationField:a}=e,n=r?this.getField(r):null,o=v(n)||l(n),u={field:r,normalizationType:s,normalizationField:a,normalizationTotal:t,layer:this};return{sqlExpression:o?L(this,n):V(u),sqlWhere:o?null:e.sqlWhere||F({field:r,normalizationType:s,normalizationField:a}),filter:e.filter,signal:i}}return{valueExpression:e.valueExpression,sqlExpression:e.sqlExpression,sqlWhere:e.sqlWhere,filter:e.filter,signal:i}}_getDataRange(e,t,r){return null!=t&&null!=r?Promise.resolve({min:t,max:r}):this.summaryStatistics(e).then((e=>({min:e.min,max:e.max})))}_histogramForExpr(e){return this._getNormalizationTotal(e.field,e.normalizationType,e.filter,e.signal).then((t=>{const r=this._getQueryParamsForExpr(e,t);return this._getDataRange(r,e.minValue,e.maxValue).then((i=>{const s=i.min,a=i.max;if(null==s||null==a)return{bins:[],minValue:s,maxValue:a,normalizationTotal:t};const n=e.numBins||j,o=k(s,a,n),l=this._calcBinsSQL(r.sqlExpression,o,null!=e.minValue&&null!=e.maxValue),u=new h({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:"1"}),m=this.layer.createQuery();return m.where=y(m.where,r.sqlWhere),m.sqlFormat="standard",m.outStatistics=[u],m.groupByFieldsForStatistics=[l],m.orderByFields=[l],Q(m,e.filter),this._isStatsSupportedOnService().then((()=>this.layer.queryFeatures(m,{signal:r.signal}))).then((e=>b(e,s,a,n,t)))}))}))}_binParamsFromGenRend(e,t){const{field:r,normalizationType:i,normalizationField:s,signal:a}=e,n=F({field:r,normalizationType:i,normalizationField:s}),o=new c({classificationDefinition:D({field:r,normalizationType:i,normalizationField:s,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numBins||j}),where:y(n,t)});return this.generateRenderer(o,a).then((e=>{const{normalizationTotal:t,classBreaks:a}=e;return R({field:r,normalizationType:i,normalizationField:s,normalizationTotal:t,classBreaks:a,where:n,layer:this})}))}_classBreaksFromGenRend(e){const{field:t,normalizationType:r,normalizationField:i,normalizationTotal:s,signal:a}=e,n=F({field:t,normalizationType:r,normalizationField:i}),o=V({field:t,normalizationType:r,normalizationField:i,normalizationTotal:s,layer:this}),l=S(o,e.minValue,e.maxValue),u=D({field:t,normalizationType:r,normalizationField:i,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numClasses||G}),m=new c;return m.classificationDefinition=u,m.where=y(n,l),this.generateRenderer(m,a).then((t=>O(t,e.classificationMethod)))}async summaryStatistics(e){const{field:t,normalizationType:i,sqlExpression:a,view:n,features:o,useFeaturesInView:u}=e,m=t?this.getField(t):null,c=v(m)||l(m),h=e.valueExpression||a,p=h&&!a,d=this._hasLocalSource||o||u,f=n&&"3d"===n.type;if(d||p)return p||o||u||f?this._summaryStatsFromMemory(e,m):this._summaryStatsFromClientQuery(e,m);if(!this.supportsSQLExpression&&(c||h||"natural-log"===i||"square-root"===i))throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return(i&&!this.supportsSQLExpression?this._summaryStatsFromGenRend(e):this._summaryStatsFromServiceQuery(e,m)).catch((()=>(s(e.signal),this._summaryStatsFromMemory(e,m))))}async uniqueValues(e){const{valueExpression:t,sqlExpression:r,features:i,useFeaturesInView:a,signal:n}=e,o=t&&(!r||!this.supportsSQLExpression),l=this._hasLocalSource||i||a||o,u=e.view,m=u&&"3d"===u.type,c=await N(e,this);return l?o||i||a||m?this._uvFromMemory(e,c):this._uvFromClientQuery(e,c):this._uvFromServiceQuery(e,c).catch((t=>(s(n),!e.field||e.field2||e.field3||e.filter?t:this._uvFromGenRenderer(e,c[0])))).catch((()=>(s(n),m?this._uvFromMemory(e,c):this._uvFromClientQuery(e,c))))}async histogram(e){const{field:t,normalizationType:i,normalizationField:s,classificationMethod:a,view:n,filter:o,signal:u}=e,m=t?this.getField(t):null,c=v(m)||l(m),h=e.valueExpression||e.sqlExpression,p=h&&!e.sqlExpression,d=this._hasLocalSource||e.features||e.useFeaturesInView||p,f=this.supportsSQLExpression,y=!a||"equal-interval"===a,F=e.minValue,g=e.maxValue,w=null!=F&&null!=g,x=e.numBins||j;if(d)return this._histogramFromMemory(e);if((h||f)&&y){if(!f&&(h||"natural-log"===i||"square-root"===i))throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return this._histogramForExpr(e)}if(c&&y)throw new r(`${this.adapterName}:not-supported`,"Normalization and date field are not allowed when layer does not support standardized SQL expression for queries");return i||!y?this._binParamsFromGenRend(e).then((a=>{if(!w)return C(this,a,t,x,n,o,u);if(F>a.max||g<a.min)throw new r(`${this.adapterName}:insufficient-data`,"Range defined by 'minValue' and 'maxValue' does not intersect available data range of the field");if(y)return C(this,{min:F,max:g,sqlExpr:a.sqlExpr,excludeZerosExpr:a.excludeZerosExpr},t,x,n,o,u);{const r={field:t,normalizationType:i,normalizationField:s,normalizationTotal:a.normTotal,layer:this},l=V(r),m=S(l,F,g);return this._binParamsFromGenRend(e,m).then((e=>C(this,e,t,x,n,o,u)))}})):this._histogramForField(e)}async classBreaks(e){const t=!1!==e.analyzeData,r=this._hasLocalSource||e.features||e.useFeaturesInView||e.valueExpression||e.filter;if(t&&r)return this._classBreaksFromMemory(e);return(t?this._classBreaksFromGenRend(e):this._classBreaksFromInterpolation(e)).catch((()=>(s(e.signal),this._classBreaksFromMemory(e))))}async queryFeatureCount(e){if(this._hasLocalSource)throw new r(`${this.adapterName}:not-supported`,"Layer does not support count query");const t=this.layer,i=t.createQuery();return i.where=y(i.where,e.whereClause),Q(i,e.filter),t.queryFeatureCount(i,{signal:e.signal})}async generateRenderer(e,t){const i=this.layer;if(this._hasLocalSource||i.version<10.1)throw new r(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation (requires ArcGIS Server version 10.1+)");const s=i.createQuery();return e.where=y(e.where,s.where),m(i.parsedUrl.path,{source:i.dynamicDataSource??void 0,gdbVersion:i.gdbVersion??void 0},e,{signal:t})}async heatmapStatistics(e){const{field:t,fieldOffset:r,view:i,signal:s}=e;return(t&&null==r?this.summaryStatistics({field:t,view:i,signal:s}):Promise.resolve(null)).then((t=>{let i=r||0;if(t){const{count:e,min:r,max:s}=t;e?r===s&&0===r?i=1:s<=0?i="abs":r<0&&(i=-1.01*r):i=1}return this._heatmapStatsFromMemory(e,i).then((e=>({...e,summaryStatistics:t,fieldOffset:i})))}))}async predominantCategories(e){if(!this._hasLocalSource&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support advanced SQL expressions and standardized queries");const{fields:t,view:i,signal:s}=e,a=d(t),n=f(t),o=i&&this._hasLocalSource?await this._uvFromMemory({valueExpression:a,view:i,signal:s}):await this._uvFromServiceQuery({sqlExpression:n.expression,valueExpression:a,signal:s});return M(o.uniqueValueInfos,t)}async getSampleFeatures(e,r){const{view:a,sampleSize:n,requiredFields:o,returnGeometry:l,filter:u,signal:m}=e,c=this.layer.createQuery(),h=1,p="json"===r;c.outSpatialReference=e.spatialReference||a?.spatialReference,c.returnGeometry=!!l,c.outFields=o,Q(c,u);let d=[],f=!1;if(a)try{const e=await a.whenLayerView(this.layer);if(f=!I(this,o,e).length,f&&(d=await this._fetchFeaturesFromMemory(e,c,m,r),d.length&&null!=n&&n>0&&n<=d.length))return t(d,n,h)}catch(y){s(m)}try{if(this._hasLocalSource)return f?d:p?this._fetchFeaturesJSONFromService(c,m):this._fetchFeaturesFromService(c,m);const r=await this.queryFeatureCount({view:a,filter:u,signal:m}),s=this.layer.capabilities.query.maxRecordCount;let o=-1===n?r:n;if(o=s&&o>s?s:o,r<=d.length||d.length>=s)return d;i(a,"FeatureLayerAdapter: must have a view");const l=a.extent.width/a.width/a.scale*A;if(c.maxAllowableOffset=e.resolution||l,r<=o)return p?this._fetchFeaturesJSONFromService(c,m):this._fetchFeaturesFromService(c,m);if(r<=P){const e=this.layer.createQuery();Q(e,u);const r=await this.layer.queryObjectIds();return c.objectIds=t(r,o,h),p?this._fetchFeaturesJSONFromService(c,m):this._fetchFeaturesFromService(c,m)}return this.layer.capabilities?.query?.supportsPagination&&(c.num=Math.min(o,P)),p?this._fetchFeaturesJSONFromService(c,m):this._fetchFeaturesFromService(c,m)}catch(y){return s(m),d}}load(e){const t=this.layer.load(e).then((async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.capabilities?.query?.supportsSqlExpression,this._hasLocalSource=!t.url&&!!t.source,this.hasQueryEngine=this._hasLocalSource,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this.workerClient=g.getInstance(),await this.workerClient.open(e.signal)}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([a({constructOnly:!0})],U.prototype,"layer",void 0),U=e([n("esri.smartMapping.support.adapters.FeatureLayerAdapter")],U);const W=U;export{W 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{_ as e}from"../../../chunks/tslib.es6.js";import{pickRandom as t}from"../../../core/arrayUtils.js";import a from"../../../core/Error.js";import{throwIfAborted as r}from"../../../core/promiseUtils.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{kebabDict as s}from"../../../layers/support/fieldType.js";import{
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{pickRandom as t}from"../../../core/arrayUtils.js";import a from"../../../core/Error.js";import{throwIfAborted as r}from"../../../core/promiseUtils.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{kebabDict as s}from"../../../layers/support/fieldType.js";import{isTimeOnlyField as o}from"../../../layers/support/fieldUtils.js";import{getArcadeForPredominantCategory as n}from"../../statistics/support/predominanceUtils.js";import{summaryStatistics as l,uniqueValues as u,histogram as m,classBreaks as p}from"../../statistics/support/statsWorker.js";import{mergeWhereClauses as g}from"../../statistics/support/utils.js";import{WorkerClient as y}from"../../statistics/support/WorkerClient.js";import{getFieldsList as d,fieldDelimiter as f,isAnyDateField as c}from"../utils.js";import h from"./FeatureLayerAdapter.js";import{getMissingFieldsForBinning as w,updateQueryWithFeatureFilter as F,getFeatureReductionFields as v,getViewInfoParams as S,getDomainsForFields as q,getPredominantCategoriesFromUVInfos as V}from"./support/utils.js";let z=class extends h{constructor(){super(...arguments),this.adapterName="feature-layer-binning-adapter"}async _getNormalizationTotalFromMemory(e,t,r){const{featuresJSON:i,graphics:s,layerView:o,query:n}=t,u=(!i&&!s&&o&&"queryAggregateSummaryStatistics"in o?await o.queryAggregateSummaryStatistics(n,{field:e},{signal:r}):i?await this.workerClient.summaryStatistics({field:e},i):await l({attribute:{field:e},features:s})).sum;if(null==u)throw new a(`${this.adapterName}:invalid`,"invalid normalizationTotal");return u}async _processStatsFromMemoryParams(e){const{features:t,filter:r}=e;if(t?.length)return this._getFilteredFeatures(t,r);const{view:i,field:s,field2:o,field3:n,normalizationField:l,valueExpression:u,returnGeometry:m,layerViewFunc:p,signal:g}=e;let y=null,f=null,c=null,h=null,S=null;if(i)try{if(y=await i.whenLayerView(this.layer),f=null!=p&&p in y&&"function"==typeof y[p],f){await this._waitForLayerViewUpdate(y);const e=await d({field:s,field2:o,field3:n,normalizationField:l,valueExpression:u});w(this,e).length?f=!1:(c="createAggregateQuery"in y?y.createAggregateQuery():null,c?(c.outFields=e,c.returnGeometry=!1,F(c,r)):f=!1),y.suspended&&(f=!1)}}catch{f=!1}if(!f&&(S=v(this.layer).map((e=>e.toJSON())),h=await this._fetchFeaturesForStats({field:s,field2:o,field3:n,valueExpression:u,normalizationField:l,returnGeometry:m,filter:r,view:i,signal:g},"json"),!h?.length))throw new a(`${this.adapterName}:insufficient-data`,"No features are available to calculate statistics");return{layerView:y,query:c,featuresJSON:h,fieldInfos:S}}async _summaryStatsFromMemory(e,t){const{view:a,field:r,valueExpression:i,normalizationType:o,signal:n}=e,u={field:r,valueExpression:i,normalizationType:o,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue},{featuresJSON:m,graphics:p,layerView:g,query:y,fieldInfos:d}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryAggregateSummaryStatistics"});return i&&a&&(m||p)&&(u.fieldType=t?.type?s.toJSON(t.type):null,u.viewInfoParams=S(a),u.timeZone=a.timeZone,u.fieldInfos=d),"percent-of-total"===o&&null==e.normalizationTotal&&(u.normalizationTotal=await this._getNormalizationTotalFromMemory(r,{featuresJSON:m,graphics:p,layerView:g,query:y},n)),!m&&!p&&g&&"queryAggregateSummaryStatistics"in g?g.queryAggregateSummaryStatistics(y,u,{signal:n}):m?this.workerClient.summaryStatistics(u,m):l({attribute:u,features:p})}async _uvFromMemory(e,t){const{view:a,field:r,valueExpression:i,returnAllCodedValues:s,signal:o}=e,{featuresJSON:n,graphics:l,layerView:m,query:p,fieldInfos:g}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryAggregateUniqueValues"}),y={field:r,field2:e.field2,field3:e.field3,fieldDelimiter:f,valueExpression:i,domains:t,returnAllCodedValues:s};return i&&a&&(n||l)&&(y.viewInfoParams=S(a),y.timeZone=a.timeZone,y.fieldInfos=g),!n&&!l&&m&&"queryAggregateUniqueValues"in m?m.queryAggregateUniqueValues(p,y,{signal:o}):n?this.workerClient.uniqueValues(y,n):u({attribute:y,features:l})}async _histogramFromMemory(e){const{view:t,field:a,valueExpression:r,signal:i}=e,{featuresJSON:s,graphics:o,layerView:n,query:l,fieldInfos:u}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryAggregateHistogram"}),p={field:a,valueExpression:r,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return r&&t&&(s||o)&&(p.viewInfoParams=S(t),p.timeZone=t.timeZone,p.fieldInfos=u),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(p.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:s,graphics:o,layerView:n,query:l},i)),!s&&!o&&n&&"queryAggregateHistogram"in n?n.queryAggregateHistogram(l,p,{signal:i}):s?this.workerClient.histogram(p,s):m({attribute:p,features:o})}async _classBreaksFromMemory(e){const{view:t,field:a,valueExpression:r,signal:i}=e,{featuresJSON:s,graphics:o,layerView:n,query:l,fieldInfos:u}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryAggregateClassBreaks"}),m={field:a,valueExpression:r,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return r&&t&&(s||o)&&(m.viewInfoParams=S(t),m.timeZone=t.timeZone,m.fieldInfos=u),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(m.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:s,graphics:o,layerView:n,query:l},i)),!s&&!o&&n&&"queryAggregateClassBreaks"in n?n.queryAggregateClassBreaks(l,m,{signal:i}):s?this.workerClient.classBreaks(m,s):p({attribute:m,features:o})}getField(e=""){const t=v(this.layer);return t?.find((t=>t.name.toLowerCase()===e?.toLowerCase()))}getFieldUsageInfo(e){return this.getField(e)?{supportsLabelingInfo:!0,supportsRenderer:!0,supportsPopupTemplate:!0,supportsLayerQuery:!1,supportsStatistics:!0}:null}getFieldDomain(e,t){return null}async summaryStatistics(e){const{field:t}=e,r=t?this.getField(t):null,i=c(r)||o(r),s=e.sqlExpression&&!e.valueExpression&&!t;if(i||s)throw new a(`${this.adapterName}:not-supported`,"Date field and sqlExpression are not supported");return this._summaryStatsFromMemory(e,r)}async uniqueValues(e){const t=await q(e,this);return this._uvFromMemory(e,t)}async histogram(e){const{field:t}=e,r=t?this.getField(t):null,i=c(r)||o(r),s=e.sqlExpression&&!e.valueExpression&&!t;if(i||s)throw new a(`${this.adapterName}:not-supported`,"Date field and sqlExpression are not supported");return this._histogramFromMemory(e)}async classBreaks(e){return(!1!==e.analyzeData?this._classBreaksFromMemory(e):this._classBreaksFromInterpolation(e)).catch((()=>(r(e.signal),this._classBreaksFromMemory(e))))}async queryFeatureCount(e){const t=await(e.view?.whenLayerView(this.layer));if(!t||!("queryAggregateCount"in t)||!t.queryAggregateCount)throw new a(`${this.adapterName}:not-supported`,"LayerView is not supported.");await this._waitForLayerViewUpdate(t);const r=t.createAggregateQuery();return r.where=g(r.where,e.whereClause),F(r,e.filter),t.queryAggregateCount(r,{signal:e.signal})}generateRenderer(e,t){throw new a(`${this.adapterName}:not-supported`,"'generateRenderer' is not supported.")}heatmapStatistics(e){throw new a(`${this.adapterName}:not-supported`,"'heatmapStatistics' is not supported.")}async predominantCategories(e){const{fields:t,view:a,signal:r}=e,i=n(t),s=await this._uvFromMemory({valueExpression:i,view:a,signal:r});return V(s.uniqueValueInfos,t)}async getSampleFeatures(e,r){const{view:i,sampleSize:s,requiredFields:o,returnGeometry:n,filter:l,signal:u}=e;if(!i)throw new a(`${this.adapterName}:not-supported`,"'view' is required to get sample features for binning.");if("3d"===i.type)throw new a(`${this.adapterName}:not-supported`,"3d 'view' is not supported to get sample features for binning.");const m=await i.whenLayerView(this.layer);if(!("queryAggregateJSON"in m&&m.queryAggregateJSON&&"queryAggregates"in m&&m.queryAggregates))throw new a(`${this.adapterName}:not-supported`,"LayerView is not supported.");await this._waitForLayerViewUpdate(m);if(w(this,o).length)throw new a(`${this.adapterName}:insufficient-data`,"Layer does not have required fields");const p=1,g="json"===r,y=m.createAggregateQuery();y.outSpatialReference=e.spatialReference||i&&i.spatialReference,y.returnGeometry=!!n,y.outFields=o,F(y,l);const{features:d}=g?await m.queryAggregateJSON(y,{signal:u}):await m.queryAggregates(y,{signal:u});return d.length&&null!=s&&s>0&&s<=d.length?t(d,s,p):d}load(e){const t=this.layer.load(e).then((async t=>{if(this.geometryType="polygon",this.objectIdField=null,this.supportsSQLExpression=!1,this._hasLocalSource=!1,this.hasQueryEngine=!0,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,"geometryType"in t&&"point"!==t.geometryType)throw new a(`${this.adapterName}:invalid-parameters`,"Only 'point' geometry type is supported");const r="featureReduction"in t?t.featureReduction:null;if("binning"!==r?.type&&"cluster"!==r?.type)throw new a(`${this.adapterName}:invalid-parameters`,`Feature reduction type ${r?.type} is not supported`);this.workerClient=y.getInstance(),await this.workerClient.open(e.signal)}));return this.addResolvingPromise(t),Promise.resolve(this)}};z=e([i("esri.smartMapping.support.adapters.FeatureLayerBinningAdapter")],z);const N=z;export{N as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import{pickRandom as t}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import a from"../../../core/Logger.js";import{assertIsSome as i}from"../../../core/maybe.js";import{timeout as s}from"../../../core/promiseUtils.js";import{whenOnce as o}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{toQuantizationTransform as u}from"../../../geometry/support/quantizationUtils.js";import{kebabDict as m}from"../../../layers/support/fieldType.js";import{isDateField as p}from"../../../layers/support/fieldUtils.js";import y from"../../../rest/support/QuantizationParameters.js";import{getArcadeForPredominantCategory as f}from"../../statistics/support/predominanceUtils.js";import{summaryStatistics as c,uniqueValues as d,histogram as h,classBreaks as w,heatmapStatistics as g}from"../../statistics/support/statsWorker.js";import{mergeWhereClauses as F}from"../../statistics/support/utils.js";import{WorkerClient as S}from"../../statistics/support/WorkerClient.js";import{getFieldsList as v,fieldDelimiter as V}from"../utils.js";import q from"./LayerAdapter.js";import{ensureFeaturesJSON as x,getSummaryStatsQuery as z,getSummaryStatisticsFromFeatureSet as _,getViewInfoParams as M,getMissingFields as N,updateQueryWithFeatureFilter as T,getUVQuery as L,getUniqueValuesFromFeatureSet as E,getBins as C,getDomainsForFields as j,getPredominantCategoriesFromUVInfos as I}from"./support/utils.js";import{processSummaryStatisticsResult as O,createUVResult as k,resolveCBResult as Q}from"../../../statistics/utils.js";import{loadArcade as b}from"../../../support/arcadeOnDemand.js";const J=5;let P=null,U=class extends q{constructor(){super(...arguments),this._hasLocalSource=!1,this.adapterName="in-memory-layer-adapter"}destroy(){this.workerClient?.destroy()}async _waitForLayerViewUpdate(e){if(!e)throw new r(`${this.adapterName}:insufficient-data", "layerView is required to fetch the features`);const t=new AbortController,i=o((()=>!e.updating),t.signal);await s(i,5e3,t).catch((e=>{throw a.getLogger(this).warn("LayerView is taking too long to update. Aborting fetch from layerView."),e}))}async _fetchFeatureSetFromMemory(e,t,a){const i=this.layer;if(this._hasLocalSource)return i.queryFeatures(e);if(!t)throw new r(`${this.adapterName}:insufficient-data`,"view is required to fetch the features from layerView");const s=await t.whenLayerView(this.layer);return await this._waitForLayerViewUpdate(s),s.queryFeatures(e,{signal:a})}async _fetchFeaturesFromMemory(e,t,a,i){const s=this.layer,o="json"===i;if(this._hasLocalSource){const e=await s.queryFeatures(t);return o?x(e.features):e.features}if(await this._waitForLayerViewUpdate(e),o&&"queryFeaturesJSON"in e&&e.queryFeaturesJSON){const{features:r}=await e.queryFeaturesJSON(t,{signal:a});return r}if(!("queryFeatures"in e))throw new r(`${this.adapterName}:not-supported`,"'queryFeatures' is not supported on the layerView");const n=await e.queryFeatures(t,{signal:a});return o?x(n.features):n.features}_fetchFeaturesForStats(e,t){return v({field:e.field,field2:e.field2,field3:e.field3,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((r=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,filter:e.filter,requiredFields:r,signal:e.signal},t)))}async _summaryStatsFromClientQuery(e,t){const{view:r,signal:a}=e,i=z(this,e,t),s=await this._fetchFeatureSetFromMemory(i,r,a),o=_(s,t);return O(o)}async _getNormalizationTotalFromMemory(e,t,a){const{featuresJSON:i,graphics:s,layerView:o,query:n}=t,l=(!i&&!s&&o&&"querySummaryStatistics"in o?await o.querySummaryStatistics(n,{field:e},{signal:a}):i?await this.workerClient.summaryStatistics({field:e},i):await c({attribute:{field:e},features:s??[]})).sum;if(null==l)throw new r(`${this.adapterName}:invalid`,"invalid normalizationTotal");return l}async _summaryStatsFromMemory(e,t){const{view:r,field:a,valueExpression:i,normalizationType:s,signal:o}=e,n={field:a,valueExpression:i,normalizationType:s,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue},{featuresJSON:l,graphics:u,layerView:p,query:y,fieldInfos:f}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"querySummaryStatistics"});return i&&r&&(l||u)&&(n.fieldType=t?.type?m.toJSON(t.type):null,n.viewInfoParams=M(r),n.timeZone=r.timeZone,n.fieldInfos=f),"percent-of-total"===s&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:l,graphics:u,layerView:p,query:y},o)),!l&&!u&&p&&"querySummaryStatistics"in p?p.querySummaryStatistics(y,n,{signal:o}):l?this.workerClient.summaryStatistics(n,l):c({attribute:n,features:u})}async _getFilteredFeatures(e,t){let r=[];if("intersects"===t?.spatialRelationship){const{intersect:a}=await import("../../../geometry/geometryEngineAsync.js"),i=null!=t.geometry?t.geometry:null;for(const t of e){const e=null!=t.geometry?t.geometry:null;if(e&&i){await a(e,i)&&r.push(t)}}}else r=e;return e.length&&"declaredClass"in e[0]&&"esri.Graphic"===e[0].declaredClass?{graphics:r}:{featuresJSON:r}}async _processStatsFromMemoryParams(e){const{features:t,filter:r}=e;if(t?.length)return this._getFilteredFeatures(t,r);const{view:a,field:i,field2:s,field3:o,normalizationField:n,valueExpression:l,layerViewFunc:u,signal:m}=e;let p=e.returnGeometry;if(null==p&&l){if(!P){const{arcadeUtils:e}=await b();P=e}const e=P.hasGeometryOperations(l);e&&await P.enableGeometryOperations(),p=e}let y=null,f=null,c=null,d=null,h=null;if(a)try{y=await a.whenLayerView(this.layer),f=null!=u&&u in y&&"function"==typeof y[u]}catch{f=!1}if(f)try{await this._waitForLayerViewUpdate(y);const e=await v({field:i,field2:s,field3:o,normalizationField:n,valueExpression:l});N(this,e,y).length?f=!1:(c=this.layer.createQuery(),c.outFields=e,c.returnGeometry=!1,T(c,r)),y.suspended&&(f=!1)}catch{f=!1}return f||(d=await this._fetchFeaturesForStats({field:i,field2:s,field3:o,valueExpression:l,normalizationField:n,returnGeometry:p,filter:r,view:a,signal:m},"json"),h=(await v({valueExpression:l})).map((e=>this.getField(e)?.toJSON())).filter(Boolean)),{layerView:y,query:c,featuresJSON:d,fieldInfos:h}}async _uvFromClientQuery(e,t){const{view:r,signal:a}=e,i=L(this,e),s=await this._fetchFeatureSetFromMemory(i,r,a),o=await E(s,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:V,view:e.view,signal:e.signal});return k(o,t,e.returnAllCodedValues,V)}async _uvFromMemory(e,t){const{view:r,field:a,valueExpression:i,returnAllCodedValues:s,signal:o}=e,{featuresJSON:n,graphics:l,layerView:u,query:m,fieldInfos:p}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryUniqueValues"}),y={field:a,field2:e.field2,field3:e.field3,fieldDelimiter:V,valueExpression:i,domains:t,returnAllCodedValues:s};return i&&r&&(n||l)&&(y.viewInfoParams=M(r),y.timeZone=r.timeZone,y.fieldInfos=p),!n&&!l&&u&&"queryUniqueValues"in u?u.queryUniqueValues(m,y,{signal:o}):n?this.workerClient.uniqueValues(y,n):d({attribute:y,features:l})}_histogramForField(e){let t=null;return t=null!=e.minValue&&null!=e.maxValue?Promise.resolve({min:e.minValue,max:e.maxValue}):this.summaryStatistics(e).then((e=>{if(!e.count)throw new r(`${this.adapterName}:insufficient-data`,"Either the layer has no features or none of the features have data for the field");return{min:e.min,max:e.max}})),t.then((t=>C(this,{min:t.min,max:t.max},e.field,e.numBins??void 0,e.view,e.filter,e.signal)))}async _histogramFromMemory(e){const{view:t,field:r,valueExpression:a,signal:i}=e,{featuresJSON:s,graphics:o,layerView:n,query:l,fieldInfos:u}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryHistogram"}),m={field:r,valueExpression:a,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return a&&t&&(s||o)&&(m.viewInfoParams=M(t),m.timeZone=t.timeZone,m.fieldInfos=u),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(m.normalizationTotal=await this._getNormalizationTotalFromMemory(r,{featuresJSON:s,graphics:o,layerView:n,query:l},i)),!s&&!o&&n&&"queryHistogram"in n?n.queryHistogram(l,m,{signal:i}):s?this.workerClient.histogram(m,s):h({attribute:m,features:o})}_classBreaksFromInterpolation(e){const{minValue:t,maxValue:r}=e,a=e.numClasses||J,i=[],s=(r-t)/a;for(let l=0;l<a;l++){const e=t+l*s;i.push({minValue:e,maxValue:e+s})}i[a-1].maxValue=r;const o={classBreaks:i,normalizationTotal:e.normalizationTotal},n=Q(o,e.classificationMethod);return Promise.resolve(n)}async _classBreaksFromMemory(e){const{view:t,field:r,valueExpression:a,signal:i}=e,{featuresJSON:s,graphics:o,layerView:n,query:l,fieldInfos:u}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryClassBreaks"}),m={field:r,valueExpression:a,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return a&&t&&(s||o)&&(m.viewInfoParams=M(t),m.timeZone=t.timeZone,m.fieldInfos=u),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(m.normalizationTotal=await this._getNormalizationTotalFromMemory(r,{featuresJSON:s,graphics:o,layerView:n,query:l},i)),!s&&!o&&n&&"queryClassBreaks"in n?n.queryClassBreaks(l,m,{signal:i}):s?this.workerClient.classBreaks(m,s):w({attribute:m,features:o})}async _heatmapStatsFromMemory(e,t){const{view:r,field:a,radius:s}=e,{featuresJSON:o,graphics:n}=await this._processStatsFromMemoryParams({...e,returnGeometry:!0});i(r,"InMemoryLayerAdapter: must have a view");const l=new y({extent:r.extent,tolerance:"2d"===r.type?r.state.resolution:r.pixelSizeAt?.(r.center)}),m={field:a,fieldOffset:t,radius:s,transform:u(l),spatialReference:r.spatialReference?.toJSON(),size:r.size};return o?.length||n?.length?o?this.workerClient.heatmapStatistics(m,o):g({attribute:m,features:n}):{count:0,min:null,max:null,avg:null,stddev:null}}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){return this.getField(e)?{supportsLabelingInfo:!0,supportsRenderer:!0,supportsPopupTemplate:!0,supportsLayerQuery:!0,supportsStatistics:!0}:null}getFieldDomain(e,t){return this.layer.getFieldDomain(e,t)}createQuery(){return this.layer.createQuery()}async summaryStatistics(e){const{field:t,valueExpression:a,sqlExpression:i,features:s,view:o}=e,n=t?this.getField(t):null,l=p(n),u=!!a,m="3d"===o?.type;if(!a&&i&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return u||s||m?this._summaryStatsFromMemory(e,n):this._summaryStatsFromClientQuery(e,l)}async uniqueValues(e){const{valueExpression:t,sqlExpression:a,features:i,view:s}=e,o=await j(e,this),n=!!t,l="3d"===s?.type;if(!t&&a&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return n||i||l?this._uvFromMemory(e,o):this._uvFromClientQuery(e,o)}async histogram(e){const{features:t,valueExpression:a,normalizationType:i,sqlExpression:s}=e,o=t||!!a;if(!a&&s&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return o||i?this._histogramFromMemory(e):this._histogramForField(e)}async classBreaks(e){return!1!==e.analyzeData?this._classBreaksFromMemory(e):this._classBreaksFromInterpolation(e)}async queryFeatureCount(e){const{whereClause:t,view:a,signal:i}=e;if(!a)throw new r(`${this.adapterName}:insufficient-data`,"view is required to fetch the features from layerView");const s=this.layer.createQuery();s.where=F(s.where,t);const n=await a.whenLayerView(this.layer);return await o((()=>!n.updating),i),n.queryFeatureCount(s,{signal:i})}async generateRenderer(e,t){throw new r(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation")}async predominantCategories(e){const{fields:t,view:r,signal:a}=e,i=f(t),s=await this._uvFromMemory({valueExpression:i,view:r,signal:a});return I(s.uniqueValueInfos,t)}async heatmapStatistics(e){const{field:t,fieldOffset:r,view:a,signal:i}=e;return(t&&null==r?this.summaryStatistics({field:t,view:a,signal:i}):Promise.resolve(null)).then((t=>{let a=r||0;if(t){const{count:e,min:r,max:i}=t;e?r===i&&0===r?a=1:i<=0?a="abs":r<0&&(a=-1.01*r):a=1}return this._heatmapStatsFromMemory(e,a).then((e=>({...e,summaryStatistics:t,fieldOffset:a})))}))}async getSampleFeatures(e,a){const{view:i,sampleSize:s,requiredFields:o,returnGeometry:n,filter:l,signal:u}=e,m=this.layer.createQuery(),p=1;if(m.outSpatialReference=e.spatialReference||i?.spatialReference,m.returnGeometry=!!n,m.outFields=o,T(m,l),!i)throw new r(`${this.adapterName}:not-supported`,"view is required to get sample features for Layer");const y=await i.whenLayerView(this.layer);if(N(this,o,y).length)throw new r(`${this.adapterName}:not-supported`,"Required fields need to be passed in the outFields for Layer");const f=await this._fetchFeaturesFromMemory(y,m,u,a),c=null!=s&&s>0&&s<=f.length?s:f.length;return t(f,c,p)}load(e){const t=this.layer.load(e).then((async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.capabilities?.query?.supportsSqlExpression,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this._hasLocalSource=!1,this.hasQueryEngine=!0,this.workerClient=S.getInstance(),await this.workerClient.open(e.signal)}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([n({constructOnly:!0})],U.prototype,"layer",void 0),U=e([l("esri.smartMapping.support.adapters.InMemoryLayerAdapter")],U);const B=U;export{B as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{pickRandom as t}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import a from"../../../core/Logger.js";import{assertIsSome as i}from"../../../core/maybe.js";import{timeout as s}from"../../../core/promiseUtils.js";import{whenOnce as o}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{toQuantizationTransform as u}from"../../../geometry/support/quantizationUtils.js";import{kebabDict as m}from"../../../layers/support/fieldType.js";import{isTimeOnlyField as p}from"../../../layers/support/fieldUtils.js";import y from"../../../rest/support/QuantizationParameters.js";import{getArcadeForPredominantCategory as f}from"../../statistics/support/predominanceUtils.js";import{summaryStatistics as c,uniqueValues as d,histogram as h,classBreaks as w,heatmapStatistics as g}from"../../statistics/support/statsWorker.js";import{mergeWhereClauses as F}from"../../statistics/support/utils.js";import{WorkerClient as S}from"../../statistics/support/WorkerClient.js";import{getFieldsList as v,isAnyDateField as V,fieldDelimiter as q}from"../utils.js";import x from"./LayerAdapter.js";import{ensureFeaturesJSON as z,getSummaryStatsQuery as _,getSummaryStatisticsFromFeatureSet as M,getViewInfoParams as N,getMissingFields as T,updateQueryWithFeatureFilter as L,getUVQuery as E,getUniqueValuesFromFeatureSet as C,getBins as j,getDomainsForFields as I,getPredominantCategoriesFromUVInfos as O}from"./support/utils.js";import{processSummaryStatisticsResult as k,createUVResult as Q,resolveCBResult as b}from"../../../statistics/utils.js";import{loadArcade as J}from"../../../support/arcadeOnDemand.js";const P=5;let U=null,B=class extends x{constructor(){super(...arguments),this._hasLocalSource=!1,this.adapterName="in-memory-layer-adapter"}destroy(){this.workerClient?.destroy()}async _waitForLayerViewUpdate(e){if(!e)throw new r(`${this.adapterName}:insufficient-data", "layerView is required to fetch the features`);const t=new AbortController,i=o((()=>!e.updating),t.signal);await s(i,5e3,t).catch((e=>{throw a.getLogger(this).warn("LayerView is taking too long to update. Aborting fetch from layerView."),e}))}async _fetchFeatureSetFromMemory(e,t,a){const i=this.layer;if(this._hasLocalSource)return i.queryFeatures(e);if(!t)throw new r(`${this.adapterName}:insufficient-data`,"view is required to fetch the features from layerView");const s=await t.whenLayerView(this.layer);return await this._waitForLayerViewUpdate(s),s.queryFeatures(e,{signal:a})}async _fetchFeaturesFromMemory(e,t,a,i){const s=this.layer,o="json"===i;if(this._hasLocalSource){const e=await s.queryFeatures(t);return o?z(e.features):e.features}if(await this._waitForLayerViewUpdate(e),o&&"queryFeaturesJSON"in e&&e.queryFeaturesJSON){const{features:r}=await e.queryFeaturesJSON(t,{signal:a});return r}if(!("queryFeatures"in e))throw new r(`${this.adapterName}:not-supported`,"'queryFeatures' is not supported on the layerView");const n=await e.queryFeatures(t,{signal:a});return o?z(n.features):n.features}_fetchFeaturesForStats(e,t){return v({field:e.field,field2:e.field2,field3:e.field3,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((r=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,filter:e.filter,requiredFields:r,signal:e.signal},t)))}async _summaryStatsFromClientQuery(e,t){const{view:r,signal:a}=e,i=_(this,e,t),s=await this._fetchFeatureSetFromMemory(i,r,a),o=M(s,V(t)||p(t));return k(o)}async _getNormalizationTotalFromMemory(e,t,a){const{featuresJSON:i,graphics:s,layerView:o,query:n}=t,l=(!i&&!s&&o&&"querySummaryStatistics"in o?await o.querySummaryStatistics(n,{field:e},{signal:a}):i?await this.workerClient.summaryStatistics({field:e},i):await c({attribute:{field:e},features:s??[]})).sum;if(null==l)throw new r(`${this.adapterName}:invalid`,"invalid normalizationTotal");return l}async _summaryStatsFromMemory(e,t){const{view:r,field:a,valueExpression:i,normalizationType:s,signal:o}=e,n={field:a,valueExpression:i,normalizationType:s,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue},{featuresJSON:l,graphics:u,layerView:p,query:y,fieldInfos:f}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"querySummaryStatistics"});return i&&r&&(l||u)&&(n.fieldType=t?.type?m.toJSON(t.type):null,n.viewInfoParams=N(r),n.timeZone=r.timeZone,n.fieldInfos=f),"percent-of-total"===s&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:l,graphics:u,layerView:p,query:y},o)),!l&&!u&&p&&"querySummaryStatistics"in p?p.querySummaryStatistics(y,n,{signal:o}):l?this.workerClient.summaryStatistics(n,l):c({attribute:n,features:u})}async _getFilteredFeatures(e,t){let r=[];if("intersects"===t?.spatialRelationship){const{intersect:a}=await import("../../../geometry/geometryEngineAsync.js"),i=null!=t.geometry?t.geometry:null;for(const t of e){const e=null!=t.geometry?t.geometry:null;if(e&&i){await a(e,i)&&r.push(t)}}}else r=e;return e.length&&"declaredClass"in e[0]&&"esri.Graphic"===e[0].declaredClass?{graphics:r}:{featuresJSON:r}}async _processStatsFromMemoryParams(e){const{features:t,filter:r}=e;if(t?.length)return this._getFilteredFeatures(t,r);const{view:a,field:i,field2:s,field3:o,normalizationField:n,valueExpression:l,layerViewFunc:u,signal:m}=e;let p=e.returnGeometry;if(null==p&&l){if(!U){const{arcadeUtils:e}=await J();U=e}const e=U.hasGeometryOperations(l);e&&await U.enableGeometryOperations(),p=e}let y=null,f=null,c=null,d=null,h=null;if(a)try{y=await a.whenLayerView(this.layer),f=null!=u&&u in y&&"function"==typeof y[u]}catch{f=!1}if(f)try{await this._waitForLayerViewUpdate(y);const e=await v({field:i,field2:s,field3:o,normalizationField:n,valueExpression:l});T(this,e,y).length?f=!1:(c=this.layer.createQuery(),c.outFields=e,c.returnGeometry=!1,L(c,r)),y.suspended&&(f=!1)}catch{f=!1}return f||(d=await this._fetchFeaturesForStats({field:i,field2:s,field3:o,valueExpression:l,normalizationField:n,returnGeometry:p,filter:r,view:a,signal:m},"json"),h=(await v({valueExpression:l})).map((e=>this.getField(e)?.toJSON())).filter(Boolean)),{layerView:y,query:c,featuresJSON:d,fieldInfos:h}}async _uvFromClientQuery(e,t){const{view:r,signal:a}=e,i=E(this,e),s=await this._fetchFeatureSetFromMemory(i,r,a),o=await C(s,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:q,view:e.view,signal:e.signal});return Q(o,t,e.returnAllCodedValues,q)}async _uvFromMemory(e,t){const{view:r,field:a,valueExpression:i,returnAllCodedValues:s,signal:o}=e,{featuresJSON:n,graphics:l,layerView:u,query:m,fieldInfos:p}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryUniqueValues"}),y={field:a,field2:e.field2,field3:e.field3,fieldDelimiter:q,valueExpression:i,domains:t,returnAllCodedValues:s};return i&&r&&(n||l)&&(y.viewInfoParams=N(r),y.timeZone=r.timeZone,y.fieldInfos=p),!n&&!l&&u&&"queryUniqueValues"in u?u.queryUniqueValues(m,y,{signal:o}):n?this.workerClient.uniqueValues(y,n):d({attribute:y,features:l})}_histogramForField(e){let t=null;return t=null!=e.minValue&&null!=e.maxValue?Promise.resolve({min:e.minValue,max:e.maxValue}):this.summaryStatistics(e).then((e=>{if(!e.count)throw new r(`${this.adapterName}:insufficient-data`,"Either the layer has no features or none of the features have data for the field");return{min:e.min,max:e.max}})),t.then((t=>j(this,{min:t.min,max:t.max},e.field,e.numBins??void 0,e.view,e.filter,e.signal)))}async _histogramFromMemory(e){const{view:t,field:r,valueExpression:a,signal:i}=e,{featuresJSON:s,graphics:o,layerView:n,query:l,fieldInfos:u}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryHistogram"}),m={field:r,valueExpression:a,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return a&&t&&(s||o)&&(m.viewInfoParams=N(t),m.timeZone=t.timeZone,m.fieldInfos=u),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(m.normalizationTotal=await this._getNormalizationTotalFromMemory(r,{featuresJSON:s,graphics:o,layerView:n,query:l},i)),!s&&!o&&n&&"queryHistogram"in n?n.queryHistogram(l,m,{signal:i}):s?this.workerClient.histogram(m,s):h({attribute:m,features:o})}_classBreaksFromInterpolation(e){const{minValue:t,maxValue:r}=e,a=e.numClasses||P,i=[],s=(r-t)/a;for(let l=0;l<a;l++){const e=t+l*s;i.push({minValue:e,maxValue:e+s})}i[a-1].maxValue=r;const o={classBreaks:i,normalizationTotal:e.normalizationTotal},n=b(o,e.classificationMethod);return Promise.resolve(n)}async _classBreaksFromMemory(e){const{view:t,field:r,valueExpression:a,signal:i}=e,{featuresJSON:s,graphics:o,layerView:n,query:l,fieldInfos:u}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryClassBreaks"}),m={field:r,valueExpression:a,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return a&&t&&(s||o)&&(m.viewInfoParams=N(t),m.timeZone=t.timeZone,m.fieldInfos=u),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(m.normalizationTotal=await this._getNormalizationTotalFromMemory(r,{featuresJSON:s,graphics:o,layerView:n,query:l},i)),!s&&!o&&n&&"queryClassBreaks"in n?n.queryClassBreaks(l,m,{signal:i}):s?this.workerClient.classBreaks(m,s):w({attribute:m,features:o})}async _heatmapStatsFromMemory(e,t){const{view:r,field:a,radius:s}=e,{featuresJSON:o,graphics:n}=await this._processStatsFromMemoryParams({...e,returnGeometry:!0});i(r,"InMemoryLayerAdapter: must have a view");const l=new y({extent:r.extent,tolerance:"2d"===r.type?r.state.resolution:r.pixelSizeAt?.(r.center)}),m={field:a,fieldOffset:t,radius:s,transform:u(l),spatialReference:r.spatialReference?.toJSON(),size:r.size};return o?.length||n?.length?o?this.workerClient.heatmapStatistics(m,o):g({attribute:m,features:n}):{count:0,min:null,max:null,avg:null,stddev:null}}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){return this.getField(e)?{supportsLabelingInfo:!0,supportsRenderer:!0,supportsPopupTemplate:!0,supportsLayerQuery:!0,supportsStatistics:!0}:null}getFieldDomain(e,t){return this.layer.getFieldDomain(e,t)}createQuery(){return this.layer.createQuery()}async summaryStatistics(e){const{field:t,valueExpression:a,sqlExpression:i,features:s,view:o}=e,n=t?this.getField(t):null,l=!!a,u="3d"===o?.type;if(!a&&i&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return l||s||u?this._summaryStatsFromMemory(e,n):this._summaryStatsFromClientQuery(e,n)}async uniqueValues(e){const{valueExpression:t,sqlExpression:a,features:i,view:s}=e,o=await I(e,this),n=!!t,l="3d"===s?.type;if(!t&&a&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return n||i||l?this._uvFromMemory(e,o):this._uvFromClientQuery(e,o)}async histogram(e){const{features:t,valueExpression:a,normalizationType:i,sqlExpression:s}=e,o=t||!!a;if(!a&&s&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return o||i?this._histogramFromMemory(e):this._histogramForField(e)}async classBreaks(e){return!1!==e.analyzeData?this._classBreaksFromMemory(e):this._classBreaksFromInterpolation(e)}async queryFeatureCount(e){const{whereClause:t,view:a,signal:i}=e;if(!a)throw new r(`${this.adapterName}:insufficient-data`,"view is required to fetch the features from layerView");const s=this.layer.createQuery();s.where=F(s.where,t);const n=await a.whenLayerView(this.layer);return await o((()=>!n.updating),i),n.queryFeatureCount(s,{signal:i})}async generateRenderer(e,t){throw new r(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation")}async predominantCategories(e){const{fields:t,view:r,signal:a}=e,i=f(t),s=await this._uvFromMemory({valueExpression:i,view:r,signal:a});return O(s.uniqueValueInfos,t)}async heatmapStatistics(e){const{field:t,fieldOffset:r,view:a,signal:i}=e;return(t&&null==r?this.summaryStatistics({field:t,view:a,signal:i}):Promise.resolve(null)).then((t=>{let a=r||0;if(t){const{count:e,min:r,max:i}=t;e?r===i&&0===r?a=1:i<=0?a="abs":r<0&&(a=-1.01*r):a=1}return this._heatmapStatsFromMemory(e,a).then((e=>({...e,summaryStatistics:t,fieldOffset:a})))}))}async getSampleFeatures(e,a){const{view:i,sampleSize:s,requiredFields:o,returnGeometry:n,filter:l,signal:u}=e,m=this.layer.createQuery(),p=1;if(m.outSpatialReference=e.spatialReference||i?.spatialReference,m.returnGeometry=!!n,m.outFields=o,L(m,l),!i)throw new r(`${this.adapterName}:not-supported`,"view is required to get sample features for Layer");const y=await i.whenLayerView(this.layer);if(T(this,o,y).length)throw new r(`${this.adapterName}:not-supported`,"Required fields need to be passed in the outFields for Layer");const f=await this._fetchFeaturesFromMemory(y,m,u,a),c=null!=s&&s>0&&s<=f.length?s:f.length;return t(f,c,p)}load(e){const t=this.layer.load(e).then((async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.capabilities?.query?.supportsSqlExpression,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this._hasLocalSource=!1,this.hasQueryEngine=!0,this.workerClient=S.getInstance(),await this.workerClient.open(e.signal)}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([n({constructOnly:!0})],B.prototype,"layer",void 0),B=e([l("esri.smartMapping.support.adapters.InMemoryLayerAdapter")],B);const $=B;export{$ 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{_ as e}from"../../../chunks/tslib.es6.js";import{pickRandom as r}from"../../../core/arrayUtils.js";import t from"../../../core/Error.js";import{whenOnce as s}from"../../../core/reactiveUtils.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{pickRandom as r}from"../../../core/arrayUtils.js";import t from"../../../core/Error.js";import{whenOnce as s}from"../../../core/reactiveUtils.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{isTimeOnlyField as i}from"../../../layers/support/fieldUtils.js";import{getArcadeForPredominantCategory as o}from"../../statistics/support/predominanceUtils.js";import{mergeWhereClauses as n}from"../../statistics/support/utils.js";import{WorkerClient as u}from"../../statistics/support/WorkerClient.js";import{isAnyDateField as l,fieldDelimiter as p}from"../utils.js";import c from"./FeatureLayerAdapter.js";import{getSummaryStatsQuery as d,getSummaryStatisticsFromFeatureSet as f,getUVQuery as m,getUniqueValuesFromFeatureSet as y,getDomainsForFields as h,getPredominantCategoriesFromUVInfos as w,getMissingFields as g}from"./support/utils.js";import{processSummaryStatisticsResult as F,createUVResult as v}from"../../../statistics/utils.js";let q=class extends c{constructor(e){super(e)}async _waitForLayerViewUpdate(e){if(!e)throw new t("ogc-feature-layer-adapter:insufficient-data","layerView is required to fetch the features");await s((()=>!e.updating))}async _summaryStatsFromClientQuery(e,r){const{signal:a,view:o}=e;if(!o)throw new t("ogc-feature-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const n=d(this,e,r),u=await o.whenLayerView(this.layer);await s((()=>!u.updating),a);const p=await u.queryFeatures(n,{signal:a}),c=f(p,l(r)||i(r));return F(c)}async _uvFromClientQuery(e,r){const{signal:a,view:i}=e;if(!i)throw new t("ogc-feature-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const o=m(this,e),n=await i.whenLayerView(this.layer);await s((()=>!n.updating),a);const u=await n.queryFeatures(o,{signal:a}),l=await y(u,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:p,view:e.view,signal:e.signal});return v(l,r,e.returnAllCodedValues,p)}summaryStatistics(e){const{field:r,valueExpression:s,sqlExpression:a,features:i,view:o}=e,n=r?this.getField(r):null,u=!!s,l="3d"===o?.type;if(!s&&a&&!this.supportsSQLExpression)throw new t("ogc-feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries");return u||i||l?this._summaryStatsFromMemory(e,n):this._summaryStatsFromClientQuery(e,n)}async uniqueValues(e){const{valueExpression:r,sqlExpression:s,features:a,view:i}=e,o=await h(e,this),n=!!r,u="3d"===i?.type;if(!r&&s&&!this.supportsSQLExpression)throw new t("ogc-feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries");return n||a||u?this._uvFromMemory(e,o):this._uvFromClientQuery(e,o)}histogram(e){const{features:r,valueExpression:s,normalizationType:a,sqlExpression:i}=e,o=r||!!s;if(!s&&i&&!this.supportsSQLExpression)throw new t("ogc-feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries");return o||a?this._histogramFromMemory(e):this._histogramForField(e)}classBreaks(e){return!1!==e.analyzeData?this._classBreaksFromMemory(e):this._classBreaksFromInterpolation(e)}async queryFeatureCount(e){const{whereClause:r,view:a,signal:i}=e;if(!a)throw new t("ogc-feature-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const o=this.layer.createQuery();o.where=n(o.where,r);const u=await a.whenLayerView(this.layer);return await s((()=>!u.updating),i),u.queryFeatureCount(o,{signal:i})}generateRenderer(e,r){throw new t("ogc-feature-layer-adapter:not-supported","OGCFeatureLayer does not support generateRenderer operation")}async predominantCategories(e){const{fields:r,view:t,signal:s}=e,a=o(r),i=await this._uvFromMemory({valueExpression:a,view:t,signal:s});return w(i.uniqueValueInfos,r)}async getSampleFeatures(e,s){const{view:a,sampleSize:i,requiredFields:o,returnGeometry:n,signal:u}=e,l=this.layer.createQuery(),p=1;if(l.outSpatialReference=e.spatialReference||a?.spatialReference,l.returnGeometry=!!n,l.outFields=o,!a)throw new t("ogc-feature-layer-adapter:not-supported","view is required to get sample features for OGCFeatureLayer");const c=await a.whenLayerView(this.layer);if(g(this,o,c).length)throw new t("ogc-feature-layer-adapter:not-supported","Required fields need to be passed in the outFields for OGCFeatureLayer");const d=await this._fetchFeaturesFromMemory(c,l,u,s),f=null!=i&&i>0&&i<=d.length?i:d.length;return r(d,f,p)}load(e){const r=this.layer.load(e).then((async r=>{this.geometryType=r.geometryType,this.objectIdField=r.objectIdField,this.supportsSQLExpression=r.capabilities?.query?.supportsSqlExpression,this.minScale=r.minScale,this.maxScale=r.maxScale,this.fullExtent=r.fullExtent,this.workerClient=u.getInstance(),await this.workerClient.open(e.signal)}));return this.addResolvingPromise(r),Promise.resolve(this)}};q=e([a("esri.smartMapping.support.adapters.OGCFeatureLayerAdapter")],q);const x=q;export{x 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{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Graphic.js";import{pickRandom as r}from"../../../core/arrayUtils.js";import a from"../../../core/Error.js";import{timeout as s,throwIfAborted as i}from"../../../core/promiseUtils.js";import{whenOnce as o}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{kebabDict as u}from"../../../layers/support/fieldType.js";import{isNumericField as p,isDateField as m}from"../../../layers/support/fieldUtils.js";import c from"../../../rest/support/FeatureSet.js";import{summaryStatistics as d,uniqueValues as h,classBreaks as f,histogram as y}from"../../statistics/support/statsWorker.js";import{WorkerClient as g}from"../../statistics/support/WorkerClient.js";import{getFieldsList as w,fieldDelimiter as F}from"../utils.js";import _ from"./FeatureLayerAdapter.js";import S from"./LayerAdapter.js";import{getMissingFields as v,ensureFeaturesJSON as x,getViewInfoParams as L,getUniqueValuesFromFeatureSet as C,getHistogramFromFeatureSet as E,getDomainsForFields as z}from"./support/utils.js";import{createUVResult as T}from"../../../statistics/utils.js";let A=class extends S{constructor(e){super(e),this._featureLayerAdapter=null,this.workerClient=null}destroy(){this.workerClient?.destroy()}_hasCachedStatistics(e){return this.layer.hasCachedStatistics(e)}_updateQuery(e,t=[],r=[]){if(!e||!r.length)return e;const a=this.layer.objectIdField,s=e.clone(),i=t.filter((e=>{const t=this.layer.getField(e);return!r.includes(t.name)})),o=i.some((e=>this.layer.getField(e).name===a));return s.outFields=o?i:[...i,a],s}async _fetchFeaturesFromMemory(e,t,r){if(!e)throw new a("scene-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const n=await e.whenLayerView(this.layer),l=new AbortController,u=l.signal,p=o((()=>!n.updating),u);await s(p,5e3,l);const m=v(this,r,n);i(u);const c=this._updateQuery(t,r??[],m),d=await n.queryFeatures(c,{signal:u});i(u);const h=d.features;return m.length?n.whenGraphicAttributes(h,m):h}async _fetchFeaturesJSONFromMemory(e,t,r){return this._fetchFeaturesFromMemory(e,t,r).then(x)}_fetchFeaturesForStats(e,t){return w({field:e.field,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((r=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,requiredFields:r,signal:e.signal},t)))}async _processStatsFromMemoryParams(e){const t=e.features;if(t?.length){return t.length&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass?{graphics:t}:{featuresJSON:t}}const{view:r,field:s,normalizationField:i,valueExpression:o,signal:n}=e,l=await this._fetchFeaturesForStats({field:s,valueExpression:o,normalizationField:i,view:r,signal:n});if(!l?.length)throw new a("scene-layer-adapter:insufficient-data","No features are available to calculate statistics");return{graphics:l}}_generateFeatureSetForCachedHistogram(e,r=e.minimum,a=e.maximum,s){const i=[];for(let t=0;t<s;t++)i[t]=0;const o=e.counts.length,n=e.minimum,l=e.maximum;for(let t=0;t<o;t++){const u=(t+.5)/o,p=((1-u)*n+u*l-r)/(a-r)*s;p>=0&&p<=s&&(i[p===s?s-1:Math.floor(p)]+=e.counts[t])}const u=[];i.forEach(((e,r)=>{const a=new t({attributes:{}});a.attributes.EXPR_1=r+1,a.attributes.countOFExpr=e,u.push(a)}));const p=new c;return p.features=u,p}_getCachedStatistics(e,t){const r=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.minValue||e.maxValue?Promise.reject(new a("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression', 'sqlWhere', 'minValue' or 'maxValue' is specified")):r.queryCachedStatistics(t?.name,{signal:e.signal}).then((e=>{const t=e.stats,{min:r,max:a,totalValuesCount:s}=t;let{avg:i,stddev:o,sum:n,variance:l,count:u}=t;return 0===r&&0===a||(i=0===i?null:i,n=0===n?null:n,o=0===o?null:o,l=0===l?null:l,u=0===u?null:u),null==u&&(null!=n&&null!=i?u=Math.round(n/i):null!=s&&(u=s)),{avg:i,count:u,max:a,min:r,stddev:o,sum:n,variance:l}}))}async _getNormalizationTotal(e,t,r){const s=(t?await this.workerClient.summaryStatistics({field:e},t):await d({attribute:{field:e},features:r})).sum;if(null==s)throw new a("scene-layer-adapter:invalid","invalid normalizationTotal");return s}async _getSummaryStatisticsFromMemory(e,t){const{view:r,field:a,normalizationField:s,valueExpression:i}=e,{featuresJSON:o,graphics:n}=await this._processStatsFromMemoryParams(e),l={field:a,valueExpression:i,normalizationType:e.normalizationType,normalizationField:s,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue};return e.valueExpression&&r&&o&&(l.fieldType=t?.type?u.toJSON(t.type):null,l.viewInfoParams=L(r),l.timeZone=r.timeZone),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotal(a,o,n)),o?this.workerClient.summaryStatistics(l,o):d({attribute:l,features:n})}_getCachedStatisticsForUniqueValues(e,r){const s=this.layer,i=r?.name,o=r&&e.field?this.getFieldDomain(e.field):null;return e.valueExpression||e.sqlExpression||e.sqlWhere?Promise.reject(new a("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression' or 'sqlWhere' is specified")):s.queryCachedStatistics(i,{signal:e.signal}).then((a=>{const o=a.stats;if(!o.mostFrequentValues)throw new Error;const n=a.labels?.labels,l={},u=[],d="countOF"+i;o.mostFrequentValues.forEach((e=>{const a=new t({attributes:{}});a.attributes[i]=r&&r.name!==s.objectIdField&&(p(r)||m(r))?Number(e.value):e.value,a.attributes[d]=e.count,u.push(a)})),n&&n.forEach((e=>{l[e.value]=e.label}));const h=new c;return h.features=u,C(h,{layer:this,field:e.field,labels:l,view:e.view,signal:e.signal})})).then((t=>T(t,[o],e.returnAllCodedValues)))}async _getUniqueValuesFromMemory(e,t){const{view:r,field:a,field2:s,field3:i,valueExpression:o,returnAllCodedValues:n}=e,l={field:a,field2:s,field3:i,fieldDelimiter:F,valueExpression:o,domains:t,returnAllCodedValues:n},{featuresJSON:u,graphics:p}=await this._processStatsFromMemoryParams(e);return e.valueExpression&&r&&u&&(l.viewInfoParams=L(r),l.timeZone=r.timeZone),u?this.workerClient.uniqueValues(l,u):h({attribute:l,features:p})}_getCachedStatisticsForHistogram(e,t){const r=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.normalizationType?Promise.reject(new a("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression' or 'sqlExpression' or 'sqlWhere' or 'normalizationType' is specified")):r.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((t=>{const r=t.stats,{minValue:a,maxValue:s}=e,i=null!=a?a:r.min,o=null!=s?s:r.max,n=e.numBins||10,l=this._generateFeatureSetForCachedHistogram(r.histogram,i,o,n);return E(l,i,o,n)}))}async _getClassBreaksFromMemory(e){const{view:t,field:r,normalizationField:a,valueExpression:s}=e,{featuresJSON:i,graphics:o}=await this._processStatsFromMemoryParams(e),n={field:r,valueExpression:s,normalizationType:e.normalizationType,normalizationField:a,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return e.valueExpression&&t&&i&&(n.viewInfoParams=L(t),n.timeZone=t.timeZone),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotal(r,i,o)),i?this.workerClient.classBreaks(n,i):f({attribute:n,features:o})}async _getHistogramFromMemory(e){const{view:t,field:r}=e,{featuresJSON:a,graphics:s}=await this._processStatsFromMemoryParams(e),i={field:r,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return e.valueExpression&&t&&a&&(i.viewInfoParams=L(t),i.timeZone=t.timeZone),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(i.normalizationTotal=await this._getNormalizationTotal(r,a,s)),a?this.workerClient.histogram(i,a):y({attribute:i,features:s})}getField(e){return this.layer.getField(e??"")}getFieldUsageInfo(e){const t=this.getField(e);if(!t)return null;const r=this.layer.getFieldUsageInfo(t.name);return{supportsLabelingInfo:r.supportsLabelingInfo,supportsPopupTemplate:r.supportsPopupTemplate,supportsRenderer:r.supportsRenderer,supportsLayerQuery:r.supportsLayerQuery,supportsStatistics:!0}}getFieldDomain(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.getFieldDomain(e,t):null}createQuery(){return this.layer.createQuery()}summaryStatistics(e){const t=this.getField(e.field);if(this._featureLayerAdapter)return this._featureLayerAdapter.summaryStatistics(e);if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");return this._hasCachedStatistics(t?.name)?this._getCachedStatistics(e,t).catch((()=>(i(e.signal),this._getSummaryStatisticsFromMemory(e,t)))):this._getSummaryStatisticsFromMemory(e,t)}async uniqueValues(e){if(this._featureLayerAdapter)return this._featureLayerAdapter.uniqueValues(e);if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");const t=await z(e,this),{field:r,field2:s}=e,o=r&&s,n=this.getField(r);return!o&&n&&this._hasCachedStatistics(n.name)?this._getCachedStatisticsForUniqueValues(e,n).catch((()=>(i(e.signal),this._getUniqueValuesFromMemory(e,t)))):this._getUniqueValuesFromMemory(e,t)}histogram(e){const t=this.getField(e.field);if(this._featureLayerAdapter)return this._featureLayerAdapter.histogram(e);if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");return t&&this._hasCachedStatistics(t.name)?this._getCachedStatisticsForHistogram(e,t).catch((()=>(i(e.signal),this._getHistogramFromMemory(e)))):this._getHistogramFromMemory(e)}classBreaks(e){const t=this.getField(e.field);if(this._featureLayerAdapter)return this._featureLayerAdapter.classBreaks(e);if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");return this._hasCachedStatistics(t?.name)?Promise.reject(new a("scene-layer-adapter:not-supported","Cached stats not supported")):this._getClassBreaksFromMemory(e)}queryFeatureCount(e){return this._featureLayerAdapter?this._featureLayerAdapter.queryFeatureCount(e):Promise.reject(new a("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support count query"))}generateRenderer(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.generateRenderer(e,t):Promise.reject(new a("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support generateRenderer operation"))}heatmapStatistics(e){return this._featureLayerAdapter?this._featureLayerAdapter.heatmapStatistics(e):Promise.reject(new a("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support heatmapStatistics operation"))}async predominantCategories(e){if(this._featureLayerAdapter)return this._featureLayerAdapter.predominantCategories(e);throw new a("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support predominantCategories")}async getSampleFeatures(e,t){if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");const{view:s,sampleSize:o,requiredFields:n,returnGeometry:l,signal:u}=e,p=1,m="json"===t,c=this.createQuery();c.outFields=n,c.returnGeometry=!!l,c.where=null,c.num=o;let d=[];try{if(d=m?await this._fetchFeaturesJSONFromMemory(s,c,n):await this._fetchFeaturesFromMemory(s,c,n),d.length&&null!=o&&o>0&&o<=d.length)return r(d,o,p)}catch(f){i(u)}let h=null;if(this._featureLayerAdapter){const r={...e};delete r.view,h=await this._featureLayerAdapter.getSampleFeatures(r,t)}return h&&h.length?h:r(d,d.length,p)}load(e){const t=this.layer.load(e).then((async t=>{this.workerClient=g.getInstance(),await this.workerClient.open(e.signal);const r=t.associatedLayer;if(this.geometryType=t.geometryType,null!=r){this._featureLayerAdapter=new _({layer:r});return this._featureLayerAdapter.load(e).then((()=>{this.objectIdField=this._featureLayerAdapter.objectIdField,this.supportsSQLExpression=this._featureLayerAdapter.supportsSQLExpression,this.minScale=this._featureLayerAdapter.minScale,this.maxScale=this._featureLayerAdapter.maxScale,this.fullExtent=this._featureLayerAdapter.fullExtent}))}this.objectIdField=t.objectIdField,this.supportsSQLExpression=!1,this.hasQueryEngine=!1,this.fullExtent=t.fullExtent}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([n({constructOnly:!0})],A.prototype,"layer",void 0),A=e([l("esri.smartMapping.support.adapters.SceneLayerAdapter")],A);const j=A;export{j as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Graphic.js";import{pickRandom as r}from"../../../core/arrayUtils.js";import a from"../../../core/Error.js";import{timeout as s,throwIfAborted as i}from"../../../core/promiseUtils.js";import{whenOnce as o}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{kebabDict as u}from"../../../layers/support/fieldType.js";import{isNumericField as p}from"../../../layers/support/fieldUtils.js";import m from"../../../rest/support/FeatureSet.js";import{summaryStatistics as c,uniqueValues as d,classBreaks as h,histogram as f}from"../../statistics/support/statsWorker.js";import{WorkerClient as y}from"../../statistics/support/WorkerClient.js";import{getFieldsList as g,isAnyDateField as w,fieldDelimiter as F}from"../utils.js";import _ from"./FeatureLayerAdapter.js";import S from"./LayerAdapter.js";import{getMissingFields as v,ensureFeaturesJSON as x,getViewInfoParams as L,getUniqueValuesFromFeatureSet as C,getHistogramFromFeatureSet as E,getDomainsForFields as z}from"./support/utils.js";import{createUVResult as T}from"../../../statistics/utils.js";let A=class extends S{constructor(e){super(e),this._featureLayerAdapter=null,this.workerClient=null}destroy(){this.workerClient?.destroy()}_hasCachedStatistics(e){return this.layer.hasCachedStatistics(e)}_updateQuery(e,t=[],r=[]){if(!e||!r.length)return e;const a=this.layer.objectIdField,s=e.clone(),i=t.filter((e=>{const t=this.layer.getField(e);return!r.includes(t.name)})),o=i.some((e=>this.layer.getField(e).name===a));return s.outFields=o?i:[...i,a],s}async _fetchFeaturesFromMemory(e,t,r){if(!e)throw new a("scene-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const n=await e.whenLayerView(this.layer),l=new AbortController,u=l.signal,p=o((()=>!n.updating),u);await s(p,5e3,l);const m=v(this,r,n);i(u);const c=this._updateQuery(t,r??[],m),d=await n.queryFeatures(c,{signal:u});i(u);const h=d.features;return m.length?n.whenGraphicAttributes(h,m):h}async _fetchFeaturesJSONFromMemory(e,t,r){return this._fetchFeaturesFromMemory(e,t,r).then(x)}_fetchFeaturesForStats(e,t){return g({field:e.field,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((r=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,requiredFields:r,signal:e.signal},t)))}async _processStatsFromMemoryParams(e){const t=e.features;if(t?.length){return t.length&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass?{graphics:t}:{featuresJSON:t}}const{view:r,field:s,normalizationField:i,valueExpression:o,signal:n}=e,l=await this._fetchFeaturesForStats({field:s,valueExpression:o,normalizationField:i,view:r,signal:n});if(!l?.length)throw new a("scene-layer-adapter:insufficient-data","No features are available to calculate statistics");return{graphics:l}}_generateFeatureSetForCachedHistogram(e,r=e.minimum,a=e.maximum,s){const i=[];for(let t=0;t<s;t++)i[t]=0;const o=e.counts.length,n=e.minimum,l=e.maximum;for(let t=0;t<o;t++){const u=(t+.5)/o,p=((1-u)*n+u*l-r)/(a-r)*s;p>=0&&p<=s&&(i[p===s?s-1:Math.floor(p)]+=e.counts[t])}const u=[];i.forEach(((e,r)=>{const a=new t({attributes:{}});a.attributes.EXPR_1=r+1,a.attributes.countOFExpr=e,u.push(a)}));const p=new m;return p.features=u,p}_getCachedStatistics(e,t){const r=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.minValue||e.maxValue?Promise.reject(new a("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression', 'sqlWhere', 'minValue' or 'maxValue' is specified")):r.queryCachedStatistics(t?.name,{signal:e.signal}).then((e=>{const t=e.stats,{min:r,max:a,totalValuesCount:s}=t;let{avg:i,stddev:o,sum:n,variance:l,count:u}=t;return 0===r&&0===a||(i=0===i?null:i,n=0===n?null:n,o=0===o?null:o,l=0===l?null:l,u=0===u?null:u),null==u&&(null!=n&&null!=i?u=Math.round(n/i):null!=s&&(u=s)),{avg:i,count:u,max:a,min:r,stddev:o,sum:n,variance:l}}))}async _getNormalizationTotal(e,t,r){const s=(t?await this.workerClient.summaryStatistics({field:e},t):await c({attribute:{field:e},features:r})).sum;if(null==s)throw new a("scene-layer-adapter:invalid","invalid normalizationTotal");return s}async _getSummaryStatisticsFromMemory(e,t){const{view:r,field:a,normalizationField:s,valueExpression:i}=e,{featuresJSON:o,graphics:n}=await this._processStatsFromMemoryParams(e),l={field:a,valueExpression:i,normalizationType:e.normalizationType,normalizationField:s,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue};return e.valueExpression&&r&&o&&(l.fieldType=t?.type?u.toJSON(t.type):null,l.viewInfoParams=L(r),l.timeZone=r.timeZone),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotal(a,o,n)),o?this.workerClient.summaryStatistics(l,o):c({attribute:l,features:n})}_getCachedStatisticsForUniqueValues(e,r){const s=this.layer,i=r?.name,o=r&&e.field?this.getFieldDomain(e.field):null;return e.valueExpression||e.sqlExpression||e.sqlWhere?Promise.reject(new a("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression' or 'sqlWhere' is specified")):s.queryCachedStatistics(i,{signal:e.signal}).then((a=>{const o=a.stats;if(!o.mostFrequentValues)throw new Error;const n=a.labels?.labels,l={},u=[],c="countOF"+i;o.mostFrequentValues.forEach((e=>{const a=new t({attributes:{}});a.attributes[i]=r&&r.name!==s.objectIdField&&(p(r)||w(r))?Number(e.value):e.value,a.attributes[c]=e.count,u.push(a)})),n&&n.forEach((e=>{l[e.value]=e.label}));const d=new m;return d.features=u,C(d,{layer:this,field:e.field,labels:l,view:e.view,signal:e.signal})})).then((t=>T(t,[o],e.returnAllCodedValues)))}async _getUniqueValuesFromMemory(e,t){const{view:r,field:a,field2:s,field3:i,valueExpression:o,returnAllCodedValues:n}=e,l={field:a,field2:s,field3:i,fieldDelimiter:F,valueExpression:o,domains:t,returnAllCodedValues:n},{featuresJSON:u,graphics:p}=await this._processStatsFromMemoryParams(e);return e.valueExpression&&r&&u&&(l.viewInfoParams=L(r),l.timeZone=r.timeZone),u?this.workerClient.uniqueValues(l,u):d({attribute:l,features:p})}_getCachedStatisticsForHistogram(e,t){const r=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.normalizationType?Promise.reject(new a("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression' or 'sqlExpression' or 'sqlWhere' or 'normalizationType' is specified")):r.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((t=>{const r=t.stats,{minValue:a,maxValue:s}=e,i=null!=a?a:r.min,o=null!=s?s:r.max,n=e.numBins||10,l=this._generateFeatureSetForCachedHistogram(r.histogram,i,o,n);return E(l,i,o,n)}))}async _getClassBreaksFromMemory(e){const{view:t,field:r,normalizationField:a,valueExpression:s}=e,{featuresJSON:i,graphics:o}=await this._processStatsFromMemoryParams(e),n={field:r,valueExpression:s,normalizationType:e.normalizationType,normalizationField:a,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return e.valueExpression&&t&&i&&(n.viewInfoParams=L(t),n.timeZone=t.timeZone),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotal(r,i,o)),i?this.workerClient.classBreaks(n,i):h({attribute:n,features:o})}async _getHistogramFromMemory(e){const{view:t,field:r}=e,{featuresJSON:a,graphics:s}=await this._processStatsFromMemoryParams(e),i={field:r,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return e.valueExpression&&t&&a&&(i.viewInfoParams=L(t),i.timeZone=t.timeZone),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(i.normalizationTotal=await this._getNormalizationTotal(r,a,s)),a?this.workerClient.histogram(i,a):f({attribute:i,features:s})}getField(e){return this.layer.getField(e??"")}getFieldUsageInfo(e){const t=this.getField(e);if(!t)return null;const r=this.layer.getFieldUsageInfo(t.name);return{supportsLabelingInfo:r.supportsLabelingInfo,supportsPopupTemplate:r.supportsPopupTemplate,supportsRenderer:r.supportsRenderer,supportsLayerQuery:r.supportsLayerQuery,supportsStatistics:!0}}getFieldDomain(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.getFieldDomain(e,t):null}createQuery(){return this.layer.createQuery()}summaryStatistics(e){const t=this.getField(e.field);if(this._featureLayerAdapter)return this._featureLayerAdapter.summaryStatistics(e);if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");return this._hasCachedStatistics(t?.name)?this._getCachedStatistics(e,t).catch((()=>(i(e.signal),this._getSummaryStatisticsFromMemory(e,t)))):this._getSummaryStatisticsFromMemory(e,t)}async uniqueValues(e){if(this._featureLayerAdapter)return this._featureLayerAdapter.uniqueValues(e);if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");const t=await z(e,this),{field:r,field2:s}=e,o=r&&s,n=this.getField(r);return!o&&n&&this._hasCachedStatistics(n.name)?this._getCachedStatisticsForUniqueValues(e,n).catch((()=>(i(e.signal),this._getUniqueValuesFromMemory(e,t)))):this._getUniqueValuesFromMemory(e,t)}histogram(e){const t=this.getField(e.field);if(this._featureLayerAdapter)return this._featureLayerAdapter.histogram(e);if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");return t&&this._hasCachedStatistics(t.name)?this._getCachedStatisticsForHistogram(e,t).catch((()=>(i(e.signal),this._getHistogramFromMemory(e)))):this._getHistogramFromMemory(e)}classBreaks(e){const t=this.getField(e.field);if(this._featureLayerAdapter)return this._featureLayerAdapter.classBreaks(e);if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");return this._hasCachedStatistics(t?.name)?Promise.reject(new a("scene-layer-adapter:not-supported","Cached stats not supported")):this._getClassBreaksFromMemory(e)}queryFeatureCount(e){return this._featureLayerAdapter?this._featureLayerAdapter.queryFeatureCount(e):Promise.reject(new a("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support count query"))}generateRenderer(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.generateRenderer(e,t):Promise.reject(new a("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support generateRenderer operation"))}heatmapStatistics(e){return this._featureLayerAdapter?this._featureLayerAdapter.heatmapStatistics(e):Promise.reject(new a("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support heatmapStatistics operation"))}async predominantCategories(e){if(this._featureLayerAdapter)return this._featureLayerAdapter.predominantCategories(e);throw new a("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support predominantCategories")}async getSampleFeatures(e,t){if(e.filter)throw new a("scene-layer-adapter:not-supported","filter is not supported");const{view:s,sampleSize:o,requiredFields:n,returnGeometry:l,signal:u}=e,p=1,m="json"===t,c=this.createQuery();c.outFields=n,c.returnGeometry=!!l,c.where=null,c.num=o;let d=[];try{if(d=m?await this._fetchFeaturesJSONFromMemory(s,c,n):await this._fetchFeaturesFromMemory(s,c,n),d.length&&null!=o&&o>0&&o<=d.length)return r(d,o,p)}catch(f){i(u)}let h=null;if(this._featureLayerAdapter){const r={...e};delete r.view,h=await this._featureLayerAdapter.getSampleFeatures(r,t)}return h&&h.length?h:r(d,d.length,p)}load(e){const t=this.layer.load(e).then((async t=>{this.workerClient=y.getInstance(),await this.workerClient.open(e.signal);const r=t.associatedLayer;if(this.geometryType=t.geometryType,null!=r){this._featureLayerAdapter=new _({layer:r});return this._featureLayerAdapter.load(e).then((()=>{this.objectIdField=this._featureLayerAdapter.objectIdField,this.supportsSQLExpression=this._featureLayerAdapter.supportsSQLExpression,this.minScale=this._featureLayerAdapter.minScale,this.maxScale=this._featureLayerAdapter.maxScale,this.fullExtent=this._featureLayerAdapter.fullExtent}))}this.objectIdField=t.objectIdField,this.supportsSQLExpression=!1,this.hasQueryEngine=!1,this.fullExtent=t.fullExtent}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([n({constructOnly:!0})],A.prototype,"layer",void 0),A=e([l("esri.smartMapping.support.adapters.SceneLayerAdapter")],A);const j=A;export{j 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{_ as t}from"../../../chunks/tslib.es6.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/Error.js";import{subclass as r}from"../../../core/accessorSupport/decorators/subclass.js";import s from"./InMemoryLayerAdapter.js";import{getSummaryStatsQuery as
|
|
5
|
+
import{_ as t}from"../../../chunks/tslib.es6.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/Error.js";import{subclass as r}from"../../../core/accessorSupport/decorators/subclass.js";import{isTimeOnlyField as s}from"../../../layers/support/fieldUtils.js";import{isAnyDateField as o}from"../utils.js";import e from"./InMemoryLayerAdapter.js";import{getSummaryStatsQuery as i,getSummaryStatisticsFromFeatureSet as a}from"./support/utils.js";import{processSummaryStatisticsResult as p}from"../../../statistics/utils.js";let m=class extends e{async _summaryStatsFromClientQuery(t,r){const{signal:e,view:m}=t,c=i(this,t,r);c.outStatistics=c.outStatistics?.filter((t=>"totalcount_value"!==t.outStatisticFieldName));const u=await this._fetchFeatureSetFromMemory(c,m,e),l=a(u,o(r)||s(r));return p(l)}};m=t([r("esri.smartMapping.support.adapters.StreamLayerAdapter")],m);const c=m;export{c 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{isSome as e}from"../../../../core/arrayUtils.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import"../../../../core/has.js";import n from"../../../../layers/support/CodedValueDomain.js";import"../../../../layers/support/Domain.js";import"../../../../layers/support/InheritedDomain.js";import"../../../../layers/support/RangeDomain.js";import l from"../../../../layers/support/Field.js";import{isStringField as
|
|
5
|
+
import{isSome as e}from"../../../../core/arrayUtils.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import"../../../../core/has.js";import n from"../../../../layers/support/CodedValueDomain.js";import"../../../../layers/support/Domain.js";import"../../../../layers/support/InheritedDomain.js";import"../../../../layers/support/RangeDomain.js";import l from"../../../../layers/support/Field.js";import{isTimeOnlyField as i,isStringField as o}from"../../../../layers/support/fieldUtils.js";import a from"../../../../rest/support/StatisticDefinition.js";import{noDominantCategoryField as r}from"../../../statistics/support/predominanceUtils.js";import{getRangeExpr as u,getSQLFilterForNormalization as s,mergeWhereClauses as c}from"../../../statistics/support/utils.js";import{isIntegerField as m,getDateDiffSQL as f,castIntegerFieldToFloat as p,isAnyDateField as d}from"../../utils.js";import{getEqualIntervalBins as y,isNullCountSupported as g,statisticTypes as v,processNullValue as h}from"../../../../statistics/utils.js";const x=/_value$/i,F=Math.LOG10E,w={SECOND:1e3,MINUTE:6e4,HOUR:36e5},E=10;function S(e){return e.map((e=>e.toJSON()))}function T(e,t){const n=[],l=e.layer,i="featureReduction"in l?l.featureReduction:null,o="binning"===i?.type,a=null!=i&&"fields"in i?i.fields?.map((e=>e.name?.toLowerCase())).filter(Boolean):[];if(!o||!t)return n;for(const r of t)a.includes(r.toLowerCase())||n.push(r);return n}function V(e,t,n){const l=[];if(t)for(const i of t){const t=e.getField(i);t&&n&&"availableFields"in n&&!n.availableFields?.includes(t.name)&&l.push(t.name)}return l}function z(e,t){const n=e&&e.features;if(0===n?.length)return{avg:null,count:0,max:null,median:null,min:null,nullcount:0,stddev:null,sum:null,variance:null};const l=n?.[0]?.attributes,i={};for(const o in l)i[o.replace(x,"").toLowerCase()]=l[o];return null!=i.totalcount&&i.totalcount>=i.count&&(i.nullcount=i.totalcount-i.count),delete i.totalcount,i.min===i.max&&null!=i.min&&null==i.stddev&&(i.stddev=i.variance=0),t&&(["min","max","avg","stddev","sum","variance"].forEach((e=>{null!=i[e]&&(i[e]=Math.ceil(i[e]))})),i.min===i.max&&null!=i.min&&(i.avg=i.min,i.stddev=i.variance=0)),i}function $(e){const t=[],n=e.classBreaks,l=n[0].minValue,i=n[n.length-1].maxValue;n.forEach((e=>{t.push([e.minValue,e.maxValue])}));const o={field:e.field,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,layer:e.layer};return{min:l,max:i,intervals:t,sqlExpr:q(o),excludeZerosExpr:e.where,normTotal:e.normalizationTotal}}function q(e){const{field:t,normalizationType:n,normalizationField:l,normalizationTotal:i,layer:o}=e,a=m(o,t);let r=t;return"percent-of-total"===n?r=`((${a?p(t):t} / ${i}) * 100)`:"log"===n?r=`(log(${t}) * ${F})`:"field"===n?r=`(${a?p(t):t} / ${l})`:"natural-log"===n?r=`(log(${a?p(t):t}))`:"square-root"===n&&(r=`(power(${a?p(t):t}, 0.5))`),r}function C(e,t){let n;if(t=t.toLowerCase(),e)for(const l in e)if(l.toLowerCase()!==t){n=e[l];break}return n}function b(e,t){let n;if(t=t.toLowerCase(),e)for(const l in e)if(l.toLowerCase()===t){n=e[l];break}return n}function j(e,t,n,l,i){const o={},a="countOFExpr";e&&e.features&&e.features.forEach((e=>{const t=e.attributes,n=C(t,a),l=b(t,a);null!=n&&null!=l&&0!==n&&(o[n]=l)}));const r=[];return y(t,n,l).forEach(((e,t)=>{const n=(t+1).toString();r.push({minValue:e[0],maxValue:e[1],count:o.hasOwnProperty(n)?o[n]:0})})),{bins:r,minValue:t,maxValue:n,normalizationTotal:i}}function O(e,n){const l=e&&e.features,{field:i,field2:o,field3:a,fieldDelimiter:r,layer:u,view:s,signal:c,labels:m}=n,f=`countOF${!(!i||!o)?"Expr":i||"Expr"}`,p={};let d=!1;if(l.forEach((e=>{const t=e.attributes,n=b(t,f);let l=i?b(t,i):C(t,f),u=o?b(t,o):null,s=a?b(t,a):null;null===l&&0===n&&(d=!0),(null==l||"string"==typeof l&&""===l.trim())&&(l=null),o&&(null==u||"string"==typeof u&&""===u.trim())&&(u=null),a&&(null==s||"string"==typeof s&&""===s.trim())&&(s=null);let c=l;o&&(c=`${h(c)}${r}${h(u)}`,a&&(c=`${c}${r}${h(s)}`)),null==p[c]?p[c]={count:n,data:c}:p[c].count=p[c].count+n})),i&&d){const e=i+" is NULL";return u.queryFeatureCount({whereClause:e,view:s,signal:c}).then((e=>(e=e||0,p.null.count=p.null.count+e,L(p,m)))).catch((()=>(t(c),L(p,m))))}return Promise.resolve(L(p,m))}function L(e,t){if(t)for(const n in e)e[n].label=t[n];return{count:e}}async function R(e,t,l){const i=e?l.getField(e):null,o=i?l.getFieldDomain(i.name):null;if(o)return o;const{uniqueValueInfos:a}=await l.uniqueValues({field:e,sqlWhere:t.sqlWhere,features:t.features,useFeaturesInView:t.useFeaturesInView,view:t.view,signal:t.signal}),r=a.map((e=>({code:e.value})));return new n({codedValues:r})}async function D(e,t){if(!e.returnAllCodedValues)return[];const{field:n,field2:l,field3:i}=e;if(n&&!l){const e=n?t.getField(n):null,l=e?t.getFieldDomain(e.name):null;return l?[l]:[]}const o=[];return n&&(o.push(R(n,e,t)),l&&(o.push(R(l,e,t)),i&&o.push(R(i,e,t)))),Promise.all(o)}function I(e,t){return f(e,new Date(0),t,"milliseconds").sqlExpression}function N(e,t){return`EXTRACT(${t} FROM ${e}) * ${w[t]}`}function U(e){if(!e)return null;return p(["HOUR","MINUTE","SECOND"].map((t=>`(${N(e,t)})`)).join(" + "))}function M(e){return{viewingMode:"2d"===e.type?"map":e.viewingMode,scale:e.scale,spatialReference:e.spatialReference?.toJSON()}}function B(e,t){const n=new Set(e.map((e=>e.value))),l=t.filter((e=>!n.has(e)));for(const i of l)e.push({value:i,count:0});e.sort(((e,n)=>t.indexOf(e.value)-t.indexOf(n.value)));for(const i of e)i.value===r&&(i.value=null);return{predominantCategoryInfos:e}}function P(t){const n="featureReduction"in t?t.featureReduction:null;return((null!=n&&"fields"in n?n.fields:null)??[]).map((e=>{const n=Q(e,t.fieldsIndex);return n?new l({type:n,name:e.name,alias:e.alias}):null})).filter(e)}function Q(e,t){switch(e.statisticType){case"avg":case"avg_angle":return"double";case"count":return"integer";case"min":case"max":case"sum":return e.onStatisticField?t.get(e.onStatisticField)?.type??null:e.onStatisticExpression?"string"===e.onStatisticExpression.returnType?null:"double":null;case"mode":return e.onStatisticField?t.get(e.onStatisticField)?.type??null:e.onStatisticExpression?"string"===e.onStatisticExpression.returnType?"string":"double":null;default:return null}}function W(e,t){return d(t)?I(e,t?.name):i(t)?U(t?.name):null}function _(e,t,n){const{field:l,normalizationType:i,normalizationField:r,normalizationTotal:m,minValue:f,maxValue:p,filter:d}=t,y=e.supportsSQLExpression?W(e,n)||t.sqlExpression:null,h=q({field:l,normalizationType:i,normalizationField:r,normalizationTotal:m,layer:e}),x=y||h,F=x?u(x,f,p):null,w=s({field:l,normalizationField:r,normalizationType:i}),E=c(t.sqlWhere,w),S=c(E,F),T=g({normalizationField:r,normalizationType:i,sqlExpression:y,supportsSQLExpression:e.supportsSQLExpression,minValue:f,maxValue:p}),V=o(e.getField(l??void 0)),z=v.filter((e=>"nullcount"===e?T:!V||"count"===e)),$=e.createQuery();return $.where=c($.where,S),$.sqlFormat=y?"standard":null,$.outStatistics=z.map((t=>{const n=new a;let l=null,i=null,o=`${t}_value`;return"variance"===t?(l="var",i=x):"nullcount"===t?(l="count",i=e.objectIdField,o="totalcount_value"):"median"===t?(l="percentile-continuous",i=x,n.statisticParameters={value:.5}):(l=t,i=x),n.statisticType=l,n.onStatisticField=i,n.outStatisticFieldName=o,n})),k($,d),$}function k(e,t){t&&(e.geometry=t.geometry,e.spatialRelationship=t.spatialRelationship)}function A(e,t){const{field:n,field2:l,field3:i,sqlExpression:o}=t,a=!(!n||!l),r=e.createQuery();return r.where=c(r.where,t.sqlWhere),r.sqlFormat=o?"standard":null,r.outStatistics=[H(a?null:n,a?"1":o)].filter(Boolean),r.groupByFieldsForStatistics=[n||o,l,i].filter(Boolean),k(r,t.filter),r}function H(e,t){const n="countOF"+(e||"Expr"),l=new a;return l.statisticType="count",l.onStatisticField=t?"1":e,l.outStatisticFieldName=n,l}function J(e,t,n,l=E,i,o,a){const{min:r,max:u,normTotal:s,excludeZerosExpr:c}=t,m=t.intervals||y(r,u,l),f=t.sqlExpr||n;return Z(e,m,f,c,i,o,a).then((e=>({bins:e.map(((e,t)=>({minValue:m[t][0],maxValue:m[t][1],count:"fulfilled"===e.status?e.value:0}))),minValue:r,maxValue:u,normalizationTotal:s})))}function Z(e,t,n,l,i,o,a){const r=[],u=t.length;for(let s=0;s<u;s++){const e=c(l,c(n+" >= "+t[s][0],null!==t[s][1]?n+(s===u-1?" <= ":" < ")+t[s][1]:""));r.push(e)}return Promise.allSettled(r.map((t=>e.queryFeatureCount({whereClause:t,view:i,filter:o,signal:a}))))}export{E as defaultNumBins,S as ensureFeaturesJSON,$ as generateBinParams,Q as getAggregateFieldType,J as getBins,D as getDomainsForFields,P as getFeatureReductionFields,q as getFieldExpr,j as getHistogramFromFeatureSet,V as getMissingFields,T as getMissingFieldsForBinning,B as getPredominantCategoriesFromUVInfos,W as getSQLExpressionForDateOrTimeField,z as getSummaryStatisticsFromFeatureSet,_ as getSummaryStatsQuery,A as getUVQuery,O as getUniqueValuesFromFeatureSet,M as getViewInfoParams,U as msForTimeOnlyFieldSQL,I as msSinceUnixEpochSQL,k as updateQueryWithFeatureFilter};
|
|
@@ -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{unique as n}from"../../core/arrayUtils.js";import{createMD5Hash as e}from"../../core/MD5.js";import{isValidNumber as i}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{getPrimaryVisualVariables as t}from"../popup/support/utils.js";import{getNormalizationType as o}from"./utils.js";const l="cluster_count";function r(n,e){return n.split(`cluster_${e}_`).pop()}function a(n){if(!n)return null;const{field:e,valueExpression:t,normalizationField:l,normalizationType:r,normalizationTotal:a}=n;let u=null;if(t)u=t;else if(e){const n=o({normalizationType:r,normalizationField:l,normalizationTotal:a});if(n){const t=n.toLowerCase();if(u=e.toLowerCase()+",norm:"+t,l)u+=","+l.toLowerCase();else if("percent-of-total"===t){let n=a;i(n)&&0!==n||(n=null),u+=","+n}}}return u}function u(n){return e(n)}function s(n,e){const i=a(n);return`${e}_${null!=i?u(i):n.field}`}function p(n,e){return`cluster_${s(n,e)}`}function f(n,e){const i=e.getField(n);return i?.type}function c(n,e){const i="field"in e?e.field:null,t=i?f(i,n):null;return{field:i,fieldType:null!=t?t:null,valueExpression:"valueExpression"in e?e.valueExpression:null,valueExpressionTitle:"valueExpressionTitle"in e?e.valueExpressionTitle:null,normalizationField:"normalizationField"in e?e.normalizationField:null,normalizationType:"normalizationType"in e?e.normalizationType:null,normalizationTotal:"normalizationTotal"in e?e.normalizationTotal:null}}function m(n,e){const i="rotation"===e.type?e.rotationType:null,t=e.legendOptions?.title,o=e.field,l=o?f(o,n):null;return{field:o,fieldType:null!=l?l:null,rotationType:i,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle||e.valueExpression&&t,normalizationField:"normalizationField"in e?e.normalizationField:null,vvType:e.type}}function v(n){return n.map((n=>`{\n "value": "${String(n.value)}",\n "label": "${T(String(n.label))}"\n }`))}function T(n){return n?n.replaceAll('"','\\"'):""}function d(n,e,i){return`\n var uvInfos = [${v(n).join(", ")}];\n var predominantType = Text($feature["${e}"]);\n var label = "${T(i)}";\n\n for (var i = 0; i < Count(uvInfos); i++) {\n if (uvInfos[i].value == predominantType) {\n label = uvInfos[i].label;\n break;\n }\n }\n\n return label;\n `}function y(n,e){const i=[s(n,e)];return"date"===n.fieldType&&i.push(n.fieldType.toLowerCase()),n.rotationType&&i.push(n.rotationType.toLowerCase()),i.join("_")}function z(n,e){return{statisticHash:y(n,e),attributeInfo:n,statisticType:e}}function x(e,i,o=!0){const l=[],r=c(e,i);"class-breaks"===i.type?l.push(z(r,"avg")):"unique-value"===i.type&&l.push(z(r,"
|
|
5
|
+
import{unique as n}from"../../core/arrayUtils.js";import{createMD5Hash as e}from"../../core/MD5.js";import{isValidNumber as i}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{getPrimaryVisualVariables as t}from"../popup/support/utils.js";import{getNormalizationType as o}from"./utils.js";const l="cluster_count";function r(n,e){return n.split(`cluster_${e}_`).pop()}function a(n){if(!n)return null;const{field:e,valueExpression:t,normalizationField:l,normalizationType:r,normalizationTotal:a}=n;let u=null;if(t)u=t;else if(e){const n=o({normalizationType:r,normalizationField:l,normalizationTotal:a});if(n){const t=n.toLowerCase();if(u=e.toLowerCase()+",norm:"+t,l)u+=","+l.toLowerCase();else if("percent-of-total"===t){let n=a;i(n)&&0!==n||(n=null),u+=","+n}}}return u}function u(n){return e(n)}function s(n,e){const i=a(n);return`${e}_${null!=i?u(i):n.field}`}function p(n,e){return`cluster_${s(n,e)}`}function f(n,e){const i=e.getField(n);return i?.type}function c(n,e){const i="field"in e?e.field:null,t=i?f(i,n):null;return{field:i,fieldType:null!=t?t:null,valueExpression:"valueExpression"in e?e.valueExpression:null,valueExpressionTitle:"valueExpressionTitle"in e?e.valueExpressionTitle:null,normalizationField:"normalizationField"in e?e.normalizationField:null,normalizationType:"normalizationType"in e?e.normalizationType:null,normalizationTotal:"normalizationTotal"in e?e.normalizationTotal:null}}function m(n,e){const i="rotation"===e.type?e.rotationType:null,t=e.legendOptions?.title,o=e.field,l=o?f(o,n):null;return{field:o,fieldType:null!=l?l:null,rotationType:i,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle||e.valueExpression&&t,normalizationField:"normalizationField"in e?e.normalizationField:null,vvType:e.type}}function v(n){return n.map((n=>`{\n "value": "${String(n.value)}",\n "label": "${T(String(n.label))}"\n }`))}function T(n){return n?n.replaceAll('"','\\"'):""}function d(n,e,i){return`\n var uvInfos = [${v(n).join(", ")}];\n var predominantType = Text($feature["${e}"]);\n var label = "${T(i)}";\n\n for (var i = 0; i < Count(uvInfos); i++) {\n if (uvInfos[i].value == predominantType) {\n label = uvInfos[i].label;\n break;\n }\n }\n\n return label;\n `}function y(n,e){const i=[s(n,e)];return"date"===n.fieldType&&i.push(n.fieldType.toLowerCase()),n.rotationType&&i.push(n.rotationType.toLowerCase()),i.join("_")}function z(n,e){return{statisticHash:y(n,e),attributeInfo:n,statisticType:e}}function x(e,i,o=!0){const l=[],r=c(e,i);"class-breaks"===i.type?l.push(z(r,"avg")):"unique-value"===i.type&&l.push(z(r,"type"));const a=t(i);for(const n of a){const i=m(e,n);l.push(z(i,"avg"))}return o?n(l,((n,e)=>n.statisticHash===e.statisticHash)):l}export{l as clusterCountField,p as getClusterField,r as getClusterFieldHash,d as getPredominantTypeExpression,c as getRendererAttributeInfo,s as getStatisticId,z as getStatisticInfo,x as getStatisticInfos,m as getVariableAttributeInfo};
|
|
@@ -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{convertDateFormatToIntlOptions as t,formatDate as e,formatTimestamp as r,formatTimeOnly as i,formatDateOnly as n}from"../../intl/date.js";import{isDateField as s,isDateOnlyField as o,isTimestampOffsetField as a}from"../../layers/support/fieldUtils.js";import{loadArcade as c}from"../../support/arcadeOnDemand.js";import{getWellKnownBasemapId as l}from"../../support/basemapUtils.js";import{getTimeZoneFormattingOptions as g,utc as m}from"../../time/timeZoneUtils.js";const d=",",u={light:["streets","gray","topo","terrain","oceans","osm","gray-vector","streets-vector","topo-vector","streets-relief-vector","streets-navigation-vector","topo-3d","navigation-3d","arcgis-light-gray","arcgis-navigation","arcgis-streets","arcgis-streets-relief","arcgis-topographic","arcgis-oceans","osm-standard","osm-standard-relief","osm-streets","osm-streets-relief","osm-light-gray","arcgis-terrain","arcgis-charted-territory","arcgis-community","arcgis-colored-pencil","arcgis-modern-antique","arcgis-midcentury","arcgis-newspaper","arcgis-hillshade-light"],dark:["satellite","hybrid","dark-gray","dark-gray-vector","streets-night-vector","navigation-dark-3d","arcgis-imagery","arcgis-imagery-standard","arcgis-dark-gray","arcgis-navigation-night","arcgis-streets-night","osm-dark-gray","arcgis-nova","arcgis-hillshade-dark"]},f="percent-of-total",p="field",h={years:365,months:30,days:1,hours:1/24,minutes:1/1440,seconds:1/86400,milliseconds:1/864e5},y=new Set(["integer","small-integer"]);let v=null;const T=["date","date-only","timestamp-offset"];function Z(t){return s(t)||o(t)||a(t)}async function $(t){const{field:e,field2:r,field3:i,normalizationField:n,valueExpression:s}=t;let o=[];if(s){if(!v){const{arcadeUtils:t}=await c();v=t}o=v.extractFieldNames(s)}return e&&o.push(e),r&&o.push(r),i&&o.push(i),n&&o.push(n),o}function U(t){let e=t.normalizationType;return e||(t.normalizationField?e=p:null!=t.normalizationTotal&&(e=f)),e??void 0}function w(t){return String(t).padStart(2,"0")}function k(t,e,r){let i;if("date"===e||"number"===e){"number"===e&&(t=new Date(t));i=`TIMESTAMP'${r?t.getFullYear():t.getUTCFullYear()}-${w((r?t.getMonth():t.getUTCMonth())+1)}-${w(r?t.getDate():t.getUTCDate())} ${w(r?t.getHours():t.getUTCHours())}:${w(r?t.getMinutes():t.getUTCMinutes())}:${w(r?t.getSeconds():t.getUTCSeconds())}'`}else i=t;return i}function C(t,e,r,i){const{hasQueryEngine:n}=t,s=`(${k(r,F(t,r),n)} - ${k(e,F(t,e),n)})`;let o=h[i],a="/";o<1&&(o=1/o,a="*");return{sqlExpression:1===o?s:`(${s} ${a} ${o})`,sqlWhere:null}}function F(t,e){if(e instanceof Date)return"date";if("number"==typeof e)return"number";if("string"==typeof e){const r=t.getField(e);if("<now>"===e.toLowerCase())return;if(s(r))return"field"}}function b(t,e=u){for(const r in e)if(e[r].includes(t))return r}function D(t,e,r=!0){let i=null;return t&&("string"==typeof t?e.includes(t)&&(i=t):i=l(t)),r?i||"gray":i}function M(t,e){const r=e&&t.getField(e);return!!r&&y.has(r.type)}function S(t){return`cast(${t} as float)`}function j(s,o){const{format:a,timeZoneOptions:c,fieldType:l}=o??{};let d,u;switch(c&&({timeZone:d,timeZoneName:u}=g(c.layerTimeZone,c.datesInUnknownTimezone,c.viewTimeZone,t(a||"short-date-short-time"),l)),l){case"date-only":{const r=t(a||"short-date");return"string"==typeof s?n(s,{...r}):e(s,{...r,timeZone:m})}case"time-only":{const r=t(a||"short-time");return"string"==typeof s?i(s,r):e(s,{...r,timeZone:m})}case"timestamp-offset":{const i=a||c?t(a||"short-date-short-time"):void 0,n=i?{...i,timeZone:d,timeZoneName:u}:void 0;return"string"==typeof s?r(s,n):e(s,n)}default:{const r=a||c?t(a||"short-date-short-time"):void 0;return e("string"==typeof s?new Date(s):s,r?{...r,timeZone:d,timeZoneName:u}:void 0)}}}export{S as castIntegerFieldToFloat,T as dateTypes,u as defaultBasemapGroups,d as fieldDelimiter,j as formatAnyDate,b as getBasemapGroup,D as getBasemapId,C as getDateDiffSQL,F as getDateType,$ as getFieldsList,U as getNormalizationType,Z as isAnyDateField,M as isIntegerField,h as unitValueInDays};
|