@arcgis/core 5.1.0-next.106 → 5.1.0-next.108
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/analysis/ShadowCastAnalysis.d.ts +2 -1
- package/applications/SceneViewer/sceneViewerUtils.js +1 -1
- package/arcgisGlobal.d.ts +5 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{b7a81fd4994eabba1869.js → 0c8e6ccb5a8174718d62.js} +1 -1
- package/assets/esri/core/workers/chunks/{be817be7c81fb630122f.js → 17604cbd4d24158e2c16.js} +1 -1
- package/assets/esri/core/workers/chunks/{065dd2fdc834146423c7.js → 33ec193e6d7a0cb9d8dd.js} +1 -1
- package/assets/esri/core/workers/chunks/4e13d639419ac64f7563.js +1 -0
- package/assets/esri/core/workers/chunks/4f9ea7544b2d0e88a05c.js +1 -0
- package/assets/esri/core/workers/chunks/{15920af0c4f46773b06e.js → 502c3da8c49bf885f51d.js} +1 -1
- package/assets/esri/core/workers/chunks/518046d2b95a7590a092.js +1 -0
- package/assets/esri/core/workers/chunks/{aaad0d3e82ed917d3886.js → 547dc6ccb989bd962661.js} +1 -1
- package/assets/esri/core/workers/chunks/{bd59cb5abc67e46f1b2c.js → 55334ad3618899cdbf78.js} +2 -2
- package/assets/esri/core/workers/chunks/{d859c046a3ea42530bff.js → 56d9d3f108ff6e719dd4.js} +1 -1
- package/assets/esri/core/workers/chunks/{770611659b38066a6228.js → 5a85cbc04c64091d7f46.js} +1 -1
- package/assets/esri/core/workers/chunks/75a7de23c05435ec7649.js +1 -0
- package/assets/esri/core/workers/chunks/7b66691d133dabd87ce6.js +1 -0
- package/assets/esri/core/workers/chunks/91c0de3950991d81b7f2.js +1 -0
- package/assets/esri/core/workers/chunks/9234a293d61e134f121f.js +1 -0
- package/assets/esri/core/workers/chunks/{a8ae00e06f98e04aee8e.js → ac408c62565e2c8b5975.js} +1 -1
- package/assets/esri/core/workers/chunks/{f7fe17a22390a24d6df8.js → b69d1d528e271568cbd8.js} +2 -2
- package/assets/esri/core/workers/chunks/{0cc74bc3772be51cabc1.js → bbaf8baa3ca6195467e4.js} +1 -1
- package/assets/esri/core/workers/chunks/{7ce60331f94ee0a5d674.js → beff5b4e15edee12bd4c.js} +33 -41
- package/assets/esri/core/workers/chunks/{b9850fe7dcdaed0c327c.js → cdb48d198145493f76f3.js} +1 -1
- package/assets/esri/core/workers/chunks/{63ea4191d441efd2f146.js → d4014213c476bf8099af.js} +1 -1
- package/assets/esri/core/workers/chunks/{740588250eaffb7301fd.js → e1340232962cf576d37e.js} +1 -1
- package/assets/esri/geometry/support/pe-wasm.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
- package/assets/esri/themes/base/widgets/_Sketch.scss +1 -24
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ar.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_bg.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_bs.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ca.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_cs.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_da.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_de.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_el.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_es.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_et.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_fi.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_fr.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_he.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_hr.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_hu.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_id.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_it.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ja.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ko.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_lt.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_lv.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_nl.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_no.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_pl.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_pt-BR.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_pt-PT.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ro.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ru.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sk.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sl.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sr.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sv.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_th.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_tr.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_uk.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_vi.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_zh-CN.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_zh-HK.json +1 -1
- package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_zh-TW.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ar.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_bg.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_bs.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ca.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_cs.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_da.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_de.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_el.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_es.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_et.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_fi.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_fr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_he.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_hr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_hu.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_id.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_it.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ja.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ko.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_lt.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_lv.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_nl.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_no.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pl.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pt-BR.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pt-PT.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ro.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ru.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sk.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sl.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sv.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_th.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_tr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_uk.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_vi.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-CN.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-HK.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-TW.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ar.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_bg.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_bs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ca.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_cs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_da.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_de.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_el.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_en.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_es.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_et.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_fi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_fr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_he.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_hr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_hu.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_id.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_it.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ja.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ko.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_lt.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_lv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_nl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_no.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_pl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_pt-BR.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_pt-PT.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ro.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ru.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_th.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_tr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_uk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_vi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_zh-CN.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_zh-HK.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_zh-TW.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ar.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bg.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bs.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ca.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_cs.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_da.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_de.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_el.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_en.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_es.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_et.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fi.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fr.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_he.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hr.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hu.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_id.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_it.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ja.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ko.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lt.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lv.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_nl.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_no.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pl.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-BR.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-PT.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ro.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ru.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sk.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sl.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sr.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sv.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_th.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_tr.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_uk.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_vi.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-CN.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-HK.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_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_nl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.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/Sketch/t9n/Sketch.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ar.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_bg.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_bs.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ca.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_cs.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_da.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_de.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_el.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_en.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_es.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_et.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_fi.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_fr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_he.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_hr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_hu.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_id.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_it.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ja.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ko.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_lt.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_lv.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_nl.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_pl.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_pt-BR.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_pt-PT.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ro.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ru.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_sk.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_sl.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_sr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_sv.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_th.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_tr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_uk.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_vi.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_zh-CN.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_zh-HK.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_zh-TW.json +1 -1
- package/chunks/Fog.glsl.js +3 -3
- package/chunks/GlobalIllumination.glsl.js +12 -12
- package/chunks/GlowComposition.glsl.js +38 -56
- package/chunks/OITBlend.glsl.js +7 -7
- package/chunks/OITBlendEmission.glsl.js +4 -4
- package/chunks/OITDimOpaque.glsl.js +8 -3
- package/chunks/SimpleAtmosphere.glsl.js +3 -3
- package/chunks/lyr3DWorker.js +1 -1
- package/chunks/pe-wasm.js +1 -1
- package/config.js +1 -1
- package/core/workers/workers.js +1 -1
- package/geometry/support/WKIDUnitConversion.js +1 -1
- package/identity/IdentityManagerBase.js +1 -1
- package/kernel.js +1 -1
- package/layers/Lyr3DWasmPerSceneView.js +1 -1
- package/layers/raster/datasets/MRFRaster.js +1 -1
- package/layers/video/VideoController.js +1 -1
- package/package.json +3 -3
- package/rest/networks/circuits/support/CircuitVerifyResult.js +1 -1
- package/rest/networks/circuits/support/VerifyCircuitsResult.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/MapImageLayerView2D.js +1 -1
- package/views/2d/layers/RouteLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/features/sources/strategies/support/queryAdapters.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightAuthoringUtils.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightIntersectionResult.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
- package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
- package/views/3d/analysis/ShadowCastAnalysisView3D.d.ts +3 -1
- package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedObserverManipulatedObject3D.js +2 -0
- package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
- package/views/3d/analysis/Viewshed/viewshedSubToolUtils.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
- package/views/3d/environment/FoggyWeather.js +1 -1
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/MapImageLayerView3D.js +1 -1
- package/views/3d/layers/TileLayerView3D.js +1 -1
- package/views/3d/layers/i3s/Intersector.js +1 -1
- package/views/3d/layers/support/PopupSceneLayerView.js +1 -1
- package/views/3d/layers/support/SublayerPopupHighlightHelper3D.js +1 -1
- package/views/3d/support/ResourceController.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
- package/views/3d/support/popupHitTest.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentDrawParameters.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialRepository.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +4 -12
- package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
- package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowCompositionTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlendEmission.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITDimOpaque.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/PopupView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/View2D.js +1 -1
- package/views/draw/DrawTool.d.ts +77 -0
- package/views/draw/support/editingSessionUtils.js +1 -1
- package/views/draw/support/managers/PluginLifecycleManager.d.ts +10 -0
- package/views/interactive/InteractiveToolBase.d.ts +11 -0
- package/views/interactive/editGeometry/interfaces.d.ts +8 -0
- package/views/interactive/interfaces.d.ts +20 -0
- package/views/layers/FeatureLikeLayerView.js +1 -1
- package/views/layers/ImageryLayerView.js +1 -1
- package/views/layers/ImageryTileLayerView.js +1 -1
- package/views/layers/WMSLayerView.js +1 -1
- package/views/layers/support/MapServiceLayerViewHelper.js +1 -1
- package/views/webgl/capabilities/load.js +1 -1
- package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +26 -1
- package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
- package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
- package/widgets/BatchAttributeForm/inputs/BatchFormInputs.js +1 -1
- package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +5 -44
- package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
- package/widgets/BatchAttributeForm/inputs/UtilityNetworkAssociationsElementInput.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/multipleChoiceInputUtils.js +2 -0
- package/widgets/BatchAttributeForm/types.d.ts +7 -0
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +9 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/Grid/Column.js +1 -1
- package/widgets/FeatureTable/Grid/types.d.ts +21 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Sketch/SketchViewModel.d.ts +67 -2
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch/VisibleElements.d.ts +19 -1
- package/widgets/Sketch/VisibleElements.js +1 -1
- package/widgets/Sketch/support/OperationHandle.js +1 -1
- package/widgets/Sketch/support/PluginManager.d.ts +12 -0
- package/widgets/Sketch/support/PluginManager.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.d.ts +81 -0
- package/widgets/support/SelectionToolbar/types.d.ts +4 -0
- package/assets/esri/core/workers/chunks/2a2e97918524e0f436d7.js +0 -1
- package/assets/esri/core/workers/chunks/2b3a8a53cd68f666676b.js +0 -1
- package/assets/esri/core/workers/chunks/2ecb21c402cdd8c82533.js +0 -1
- package/assets/esri/core/workers/chunks/7e02e5c6979090fe3ea7.js +0 -1
- package/assets/esri/core/workers/chunks/dcba6c766eee8b90381a.js +0 -1
- package/assets/esri/core/workers/chunks/f9324420f2c6ac240f63.js +0 -1
- package/assets/esri/core/workers/chunks/fae2c8f053927559fff0.js +0 -1
- /package/assets/esri/core/workers/chunks/{bd59cb5abc67e46f1b2c.js.LICENSE.txt → 55334ad3618899cdbf78.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{f7fe17a22390a24d6df8.js.LICENSE.txt → b69d1d528e271568cbd8.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
let o;const r={values:[.001,1,.3048,.3048006096012192,.3047972654,.9143917962,.201166195164,.9143984146160287,.3047994715386762,20.11676512155263,20.11678249437587,.9143985307444408,.91439523,.3047997101815088,20.1168,20.116756,5e4,15e4],units:["Millimeter","Meter","Foot","Foot_US","Foot_Clarke","Yard_Clarke","Link_Clarke","Yard_Sears","Foot_Sears","Chain_Sears","Chain_Benoit_1895_B","Yard_Indian","Yard_Indian_1937","Foot_Gold_Coast","Chain","Chain_Sears_1922_Truncated","50_Kilometers","150_Kilometers"],2066:6,2136:13,2155:3,2157:1,2158:1,2159:13,2160:13,2204:3,2219:1,2220:1,2254:3,2255:3,2256:2,2265:2,2266:2,2267:3,2268:3,2269:2,2270:2,2271:3,2272:3,2273:2,2294:1,2295:1,2314:4,2899:3,2900:3,2901:2,2909:2,2910:2,2911:3,2912:3,2913:2,2914:2,2992:2,2993:1,2994:2,3080:2,3089:3,3090:1,3091:3,3102:3,3141:1,3142:1,3167:15,3359:3,3360:1,3361:2,3362:1,3363:3,3364:1,3365:3,3366:4,3404:3,3405:1,3406:1,3407:4,3439:1,3440:1,3479:2,3480:1,3481:2,3482:1,3483:2,3484:1,3485:3,3486:1,3487:3,3488:1,3489:1,3490:3,3491:1,3492:3,3493:1,3494:3,3495:1,3496:3,3497:1,3498:3,3499:1,3500:3,3501:1,3502:3,3503:1,3504:3,3505:1,3506:3,3507:1,3508:3,3509:1,3510:3,3511:1,3512:3,3513:1,3514:1,3515:3,3516:1,3517:3,3518:1,3519:3,3520:1,3521:3,3522:1,3523:3,3524:1,3525:3,3526:1,3527:3,3528:1,3529:3,3530:1,3531:3,3532:1,3533:3,3534:1,3535:3,3536:1,3537:3,3538:1,3539:3,3540:1,3541:3,3542:1,3543:3,3544:1,3545:3,3546:1,3547:3,3548:1,3549:3,3550:1,3551:3,3552:1,3553:3,3582:3,3583:1,3584:3,3585:1,3586:3,3587:1,3588:2,3589:1,3590:2,3591:1,3592:1,3593:2,3598:3,3599:1,3600:3,3605:2,3606:1,3607:1,3608:3,3609:1,3610:3,3611:1,3612:3,3613:1,3614:3,3615:1,3616:3,3617:1,3618:3,3619:1,3620:3,3621:1,3622:3,3623:1,3624:3,3625:1,3626:3,3627:1,3628:3,3629:1,3630:3,3631:1,3632:3,3633:1,3634:2,3635:1,3636:2,3640:3,3641:1,3642:3,3643:1,3644:2,3645:1,3646:2,3647:1,3648:2,3649:1,3650:3,3651:1,3652:3,3653:1,3654:3,3655:1,3656:2,3657:1,3658:3,3659:1,3660:3,3661:1,3662:3,3663:1,3664:3,3668:3,3669:1,3670:3,3671:1,3672:3,3673:1,3674:3,3675:1,3676:2,3677:3,3678:1,3679:2,3680:3,3681:1,3682:2,3683:3,3684:1,3685:1,3686:3,3687:1,3688:3,3689:1,3690:3,3691:1,3692:3,3696:3,3697:1,3698:3,3699:1,3700:3,3793:1,3794:1,3812:1,3854:1,3857:1,3920:1,3978:1,3979:1,3991:3,3992:3,4026:1,4037:1,4038:1,4071:1,4082:1,4083:1,4087:1,4088:1,4217:3,4414:1,4415:1,4417:1,4434:1,4437:1,4438:3,4439:3,4462:1,4467:1,4471:1,4474:1,4559:1,4647:1,4822:1,4826:1,4839:1,5018:1,5041:1,5042:1,5048:1,5221:1,5223:1,5234:1,5235:1,5243:1,5247:1,5266:1,5316:1,5320:1,5321:1,5325:1,5337:1,5361:1,5362:1,5367:1,5382:1,5383:1,5396:1,5456:1,5457:1,5469:1,5472:5,5490:1,5513:1,5514:1,5523:1,5559:1,5588:2,5589:4,5596:1,5627:1,5629:1,5641:1,5643:1,5644:1,5646:3,5654:3,5655:3,5659:1,5700:1,5825:1,5836:1,5837:1,5839:1,5842:1,5844:1,5858:1,5879:1,5880:1,5887:1,5890:1,6128:2,6129:2,6141:2,6204:1,6210:1,6211:1,6307:1,6312:1,6316:1,6362:1,6391:2,6405:2,6406:1,6407:2,6408:1,6409:2,6410:1,6411:3,6412:1,6413:3,6414:1,6415:1,6416:3,6417:1,6418:3,6419:1,6420:3,6421:1,6422:3,6423:1,6424:3,6425:1,6426:3,6427:1,6428:3,6429:1,6430:3,6431:1,6432:3,6433:1,6434:3,6435:1,6436:3,6437:1,6438:3,6439:1,6440:1,6441:3,6442:1,6443:3,6444:1,6445:3,6446:1,6447:3,6448:1,6449:3,6450:1,6451:3,6452:1,6453:3,6454:1,6455:3,6456:1,6457:3,6458:1,6459:3,6460:1,6461:3,6462:1,6463:3,6464:1,6465:3,6466:1,6467:3,6468:1,6469:3,6470:1,6471:3,6472:1,6473:3,6474:1,6475:3,6476:1,6477:3,6478:1,6479:3,6484:3,6485:1,6486:3,6487:1,6488:3,6489:1,6490:3,6491:1,6492:3,6493:1,6494:2,6495:1,6496:2,6497:1,6498:1,6499:2,6500:1,6501:3,6502:1,6503:3,6504:1,6505:3,6506:1,6507:3,6508:1,6509:1,6510:3,6515:2,6516:1,6518:1,6519:3,6520:1,6521:3,6522:1,6523:3,6524:1,6525:3,6526:1,6527:3,6528:1,6529:3,6530:1,6531:3,6532:1,6533:3,6534:1,6535:3,6536:1,6537:3,6538:1,6539:3,6540:1,6541:3,6542:1,6543:3,6544:1,6545:2,6546:1,6547:2,6548:1,6549:3,6550:1,6551:3,6552:1,6553:3,6554:1,6555:3,6556:1,6557:2,6558:1,6559:2,6560:1,6561:2,6562:1,6563:3,6564:1,6565:3,6566:1,6567:1,6568:3,6569:1,6570:2,6571:1,6572:3,6573:1,6574:3,6575:1,6576:3,6577:1,6578:3,6582:3,6583:1,6584:3,6585:1,6586:3,6587:1,6588:3,6589:1,6590:3,6591:1,6592:1,6593:3,6594:1,6595:3,6596:1,6597:3,6598:1,6599:3,6600:1,6601:3,6602:1,6603:3,6605:3,6606:1,6607:3,6608:1,6609:3,6610:1,6611:1,6612:3,6613:1,6614:3,6615:1,6616:3,6617:1,6618:3,6633:3,6646:1,6703:1,6784:1,6785:2,6786:1,6787:2,6788:1,6789:2,6790:1,6791:2,6792:1,6793:2,6794:1,6795:2,6796:1,6797:2,6798:1,6799:2,6800:1,6801:2,6802:1,6803:2,6804:1,6805:2,6806:1,6807:2,6808:1,6809:2,6810:1,6811:2,6812:1,6813:2,6814:1,6815:2,6816:1,6817:2,6818:1,6819:2,6820:1,6821:2,6822:1,6823:2,6824:1,6825:2,6826:1,6827:2,6828:1,6829:2,6830:1,6831:2,6832:1,6833:2,6834:1,6835:2,6836:1,6837:2,6838:1,6839:2,6840:1,6841:2,6842:1,6843:2,6844:1,6845:2,6846:1,6847:2,6848:1,6849:2,6850:1,6851:2,6852:1,6853:2,6854:1,6855:2,6856:1,6857:2,6858:1,6859:2,6860:1,6861:2,6862:1,6863:2,6867:1,6868:2,6870:1,6875:1,6876:1,6879:1,6880:3,6884:1,6885:2,6886:1,6887:2,6915:1,6922:1,6923:3,6924:1,6925:3,6962:1,6984:1,6991:1,7128:3,7131:1,7132:3,7142:1,7257:1,7258:3,7259:1,7260:3,7261:1,7262:3,7263:1,7264:3,7265:1,7266:3,7267:1,7268:3,7269:1,7270:3,7271:1,7272:3,7273:1,7274:3,7275:1,7276:3,7277:1,7278:3,7279:1,7280:3,7281:1,7282:3,7283:1,7284:3,7285:1,7286:3,7287:1,7288:3,7289:1,7290:3,7291:1,7292:3,7293:1,7294:3,7295:1,7296:3,7297:1,7298:3,7299:1,7300:3,7301:1,7302:3,7303:1,7304:3,7305:1,7306:3,7307:1,7308:3,7309:1,7310:3,7311:1,7312:3,7313:1,7314:3,7315:1,7316:3,7317:1,7318:3,7319:1,7320:3,7321:1,7322:3,7323:1,7324:3,7325:1,7326:3,7327:1,7328:3,7329:1,7330:3,7331:1,7332:3,7333:1,7334:3,7335:1,7336:3,7337:1,7338:3,7339:1,7340:3,7341:1,7342:3,7343:1,7344:3,7345:1,7346:3,7347:1,7348:3,7349:1,7350:3,7351:1,7352:3,7353:1,7354:3,7355:1,7356:3,7357:1,7358:3,7359:1,7360:3,7361:1,7362:3,7363:1,7364:3,7365:1,7366:3,7367:1,7368:3,7369:1,7370:3,7877:1,7878:1,7882:1,7883:1,7887:1,7899:1,7991:1,7992:1,8035:3,8036:3,8058:1,8059:1,8082:1,8083:1,8088:1,8090:1,8091:3,8092:1,8093:3,8095:1,8096:3,8097:1,8098:3,8099:1,8100:3,8101:1,8102:3,8103:1,8104:3,8105:1,8106:3,8107:1,8108:3,8109:1,8110:3,8111:1,8112:3,8113:1,8114:3,8115:1,8116:3,8117:1,8118:3,8119:1,8120:3,8121:1,8122:3,8123:1,8124:3,8125:1,8126:3,8127:1,8128:3,8129:1,8130:3,8131:1,8132:3,8133:1,8134:3,8135:1,8136:3,8137:1,8138:3,8139:1,8140:3,8141:1,8142:3,8143:1,8144:3,8145:1,8146:3,8147:1,8148:3,8149:1,8150:3,8151:1,8152:3,8153:1,8154:3,8155:1,8156:3,8157:1,8158:3,8159:1,8160:3,8161:1,8162:3,8163:1,8164:3,8165:1,8166:3,8167:1,8168:3,8169:1,8170:3,8171:1,8172:3,8173:1,8177:3,8179:1,8180:3,8181:1,8182:3,8184:1,8185:3,8187:1,8189:3,8191:1,8193:3,8196:1,8197:3,8198:1,8200:3,8201:1,8202:3,8203:1,8204:3,8205:1,8206:3,8207:1,8208:3,8209:1,8210:3,8212:1,8213:3,8214:1,8216:3,8218:1,8220:3,8222:1,8224:3,8225:1,8226:3,8311:1,8312:2,8313:1,8314:2,8315:1,8316:2,8317:1,8318:2,8319:1,8320:2,8321:1,8322:2,8323:1,8324:2,8325:1,8326:2,8327:1,8328:2,8329:1,8330:2,8331:1,8332:2,8333:1,8334:2,8335:1,8336:2,8337:1,8338:2,8339:1,8340:2,8341:1,8342:2,8343:1,8344:2,8345:1,8346:2,8347:1,8348:2,8352:1,8353:1,8379:1,8380:3,8381:1,8382:3,8383:1,8384:3,8385:1,8387:3,8391:1,8395:1,8433:1,8441:1,8455:1,8456:1,8531:3,8682:1,8686:1,8687:1,8692:1,8693:1,8826:1,8903:1,8950:1,8951:1,9039:1,9040:1,9141:1,9149:1,9150:1,9191:1,9221:1,9222:1,9249:1,9250:1,9252:1,9254:1,9265:1,9284:1,9285:1,9300:1,9354:1,9367:1,9373:1,9377:1,9387:1,9391:1,9456:1,9473:1,9498:1,9674:1,9678:1,9680:1,9709:1,9712:1,9713:1,9716:1,9741:1,9748:3,9749:3,9761:1,9766:1,9793:1,9794:1,9869:1,9874:1,9875:1,9880:1,9895:1,9943:1,9945:1,9947:1,9967:1,9972:1,9977:1,10160:1,10183:1,10188:1,10194:1,10199:1,10207:1,10212:1,10217:1,10222:1,10227:1,10235:1,10240:1,10250:1,10254:1,10270:1,10275:1,10280:1,10306:1,10329:1,10471:1,10477:1,10481:3,10516:3,10592:1,10594:1,10596:1,10598:1,10601:1,10603:1,10626:1,10632:1,10641:1,10665:1,10674:1,10699:1,10702:1,10744:1,10745:1,10759:1,10773:1,10801:1,10802:1,10820:1,10833:1,10836:1,10837:1,10851:1,10857:1,10863:1,10899:1,10917:1,20002:1,20042:1,20050:2,20499:1,20538:1,20539:1,20790:1,20791:1,21291:1,21292:1,21500:1,21817:1,21818:1,22032:1,22033:1,22091:1,22092:1,22239:1,22240:1,22332:1,22337:1,22338:1,22391:1,22392:1,22639:1,22700:1,22739:1,22770:1,22780:1,22832:1,23090:1,23095:1,23239:1,23240:1,23433:1,23700:1,24047:1,24048:1,24100:4,24200:1,24305:1,24306:1,24382:11,24383:1,24500:1,24547:1,24548:1,24571:10,24600:1,25e3:1,25231:1,25884:1,25932:1,26237:1,26331:1,26332:1,26432:1,26591:1,26592:1,26632:1,26692:1,27120:1,27200:1,27291:7,27292:7,27429:1,27492:1,27493:1,27500:1,28232:1,28600:1,28991:1,28992:1,29100:1,29101:1,29220:1,29221:1,29333:1,29635:1,29636:1,29701:1,29738:1,29739:1,29849:1,29850:1,29871:9,29872:8,29873:1,29874:1,30200:6,30339:1,30340:1,30591:1,30592:1,30791:1,30792:1,30800:1,31028:1,31121:1,31154:1,31170:1,31171:1,31370:1,31528:1,31529:1,31600:1,31700:1,31838:1,31839:1,31900:1,31901:1,32061:1,32062:1,32098:1,32099:3,32100:1,32104:1,32161:1,32766:1,53048:1,53049:1,65061:3,65062:3,102041:3,102064:12,102068:16,102069:17,102118:3,102119:2,102120:3,102121:3,102217:3,102218:1,102219:3,102220:3,102378:2,102379:2,102380:1,102381:2,102589:3,102599:3,102600:3,102604:3,102647:1,102704:3,102705:3,102706:1,102731:1,102732:1,102759:2,102760:2,102761:3,102762:1,102763:3,102764:1,102765:1,102766:3,102970:2,102974:3,102993:1,102994:1,102995:3,102996:3,103015:1,103016:3,103017:1,103018:3,103025:1,103026:1,103027:3,103028:3,103035:1,103036:1,103037:3,103038:3,103039:1,103040:1,103041:3,103042:3,103043:1,103044:1,103045:3,103046:3,103047:1,103048:1,103049:3,103050:3,103051:1,103052:3,103053:1,103054:3,103055:1,103056:3,103057:1,103058:1,103059:3,103060:3,103061:1,103062:1,103063:3,103064:3,103069:3,103070:1,103071:1,103072:3,103073:3,103086:1,103087:1,103088:3,103089:3,103094:2,103095:1,103096:3,103103:1,103104:3,103105:1,103106:3,103121:1,103122:3,103123:1,103124:1,103125:2,103126:2,103127:1,103128:1,103129:3,103130:3,103131:1,103132:1,103133:3,103134:3,103135:1,103136:1,103137:2,103138:2,103139:1,103140:3,103141:1,103142:3,103143:1,103144:3,103145:1,103146:2,103147:1,103148:1,103149:3,103150:3,103151:1,103152:3,103172:1,103173:3,103174:1,103175:1,103176:3,103177:3,103178:1,103179:1,103180:3,103181:3,103182:1,103183:1,103184:3,103185:3,103228:1,103229:1,103230:3,103231:3,103250:1,103251:3,103252:1,103253:3,103260:1,103261:1,103262:3,103263:3,103270:1,103271:1,103272:3,103273:3,103274:1,103275:1,103276:3,103277:3,103278:1,103279:1,103280:3,103281:3,103282:1,103283:1,103284:3,103285:3,103286:1,103287:3,103288:1,103289:3,103290:1,103291:3,103292:1,103293:1,103294:3,103295:3,103296:1,103297:1,103298:3,103299:3,103376:3,103377:1,103378:1,103379:3,103380:3,103393:1,103394:1,103395:3,103396:3,103472:1,103473:2,103474:1,103475:3,103482:1,103483:3,103484:1,103485:3,103500:1,103501:3,103502:1,103503:1,103504:2,103505:2,103506:1,103507:1,103508:3,103509:3,103510:1,103511:1,103512:3,103513:3,103514:1,103515:3,103516:1,103517:3,103518:1,103519:3,103520:1,103521:2,103522:1,103523:1,103524:3,103525:3,103526:1,103527:3,103561:3,103562:3,103563:1,103564:1,103565:3,103566:3,103567:1,103568:1,103569:3,103570:3,103584:1,103585:3,103586:1,103587:3,103588:2,103589:1,103590:3,103591:2,103592:1,103593:3,103594:2,103695:3,103897:2,103898:1,103899:1,103978:3,103979:1,103980:3,103981:1,103982:3,103986:3,103987:3,103988:1,103989:0,103991:1,112111:1};for(o=2e3;o<=2045;o++)r[o]=1;for(o=2056;o<=2065;o++)r[o]=1;for(o=2067;o<=2135;o++)r[o]=1;for(o=2137;o<=2154;o++)r[o]=1;for(o=2161;o<=2170;o++)r[o]=1;for(o=2172;o<=2193;o++)r[o]=1;for(o=2195;o<=2198;o++)r[o]=1;for(o=2200;o<=2203;o++)r[o]=1;for(o=2205;o<=2217;o++)r[o]=1;for(o=2222;o<=2224;o++)r[o]=2;for(o=2225;o<=2250;o++)r[o]=3;for(o=2251;o<=2253;o++)r[o]=2;for(o=2257;o<=2264;o++)r[o]=3;for(o=2274;o<=2279;o++)r[o]=3;for(o=2280;o<=2282;o++)r[o]=2;for(o=2283;o<=2289;o++)r[o]=3;for(o=2290;o<=2292;o++)r[o]=1;for(o=2308;o<=2313;o++)r[o]=1;for(o=2315;o<=2491;o++)r[o]=1;for(o=2494;o<=2866;o++)r[o]=1;for(o=2867;o<=2869;o++)r[o]=2;for(o=2870;o<=2888;o++)r[o]=3;for(o=2891;o<=2895;o++)r[o]=3;for(o=2896;o<=2898;o++)r[o]=2;for(o=2902;o<=2908;o++)r[o]=3;for(o=2915;o<=2920;o++)r[o]=3;for(o=2921;o<=2923;o++)r[o]=2;for(o=2924;o<=2930;o++)r[o]=3;for(o=2931;o<=2962;o++)r[o]=1;for(o=2964;o<=2968;o++)r[o]=3;for(o=2969;o<=2973;o++)r[o]=1;for(o=2975;o<=2991;o++)r[o]=1;for(o=2995;o<=3051;o++)r[o]=1;for(o=3054;o<=3079;o++)r[o]=1;for(o=3081;o<=3088;o++)r[o]=1;for(o=3092;o<=3101;o++)r[o]=1;for(o=3106;o<=3138;o++)r[o]=1;for(o=3146;o<=3151;o++)r[o]=1;for(o=3153;o<=3166;o++)r[o]=1;for(o=3168;o<=3172;o++)r[o]=1;for(o=3174;o<=3203;o++)r[o]=1;for(o=3294;o<=3358;o++)r[o]=1;for(o=3367;o<=3403;o++)r[o]=1;for(o=3408;o<=3416;o++)r[o]=1;for(o=3417;o<=3438;o++)r[o]=3;for(o=3441;o<=3446;o++)r[o]=3;for(o=3447;o<=3450;o++)r[o]=1;for(o=3451;o<=3459;o++)r[o]=3;for(o=3460;o<=3478;o++)r[o]=1;for(o=3554;o<=3559;o++)r[o]=1;for(o=3560;o<=3570;o++)r[o]=3;for(o=3571;o<=3581;o++)r[o]=1;for(o=3594;o<=3597;o++)r[o]=1;for(o=3601;o<=3604;o++)r[o]=1;for(o=3637;o<=3639;o++)r[o]=1;for(o=3665;o<=3667;o++)r[o]=1;for(o=3693;o<=3695;o++)r[o]=1;for(o=3701;o<=3727;o++)r[o]=1;for(o=3728;o<=3739;o++)r[o]=3;for(o=3740;o<=3751;o++)r[o]=1;for(o=3753;o<=3760;o++)r[o]=3;for(o=3761;o<=3773;o++)r[o]=1;for(o=3775;o<=3777;o++)r[o]=1;for(o=3779;o<=3781;o++)r[o]=1;for(o=3783;o<=3785;o++)r[o]=1;for(o=3788;o<=3791;o++)r[o]=1;for(o=3797;o<=3802;o++)r[o]=1;for(o=3814;o<=3816;o++)r[o]=1;for(o=3825;o<=3829;o++)r[o]=1;for(o=3832;o<=3841;o++)r[o]=1;for(o=3844;o<=3852;o++)r[o]=1;for(o=3873;o<=3885;o++)r[o]=1;for(o=3890;o<=3893;o++)r[o]=1;for(o=3907;o<=3912;o++)r[o]=1;for(o=3942;o<=3950;o++)r[o]=1;for(o=3968;o<=3970;o++)r[o]=1;for(o=3973;o<=3976;o++)r[o]=1;for(o=3986;o<=3989;o++)r[o]=1;for(o=3994;o<=3997;o++)r[o]=1;for(o=4048;o<=4051;o++)r[o]=1;for(o=4056;o<=4063;o++)r[o]=1;for(o=4093;o<=4096;o++)r[o]=1;for(o=4390;o<=4398;o++)r[o]=1;for(o=4399;o<=4413;o++)r[o]=3;for(o=4418;o<=4433;o++)r[o]=3;for(o=4455;o<=4457;o++)r[o]=3;for(o=4484;o<=4489;o++)r[o]=1;for(o=4491;o<=4554;o++)r[o]=1;for(o=4568;o<=4589;o++)r[o]=1;for(o=4652;o<=4656;o++)r[o]=1;for(o=4766;o<=4800;o++)r[o]=1;for(o=5014;o<=5016;o++)r[o]=1;for(o=5069;o<=5072;o++)r[o]=1;for(o=5105;o<=5130;o++)r[o]=1;for(o=5167;o<=5188;o++)r[o]=1;for(o=5253;o<=5259;o++)r[o]=1;for(o=5269;o<=5275;o++)r[o]=1;for(o=5292;o<=5311;o++)r[o]=1;for(o=5329;o<=5331;o++)r[o]=1;for(o=5343;o<=5349;o++)r[o]=1;for(o=5355;o<=5357;o++)r[o]=1;for(o=5387;o<=5389;o++)r[o]=1;for(o=5459;o<=5463;o++)r[o]=1;for(o=5479;o<=5482;o++)r[o]=1;for(o=5518;o<=5520;o++)r[o]=1;for(o=5530;o<=5539;o++)r[o]=1;for(o=5550;o<=5552;o++)r[o]=1;for(o=5562;o<=5583;o++)r[o]=1;for(o=5623;o<=5625;o++)r[o]=3;for(o=5631;o<=5639;o++)r[o]=1;for(o=5649;o<=5653;o++)r[o]=1;for(o=5663;o<=5680;o++)r[o]=1;for(o=5682;o<=5685;o++)r[o]=1;for(o=5875;o<=5877;o++)r[o]=1;for(o=5896;o<=5899;o++)r[o]=1;for(o=5921;o<=5940;o++)r[o]=1;for(o=6050;o<=6125;o++)r[o]=1;for(o=6244;o<=6275;o++)r[o]=1;for(o=6328;o<=6348;o++)r[o]=1;for(o=6350;o<=6356;o++)r[o]=1;for(o=6366;o<=6372;o++)r[o]=1;for(o=6381;o<=6387;o++)r[o]=1;for(o=6393;o<=6404;o++)r[o]=1;for(o=6480;o<=6483;o++)r[o]=1;for(o=6511;o<=6514;o++)r[o]=1;for(o=6579;o<=6581;o++)r[o]=1;for(o=6619;o<=6624;o++)r[o]=1;for(o=6625;o<=6627;o++)r[o]=3;for(o=6628;o<=6632;o++)r[o]=1;for(o=6634;o<=6637;o++)r[o]=1;for(o=6669;o<=6692;o++)r[o]=1;for(o=6707;o<=6709;o++)r[o]=1;for(o=6720;o<=6723;o++)r[o]=1;for(o=6732;o<=6738;o++)r[o]=1;for(o=6931;o<=6933;o++)r[o]=1;for(o=6956;o<=6959;o++)r[o]=1;for(o=7005;o<=7007;o++)r[o]=1;for(o=7057;o<=7070;o++)r[o]=3;for(o=7074;o<=7082;o++)r[o]=1;for(o=7109;o<=7118;o++)r[o]=1;for(o=7119;o<=7127;o++)r[o]=2;for(o=7374;o<=7376;o++)r[o]=1;for(o=7528;o<=7586;o++)r[o]=1;for(o=7587;o<=7645;o++)r[o]=3;for(o=7692;o<=7696;o++)r[o]=1;for(o=7755;o<=7787;o++)r[o]=1;for(o=7791;o<=7795;o++)r[o]=1;for(o=7799;o<=7801;o++)r[o]=1;for(o=7803;o<=7805;o++)r[o]=1;for(o=7825;o<=7831;o++)r[o]=1;for(o=7845;o<=7859;o++)r[o]=1;for(o=8013;o<=8032;o++)r[o]=1;for(o=8065;o<=8068;o++)r[o]=2;for(o=8518;o<=8529;o++)r[o]=3;for(o=8533;o<=8536;o++)r[o]=3;for(o=8538;o<=8540;o++)r[o]=3;for(o=8677;o<=8679;o++)r[o]=1;for(o=8836;o<=8840;o++)r[o]=1;for(o=8857;o<=8859;o++)r[o]=1;for(o=8908;o<=8910;o++)r[o]=1;for(o=9154;o<=9159;o++)r[o]=1;for(o=9205;o<=9218;o++)r[o]=1;for(o=9271;o<=9273;o++)r[o]=1;for(o=9295;o<=9297;o++)r[o]=1;for(o=9356;o<=9360;o++)r[o]=1;for(o=9404;o<=9407;o++)r[o]=1;for(o=9476;o<=9482;o++)r[o]=1;for(o=9487;o<=9494;o++)r[o]=1;for(o=9697;o<=9699;o++)r[o]=1;for(o=9821;o<=9865;o++)r[o]=1;for(o=10285;o<=10291;o++)r[o]=1;for(o=10314;o<=10317;o++)r[o]=1;for(o=10448;o<=10465;o++)r[o]=1;for(o=10726;o<=10729;o++)r[o]=1;for(o=10731;o<=10733;o++)r[o]=1;for(o=10792;o<=10795;o++)r[o]=1;for(o=10911;o<=10916;o++)r[o]=3;for(o=10921;o<=10926;o++)r[o]=1;for(o=10942;o<=10949;o++)r[o]=1;for(o=11114;o<=11118;o++)r[o]=1;for(o=20004;o<=20032;o++)r[o]=1;for(o=20047;o<=20049;o++)r[o]=1;for(o=20062;o<=20092;o++)r[o]=1;for(o=20135;o<=20138;o++)r[o]=1;for(o=20248;o<=20258;o++)r[o]=1;for(o=20348;o<=20358;o++)r[o]=1;for(o=20436;o<=20440;o++)r[o]=1;for(o=20822;o<=20824;o++)r[o]=1;for(o=20904;o<=20932;o++)r[o]=1;for(o=20934;o<=20936;o++)r[o]=1;for(o=21004;o<=21032;o++)r[o]=1;for(o=21035;o<=21037;o++)r[o]=1;for(o=21095;o<=21097;o++)r[o]=1;for(o=21148;o<=21150;o++)r[o]=1;for(o=21207;o<=21264;o++)r[o]=1;for(o=21307;o<=21364;o++)r[o]=1;for(o=21413;o<=21423;o++)r[o]=1;for(o=21453;o<=21463;o++)r[o]=1;for(o=21473;o<=21483;o++)r[o]=1;for(o=21780;o<=21782;o++)r[o]=1;for(o=21891;o<=21894;o++)r[o]=1;for(o=21896;o<=21899;o++)r[o]=1;for(o=22171;o<=22177;o++)r[o]=1;for(o=22181;o<=22187;o++)r[o]=1;for(o=22191;o<=22197;o++)r[o]=1;for(o=22207;o<=22222;o++)r[o]=1;for(o=22229;o<=22232;o++)r[o]=1;for(o=22234;o<=22236;o++)r[o]=1;for(o=22243;o<=22250;o++)r[o]=1;for(o=22262;o<=22265;o++)r[o]=1;for(o=22307;o<=22322;o++)r[o]=1;for(o=22348;o<=22357;o++)r[o]=1;for(o=22407;o<=22422;o++)r[o]=1;for(o=22462;o<=22465;o++)r[o]=1;for(o=22521;o<=22525;o++)r[o]=1;for(o=22607;o<=22622;o++)r[o]=1;for(o=22641;o<=22646;o++)r[o]=1;for(o=22648;o<=22657;o++)r[o]=1;for(o=22707;o<=22722;o++)r[o]=1;for(o=22762;o<=22765;o++)r[o]=1;for(o=22807;o<=22822;o++)r[o]=1;for(o=22991;o<=22994;o++)r[o]=1;for(o=23028;o<=23038;o++)r[o]=1;for(o=23301;o<=23333;o++)r[o]=3;for(o=23830;o<=23853;o++)r[o]=1;for(o=23866;o<=23872;o++)r[o]=1;for(o=23877;o<=23884;o++)r[o]=1;for(o=23886;o<=23894;o++)r[o]=1;for(o=23946;o<=23948;o++)r[o]=1;for(o=24311;o<=24313;o++)r[o]=1;for(o=24342;o<=24347;o++)r[o]=1;for(o=24370;o<=24374;o++)r[o]=11;for(o=24375;o<=24381;o++)r[o]=1;for(o=24718;o<=24721;o++)r[o]=1;for(o=24817;o<=24821;o++)r[o]=1;for(o=24877;o<=24882;o++)r[o]=1;for(o=24891;o<=24893;o++)r[o]=1;for(o=25391;o<=25395;o++)r[o]=1;for(o=25828;o<=25838;o++)r[o]=1;for(o=26191;o<=26195;o++)r[o]=1;for(o=26391;o<=26393;o++)r[o]=1;for(o=26701;o<=26722;o++)r[o]=1;for(o=26729;o<=26799;o++)r[o]=3;for(o=26801;o<=26803;o++)r[o]=3;for(o=26811;o<=26813;o++)r[o]=3;for(o=26847;o<=26870;o++)r[o]=3;for(o=26891;o<=26899;o++)r[o]=1;for(o=26901;o<=26923;o++)r[o]=1;for(o=26929;o<=26946;o++)r[o]=1;for(o=26948;o<=26998;o++)r[o]=1;for(o=27037;o<=27040;o++)r[o]=1;for(o=27205;o<=27232;o++)r[o]=1;for(o=27258;o<=27260;o++)r[o]=1;for(o=27391;o<=27398;o++)r[o]=1;for(o=27561;o<=27564;o++)r[o]=1;for(o=27571;o<=27574;o++)r[o]=1;for(o=27581;o<=27584;o++)r[o]=1;for(o=27591;o<=27594;o++)r[o]=1;for(o=27700;o<=27707;o++)r[o]=1;for(o=28191;o<=28193;o++)r[o]=1;for(o=28348;o<=28358;o++)r[o]=1;for(o=28402;o<=28432;o++)r[o]=1;for(o=28462;o<=28492;o++)r[o]=1;for(o=29118;o<=29122;o++)r[o]=1;for(o=29168;o<=29172;o++)r[o]=1;for(o=29177;o<=29185;o++)r[o]=1;for(o=29187;o<=29195;o++)r[o]=1;for(o=29900;o<=29903;o++)r[o]=1;for(o=30161;o<=30179;o++)r[o]=1;for(o=30491;o<=30494;o++)r[o]=1;for(o=30729;o<=30732;o++)r[o]=1;for(o=31251;o<=31259;o++)r[o]=1;for(o=31265;o<=31268;o++)r[o]=1;for(o=31275;o<=31279;o++)r[o]=1;for(o=31281;o<=31297;o++)r[o]=1;for(o=31461;o<=31469;o++)r[o]=1;for(o=31491;o<=31495;o++)r[o]=1;for(o=31917;o<=31922;o++)r[o]=1;for(o=31965;o<=32e3;o++)r[o]=1;for(o=32001;o<=32003;o++)r[o]=3;for(o=32005;o<=32031;o++)r[o]=3;for(o=32033;o<=32060;o++)r[o]=3;for(o=32064;o<=32067;o++)r[o]=3;for(o=32074;o<=32077;o++)r[o]=3;for(o=32081;o<=32086;o++)r[o]=1;for(o=32107;o<=32130;o++)r[o]=1;for(o=32133;o<=32159;o++)r[o]=1;for(o=32164;o<=32167;o++)r[o]=3;for(o=32180;o<=32199;o++)r[o]=1;for(o=32201;o<=32260;o++)r[o]=1;for(o=32301;o<=32360;o++)r[o]=1;for(o=32401;o<=32460;o++)r[o]=1;for(o=32501;o<=32560;o++)r[o]=1;for(o=32601;o<=32662;o++)r[o]=1;for(o=32664;o<=32667;o++)r[o]=3;for(o=32701;o<=32761;o++)r[o]=1;for(o=53001;o<=53004;o++)r[o]=1;for(o=53008;o<=53019;o++)r[o]=1;for(o=53021;o<=53032;o++)r[o]=1;for(o=53034;o<=53037;o++)r[o]=1;for(o=53042;o<=53046;o++)r[o]=1;for(o=53074;o<=53080;o++)r[o]=1;for(o=54001;o<=54004;o++)r[o]=1;for(o=54008;o<=54019;o++)r[o]=1;for(o=54021;o<=54032;o++)r[o]=1;for(o=54034;o<=54037;o++)r[o]=1;for(o=54042;o<=54046;o++)r[o]=1;for(o=54048;o<=54053;o++)r[o]=1;for(o=54074;o<=54080;o++)r[o]=1;for(o=54090;o<=54096;o++)r[o]=1;for(o=54098;o<=54101;o++)r[o]=1;for(o=65161;o<=65163;o++)r[o]=1;for(o=102001;o<=102040;o++)r[o]=1;for(o=102042;o<=102063;o++)r[o]=1;for(o=102065;o<=102067;o++)r[o]=1;for(o=102070;o<=102117;o++)r[o]=1;for(o=102122;o<=102216;o++)r[o]=1;for(o=102221;o<=102377;o++)r[o]=1;for(o=102382;o<=102388;o++)r[o]=1;for(o=102389;o<=102398;o++)r[o]=3;for(o=102399;o<=102444;o++)r[o]=1;for(o=102445;o<=102447;o++)r[o]=3;for(o=102448;o<=102458;o++)r[o]=1;for(o=102459;o<=102468;o++)r[o]=3;for(o=102469;o<=102499;o++)r[o]=1;for(o=102500;o<=102519;o++)r[o]=2;for(o=102520;o<=102524;o++)r[o]=1;for(o=102525;o<=102529;o++)r[o]=3;for(o=102530;o<=102588;o++)r[o]=1;for(o=102590;o<=102598;o++)r[o]=1;for(o=102601;o<=102603;o++)r[o]=1;for(o=102605;o<=102628;o++)r[o]=1;for(o=102629;o<=102646;o++)r[o]=3;for(o=102648;o<=102700;o++)r[o]=3;for(o=102701;o<=102703;o++)r[o]=1;for(o=102707;o<=102730;o++)r[o]=3;for(o=102733;o<=102758;o++)r[o]=3;for(o=102767;o<=102900;o++)r[o]=1;for(o=102901;o<=102933;o++)r[o]=3;for(o=102934;o<=102950;o++)r[o]=14;for(o=102951;o<=102969;o++)r[o]=1;for(o=102971;o<=102973;o++)r[o]=1;for(o=102975;o<=102989;o++)r[o]=1;for(o=102990;o<=102992;o++)r[o]=2;for(o=102997;o<=103002;o++)r[o]=1;for(o=103003;o<=103008;o++)r[o]=3;for(o=103009;o<=103011;o++)r[o]=1;for(o=103012;o<=103014;o++)r[o]=3;for(o=103019;o<=103021;o++)r[o]=1;for(o=103022;o<=103024;o++)r[o]=3;for(o=103029;o<=103031;o++)r[o]=1;for(o=103032;o<=103034;o++)r[o]=3;for(o=103065;o<=103068;o++)r[o]=1;for(o=103074;o<=103076;o++)r[o]=1;for(o=103077;o<=103079;o++)r[o]=2;for(o=103080;o<=103082;o++)r[o]=1;for(o=103083;o<=103085;o++)r[o]=3;for(o=103090;o<=103093;o++)r[o]=1;for(o=103097;o<=103099;o++)r[o]=1;for(o=103100;o<=103102;o++)r[o]=3;for(o=103107;o<=103109;o++)r[o]=1;for(o=103110;o<=103112;o++)r[o]=3;for(o=103113;o<=103116;o++)r[o]=1;for(o=103117;o<=103120;o++)r[o]=3;for(o=103153;o<=103157;o++)r[o]=1;for(o=103158;o<=103162;o++)r[o]=3;for(o=103163;o<=103165;o++)r[o]=1;for(o=103166;o<=103168;o++)r[o]=2;for(o=103169;o<=103171;o++)r[o]=3;for(o=103186;o<=103188;o++)r[o]=1;for(o=103189;o<=103191;o++)r[o]=3;for(o=103192;o<=103195;o++)r[o]=1;for(o=103196;o<=103199;o++)r[o]=3;for(o=103200;o<=103224;o++)r[o]=1;for(o=103225;o<=103227;o++)r[o]=2;for(o=103232;o<=103237;o++)r[o]=1;for(o=103238;o<=103243;o++)r[o]=3;for(o=103244;o<=103246;o++)r[o]=1;for(o=103247;o<=103249;o++)r[o]=3;for(o=103254;o<=103256;o++)r[o]=1;for(o=103257;o<=103259;o++)r[o]=3;for(o=103264;o<=103266;o++)r[o]=1;for(o=103267;o<=103269;o++)r[o]=3;for(o=103300;o<=103375;o++)r[o]=1;for(o=103381;o<=103383;o++)r[o]=1;for(o=103384;o<=103386;o++)r[o]=2;for(o=103387;o<=103389;o++)r[o]=1;for(o=103390;o<=103392;o++)r[o]=3;for(o=103397;o<=103399;o++)r[o]=1;for(o=103400;o<=103471;o++)r[o]=3;for(o=103476;o<=103478;o++)r[o]=1;for(o=103479;o<=103481;o++)r[o]=3;for(o=103486;o<=103488;o++)r[o]=1;for(o=103489;o<=103491;o++)r[o]=3;for(o=103492;o<=103495;o++)r[o]=1;for(o=103496;o<=103499;o++)r[o]=3;for(o=103528;o<=103543;o++)r[o]=1;for(o=103544;o<=103548;o++)r[o]=3;for(o=103549;o<=103551;o++)r[o]=1;for(o=103552;o<=103554;o++)r[o]=2;for(o=103555;o<=103557;o++)r[o]=3;for(o=103558;o<=103560;o++)r[o]=1;for(o=103571;o<=103573;o++)r[o]=1;for(o=103574;o<=103576;o++)r[o]=3;for(o=103577;o<=103580;o++)r[o]=1;for(o=103581;o<=103583;o++)r[o]=3;for(o=103595;o<=103694;o++)r[o]=1;for(o=103696;o<=103699;o++)r[o]=1;for(o=103700;o<=103793;o++)r[o]=3;for(o=103794;o<=103890;o++)r[o]=1;for(o=103891;o<=103896;o++)r[o]=3;for(o=103900;o<=103971;o++)r[o]=3;for(o=103972;o<=103977;o++)r[o]=1;for(o=103983;o<=103985;o++)r[o]=1;for(o=112e3;o<=112101;o++)r[o]=1;for(o=112151;o<=112156;o++)r[o]=1;for(o=112201;o<=112210;o++)r[o]=1;for(o=112212;o<=112235;o++)r[o]=1;export{r as default};
|
|
2
|
+
let o;const r={values:[.001,1,.3048,.3048006096012192,.3047972654,.9143917962,.201166195164,.9143984146160287,.3047994715386762,20.11676512155263,20.11678249437587,.9143985307444408,.91439523,.3047997101815088,20.1168,20.116756,5e4,15e4],units:["Millimeter","Meter","Foot","Foot_US","Foot_Clarke","Yard_Clarke","Link_Clarke","Yard_Sears","Foot_Sears","Chain_Sears","Chain_Benoit_1895_B","Yard_Indian","Yard_Indian_1937","Foot_Gold_Coast","Chain","Chain_Sears_1922_Truncated","50_Kilometers","150_Kilometers"],2066:6,2136:13,2155:3,2157:1,2158:1,2159:13,2160:13,2204:3,2219:1,2220:1,2254:3,2255:3,2256:2,2265:2,2266:2,2267:3,2268:3,2269:2,2270:2,2271:3,2272:3,2273:2,2294:1,2295:1,2314:4,2899:3,2900:3,2901:2,2909:2,2910:2,2911:3,2912:3,2913:2,2914:2,2992:2,2993:1,2994:2,3080:2,3089:3,3090:1,3091:3,3102:3,3141:1,3142:1,3167:15,3359:3,3360:1,3361:2,3362:1,3363:3,3364:1,3365:3,3366:4,3404:3,3405:1,3406:1,3407:4,3439:1,3440:1,3479:2,3480:1,3481:2,3482:1,3483:2,3484:1,3485:3,3486:1,3487:3,3488:1,3489:1,3490:3,3491:1,3492:3,3493:1,3494:3,3495:1,3496:3,3497:1,3498:3,3499:1,3500:3,3501:1,3502:3,3503:1,3504:3,3505:1,3506:3,3507:1,3508:3,3509:1,3510:3,3511:1,3512:3,3513:1,3514:1,3515:3,3516:1,3517:3,3518:1,3519:3,3520:1,3521:3,3522:1,3523:3,3524:1,3525:3,3526:1,3527:3,3528:1,3529:3,3530:1,3531:3,3532:1,3533:3,3534:1,3535:3,3536:1,3537:3,3538:1,3539:3,3540:1,3541:3,3542:1,3543:3,3544:1,3545:3,3546:1,3547:3,3548:1,3549:3,3550:1,3551:3,3552:1,3553:3,3582:3,3583:1,3584:3,3585:1,3586:3,3587:1,3588:2,3589:1,3590:2,3591:1,3592:1,3593:2,3598:3,3599:1,3600:3,3605:2,3606:1,3607:1,3608:3,3609:1,3610:3,3611:1,3612:3,3613:1,3614:3,3615:1,3616:3,3617:1,3618:3,3619:1,3620:3,3621:1,3622:3,3623:1,3624:3,3625:1,3626:3,3627:1,3628:3,3629:1,3630:3,3631:1,3632:3,3633:1,3634:2,3635:1,3636:2,3640:3,3641:1,3642:3,3643:1,3644:2,3645:1,3646:2,3647:1,3648:2,3649:1,3650:3,3651:1,3652:3,3653:1,3654:3,3655:1,3656:2,3657:1,3658:3,3659:1,3660:3,3661:1,3662:3,3663:1,3664:3,3668:3,3669:1,3670:3,3671:1,3672:3,3673:1,3674:3,3675:1,3676:2,3677:3,3678:1,3679:2,3680:3,3681:1,3682:2,3683:3,3684:1,3685:1,3686:3,3687:1,3688:3,3689:1,3690:3,3691:1,3692:3,3696:3,3697:1,3698:3,3699:1,3700:3,3793:1,3794:1,3812:1,3854:1,3857:1,3920:1,3978:1,3979:1,3991:3,3992:3,4026:1,4037:1,4038:1,4071:1,4082:1,4083:1,4087:1,4088:1,4217:3,4414:1,4415:1,4417:1,4434:1,4437:1,4438:3,4439:3,4462:1,4467:1,4471:1,4474:1,4559:1,4647:1,4822:1,4826:1,4839:1,5018:1,5041:1,5042:1,5048:1,5221:1,5223:1,5234:1,5235:1,5243:1,5247:1,5266:1,5316:1,5320:1,5321:1,5325:1,5337:1,5361:1,5362:1,5367:1,5382:1,5383:1,5396:1,5456:1,5457:1,5469:1,5472:5,5490:1,5513:1,5514:1,5523:1,5559:1,5588:2,5589:4,5596:1,5627:1,5629:1,5641:1,5643:1,5644:1,5646:3,5654:3,5655:3,5659:1,5700:1,5825:1,5836:1,5837:1,5839:1,5842:1,5844:1,5858:1,5879:1,5880:1,5887:1,5890:1,6128:2,6129:2,6141:2,6204:1,6210:1,6211:1,6307:1,6312:1,6316:1,6362:1,6391:2,6405:2,6406:1,6407:2,6408:1,6409:2,6410:1,6411:3,6412:1,6413:3,6414:1,6415:1,6416:3,6417:1,6418:3,6419:1,6420:3,6421:1,6422:3,6423:1,6424:3,6425:1,6426:3,6427:1,6428:3,6429:1,6430:3,6431:1,6432:3,6433:1,6434:3,6435:1,6436:3,6437:1,6438:3,6439:1,6440:1,6441:3,6442:1,6443:3,6444:1,6445:3,6446:1,6447:3,6448:1,6449:3,6450:1,6451:3,6452:1,6453:3,6454:1,6455:3,6456:1,6457:3,6458:1,6459:3,6460:1,6461:3,6462:1,6463:3,6464:1,6465:3,6466:1,6467:3,6468:1,6469:3,6470:1,6471:3,6472:1,6473:3,6474:1,6475:3,6476:1,6477:3,6478:1,6479:3,6484:3,6485:1,6486:3,6487:1,6488:3,6489:1,6490:3,6491:1,6492:3,6493:1,6494:2,6495:1,6496:2,6497:1,6498:1,6499:2,6500:1,6501:3,6502:1,6503:3,6504:1,6505:3,6506:1,6507:3,6508:1,6509:1,6510:3,6515:2,6516:1,6518:1,6519:3,6520:1,6521:3,6522:1,6523:3,6524:1,6525:3,6526:1,6527:3,6528:1,6529:3,6530:1,6531:3,6532:1,6533:3,6534:1,6535:3,6536:1,6537:3,6538:1,6539:3,6540:1,6541:3,6542:1,6543:3,6544:1,6545:2,6546:1,6547:2,6548:1,6549:3,6550:1,6551:3,6552:1,6553:3,6554:1,6555:3,6556:1,6557:2,6558:1,6559:2,6560:1,6561:2,6562:1,6563:3,6564:1,6565:3,6566:1,6567:1,6568:3,6569:1,6570:2,6571:1,6572:3,6573:1,6574:3,6575:1,6576:3,6577:1,6578:3,6582:3,6583:1,6584:3,6585:1,6586:3,6587:1,6588:3,6589:1,6590:3,6591:1,6592:1,6593:3,6594:1,6595:3,6596:1,6597:3,6598:1,6599:3,6600:1,6601:3,6602:1,6603:3,6605:3,6606:1,6607:3,6608:1,6609:3,6610:1,6611:1,6612:3,6613:1,6614:3,6615:1,6616:3,6617:1,6618:3,6633:3,6646:1,6703:1,6784:1,6785:2,6786:1,6787:2,6788:1,6789:2,6790:1,6791:2,6792:1,6793:2,6794:1,6795:2,6796:1,6797:2,6798:1,6799:2,6800:1,6801:2,6802:1,6803:2,6804:1,6805:2,6806:1,6807:2,6808:1,6809:2,6810:1,6811:2,6812:1,6813:2,6814:1,6815:2,6816:1,6817:2,6818:1,6819:2,6820:1,6821:2,6822:1,6823:2,6824:1,6825:2,6826:1,6827:2,6828:1,6829:2,6830:1,6831:2,6832:1,6833:2,6834:1,6835:2,6836:1,6837:2,6838:1,6839:2,6840:1,6841:2,6842:1,6843:2,6844:1,6845:2,6846:1,6847:2,6848:1,6849:2,6850:1,6851:2,6852:1,6853:2,6854:1,6855:2,6856:1,6857:2,6858:1,6859:2,6860:1,6861:2,6862:1,6863:2,6867:1,6868:2,6870:1,6875:1,6876:1,6879:1,6880:3,6884:1,6885:2,6886:1,6887:2,6915:1,6922:1,6923:3,6924:1,6925:3,6962:1,6984:1,6991:1,7128:3,7131:1,7132:3,7142:1,7257:1,7258:3,7259:1,7260:3,7261:1,7262:3,7263:1,7264:3,7265:1,7266:3,7267:1,7268:3,7269:1,7270:3,7271:1,7272:3,7273:1,7274:3,7275:1,7276:3,7277:1,7278:3,7279:1,7280:3,7281:1,7282:3,7283:1,7284:3,7285:1,7286:3,7287:1,7288:3,7289:1,7290:3,7291:1,7292:3,7293:1,7294:3,7295:1,7296:3,7297:1,7298:3,7299:1,7300:3,7301:1,7302:3,7303:1,7304:3,7305:1,7306:3,7307:1,7308:3,7309:1,7310:3,7311:1,7312:3,7313:1,7314:3,7315:1,7316:3,7317:1,7318:3,7319:1,7320:3,7321:1,7322:3,7323:1,7324:3,7325:1,7326:3,7327:1,7328:3,7329:1,7330:3,7331:1,7332:3,7333:1,7334:3,7335:1,7336:3,7337:1,7338:3,7339:1,7340:3,7341:1,7342:3,7343:1,7344:3,7345:1,7346:3,7347:1,7348:3,7349:1,7350:3,7351:1,7352:3,7353:1,7354:3,7355:1,7356:3,7357:1,7358:3,7359:1,7360:3,7361:1,7362:3,7363:1,7364:3,7365:1,7366:3,7367:1,7368:3,7369:1,7370:3,7877:1,7878:1,7882:1,7883:1,7887:1,7899:1,7991:1,7992:1,8035:3,8036:3,8058:1,8059:1,8082:1,8083:1,8088:1,8090:1,8091:3,8092:1,8093:3,8095:1,8096:3,8097:1,8098:3,8099:1,8100:3,8101:1,8102:3,8103:1,8104:3,8105:1,8106:3,8107:1,8108:3,8109:1,8110:3,8111:1,8112:3,8113:1,8114:3,8115:1,8116:3,8117:1,8118:3,8119:1,8120:3,8121:1,8122:3,8123:1,8124:3,8125:1,8126:3,8127:1,8128:3,8129:1,8130:3,8131:1,8132:3,8133:1,8134:3,8135:1,8136:3,8137:1,8138:3,8139:1,8140:3,8141:1,8142:3,8143:1,8144:3,8145:1,8146:3,8147:1,8148:3,8149:1,8150:3,8151:1,8152:3,8153:1,8154:3,8155:1,8156:3,8157:1,8158:3,8159:1,8160:3,8161:1,8162:3,8163:1,8164:3,8165:1,8166:3,8167:1,8168:3,8169:1,8170:3,8171:1,8172:3,8173:1,8177:3,8179:1,8180:3,8181:1,8182:3,8184:1,8185:3,8187:1,8189:3,8191:1,8193:3,8196:1,8197:3,8198:1,8200:3,8201:1,8202:3,8203:1,8204:3,8205:1,8206:3,8207:1,8208:3,8209:1,8210:3,8212:1,8213:3,8214:1,8216:3,8218:1,8220:3,8222:1,8224:3,8225:1,8226:3,8311:1,8312:2,8313:1,8314:2,8315:1,8316:2,8317:1,8318:2,8319:1,8320:2,8321:1,8322:2,8323:1,8324:2,8325:1,8326:2,8327:1,8328:2,8329:1,8330:2,8331:1,8332:2,8333:1,8334:2,8335:1,8336:2,8337:1,8338:2,8339:1,8340:2,8341:1,8342:2,8343:1,8344:2,8345:1,8346:2,8347:1,8348:2,8352:1,8353:1,8379:1,8380:3,8381:1,8382:3,8383:1,8384:3,8385:1,8387:3,8391:1,8395:1,8433:1,8441:1,8455:1,8456:1,8531:3,8682:1,8686:1,8687:1,8692:1,8693:1,8826:1,8903:1,8950:1,8951:1,9039:1,9040:1,9141:1,9149:1,9150:1,9191:1,9221:1,9222:1,9249:1,9250:1,9252:1,9254:1,9265:1,9284:1,9285:1,9300:1,9354:1,9367:1,9373:1,9377:1,9387:1,9391:1,9456:1,9473:1,9498:1,9674:1,9678:1,9680:1,9709:1,9712:1,9713:1,9716:1,9741:1,9748:3,9749:3,9761:1,9766:1,9793:1,9794:1,9869:1,9874:1,9875:1,9880:1,9895:1,9943:1,9945:1,9947:1,9967:1,9972:1,9977:1,10160:1,10183:1,10188:1,10194:1,10199:1,10207:1,10212:1,10217:1,10222:1,10227:1,10235:1,10240:1,10250:1,10254:1,10270:1,10275:1,10280:1,10306:1,10329:1,10471:1,10477:1,10481:3,10516:3,10592:1,10594:1,10596:1,10598:1,10601:1,10603:1,10626:1,10632:1,10641:1,10665:1,10674:1,10699:1,10702:1,10744:1,10745:1,10759:1,10773:1,10801:1,10802:1,10820:1,10833:1,10836:1,10837:1,10851:1,10857:1,10863:1,10899:1,10917:1,10995:1,11341:1,11360:1,11361:2,11362:1,11363:2,11364:1,11365:2,11366:1,11367:2,11368:1,11369:2,11370:1,11371:2,11372:1,11373:2,11374:1,11375:2,11376:1,11377:2,20002:1,20042:1,20050:2,20499:1,20538:1,20539:1,20790:1,20791:1,21291:1,21292:1,21500:1,21817:1,21818:1,22032:1,22033:1,22091:1,22092:1,22239:1,22240:1,22332:1,22337:1,22338:1,22391:1,22392:1,22639:1,22700:1,22739:1,22770:1,22780:1,22832:1,23090:1,23095:1,23239:1,23240:1,23433:1,23700:1,24047:1,24048:1,24100:4,24200:1,24305:1,24306:1,24382:11,24383:1,24500:1,24547:1,24548:1,24571:10,24600:1,25e3:1,25231:1,25884:1,25932:1,26237:1,26331:1,26332:1,26432:1,26591:1,26592:1,26632:1,26692:1,27120:1,27200:1,27291:7,27292:7,27429:1,27492:1,27493:1,27500:1,28232:1,28600:1,28991:1,28992:1,29100:1,29101:1,29220:1,29221:1,29333:1,29635:1,29636:1,29701:1,29738:1,29739:1,29849:1,29850:1,29871:9,29872:8,29873:1,29874:1,30200:6,30339:1,30340:1,30591:1,30592:1,30791:1,30792:1,30800:1,31028:1,31121:1,31154:1,31170:1,31171:1,31370:1,31528:1,31529:1,31600:1,31700:1,31838:1,31839:1,31900:1,31901:1,32061:1,32062:1,32098:1,32099:3,32100:1,32104:1,32161:1,32766:1,53048:1,53049:1,65061:3,65062:3,102041:3,102064:12,102068:16,102069:17,102118:3,102119:2,102120:3,102121:3,102217:3,102218:1,102219:3,102220:3,102378:2,102379:2,102380:1,102381:2,102589:3,102599:3,102600:3,102604:3,102647:1,102704:3,102705:3,102706:1,102731:1,102732:1,102759:2,102760:2,102761:3,102762:1,102763:3,102764:1,102765:1,102766:3,102970:2,102974:3,102993:1,102994:1,102995:3,102996:3,103015:1,103016:3,103017:1,103018:3,103025:1,103026:1,103027:3,103028:3,103035:1,103036:1,103037:3,103038:3,103039:1,103040:1,103041:3,103042:3,103043:1,103044:1,103045:3,103046:3,103047:1,103048:1,103049:3,103050:3,103051:1,103052:3,103053:1,103054:3,103055:1,103056:3,103057:1,103058:1,103059:3,103060:3,103061:1,103062:1,103063:3,103064:3,103069:3,103070:1,103071:1,103072:3,103073:3,103086:1,103087:1,103088:3,103089:3,103094:2,103095:1,103096:3,103103:1,103104:3,103105:1,103106:3,103121:1,103122:3,103123:1,103124:1,103125:2,103126:2,103127:1,103128:1,103129:3,103130:3,103131:1,103132:1,103133:3,103134:3,103135:1,103136:1,103137:2,103138:2,103139:1,103140:3,103141:1,103142:3,103143:1,103144:3,103145:1,103146:2,103147:1,103148:1,103149:3,103150:3,103151:1,103152:3,103172:1,103173:3,103174:1,103175:1,103176:3,103177:3,103178:1,103179:1,103180:3,103181:3,103182:1,103183:1,103184:3,103185:3,103228:1,103229:1,103230:3,103231:3,103250:1,103251:3,103252:1,103253:3,103260:1,103261:1,103262:3,103263:3,103270:1,103271:1,103272:3,103273:3,103274:1,103275:1,103276:3,103277:3,103278:1,103279:1,103280:3,103281:3,103282:1,103283:1,103284:3,103285:3,103286:1,103287:3,103288:1,103289:3,103290:1,103291:3,103292:1,103293:1,103294:3,103295:3,103296:1,103297:1,103298:3,103299:3,103376:3,103377:1,103378:1,103379:3,103380:3,103393:1,103394:1,103395:3,103396:3,103472:1,103473:2,103474:1,103475:3,103482:1,103483:3,103484:1,103485:3,103500:1,103501:3,103502:1,103503:1,103504:2,103505:2,103506:1,103507:1,103508:3,103509:3,103510:1,103511:1,103512:3,103513:3,103514:1,103515:3,103516:1,103517:3,103518:1,103519:3,103520:1,103521:2,103522:1,103523:1,103524:3,103525:3,103526:1,103527:3,103561:3,103562:3,103563:1,103564:1,103565:3,103566:3,103567:1,103568:1,103569:3,103570:3,103584:1,103585:3,103586:1,103587:3,103588:2,103589:1,103590:3,103591:2,103592:1,103593:3,103594:2,103695:3,103897:2,103898:1,103899:1,103978:3,103979:1,103980:3,103981:1,103982:3,103986:3,103987:3,103988:1,103989:0,103990:3,103991:1,112111:1};for(o=2e3;o<=2045;o++)r[o]=1;for(o=2056;o<=2065;o++)r[o]=1;for(o=2067;o<=2135;o++)r[o]=1;for(o=2137;o<=2154;o++)r[o]=1;for(o=2161;o<=2170;o++)r[o]=1;for(o=2172;o<=2193;o++)r[o]=1;for(o=2195;o<=2198;o++)r[o]=1;for(o=2200;o<=2203;o++)r[o]=1;for(o=2205;o<=2217;o++)r[o]=1;for(o=2222;o<=2224;o++)r[o]=2;for(o=2225;o<=2250;o++)r[o]=3;for(o=2251;o<=2253;o++)r[o]=2;for(o=2257;o<=2264;o++)r[o]=3;for(o=2274;o<=2279;o++)r[o]=3;for(o=2280;o<=2282;o++)r[o]=2;for(o=2283;o<=2289;o++)r[o]=3;for(o=2290;o<=2292;o++)r[o]=1;for(o=2308;o<=2313;o++)r[o]=1;for(o=2315;o<=2491;o++)r[o]=1;for(o=2494;o<=2866;o++)r[o]=1;for(o=2867;o<=2869;o++)r[o]=2;for(o=2870;o<=2888;o++)r[o]=3;for(o=2891;o<=2895;o++)r[o]=3;for(o=2896;o<=2898;o++)r[o]=2;for(o=2902;o<=2908;o++)r[o]=3;for(o=2915;o<=2920;o++)r[o]=3;for(o=2921;o<=2923;o++)r[o]=2;for(o=2924;o<=2930;o++)r[o]=3;for(o=2931;o<=2962;o++)r[o]=1;for(o=2964;o<=2968;o++)r[o]=3;for(o=2969;o<=2973;o++)r[o]=1;for(o=2975;o<=2991;o++)r[o]=1;for(o=2995;o<=3051;o++)r[o]=1;for(o=3054;o<=3079;o++)r[o]=1;for(o=3081;o<=3088;o++)r[o]=1;for(o=3092;o<=3101;o++)r[o]=1;for(o=3106;o<=3138;o++)r[o]=1;for(o=3146;o<=3151;o++)r[o]=1;for(o=3153;o<=3166;o++)r[o]=1;for(o=3168;o<=3172;o++)r[o]=1;for(o=3174;o<=3203;o++)r[o]=1;for(o=3294;o<=3358;o++)r[o]=1;for(o=3367;o<=3403;o++)r[o]=1;for(o=3408;o<=3416;o++)r[o]=1;for(o=3417;o<=3438;o++)r[o]=3;for(o=3441;o<=3446;o++)r[o]=3;for(o=3447;o<=3450;o++)r[o]=1;for(o=3451;o<=3459;o++)r[o]=3;for(o=3460;o<=3478;o++)r[o]=1;for(o=3554;o<=3559;o++)r[o]=1;for(o=3560;o<=3570;o++)r[o]=3;for(o=3571;o<=3581;o++)r[o]=1;for(o=3594;o<=3597;o++)r[o]=1;for(o=3601;o<=3604;o++)r[o]=1;for(o=3637;o<=3639;o++)r[o]=1;for(o=3665;o<=3667;o++)r[o]=1;for(o=3693;o<=3695;o++)r[o]=1;for(o=3701;o<=3727;o++)r[o]=1;for(o=3728;o<=3739;o++)r[o]=3;for(o=3740;o<=3751;o++)r[o]=1;for(o=3753;o<=3760;o++)r[o]=3;for(o=3761;o<=3773;o++)r[o]=1;for(o=3775;o<=3777;o++)r[o]=1;for(o=3779;o<=3781;o++)r[o]=1;for(o=3783;o<=3785;o++)r[o]=1;for(o=3788;o<=3791;o++)r[o]=1;for(o=3797;o<=3802;o++)r[o]=1;for(o=3814;o<=3816;o++)r[o]=1;for(o=3825;o<=3829;o++)r[o]=1;for(o=3832;o<=3841;o++)r[o]=1;for(o=3844;o<=3852;o++)r[o]=1;for(o=3873;o<=3885;o++)r[o]=1;for(o=3890;o<=3893;o++)r[o]=1;for(o=3907;o<=3912;o++)r[o]=1;for(o=3942;o<=3950;o++)r[o]=1;for(o=3968;o<=3970;o++)r[o]=1;for(o=3973;o<=3976;o++)r[o]=1;for(o=3986;o<=3989;o++)r[o]=1;for(o=3994;o<=3997;o++)r[o]=1;for(o=4048;o<=4051;o++)r[o]=1;for(o=4056;o<=4063;o++)r[o]=1;for(o=4093;o<=4096;o++)r[o]=1;for(o=4390;o<=4398;o++)r[o]=1;for(o=4399;o<=4413;o++)r[o]=3;for(o=4418;o<=4433;o++)r[o]=3;for(o=4455;o<=4457;o++)r[o]=3;for(o=4484;o<=4489;o++)r[o]=1;for(o=4491;o<=4554;o++)r[o]=1;for(o=4568;o<=4589;o++)r[o]=1;for(o=4652;o<=4656;o++)r[o]=1;for(o=4766;o<=4800;o++)r[o]=1;for(o=5014;o<=5016;o++)r[o]=1;for(o=5069;o<=5072;o++)r[o]=1;for(o=5105;o<=5130;o++)r[o]=1;for(o=5167;o<=5188;o++)r[o]=1;for(o=5253;o<=5259;o++)r[o]=1;for(o=5269;o<=5275;o++)r[o]=1;for(o=5292;o<=5311;o++)r[o]=1;for(o=5329;o<=5331;o++)r[o]=1;for(o=5343;o<=5349;o++)r[o]=1;for(o=5355;o<=5357;o++)r[o]=1;for(o=5387;o<=5389;o++)r[o]=1;for(o=5459;o<=5463;o++)r[o]=1;for(o=5479;o<=5482;o++)r[o]=1;for(o=5518;o<=5520;o++)r[o]=1;for(o=5530;o<=5539;o++)r[o]=1;for(o=5550;o<=5552;o++)r[o]=1;for(o=5562;o<=5583;o++)r[o]=1;for(o=5623;o<=5625;o++)r[o]=3;for(o=5631;o<=5639;o++)r[o]=1;for(o=5649;o<=5653;o++)r[o]=1;for(o=5663;o<=5680;o++)r[o]=1;for(o=5682;o<=5685;o++)r[o]=1;for(o=5875;o<=5877;o++)r[o]=1;for(o=5896;o<=5899;o++)r[o]=1;for(o=5921;o<=5940;o++)r[o]=1;for(o=6050;o<=6125;o++)r[o]=1;for(o=6244;o<=6275;o++)r[o]=1;for(o=6328;o<=6348;o++)r[o]=1;for(o=6350;o<=6356;o++)r[o]=1;for(o=6366;o<=6372;o++)r[o]=1;for(o=6381;o<=6387;o++)r[o]=1;for(o=6393;o<=6404;o++)r[o]=1;for(o=6480;o<=6483;o++)r[o]=1;for(o=6511;o<=6514;o++)r[o]=1;for(o=6579;o<=6581;o++)r[o]=1;for(o=6619;o<=6624;o++)r[o]=1;for(o=6625;o<=6627;o++)r[o]=3;for(o=6628;o<=6632;o++)r[o]=1;for(o=6634;o<=6637;o++)r[o]=1;for(o=6669;o<=6692;o++)r[o]=1;for(o=6707;o<=6709;o++)r[o]=1;for(o=6720;o<=6723;o++)r[o]=1;for(o=6732;o<=6738;o++)r[o]=1;for(o=6931;o<=6933;o++)r[o]=1;for(o=6956;o<=6959;o++)r[o]=1;for(o=7005;o<=7007;o++)r[o]=1;for(o=7057;o<=7070;o++)r[o]=3;for(o=7074;o<=7082;o++)r[o]=1;for(o=7109;o<=7118;o++)r[o]=1;for(o=7119;o<=7127;o++)r[o]=2;for(o=7374;o<=7376;o++)r[o]=1;for(o=7528;o<=7586;o++)r[o]=1;for(o=7587;o<=7645;o++)r[o]=3;for(o=7692;o<=7696;o++)r[o]=1;for(o=7755;o<=7787;o++)r[o]=1;for(o=7791;o<=7795;o++)r[o]=1;for(o=7799;o<=7801;o++)r[o]=1;for(o=7803;o<=7805;o++)r[o]=1;for(o=7825;o<=7831;o++)r[o]=1;for(o=7845;o<=7859;o++)r[o]=1;for(o=8013;o<=8032;o++)r[o]=1;for(o=8065;o<=8068;o++)r[o]=2;for(o=8518;o<=8529;o++)r[o]=3;for(o=8533;o<=8536;o++)r[o]=3;for(o=8538;o<=8540;o++)r[o]=3;for(o=8677;o<=8679;o++)r[o]=1;for(o=8836;o<=8840;o++)r[o]=1;for(o=8857;o<=8859;o++)r[o]=1;for(o=8908;o<=8910;o++)r[o]=1;for(o=9154;o<=9159;o++)r[o]=1;for(o=9205;o<=9218;o++)r[o]=1;for(o=9271;o<=9273;o++)r[o]=1;for(o=9295;o<=9297;o++)r[o]=1;for(o=9356;o<=9360;o++)r[o]=1;for(o=9404;o<=9407;o++)r[o]=1;for(o=9476;o<=9482;o++)r[o]=1;for(o=9487;o<=9494;o++)r[o]=1;for(o=9697;o<=9699;o++)r[o]=1;for(o=9821;o<=9865;o++)r[o]=1;for(o=10285;o<=10291;o++)r[o]=1;for(o=10314;o<=10317;o++)r[o]=1;for(o=10448;o<=10465;o++)r[o]=1;for(o=10726;o<=10729;o++)r[o]=1;for(o=10731;o<=10733;o++)r[o]=1;for(o=10792;o<=10795;o++)r[o]=1;for(o=10911;o<=10916;o++)r[o]=3;for(o=10921;o<=10926;o++)r[o]=1;for(o=10942;o<=10949;o++)r[o]=1;for(o=11114;o<=11118;o++)r[o]=1;for(o=11266;o<=11272;o++)r[o]=1;for(o=11277;o<=11284;o++)r[o]=1;for(o=20004;o<=20032;o++)r[o]=1;for(o=20047;o<=20049;o++)r[o]=1;for(o=20062;o<=20092;o++)r[o]=1;for(o=20135;o<=20138;o++)r[o]=1;for(o=20248;o<=20258;o++)r[o]=1;for(o=20348;o<=20358;o++)r[o]=1;for(o=20436;o<=20440;o++)r[o]=1;for(o=20822;o<=20824;o++)r[o]=1;for(o=20904;o<=20932;o++)r[o]=1;for(o=20934;o<=20936;o++)r[o]=1;for(o=21004;o<=21032;o++)r[o]=1;for(o=21035;o<=21037;o++)r[o]=1;for(o=21095;o<=21097;o++)r[o]=1;for(o=21148;o<=21150;o++)r[o]=1;for(o=21207;o<=21264;o++)r[o]=1;for(o=21307;o<=21364;o++)r[o]=1;for(o=21413;o<=21423;o++)r[o]=1;for(o=21453;o<=21463;o++)r[o]=1;for(o=21473;o<=21483;o++)r[o]=1;for(o=21780;o<=21782;o++)r[o]=1;for(o=21891;o<=21894;o++)r[o]=1;for(o=21896;o<=21899;o++)r[o]=1;for(o=22171;o<=22177;o++)r[o]=1;for(o=22181;o<=22187;o++)r[o]=1;for(o=22191;o<=22197;o++)r[o]=1;for(o=22207;o<=22222;o++)r[o]=1;for(o=22229;o<=22232;o++)r[o]=1;for(o=22234;o<=22236;o++)r[o]=1;for(o=22243;o<=22250;o++)r[o]=1;for(o=22262;o<=22265;o++)r[o]=1;for(o=22307;o<=22322;o++)r[o]=1;for(o=22348;o<=22357;o++)r[o]=1;for(o=22407;o<=22422;o++)r[o]=1;for(o=22462;o<=22465;o++)r[o]=1;for(o=22521;o<=22525;o++)r[o]=1;for(o=22607;o<=22622;o++)r[o]=1;for(o=22641;o<=22646;o++)r[o]=1;for(o=22648;o<=22657;o++)r[o]=1;for(o=22707;o<=22722;o++)r[o]=1;for(o=22762;o<=22765;o++)r[o]=1;for(o=22807;o<=22822;o++)r[o]=1;for(o=22991;o<=22994;o++)r[o]=1;for(o=23028;o<=23038;o++)r[o]=1;for(o=23301;o<=23333;o++)r[o]=3;for(o=23830;o<=23853;o++)r[o]=1;for(o=23866;o<=23872;o++)r[o]=1;for(o=23877;o<=23884;o++)r[o]=1;for(o=23886;o<=23894;o++)r[o]=1;for(o=23946;o<=23948;o++)r[o]=1;for(o=24311;o<=24313;o++)r[o]=1;for(o=24342;o<=24347;o++)r[o]=1;for(o=24370;o<=24374;o++)r[o]=11;for(o=24375;o<=24381;o++)r[o]=1;for(o=24718;o<=24721;o++)r[o]=1;for(o=24817;o<=24821;o++)r[o]=1;for(o=24877;o<=24882;o++)r[o]=1;for(o=24891;o<=24893;o++)r[o]=1;for(o=25391;o<=25395;o++)r[o]=1;for(o=25828;o<=25838;o++)r[o]=1;for(o=26191;o<=26195;o++)r[o]=1;for(o=26391;o<=26393;o++)r[o]=1;for(o=26701;o<=26722;o++)r[o]=1;for(o=26729;o<=26799;o++)r[o]=3;for(o=26801;o<=26803;o++)r[o]=3;for(o=26811;o<=26813;o++)r[o]=3;for(o=26847;o<=26870;o++)r[o]=3;for(o=26891;o<=26899;o++)r[o]=1;for(o=26901;o<=26923;o++)r[o]=1;for(o=26929;o<=26946;o++)r[o]=1;for(o=26948;o<=26998;o++)r[o]=1;for(o=27037;o<=27040;o++)r[o]=1;for(o=27205;o<=27232;o++)r[o]=1;for(o=27258;o<=27260;o++)r[o]=1;for(o=27391;o<=27398;o++)r[o]=1;for(o=27561;o<=27564;o++)r[o]=1;for(o=27571;o<=27574;o++)r[o]=1;for(o=27581;o<=27584;o++)r[o]=1;for(o=27591;o<=27594;o++)r[o]=1;for(o=27700;o<=27707;o++)r[o]=1;for(o=28191;o<=28193;o++)r[o]=1;for(o=28348;o<=28358;o++)r[o]=1;for(o=28402;o<=28432;o++)r[o]=1;for(o=28462;o<=28492;o++)r[o]=1;for(o=29118;o<=29122;o++)r[o]=1;for(o=29168;o<=29172;o++)r[o]=1;for(o=29177;o<=29185;o++)r[o]=1;for(o=29187;o<=29195;o++)r[o]=1;for(o=29900;o<=29903;o++)r[o]=1;for(o=30161;o<=30179;o++)r[o]=1;for(o=30491;o<=30494;o++)r[o]=1;for(o=30729;o<=30732;o++)r[o]=1;for(o=31251;o<=31259;o++)r[o]=1;for(o=31265;o<=31268;o++)r[o]=1;for(o=31275;o<=31279;o++)r[o]=1;for(o=31281;o<=31297;o++)r[o]=1;for(o=31461;o<=31469;o++)r[o]=1;for(o=31491;o<=31495;o++)r[o]=1;for(o=31917;o<=31922;o++)r[o]=1;for(o=31965;o<=32e3;o++)r[o]=1;for(o=32001;o<=32003;o++)r[o]=3;for(o=32005;o<=32031;o++)r[o]=3;for(o=32033;o<=32060;o++)r[o]=3;for(o=32064;o<=32067;o++)r[o]=3;for(o=32074;o<=32077;o++)r[o]=3;for(o=32081;o<=32086;o++)r[o]=1;for(o=32107;o<=32130;o++)r[o]=1;for(o=32133;o<=32159;o++)r[o]=1;for(o=32164;o<=32167;o++)r[o]=3;for(o=32180;o<=32199;o++)r[o]=1;for(o=32201;o<=32260;o++)r[o]=1;for(o=32301;o<=32360;o++)r[o]=1;for(o=32401;o<=32460;o++)r[o]=1;for(o=32501;o<=32560;o++)r[o]=1;for(o=32601;o<=32662;o++)r[o]=1;for(o=32664;o<=32667;o++)r[o]=3;for(o=32701;o<=32761;o++)r[o]=1;for(o=53001;o<=53004;o++)r[o]=1;for(o=53008;o<=53019;o++)r[o]=1;for(o=53021;o<=53032;o++)r[o]=1;for(o=53034;o<=53037;o++)r[o]=1;for(o=53042;o<=53046;o++)r[o]=1;for(o=53074;o<=53080;o++)r[o]=1;for(o=54001;o<=54004;o++)r[o]=1;for(o=54008;o<=54019;o++)r[o]=1;for(o=54021;o<=54032;o++)r[o]=1;for(o=54034;o<=54037;o++)r[o]=1;for(o=54042;o<=54046;o++)r[o]=1;for(o=54048;o<=54053;o++)r[o]=1;for(o=54074;o<=54080;o++)r[o]=1;for(o=54090;o<=54096;o++)r[o]=1;for(o=54098;o<=54101;o++)r[o]=1;for(o=65161;o<=65163;o++)r[o]=1;for(o=102001;o<=102040;o++)r[o]=1;for(o=102042;o<=102063;o++)r[o]=1;for(o=102065;o<=102067;o++)r[o]=1;for(o=102070;o<=102117;o++)r[o]=1;for(o=102122;o<=102216;o++)r[o]=1;for(o=102221;o<=102377;o++)r[o]=1;for(o=102382;o<=102388;o++)r[o]=1;for(o=102389;o<=102398;o++)r[o]=3;for(o=102399;o<=102444;o++)r[o]=1;for(o=102445;o<=102447;o++)r[o]=3;for(o=102448;o<=102458;o++)r[o]=1;for(o=102459;o<=102468;o++)r[o]=3;for(o=102469;o<=102499;o++)r[o]=1;for(o=102500;o<=102519;o++)r[o]=2;for(o=102520;o<=102524;o++)r[o]=1;for(o=102525;o<=102529;o++)r[o]=3;for(o=102530;o<=102588;o++)r[o]=1;for(o=102590;o<=102598;o++)r[o]=1;for(o=102601;o<=102603;o++)r[o]=1;for(o=102605;o<=102628;o++)r[o]=1;for(o=102629;o<=102646;o++)r[o]=3;for(o=102648;o<=102700;o++)r[o]=3;for(o=102701;o<=102703;o++)r[o]=1;for(o=102707;o<=102730;o++)r[o]=3;for(o=102733;o<=102758;o++)r[o]=3;for(o=102767;o<=102900;o++)r[o]=1;for(o=102901;o<=102933;o++)r[o]=3;for(o=102934;o<=102950;o++)r[o]=14;for(o=102951;o<=102969;o++)r[o]=1;for(o=102971;o<=102973;o++)r[o]=1;for(o=102975;o<=102989;o++)r[o]=1;for(o=102990;o<=102992;o++)r[o]=2;for(o=102997;o<=103002;o++)r[o]=1;for(o=103003;o<=103008;o++)r[o]=3;for(o=103009;o<=103011;o++)r[o]=1;for(o=103012;o<=103014;o++)r[o]=3;for(o=103019;o<=103021;o++)r[o]=1;for(o=103022;o<=103024;o++)r[o]=3;for(o=103029;o<=103031;o++)r[o]=1;for(o=103032;o<=103034;o++)r[o]=3;for(o=103065;o<=103068;o++)r[o]=1;for(o=103074;o<=103076;o++)r[o]=1;for(o=103077;o<=103079;o++)r[o]=2;for(o=103080;o<=103082;o++)r[o]=1;for(o=103083;o<=103085;o++)r[o]=3;for(o=103090;o<=103093;o++)r[o]=1;for(o=103097;o<=103099;o++)r[o]=1;for(o=103100;o<=103102;o++)r[o]=3;for(o=103107;o<=103109;o++)r[o]=1;for(o=103110;o<=103112;o++)r[o]=3;for(o=103113;o<=103116;o++)r[o]=1;for(o=103117;o<=103120;o++)r[o]=3;for(o=103153;o<=103157;o++)r[o]=1;for(o=103158;o<=103162;o++)r[o]=3;for(o=103163;o<=103165;o++)r[o]=1;for(o=103166;o<=103168;o++)r[o]=2;for(o=103169;o<=103171;o++)r[o]=3;for(o=103186;o<=103188;o++)r[o]=1;for(o=103189;o<=103191;o++)r[o]=3;for(o=103192;o<=103195;o++)r[o]=1;for(o=103196;o<=103199;o++)r[o]=3;for(o=103200;o<=103224;o++)r[o]=1;for(o=103225;o<=103227;o++)r[o]=2;for(o=103232;o<=103237;o++)r[o]=1;for(o=103238;o<=103243;o++)r[o]=3;for(o=103244;o<=103246;o++)r[o]=1;for(o=103247;o<=103249;o++)r[o]=3;for(o=103254;o<=103256;o++)r[o]=1;for(o=103257;o<=103259;o++)r[o]=3;for(o=103264;o<=103266;o++)r[o]=1;for(o=103267;o<=103269;o++)r[o]=3;for(o=103300;o<=103375;o++)r[o]=1;for(o=103381;o<=103383;o++)r[o]=1;for(o=103384;o<=103386;o++)r[o]=2;for(o=103387;o<=103389;o++)r[o]=1;for(o=103390;o<=103392;o++)r[o]=3;for(o=103397;o<=103399;o++)r[o]=1;for(o=103400;o<=103471;o++)r[o]=3;for(o=103476;o<=103478;o++)r[o]=1;for(o=103479;o<=103481;o++)r[o]=3;for(o=103486;o<=103488;o++)r[o]=1;for(o=103489;o<=103491;o++)r[o]=3;for(o=103492;o<=103495;o++)r[o]=1;for(o=103496;o<=103499;o++)r[o]=3;for(o=103528;o<=103543;o++)r[o]=1;for(o=103544;o<=103548;o++)r[o]=3;for(o=103549;o<=103551;o++)r[o]=1;for(o=103552;o<=103554;o++)r[o]=2;for(o=103555;o<=103557;o++)r[o]=3;for(o=103558;o<=103560;o++)r[o]=1;for(o=103571;o<=103573;o++)r[o]=1;for(o=103574;o<=103576;o++)r[o]=3;for(o=103577;o<=103580;o++)r[o]=1;for(o=103581;o<=103583;o++)r[o]=3;for(o=103595;o<=103694;o++)r[o]=1;for(o=103696;o<=103699;o++)r[o]=1;for(o=103700;o<=103793;o++)r[o]=3;for(o=103794;o<=103890;o++)r[o]=1;for(o=103891;o<=103896;o++)r[o]=3;for(o=103900;o<=103971;o++)r[o]=3;for(o=103972;o<=103977;o++)r[o]=1;for(o=103983;o<=103985;o++)r[o]=1;for(o=112e3;o<=112101;o++)r[o]=1;for(o=112151;o<=112156;o++)r[o]=1;for(o=112201;o<=112210;o++)r[o]=1;for(o=112212;o<=112235;o++)r[o]=1;for(o=112236;o<=112323;o++)r[o]=3;export{r as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import e from"../config.js";import t from"../request.js";import r from"../core/Error.js";import{Evented as s}from"../core/Evented.js";import{on as i}from"../core/events.js";import{fixJson as n}from"../core/lang.js";import{getDeepValue as o}from"../core/object.js";import{onAbort as a,isAborted as h}from"../core/promiseUtils.js";import{urlToObject as l,hasSameOrigin as c,Url as d,queryToObject as u,base64UrlEncode as p,objectToQuery as _,normalize as f,getProxyRule as g,makeAbsolute as m,changeDomain as v,addQueryParameters as S}from"../core/urlUtils.js";import w from"./Credential.js";import I from"./IdentityModal.js";import k from"./OAuthCredential.js";import A from"./OAuthInfo.js";import U from"./ServerInfo.js";import{isSecureProxyService as y,normalizeArcGISOnlineOrgDomain as P,parseKnownArcGISOnlineDomain as x}from"../portal/support/urlUtils.js";const O={},T=e=>{const t=new d(e.owningSystemUrl).host,r=new d(e.server).host,s=/.+\.arcgis\.com$/i;return s.test(t)&&s.test(r)},R=(e,t)=>!!(T(e)&&t&&t.some(t=>t.test(e.server)));let C=null,D=null;try{C=window.localStorage,D=window.sessionStorage}catch{}class b extends s{constructor(){super(),this._portalConfig=globalThis.esriGeowConfig,this.serverInfos=[],this.oAuthInfos=[],this.credentials=[],this._soReqs=[],this._xoReqs=[],this._portals=[],this._defaultOAuthInfo=null,this._defaultTokenValidity=60,this.dialog=null,this.tokenValidity=null,this.normalizeWebTierAuth=!1,this._appOrigin="null"!==window.origin?window.origin:window.location.origin,this._appUrlObj=l(window.location.href),this._busy=null,this._rejectOnPersistedPageShow=!1,this._oAuthLocationParams=null,this._gwTokenUrl="/sharing/rest/generateToken",this._agsRest="/rest/services",this._agsPortal=/\/sharing(\/|$)/i,this._agsAdmin=/(https?:\/\/[^/]+\/[^/]+)\/admin\/?(\/.*)?$/i,this._adminSvcs=/\/rest\/admin\/services(\/|$)/i,this._gwDomains=[{regex:/^https?:\/\/www\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:dev|[a-z\d-]+\.mapsdev)\.arcgis\.com/i,customBaseUrl:"mapsdev.arcgis.com",tokenServiceUrl:"https://dev.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:devext|[a-z\d-]+\.mapsdevext)\.arcgis\.com/i,customBaseUrl:"mapsdevext.arcgis.com",tokenServiceUrl:"https://devext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:qaext|[a-z\d-]+\.mapsqa)\.arcgis\.com/i,customBaseUrl:"mapsqa.arcgis.com",tokenServiceUrl:"https://qaext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/[a-z\d-]+\.maps\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"}],this._legacyFed=[],this._regexSDirUrl=/http.+\/rest\/services\/?/gi,this._regexServerType=/(\/(FeatureServer|GPServer|GeoDataServer|GeocodeServer|GeoenrichmentServer|GeometryServer|GlobeServer|ImageServer|KnowledgeGraphServer|MapServer|MissionServer|MobileServer|NAServer|NetworkDiagramServer|OGCFeatureServer|ParcelFabricServer|RelationalCatalogServer|SceneServer|StreamServer|UtilityNetworkServer|ValidationServer|VectorTileServer|VersionManagementServer|VideoServer|3DTilesServer)).*/gi,this._gwUser=/http.+\/users\/([^/]+).*/i,this._gwItem=/http.+\/items\/([^/]+).*/i,this._gwGroup=/http.+\/groups\/([^/]+).*/i,this._rePortalTokenSvc=/\/sharing(\/rest)?\/generatetoken/i,this._createDefaultOAuthInfo=!0,this._hasTestedIfAppIsOnPortal=!1,this._getPlatformSelfError=null,this._getOAuthLocationParams(),window.addEventListener("pageshow",e=>{this._pageShowHandler(e)})}registerServers(e){const t=this.serverInfos;t?(e=e.filter(e=>!this.findServerInfo(e.server)),this.serverInfos=t.concat(e)):this.serverInfos=e,e.forEach(e=>{e.owningSystemUrl&&this._portals.push(e.owningSystemUrl),e.hasPortal&&this._portals.push(e.server)})}registerOAuthInfos(e){const t=this.oAuthInfos;if(t){for(const r of e){const e=this.findOAuthInfo(r.portalUrl);e&&t.splice(t.indexOf(e),1)}this.oAuthInfos=t.concat(e)}else this.oAuthInfos=e}registerToken(e){e={...e};const t=this._sanitizeUrl(e.server),r=this._isServerRsrc(t);let s,i=this.findServerInfo(t),n=!0;i||(i=new U,i.server=this._getServerInstanceRoot(t),r?i.hasServer=!0:(i.tokenServiceUrl=this._getTokenSvcUrl(t),i.hasPortal=!0),this.registerServers([i])),s=this._findCredential(t),s?(delete e.server,Object.assign(s,e),n=!1):(s=new w({userId:e.userId,server:i.server??void 0,token:e.token,expires:e.expires,ssl:e.ssl,scope:r?"server":"portal"}),s.resources=[t],this.credentials.push(s)),s.emitTokenChange(!1),n||s.refreshServerTokens()}toJSON(){return n({serverInfos:this.serverInfos.map(e=>e.toJSON()),oAuthInfos:this.oAuthInfos.map(e=>e.toJSON()),credentials:this.credentials.map(e=>e.toJSON())})}initialize(e){if(!e)return;"string"==typeof e&&(e=JSON.parse(e));const t=e.serverInfos,r=e.oAuthInfos,s=e.credentials;if(t){const e=[];t.forEach(t=>{t.server&&t.tokenServiceUrl&&e.push(t.declaredClass?t:new U(t))}),e.length&&this.registerServers(e)}if(r){const e=[];r.forEach(t=>{t.appId&&e.push(t.declaredClass?t:new A(t))}),e.length&&this.registerOAuthInfos(e)}s&&s.forEach(e=>{e.server&&e.token&&e.expires&&e.expires>Date.now()&&((e=e.declaredClass?e:new w(e)).emitTokenChange(),this.credentials.push(e))})}findServerInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.serverInfos)if(this._hasSameServerInstance(r.server,e)){t=r;break}return t}findOAuthInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.oAuthInfos)if(this._hasSameServerInstance(r.portalUrl,e)){t=r;break}return t}findCredential(e,t){if(!e)return;let r;e=this._sanitizeUrl(e);const s=this._isServerRsrc(e)?"server":"portal";if(t){for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&t===i.userId&&i.scope===s){r=i;break}}else for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&-1!==this._getIdenticalSvcIdx(e,i)&&i.scope===s){r=i;break}return r}getCredential(e,t){let s,i=!1,n=!0;t&&(i=!(!t.token&&!t.credential),s=t.error,n=!1!==t.prompt),t={...t},e=this._sanitizeUrl(e);const o=new AbortController,l=Promise.withResolvers();if(t.signal&&a(t.signal,()=>{o.abort()}),a(o,()=>{l.reject(new r("identity-manager:user-aborted","ABORTED"))}),h(o))return l.promise;t.signal=o.signal;const d=this._isAdminResource(e),u=i?this.findCredential(e):null;let p;if(u&&498===s?.details?.httpStatus)u.destroy();else if(u)return p=new r("identity-manager:not-authorized","You are currently signed in as: '"+u.userId+"'. You do not have access to this resource: "+e,{error:s}),l.reject(p),l.promise;const _=this._findCredential(e,t);if(_)return l.resolve(_),l.promise;let f=this.findServerInfo(e);if(f)!f.hasPortal&&f.server&&f.owningSystemUrl&&this._hasSameServerInstance(f.server,f.owningSystemUrl)&&(f.hasPortal=!0),!f.hasServer&&this._isServerRsrc(e)&&(f._restInfoPms=this._getTokenSvcUrl(e),f.hasServer=!0);else{const t=this._getTokenSvcUrl(e);if(!t)return p=new r("identity-manager:unknown-resource","Unknown resource - could not find token service endpoint."),l.reject(p),l.promise;f=new U,f.server=this._getServerInstanceRoot(e),"string"==typeof t?(f.tokenServiceUrl=t,f.hasPortal=!0):(f._restInfoPms=t,f.hasServer=!0),this.registerServers([f])}return f.hasPortal&&void 0===f._selfReq&&(n||c(f.tokenServiceUrl,this._appOrigin)||this._gwDomains.some(e=>e.tokenServiceUrl===f.tokenServiceUrl))&&(f._selfReq={owningTenant:t?.owningTenant,selfDfd:this._getPortalSelf(f.tokenServiceUrl.replace(this._rePortalTokenSvc,"/sharing/rest/portals/self"),e)}),this._enqueue(e,f,t,l,d)}getResourceName(e){return this._isRESTService(e)?e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"")||"":this._gwUser.test(e)&&e.replace(this._gwUser,"$1")||this._gwItem.test(e)&&e.replace(this._gwItem,"$1")||this._gwGroup.test(e)&&e.replace(this._gwGroup,"$1")||""}generateToken(e,s,i){const n=this._rePortalTokenSvc.test(e.tokenServiceUrl),o=new d(this._appOrigin),a=e.shortLivedTokenValidity;let h,l,u,p,_,f,g,m;s&&(m=this.tokenValidity||a||this._defaultTokenValidity,m>a&&a>0&&(m=a)),i&&(h=i.isAdmin,l=i.serverUrl,u=i.token,f=i.signal,g=i.ssl,e.customParameters=i.customParameters),h?p=e.adminTokenServiceUrl:(p=e.tokenServiceUrl,_=new d(p.toLowerCase()),e.webTierAuth&&i?.serverUrl&&!g&&"http"===o.scheme&&(c(o.uri,p,!0)||"https"===_.scheme&&o.host===_.host&&"7080"===o.port&&"7443"===_.port)&&(p=p.replace(/^https:/i,"http:").replace(/:7443/i,":7080")));const v={query:{request:"getToken",username:s?.username,password:s?.password,serverUrl:l,token:u,expiration:m,referer:h||n?this._appOrigin:null,client:h?"referer":null,f:"json",...e.customParameters},method:"post",authMode:"anonymous",useProxy:this._useProxy(e,i),signal:f};n||(v.withCredentials=!1);return t(p,v).then(t=>{const i=t.data;if(!i?.token)return new r("identity-manager:authentication-failed","Unable to generate token");const n=e.server;return O[n]||(O[n]={}),s&&(O[n][s.username]=s.password),i.validity=m,i})}isBusy(){return!!this._busy}async checkSignInStatus(e){return(await this.checkAppAccess(e,"")).credential}checkAppAccess(e,s,i){let n=!1;return this.getCredential(e,{prompt:!1}).then(o=>{let a;const h={f:"json"};if("portal"===o.scope)if(s&&(this._doPortalSignIn(e)||i?.force))a=o.server+"/sharing/rest/oauth2/validateAppAccess",h.client_id=s;else{if(!o.token)return{credential:o};a=o.server+"/sharing/rest"}else{if(!o.token)return{credential:o};a=o.server+"/rest/services"}return o.token&&(h.token=o.token),t(a,{query:h,authMode:"anonymous"}).then(e=>{if(!1===e.data.valid)throw new r("identity-manager:not-authorized",`You are currently signed in as: '${o.userId}'.`,e.data);return n=!!e.data.viewOnlyUserTypeApp,{credential:o}}).catch(e=>{if("identity-manager:not-authorized"===e.name)throw e;const t=e.details?.httpStatus;if(498===t)throw o.destroy(),new r("identity-manager:not-authenticated","User is not signed in.");if(400===t)throw new r("identity-manager:invalid-request","Bad request");return{credential:o}})}).then(e=>({credential:e.credential,viewOnly:n}))}setOAuthResponseHash(e){e&&(e.startsWith("#")&&(e=e.slice(1)),this._processOAuthPopupParams(u(e)))}setOAuthRedirectionHandler(e){this._oAuthRedirectFunc=e}setProtocolErrorHandler(e){this._protocolFunc=e}signIn(e,t,s={}){const i=Promise.withResolvers(),n=()=>{l?.remove(),c?.remove(),this.dialog?.destroy(),this.dialog=l=c=null},o=()=>{n(),this._oAuthDfd=null,i.reject(new r("identity-manager:user-aborted","ABORTED"))};s.signal&&a(s.signal,()=>{o()});const h=new I({open:!0,resource:this.getResourceName(e),server:t.server});this.dialog=h,this.emit("dialog-create");let l=h.on("cancel",o),c=h.on("submit",e=>{this.generateToken(t,e,{isAdmin:s.isAdmin,signal:s.signal}).then(r=>{n();const o=new w({userId:e.username,server:t.server??void 0,token:r.token,expires:null!=r.expires?Number(r.expires):null,ssl:!!r.ssl,isAdmin:s.isAdmin,validity:r.validity});i.resolve(o)}).catch(e=>{h.error=e,h.signingIn=!1})});return i.promise}oAuthSignIn(e,t,s,i){this._oAuthDfd=Promise.withResolvers();const n=this._oAuthDfd;let o;i?.signal&&a(i.signal,()=>{const e=this._oAuthDfd&&this._oAuthDfd.oAuthWin_;e&&!e.closed?e.close():this.dialog&&d()}),n.resUrl_=e,n.sinfo_=t,n.oinfo_=s;const h=s._oAuthCred;if(h.storage&&("authorization-code"===s.flowType||"auto"===s.flowType&&t.currentVersion>=8.4)){let e=crypto.getRandomValues(new Uint8Array(32));o=p(e),h.codeVerifier=o,e=crypto.getRandomValues(new Uint8Array(32)),h.stateUID=p(e),h.save()||(h.codeVerifier=o=null)}else h.codeVerifier=null;let l,c;this._getCodeChallenge(o).then(r=>{const n=!i||!1!==i.oAuthPopupConfirmation;if(!s.popup||!n)return void this._doOAuthSignIn(e,t,s,r);const o=new I({oAuthPrompt:!0,server:t.server,open:!0});this.dialog=o,this.emit("dialog-create"),l=o.on("cancel",d),c=o.on("submit",()=>{u(),this._doOAuthSignIn(e,t,s,r)})});const d=()=>{u(),this._oAuthDfd=null,n.reject(new r("identity-manager:user-aborted","ABORTED"))},u=()=>{l?.remove(),c?.remove(),this.dialog?.destroy(),this.dialog=null};return n.promise}async refreshToken(e){const t=this.findServerInfo(e.server),r=t?.owningSystemUrl,s=!!r&&"server"===e.scope,i=s&&R(t,this._legacyFed),n=t.webTierAuth,o=n&&this.normalizeWebTierAuth,a=O[e.server],h=a?.[e.userId];let l,c=e.resources&&e.resources[0],d=s?this.findServerInfo(r):null,u={username:e.userId,password:h};if(n&&!o)return;s&&!d&&this.serverInfos.some(e=>(this._isIdProvider(r,e.server)&&(d=e),!!d));const p=d?this.findCredential(d.server,e.userId):null;if(!s||p){if(!i){if(s)l={serverUrl:c,token:p?.token,ssl:p?.ssl};else if(o)u=null,l={ssl:e.ssl};else{if(!h){let r;return c&&(c=this._sanitizeUrl(c),e._enqueued=1,r=this._enqueue(c,t,null,null,e.isAdmin,e),r.then(()=>{e._enqueued=0,e.refreshServerTokens()}).catch(()=>{e._enqueued=0})),r}e.isAdmin&&(l={isAdmin:!0})}return this.generateToken(s?d:t,s?null:u,l).then(t=>{e.token=t.token,e.expires=null!=t.expires?Number(t.expires):null,e.creationTime=Date.now(),e.validity=t.validity,e.emitTokenChange(),e.refreshServerTokens()}).catch(()=>{})}p?.refreshToken()}}refreshServerTokens(e){"portal"===e.scope&&this.credentials.forEach(t=>{const r=this.findServerInfo(t.server),s=r?.owningSystemUrl;t!==e&&t.userId===e.userId&&s&&"server"===t.scope&&(this._hasSameServerInstance(e.server,s)||this._isIdProvider(s,e.server))&&(R(r,this._legacyFed)?(t.token=e.token,t.expires=e.expires,t.creationTime=e.creationTime,t.validity=e.validity,t.emitTokenChange()):t.refreshToken())})}destroyCredentials(){if(this.credentials){this.credentials.slice().forEach(e=>{e.destroy()})}this.emit("credentials-destroy")}enablePostMessageAuth(e="https://www.arcgis.com/sharing/rest"){this._postMessageAuthHandle&&this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=i(window,"message",t=>{if((t.origin===this._appOrigin||t.origin.endsWith(".arcgis.com"))&&"arcgis:auth:requestCredential"===t.data?.type){const r=t.source;this.getCredential(e).then(e=>{r.postMessage({type:"arcgis:auth:credential",credential:{expires:e.expires,server:e.server,ssl:e.ssl,token:e.token,userId:e.userId}},t.origin)}).catch(e=>{r.postMessage({type:"arcgis:auth:error",error:{name:e.name,message:e.message}},t.origin)})}})}disablePostMessageAuth(){this._postMessageAuthHandle&&(this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=null)}_getOAuthLocationParams(){let e=window.location.hash;if(e){e.startsWith("#")&&(e=e.slice(1));const t=u(e);let r=!1;if(t.access_token&&t.expires_in&&t.state&&t.hasOwnProperty("username"))try{t.state=JSON.parse(t.state),t.state.portalUrl&&(this._oAuthLocationParams=t,r=!0)}catch{}else if(t.error&&t.error_description&&(console.log("IdentityManager OAuth Error: ",t.error," - ",t.error_description),"access_denied"===t.error&&(r=!0,t.state)))try{t.state=JSON.parse(t.state)}catch{}r&&(window.location.hash=t.state?.hash||"")}let t=window.location.search;if(t){t.startsWith("?")&&(t=t.slice(1));const e=u(t);let r=!1;if(e.code&&e.state)try{e.state=JSON.parse(e.state),e.state.portalUrl&&e.state.uid&&(this._oAuthLocationParams=e,r=!0)}catch{}else if(e.error&&e.error_description&&(console.log("IdentityManager OAuth Error: ",e.error," - ",e.error_description),"access_denied"===e.error&&(r=!0,e.state)))try{e.state=JSON.parse(e.state)}catch{}if(r){const t={...e};["code","error","error_description","message_code","persist","state"].forEach(e=>{delete t[e]});const r=_(t),s=window.location.pathname+(r?`?${r}`:"")+(e.state?.hash||"");window.history.replaceState(window.history.state,"",s)}}}_getOAuthToken(e,r,s,i,n){return e=e.replace(/^http:/i,"https:"),t(`${e}/sharing/rest/oauth2/token`,{authMode:"anonymous",method:"post",query:i&&n?{grant_type:"authorization_code",code:r,redirect_uri:i,client_id:s,code_verifier:n}:{grant_type:"refresh_token",refresh_token:r,client_id:s}}).then(e=>e.data)}async _getCodeChallenge(e){if(e&&globalThis.isSecureContext){const t=(new TextEncoder).encode(e),r=await crypto.subtle.digest("SHA-256",t);return p(new Uint8Array(r))}return null}_pageShowHandler(e){if(e.persisted&&this.isBusy()&&this._rejectOnPersistedPageShow){const e=new r("identity-manager:user-aborted","ABORTED");this._errbackFunc(e)}}_findCredential(e,t){let r,s,i,n,o=-1;const a=t?.token,h=t?.resource,l=this._isServerRsrc(e)?"server":"portal",c=this.credentials.filter(t=>this._hasSameServerInstance(t.server,e)&&t.scope===l);if(e=h||e,c.length)if(1===c.length){if(r=c[0],i=this.findServerInfo(r.server),s=i?.owningSystemUrl,n=s?this.findCredential(s,r.userId):void 0,o=this._getIdenticalSvcIdx(e,r),!a)return-1===o&&r.resources.push(e),this._addResource(e,n),r;-1!==o&&(r.resources.splice(o,1),this._removeResource(e,n))}else{let t,r;if(c.some(a=>(r=this._getIdenticalSvcIdx(e,a),-1!==r&&(t=a,i=this.findServerInfo(t.server),s=i?.owningSystemUrl,n=s?this.findCredential(s,t.userId):void 0,o=r,!0))),a)t&&(t.resources.splice(o,1),this._removeResource(e,n));else if(t)return this._addResource(e,n),t}}_findOAuthInfo(e){let t=this.findOAuthInfo(e);if(!t)for(const r of this.oAuthInfos)if(this._isIdProvider(r.portalUrl,e)){t=r;break}return t}_addResource(e,t){t&&-1===this._getIdenticalSvcIdx(e,t)&&t.resources.push(e)}_removeResource(e,t){let r=-1;t&&(r=this._getIdenticalSvcIdx(e,t),r>-1&&t.resources.splice(r,1))}_useProxy(e,t){return t?.isAdmin&&!c(e.adminTokenServiceUrl,this._appOrigin)||!this._isPortalDomain(e.tokenServiceUrl)&&"10.1"===String(e.currentVersion)&&!c(e.tokenServiceUrl,this._appOrigin)}_getOrigin(e){const t=new d(e);return t.scheme+"://"+t.host+(null!=t.port?":"+t.port:"")}_getServerInstanceRoot(e){const t=e.toLowerCase();let r=t.indexOf(this._agsRest);return-1===r&&this._isAdminResource(e)&&(r=this._agsAdmin.test(e)?e.replace(this._agsAdmin,"$1").length:e.search(this._adminSvcs)),-1!==r||y(t)||(r=t.indexOf("/sharing")),-1===r&&t.endsWith("/")&&(r=t.length-1),r>-1?e.slice(0,r):e}_hasSameServerInstance(e,t){return e.endsWith("/")&&(e=e.slice(0,-1)),e=e.toLowerCase(),t=this._getServerInstanceRoot(t).toLowerCase(),e=P(e),t=P(t),(e=e.slice(Math.max(0,e.indexOf(":"))))===(t=t.slice(Math.max(0,t.indexOf(":"))))}_sanitizeUrl(t){const r=(e.request.proxyUrl||"").toLowerCase(),s=r?t.toLowerCase().indexOf(r+"?"):-1;return-1!==s&&(t=t.slice(s+r.length+1)),t=f(t),l(t).path}_isRESTService(e){return e.includes(this._agsRest)}_isAdminResource(e){return this._agsAdmin.test(e)||this._adminSvcs.test(e)}_isServerRsrc(e){return this._isRESTService(e)||this._isAdminResource(e)}_isIdenticalService(e,t){let r=!1;if(this._isRESTService(e)&&this._isRESTService(t)){const s=this._getSuffix(e).toLowerCase(),i=this._getSuffix(t).toLowerCase();if(r=s===i,!r){const e=/(.*)\/(MapServer|FeatureServer|UtilityNetworkServer).*/gi;r=s.replaceAll(e,"$1")===i.replaceAll(e,"$1")}}else this._isAdminResource(e)&&this._isAdminResource(t)?r=!0:this._isServerRsrc(e)||this._isServerRsrc(t)||!this._isPortalDomain(e)||(r=!0);return r}_isPortalDomain(t){const r=new d(t.toLowerCase()),s=this._portalConfig;let i=this._gwDomains.some(e=>e.regex.test(r.uri));return!i&&s&&(i=this._hasSameServerInstance(this._getServerInstanceRoot(s.restBaseUrl),r.uri)),i||e.portalUrl&&(i=c(r,e.portalUrl,!0)),i||(i=this._portals.some(e=>this._hasSameServerInstance(e,r.uri))),i=i||this._agsPortal.test(r.path),i}_isIdProvider(e,t){let r=-1,s=-1;this._gwDomains.forEach((i,n)=>{-1===r&&i.regex.test(e)&&(r=n),-1===s&&i.regex.test(t)&&(s=n)});let i=!1;if(r>-1&&s>-1&&(0===r||4===r?0!==s&&4!==s||(i=!0):1===r?1!==s&&2!==s||(i=!0):2===r?2===s&&(i=!0):3===r&&3===s&&(i=!0)),!i){const r=this.findServerInfo(t),s=r?.owningSystemUrl;s&&T(r)&&this._isPortalDomain(s)&&this._isIdProvider(e,s)&&(i=!0)}return i}_getIdenticalSvcIdx(e,t){let r=-1;for(let s=0;s<t.resources.length;s++){const i=t.resources[s];if(this._isIdenticalService(e,i)){r=s;break}}return r}_getSuffix(e){return e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"$1")}_getTokenSvcUrl(e){let r,s,i;if(this._isRESTService(e)||this._isAdminResource(e)){const i=this._getServerInstanceRoot(e);return r=i+"/admin/generateToken",s=t(e=i+"/rest/info",{query:{f:"json"}}).then(e=>e.data),{adminUrl:r,promise:s}}if(this._isPortalDomain(e)){let t="";if(this._gwDomains.some(r=>(r.regex.test(e)&&(t=r.tokenServiceUrl),!!t)),t||this._portals.some(r=>(this._hasSameServerInstance(r,e)&&(t=r+this._gwTokenUrl),!!t)),t||(i=e.toLowerCase().indexOf("/sharing"),-1!==i&&(t=e.slice(0,i)+this._gwTokenUrl)),t||(t=this._getOrigin(e)+this._gwTokenUrl),t){const r=new d(e).port;/^http:\/\//i.test(e)&&"7080"===r&&(t=t.replace(/:7080/i,":7443")),t=t.replace(/http:/i,"https:")}return t}}_processOAuthResponseParams(e,t,r){const s=t._oAuthCred;if(e.code){const i=s.codeVerifier;return s.codeVerifier=null,s.stateUID=null,s.save(),this._getOAuthToken(r.server,e.code,t.appId,this._getRedirectURI(t,!0),i).then(i=>{const n=new w({userId:i.username,server:r.server??void 0,token:i.access_token,expires:Date.now()+1e3*i.expires_in,ssl:i.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=n.userId,s.storage=i.persist?C:D,s.refreshToken=i.refresh_token,s.token=null,s.expires=i.refresh_token_expires_in?Date.now()+1e3*i.refresh_token_expires_in:null,s.userId=n.userId,s.ssl=n.ssl,s.save(),n})}const i=new w({userId:e.username,server:r.server??void 0,token:e.access_token,expires:Date.now()+1e3*Number(e.expires_in),ssl:"true"===e.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=i.userId,s.storage=e.persist?C:D,s.refreshToken=null,s.token=i.token,s.expires=i.expires,s.userId=i.userId,s.ssl=i.ssl,s.save(),Promise.resolve(i)}_processOAuthPopupParams(e){const t=this._oAuthDfd;if(this._oAuthDfd=null,t)if(clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle?.remove(),e.error){const s="access_denied"===e.error,i=new r(s?"identity-manager:user-aborted":"identity-manager:authentication-failed",s?"ABORTED":"OAuth: "+e.error+" - "+e.error_description);t.reject(i)}else this._processOAuthResponseParams(e,t.oinfo_,t.sinfo_).then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)})}_setOAuthResponseQueryString(e){e&&(e.startsWith("?")&&(e=e.slice(1)),this._processOAuthPopupParams(u(e)))}async _exchangeToken(e,r,s){return(await t(`${e}/sharing/rest/oauth2/exchangeToken`,{authMode:"anonymous",method:"post",query:{f:"json",client_id:r,token:s}})).data.token}async _getPlatformSelf(e,r){if(this._getPlatformSelfError&&Date.now()-this._getPlatformSelfError[1]<1e3)throw this._getPlatformSelfError[0];e=e.replace(/^http:/i,"https:");try{const s=await t(`${e}/sharing/rest/oauth2/platformSelf`,{authMode:"anonymous",headers:{"X-Esri-Auth-Client-Id":r,"X-Esri-Auth-Redirect-Uri":window.location.href.replace(/#.*$/,"")},method:"post",query:{f:"json",expiration:30},withCredentials:!0});return this._getPlatformSelfError=null,s.data}catch(s){throw"OAUTH_0066"===s.details?.messageCode&&(this._getPlatformSelfError=[s,Date.now()]),s}}_getPortalSelf(e,r){let s;if(this._gwDomains.some(t=>(t.regex.test(e)&&(s=t.customBaseUrl),!!s)),s)return Promise.resolve({allSSL:!0,currentVersion:"8.4",customBaseUrl:s,portalMode:"multitenant",supportsOAuth:!0});this._appOrigin.startsWith("https:")?e=e.replace(/^http:/i,"https:").replace(/:7080/i,":7443"):/^http:/i.test(r)&&(e=e.replace(/^https:/i,"http:").replace(/:7443/i,":7080"));return t(e,{query:{f:"json"},authMode:"anonymous",withCredentials:!0}).then(e=>e.data)}_doPortalSignIn(e){const t=this._portalConfig,r=window.location.href,s=this.findServerInfo(e);return!(!t&&!this._isPortalDomain(r)||!(s?s.hasPortal||s.owningSystemUrl&&this._isPortalDomain(s.owningSystemUrl):this._isPortalDomain(e))||!(this._isIdProvider(r,e)||t&&(this._hasSameServerInstance(this._getServerInstanceRoot(t.restBaseUrl),e)||this._isIdProvider(t.restBaseUrl,e))||c(r,e,!0)))}_checkProtocol(e,t,s,i){let n=!0;const o=i?t.adminTokenServiceUrl:t.tokenServiceUrl;if(o.trim().toLowerCase().startsWith("https:")&&!this._appOrigin.startsWith("https:")&&g(o)&&(n=!!this._protocolFunc&&!!this._protocolFunc({resourceUrl:e,serverInfo:t}),!n)){s(new r("identity-manager:aborted","Aborted the Sign-In process to avoid sending password over insecure connection."))}return n}_enqueue(e,t,r,s,i,n){return s||(s=Promise.withResolvers()),s.resUrl_=e,s.sinfo_=t,s.options_=r,s.admin_=i,s.refresh_=n,this._busy?this._hasSameServerInstance(this._getServerInstanceRoot(e),this._busy.resUrl_)?(this._oAuthDfd&&this._oAuthDfd.oAuthWin_&&this._oAuthDfd.oAuthWin_.focus(),this._soReqs.push(s)):this._xoReqs.push(s):this._doSignIn(s),s.promise}_doSignIn(e){this._busy=e,this._rejectOnPersistedPageShow=!1;const t=t=>{const r=e.options_?.resource,s=e.resUrl_,i=e.refresh_;let n=!1;this.credentials.includes(t)||(i&&this.credentials.includes(i)?(i.userId=t.userId,i.token=t.token,i.expires=t.expires,i.validity=t.validity,i.ssl=t.ssl,i.creationTime=t.creationTime,n=!0,t=i):this.credentials.push(t)),t.resources||(t.resources=[]),t.resources.includes(r||s)||t.resources.push(r||s),t.scope=this._isServerRsrc(s)?"server":"portal",t.emitTokenChange();const o=this._soReqs,a={};this._soReqs=[],o.forEach(e=>{if(!this._isIdenticalService(s,e.resUrl_)){const r=this._getSuffix(e.resUrl_);a[r]||(a[r]=!0,t.resources.push(e.resUrl_))}}),e.resolve(t),o.forEach(e=>{this._hasSameServerInstance(this._getServerInstanceRoot(s),e.resUrl_)?e.resolve(t):this._soReqs.push(e)}),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,n||this.emit("credential-create",{credential:t}),this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},s=t=>{e.reject(t),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},n=(o,h,l,d)=>{const u=e.sinfo_,p=!e.options_||!1!==e.options_.prompt,_=u.hasPortal&&this._findOAuthInfo(e.resUrl_);let f,g;if(o)t(new w({userId:o,server:u.server??void 0,token:l??void 0,expires:null!=d?Number(d):null,ssl:!!h}));else if(window!==window.parent&&this._appUrlObj.query?.["arcgis-auth-origin"]&&this._appUrlObj.query?.["arcgis-auth-portal"]&&this._hasSameServerInstance(this._getServerInstanceRoot(this._appUrlObj.query["arcgis-auth-portal"]),e.resUrl_)){window.parent.postMessage({type:"arcgis:auth:requestCredential"},this._appUrlObj.query["arcgis-auth-origin"]);const n=i(window,"message",e=>{e.source===window.parent&&e.data&&("arcgis:auth:credential"===e.data.type?(n.remove(),e.data.credential.expires<Date.now()?s(new r("identity-manager:credential-request-failed","Parent application's token has expired.")):t(new w(e.data.credential))):"arcgis:auth:error"===e.data.type&&(n.remove(),"tokenExpiredError"===e.data.error.name?s(new r("identity-manager:credential-request-failed","Parent application's token has expired.")):s(r.fromJSON(e.data.error))))});a(e.options_?.signal,()=>{n.remove()})}else if(_){let i=_._oAuthCred;if(!i){const e=new k(_,C),t=new k(_,D);e.isValid()&&t.isValid()?e.expires>t.expires?(i=e,t.destroy()):(i=t,e.destroy()):i=e.isValid()?e:t,_._oAuthCred=i}if(i.isValid()){f=new w({userId:i.userId??void 0,server:u.server??void 0,token:i.token??void 0,expires:i.expires,ssl:i.ssl??void 0,_oAuthCred:i});const r=_.appId!==i.appId&&this._doPortalSignIn(e.resUrl_);r||i.refreshToken?(e._pendingDfd=i.refreshToken?this._getOAuthToken(u.server,i.refreshToken,i.appId).then(e=>(f.expires=Date.now()+1e3*e.expires_in,f.token=e.access_token,f)):Promise.resolve(f),e._pendingDfd.then(e=>r?this._exchangeToken(e.server,_.appId,e.token).then(t=>(e.token=t,e)).catch(()=>e):e).then(e=>{t(e)}).catch(e=>{const t=e.details?.httpStatus;t>0&&404!==t?(i.destroy(),n()):s(e)})):t(f)}else if(this._oAuthLocationParams&&this._hasSameServerInstance(_.portalUrl,this._oAuthLocationParams.state.portalUrl)&&(this._oAuthLocationParams.access_token||this._oAuthLocationParams.code&&this._oAuthLocationParams.state.uid===i.stateUID&&i.codeVerifier)){const r=this._oAuthLocationParams;this._oAuthLocationParams=null,e._pendingDfd=this._processOAuthResponseParams(r,_,u).then(e=>{t(e)}).catch(s)}else{const i=()=>{p?e._pendingDfd=this.oAuthSignIn(e.resUrl_,u,_,e.options_).then(t,s):(g=new r("identity-manager:not-authenticated","User is not signed in."),s(g))};this._doPortalSignIn(e.resUrl_)?e._pendingDfd=this._getPlatformSelf(u.server,_.appId).then(e=>{c(e.portalUrl,this._appOrigin,!0)?(f=new w({userId:e.username,server:u.server??void 0,expires:Date.now()+1e3*e.expires_in,token:e.token}),t(f)):i()}).catch(i):i()}}else if(p){if(this._checkProtocol(e.resUrl_,u,s,e.admin_)){let r=e.options_;e.admin_&&(r=r||{},r.isAdmin=!0),e._pendingDfd=this.signIn(e.resUrl_,u,r).then(t,s)}}else g=new r("identity-manager:not-authenticated","User is not signed in."),s(g)},h=()=>{const r=e.sinfo_,i=r.owningSystemUrl,n=e.options_;let o,a,h,l;if(n&&(o=n.token,a=n.error,h=n.prompt),l=this._findCredential(i,{token:o,resource:e.resUrl_}),!l)for(const e of this.credentials)if(this._isIdProvider(i,e.server)){l=e;break}if(l){const i=this.findCredential(e.resUrl_,l.userId);if(i)t(i);else if(R(r,this._legacyFed)){const e=l.toJSON();e.server=r.server,e.resources=null,t(new w(e))}else{(e._pendingDfd=this.generateToken(this.findServerInfo(l.server),null,{serverUrl:e.resUrl_,token:l.token,signal:e.options_.signal,ssl:l.ssl})).then(s=>{t(new w({userId:l?.userId,server:r.server??void 0,token:s.token,expires:null!=s.expires?Number(s.expires):null,ssl:!!s.ssl,isAdmin:e.admin_,validity:s.validity}))},s)}}else{this._busy=null,o&&(e.options_.token=null);(e._pendingDfd=this.getCredential(i.replace(/\/?$/,"/sharing"),{resource:e.resUrl_,owningTenant:r.owningTenant,signal:e.options_.signal,token:o,error:a,prompt:h})).then(()=>{this._enqueue(e.resUrl_,e.sinfo_,e.options_,e,e.admin_)},t=>{e.resUrl_=e.sinfo_=e.refresh_=null,e.reject(t)})}};this._errbackFunc=s;const l=e.sinfo_.owningSystemUrl,d=this._isServerRsrc(e.resUrl_),u=e.sinfo_._restInfoPms;u?u.promise.then(t=>{const r=e.sinfo_;if(r._restInfoPms){r.adminTokenServiceUrl=r._restInfoPms.adminUrl,r._restInfoPms=null,r.tokenServiceUrl=(o("authInfo.tokenServicesUrl",t)||o("authInfo.tokenServiceUrl",t)||o("tokenServiceUrl",t))??null,r.shortLivedTokenValidity=o("authInfo.shortLivedTokenValidity",t)??null,r.currentVersion=t.currentVersion,r.owningTenant=t.owningTenant;const e=r.owningSystemUrl=t.owningSystemUrl;e&&this._portals.push(e)}d&&r.owningSystemUrl?h():n()},()=>{e.sinfo_._restInfoPms=null;const t=new r("identity-manager:server-identification-failed","Unknown resource - could not find token service endpoint.");s(t)}):d&&l?h():e.sinfo_._selfReq?e.sinfo_._selfReq.selfDfd.then(t=>{const r={};let s,i,n,o;return t&&(s=t.user?.username,r.username=s,r.allSSL=t.allSSL,i=t.supportsOAuth,o=parseFloat(t.currentVersion),"multitenant"===t.portalMode&&(n=t.customBaseUrl),e.sinfo_.currentVersion=o),e.sinfo_.webTierAuth=!!s,s&&this.normalizeWebTierAuth?this.generateToken(e.sinfo_,null,{ssl:r.allSSL}).catch(()=>null).then(e=>(r.portalToken=e?.token,r.tokenExpiration=e?.expires,r)):!s&&i&&o>=4.4&&!this._findOAuthInfo(e.resUrl_)?this._generateOAuthInfo({portalUrl:e.sinfo_.server,customBaseUrl:n,owningTenant:e.sinfo_._selfReq.owningTenant}).catch(()=>null).then(()=>r):r}).catch(()=>null).then(t=>{e.sinfo_._selfReq=null,t?n(t.username,t.allSSL,t.portalToken,t.tokenExpiration):n()}):n()}_generateOAuthInfo(e){let r,s=null,i=e.portalUrl;const n=e.customBaseUrl,o=e.owningTenant,a=!this._defaultOAuthInfo&&this._createDefaultOAuthInfo&&!this._hasTestedIfAppIsOnPortal;if(a){s=this._appUrlObj.path;const e=s.search(/\/(apps|home)\//);s=e>-1?s.slice(0,e):null}return a&&s?(this._hasTestedIfAppIsOnPortal=!0,r=t(s+"/sharing/rest",{query:{f:"json"}}).then(()=>{this._defaultOAuthInfo=new A({appId:"arcgisonline",popupCallbackUrl:s+"/home/oauth-callback.html"})})):r=Promise.resolve(),r.then(()=>{if(this._defaultOAuthInfo)return i=i.replace(/^http:/i,"https:"),t(i+"/sharing/rest/oauth2/validateRedirectUri",{query:{accountId:o,client_id:this._defaultOAuthInfo.appId,redirect_uri:m(this._defaultOAuthInfo.popupCallbackUrl),f:"json"}}).then(e=>{if(e.data.valid){const t=this._defaultOAuthInfo.clone();e.data.urlKey&&n?t.portalUrl="https://"+e.data.urlKey.toLowerCase()+"."+n:t.portalUrl=i,t.popup=window!==window.top||!(c(i,this._appOrigin)||this._gwDomains.some(e=>e.regex.test(i)&&e.regex.test(this._appOrigin))),this.oAuthInfos.push(t)}})})}_doOAuthSignIn(e,t,s,n){const o=s._oAuthCred,a={portalUrl:s.portalUrl};!s.popup&&s.preserveUrlHash&&window.location.hash&&(a.hash=window.location.hash),o.stateUID&&(a.uid=o.stateUID);const h={client_id:s.appId,response_type:o.codeVerifier?"code":"token",state:JSON.stringify(a),expiration:s.expiration,locale:s.locale,redirect_uri:this._getRedirectURI(s,!!o.codeVerifier)};s.forceLogin&&(h.force_login=!0),s.forceUserId&&s.userId&&(h.prepopulatedusername=s.userId),!s.popup&&this._doPortalSignIn(e)&&(h.redirectToUserOrgUrl=!0),o.codeVerifier&&(h.code_challenge=n||o.codeVerifier,h.code_challenge_method=n?"S256":"plain");const l=this._getAuthorizeUrl(s.portalUrl),c=l+"?"+_(h);if(s.popup){const e=window.open(c,"esriJSAPIOAuth",s.popupWindowFeatures);if(e)e.focus(),this._oAuthDfd.oAuthWin_=e,this._oAuthIntervalId=setInterval(()=>{if(e.closed){clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle.remove();const e=this._oAuthDfd;if(e){const t=new r("identity-manager:user-aborted","ABORTED");e.reject(t)}}},500),this._oAuthOnPopupHandle=i(window,["arcgis:auth:hash","arcgis:auth:location:search"],e=>{"arcgis:auth:hash"===e.type?this.setOAuthResponseHash(e.detail):this._setOAuthResponseQueryString(e.detail)});else{const e=new r("identity-manager:popup-blocked","ABORTED");this._oAuthDfd.reject(e)}}else this._rejectOnPersistedPageShow=!0,this._oAuthRedirectFunc?this._oAuthRedirectFunc({authorizeParams:h,authorizeUrl:l,resourceUrl:e,serverInfo:t,oAuthInfo:s}):window.location.href=c}_getAuthorizeUrl(e){let t=e.replace(/^http:/i,"https:")+"/sharing/oauth2/authorize";const r=x(t);if(r?.portalHostname){const{customBaseUrl:e,portalHostname:s,urlKey:i}=r;let n=null;if("www.arcgis.com"===s||"devext.arcgis.com"===s&&(n="logindevext.arcgis.com"),n){t=v(t,i?`${i}.${e}`:s,i?`${i}.${n}`:n)}}return t}_getRedirectURI(e,t){const r=window.location.href.replace(/#.*$/,"");if(e.popup)return m(e.popupCallbackUrl);if(t){const e=l(r);return e.query&&["code","error","error_description","message_code","persist","state"].forEach(t=>{delete e.query[t]}),S(e.path,e.query)}return r}}b.prototype.declaredClass="esri.identity.IdentityManagerBase";export{b as IdentityManagerBase};
|
|
2
|
+
import e from"../config.js";import t from"../request.js";import r from"../core/Error.js";import{Evented as s}from"../core/Evented.js";import{on as i}from"../core/events.js";import{fixJson as n}from"../core/lang.js";import{getDeepValue as o}from"../core/object.js";import{onAbort as a,isAborted as h}from"../core/promiseUtils.js";import{urlToObject as l,hasSameOrigin as c,Url as d,queryToObject as u,base64UrlEncode as p,objectToQuery as _,normalize as f,getProxyRule as g,makeAbsolute as m,changeDomain as v,addQueryParameters as S}from"../core/urlUtils.js";import w from"./Credential.js";import I from"./IdentityModal.js";import k from"./OAuthCredential.js";import A from"./OAuthInfo.js";import U from"./ServerInfo.js";import{isSecureProxyService as y,normalizeArcGISOnlineOrgDomain as P,parseKnownArcGISOnlineDomain as x}from"../portal/support/urlUtils.js";const O={},T=e=>{const t=new d(e.owningSystemUrl).host,r=new d(e.server).host,s=/.+\.arcgis\.com$/i;return s.test(t)&&s.test(r)},R=(e,t)=>!!(T(e)&&t&&t.some(t=>t.test(e.server)));let C=null,D=null;try{C=window.localStorage,D=window.sessionStorage}catch{}class b extends s{constructor(){super(),this._portalConfig=globalThis.esriGeowConfig,this.serverInfos=[],this.oAuthInfos=[],this.credentials=[],this._soReqs=[],this._xoReqs=[],this._portals=[],this._defaultOAuthInfo=null,this._defaultTokenValidity=60,this.dialog=null,this.tokenValidity=null,this.normalizeWebTierAuth=!1,this._appOrigin="null"!==window.origin?window.origin:window.location.origin,this._appUrlObj=l(window.location.href),this._busy=null,this._rejectOnPersistedPageShow=!1,this._oAuthLocationParams=null,this._gwTokenUrl="/sharing/rest/generateToken",this._agsRest="/rest/services",this._agsPortal=/\/sharing(\/|$)/i,this._agsAdmin=/(https?:\/\/[^/]+\/[^/]+)\/admin\/?(\/.*)?$/i,this._adminSvcs=/\/rest\/admin\/services(\/|$)/i,this._gwDomains=[{regex:/^https?:\/\/www\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:dev|[a-z\d-]+\.mapsdev)\.arcgis\.com/i,customBaseUrl:"mapsdev.arcgis.com",tokenServiceUrl:"https://dev.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:devext|[a-z\d-]+\.mapsdevext)\.arcgis\.com/i,customBaseUrl:"mapsdevext.arcgis.com",tokenServiceUrl:"https://devext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:qaext|[a-z\d-]+\.mapsqa)\.arcgis\.com/i,customBaseUrl:"mapsqa.arcgis.com",tokenServiceUrl:"https://qaext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/[a-z\d-]+\.maps\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"}],this._legacyFed=[],this._regexSDirUrl=/http.+\/rest\/services\/?/gi,this._regexServerType=/(\/(FeatureServer|GPServer|GeoDataServer|GeocodeServer|GeoenrichmentServer|GeometryServer|GlobeServer|ImageServer|KnowledgeGraphServer|MapServer|MissionServer|MobileServer|NAServer|NetworkDiagramServer|OGCFeatureServer|ParcelFabricServer|RelationalCatalogServer|SceneServer|StreamServer|UtilityNetworkServer|ValidationServer|VectorTileServer|VersionManagementServer|VideoServer|3DTilesServer)).*/gi,this._gwUser=/http.+\/users\/([^/]+).*/i,this._gwItem=/http.+\/items\/([^/]+).*/i,this._gwGroup=/http.+\/groups\/([^/]+).*/i,this._rePortalTokenSvc=/\/sharing(\/rest)?\/generatetoken/i,this._createDefaultOAuthInfo=!0,this._hasTestedIfAppIsOnPortal=!1,this._getPlatformSelfError=null,this._getOAuthLocationParams(),window.addEventListener("pageshow",e=>{this._pageShowHandler(e)})}registerServers(e){const t=this.serverInfos;t?(e=e.filter(e=>!this.findServerInfo(e.server)),this.serverInfos=t.concat(e)):this.serverInfos=e,e.forEach(e=>{e.owningSystemUrl&&this._portals.push(e.owningSystemUrl),e.hasPortal&&this._portals.push(e.server)})}registerOAuthInfos(e){const t=this.oAuthInfos;if(t){for(const r of e){const e=this.findOAuthInfo(r.portalUrl);e&&t.splice(t.indexOf(e),1)}this.oAuthInfos=t.concat(e)}else this.oAuthInfos=e}registerToken(e){e={...e};const t=this._sanitizeUrl(e.server),r=this._isServerRsrc(t);let s,i=this.findServerInfo(t),n=!0;i||(i=new U,i.server=this._getServerInstanceRoot(t),r?i.hasServer=!0:(i.tokenServiceUrl=this._getTokenSvcUrl(t),i.hasPortal=!0),this.registerServers([i])),s=this._findCredential(t),s?(delete e.server,Object.assign(s,e),n=!1):(s=new w({userId:e.userId,server:i.server??void 0,token:e.token,expires:e.expires,ssl:e.ssl,scope:r?"server":"portal"}),s.resources=[t],this.credentials.push(s)),s.emitTokenChange(!1),n||s.refreshServerTokens()}toJSON(){return n({serverInfos:this.serverInfos.map(e=>e.toJSON()),oAuthInfos:this.oAuthInfos.map(e=>e.toJSON()),credentials:this.credentials.map(e=>e.toJSON())})}initialize(e){if(!e)return;"string"==typeof e&&(e=JSON.parse(e));const t=e.serverInfos,r=e.oAuthInfos,s=e.credentials;if(t){const e=[];t.forEach(t=>{t.server&&t.tokenServiceUrl&&e.push(t.declaredClass?t:new U(t))}),e.length&&this.registerServers(e)}if(r){const e=[];r.forEach(t=>{t.appId&&e.push(t.declaredClass?t:new A(t))}),e.length&&this.registerOAuthInfos(e)}s&&s.forEach(e=>{e.server&&e.token&&e.expires&&e.expires>Date.now()&&((e=e.declaredClass?e:new w(e)).emitTokenChange(),this.credentials.push(e))})}findServerInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.serverInfos)if(this._hasSameServerInstance(r.server,e)){t=r;break}return t}findOAuthInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.oAuthInfos)if(this._hasSameServerInstance(r.portalUrl,e)){t=r;break}return t}findCredential(e,t){if(!e)return;let r;e=this._sanitizeUrl(e);const s=this._isServerRsrc(e)?"server":"portal";if(t){for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&t===i.userId&&i.scope===s){r=i;break}}else for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&-1!==this._getIdenticalSvcIdx(e,i)&&i.scope===s){r=i;break}return r}getCredential(e,t){let s,i=!1,n=!0;t&&(i=!(!t.token&&!t.credential),s=t.error,n=!1!==t.prompt),t={...t},e=this._sanitizeUrl(e);const o=new AbortController,l=Promise.withResolvers();if(t.signal&&a(t.signal,()=>{o.abort()}),a(o,()=>{l.reject(new r("identity-manager:user-aborted","ABORTED"))}),h(o))return l.promise;t.signal=o.signal;const d=this._isAdminResource(e),u=i?this.findCredential(e):null;let p;if(u&&498===s?.details?.httpStatus)u.destroy();else if(u)return p=new r("identity-manager:not-authorized","You are currently signed in as: '"+u.userId+"'. You do not have access to this resource: "+e,{error:s}),l.reject(p),l.promise;const _=this._findCredential(e,t);if(_)return l.resolve(_),l.promise;let f=this.findServerInfo(e);if(f)!f.hasPortal&&f.server&&f.owningSystemUrl&&this._hasSameServerInstance(f.server,f.owningSystemUrl)&&(f.hasPortal=!0),!f.hasServer&&this._isServerRsrc(e)&&(f._restInfoPms=this._getTokenSvcUrl(e),f.hasServer=!0);else{const t=this._getTokenSvcUrl(e);if(!t)return p=new r("identity-manager:unknown-resource","Unknown resource - could not find token service endpoint."),l.reject(p),l.promise;f=new U,f.server=this._getServerInstanceRoot(e),"string"==typeof t?(f.tokenServiceUrl=t,f.hasPortal=!0):(f._restInfoPms=t,f.hasServer=!0),this.registerServers([f])}return f.hasPortal&&void 0===f._selfReq&&(n||c(f.tokenServiceUrl,this._appOrigin)||this._gwDomains.some(e=>e.tokenServiceUrl===f.tokenServiceUrl))&&(f._selfReq={owningTenant:t?.owningTenant,selfDfd:this._getPortalSelf(f.tokenServiceUrl.replace(this._rePortalTokenSvc,"/sharing/rest/portals/self"),e)}),this._enqueue(e,f,t,l,d)}getResourceName(e){return this._isRESTService(e)?e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"")||"":this._gwUser.test(e)&&e.replace(this._gwUser,"$1")||this._gwItem.test(e)&&e.replace(this._gwItem,"$1")||this._gwGroup.test(e)&&e.replace(this._gwGroup,"$1")||""}generateToken(e,s,i){const n=this._rePortalTokenSvc.test(e.tokenServiceUrl),o=new d(this._appOrigin),a=e.shortLivedTokenValidity;let h,l,u,p,_,f,g,m;s&&(m=this.tokenValidity||a||this._defaultTokenValidity,m>a&&a>0&&(m=a)),i&&(h=i.isAdmin,l=i.serverUrl,u=i.token,f=i.signal,g=i.ssl,e.customParameters=i.customParameters),h?p=e.adminTokenServiceUrl:(p=e.tokenServiceUrl,_=new d(p.toLowerCase()),e.webTierAuth&&i?.serverUrl&&!g&&"http"===o.scheme&&(c(o.uri,p,!0)||"https"===_.scheme&&o.host===_.host&&"7080"===o.port&&"7443"===_.port)&&(p=p.replace(/^https:/i,"http:").replace(/:7443/i,":7080")));const v={query:{request:"getToken",username:s?.username,password:s?.password,serverUrl:l,token:u,expiration:m,referer:h||n?this._appOrigin:null,client:h?"referer":null,f:"json",...e.customParameters},method:"post",authMode:"anonymous",useProxy:this._useProxy(e,i),signal:f};n||(v.withCredentials=!1);return t(p,v).then(t=>{const i=t.data;if(!i?.token)return new r("identity-manager:authentication-failed","Unable to generate token");const n=e.server;return O[n]||(O[n]={}),s&&(O[n][s.username]=s.password),i.validity=m,i})}isBusy(){return!!this._busy}async checkSignInStatus(e){return(await this.checkAppAccess(e,"")).credential}checkAppAccess(e,s,i){let n=!1;return this.getCredential(e,{prompt:!1}).then(o=>{let a;const h={f:"json"};if("portal"===o.scope)if(s&&(this._doPortalSignIn(e)||i?.force))a=o.server+"/sharing/rest/oauth2/validateAppAccess",h.client_id=s;else{if(!o.token)return{credential:o};a=o.server+"/sharing/rest"}else{if(!o.token)return{credential:o};a=o.server+"/rest/services"}return o.token&&(h.token=o.token),t(a,{query:h,authMode:"anonymous"}).then(e=>{if(!1===e.data.valid)throw new r("identity-manager:not-authorized",`You are currently signed in as: '${o.userId}'.`,e.data);return n=!!e.data.viewOnlyUserTypeApp,{credential:o}}).catch(e=>{if("identity-manager:not-authorized"===e.name)throw e;const t=e.details?.httpStatus;if(498===t)throw o.destroy(),new r("identity-manager:not-authenticated","User is not signed in.");if(400===t)throw new r("identity-manager:invalid-request","Bad request");return{credential:o}})}).then(e=>({credential:e.credential,viewOnly:n}))}setOAuthResponseHash(e){e&&(e.startsWith("#")&&(e=e.slice(1)),this._processOAuthPopupParams(u(e)))}setOAuthRedirectionHandler(e){this._oAuthRedirectFunc=e}setProtocolErrorHandler(e){this._protocolFunc=e}signIn(e,t,s={}){const i=Promise.withResolvers(),n=()=>{l?.remove(),c?.remove(),this.dialog?.destroy(),this.dialog=l=c=null},o=()=>{n(),this._oAuthDfd=null,i.reject(new r("identity-manager:user-aborted","ABORTED"))};s.signal&&a(s.signal,()=>{o()});const h=new I({open:!0,resource:this.getResourceName(e),server:t.server});this.dialog=h,this.emit("dialog-create");let l=h.on("cancel",o),c=h.on("submit",e=>{this.generateToken(t,e,{isAdmin:s.isAdmin,signal:s.signal}).then(r=>{n();const o=new w({userId:e.username,server:t.server??void 0,token:r.token,expires:null!=r.expires?Number(r.expires):null,ssl:!!r.ssl,isAdmin:s.isAdmin,validity:r.validity});i.resolve(o)}).catch(e=>{h.error=e,h.signingIn=!1})});return i.promise}oAuthSignIn(e,t,s,i){this._oAuthDfd=Promise.withResolvers();const n=this._oAuthDfd;let o;i?.signal&&a(i.signal,()=>{const e=this._oAuthDfd&&this._oAuthDfd.oAuthWin_;e&&!e.closed?e.close():this.dialog&&d()}),n.resUrl_=e,n.sinfo_=t,n.oinfo_=s;const h=s._oAuthCred;if(h.storage&&("authorization-code"===s.flowType||"auto"===s.flowType&&t.currentVersion>=8.4)){let e=crypto.getRandomValues(new Uint8Array(32));o=p(e),h.codeVerifier=o,e=crypto.getRandomValues(new Uint8Array(32)),h.stateUID=p(e),h.save()||(h.codeVerifier=o=null)}else h.codeVerifier=null;let l,c;this._getCodeChallenge(o).then(r=>{const n=!i||!1!==i.oAuthPopupConfirmation;if(!s.popup||!n)return void this._doOAuthSignIn(e,t,s,r);const o=new I({oAuthPrompt:!0,server:t.server,open:!0});this.dialog=o,this.emit("dialog-create"),l=o.on("cancel",d),c=o.on("submit",()=>{u(),this._doOAuthSignIn(e,t,s,r)})});const d=()=>{u(),this._oAuthDfd=null,n.reject(new r("identity-manager:user-aborted","ABORTED"))},u=()=>{l?.remove(),c?.remove(),this.dialog?.destroy(),this.dialog=null};return n.promise}async refreshToken(e){const t=this.findServerInfo(e.server),r=t?.owningSystemUrl,s=!!r&&"server"===e.scope,i=s&&R(t,this._legacyFed),n=t.webTierAuth,o=n&&this.normalizeWebTierAuth,a=O[e.server],h=a?.[e.userId];let l,c=e.resources&&e.resources[0],d=s?this.findServerInfo(r):null,u={username:e.userId,password:h};if(n&&!o)return;s&&!d&&this.serverInfos.some(e=>(this._isIdProvider(r,e.server)&&(d=e),!!d));const p=d?this.findCredential(d.server,e.userId):null;if(!s||p){if(!i){if(s)l={serverUrl:c,token:p?.token,ssl:p?.ssl};else if(o)u=null,l={ssl:e.ssl};else{if(!h){let r;return c&&(c=this._sanitizeUrl(c),e._enqueued=1,r=this._enqueue(c,t,null,null,e.isAdmin,e),r.then(()=>{e._enqueued=0,e.refreshServerTokens()}).catch(()=>{e._enqueued=0})),r}e.isAdmin&&(l={isAdmin:!0})}return this.generateToken(s?d:t,s?null:u,l).then(t=>{e.token=t.token,e.expires=null!=t.expires?Number(t.expires):null,e.creationTime=Date.now(),e.validity=t.validity,e.emitTokenChange(),e.refreshServerTokens()}).catch(()=>{})}p?.refreshToken()}}refreshServerTokens(e){"portal"===e.scope&&this.credentials.forEach(t=>{const r=this.findServerInfo(t.server),s=r?.owningSystemUrl;t!==e&&t.userId===e.userId&&s&&"server"===t.scope&&(this._hasSameServerInstance(e.server,s)||this._isIdProvider(s,e.server))&&(R(r,this._legacyFed)?(t.token=e.token,t.expires=e.expires,t.creationTime=e.creationTime,t.validity=e.validity,t.emitTokenChange()):t.refreshToken())})}destroyCredentials(){if(this.credentials){this.credentials.slice().forEach(e=>{e.destroy()})}this.emit("credentials-destroy")}enablePostMessageAuth(e="https://www.arcgis.com/sharing/rest"){this._postMessageAuthHandle&&this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=i(window,"message",t=>{if((t.origin===this._appOrigin||t.origin.endsWith(".arcgis.com"))&&"arcgis:auth:requestCredential"===t.data?.type){const r=t.source;this.getCredential(e).then(e=>{r.postMessage({type:"arcgis:auth:credential",credential:{expires:e.expires,server:e.server,ssl:e.ssl,token:e.token,userId:e.userId}},t.origin)}).catch(e=>{r.postMessage({type:"arcgis:auth:error",error:{name:e.name,message:e.message}},t.origin)})}})}disablePostMessageAuth(){this._postMessageAuthHandle&&(this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=null)}_getOAuthLocationParams(){let e=window.location.hash;if(e){e.startsWith("#")&&(e=e.slice(1));const t=u(e);let r=!1;if(t.access_token&&t.expires_in&&t.state&&t.hasOwnProperty("username"))try{t.state=JSON.parse(t.state),t.state.portalUrl&&(this._oAuthLocationParams=t,r=!0)}catch{}else if(t.error&&t.error_description&&(console.log("IdentityManager OAuth Error: ",t.error," - ",t.error_description),"access_denied"===t.error&&(r=!0,t.state)))try{t.state=JSON.parse(t.state)}catch{}r&&(window.location.hash=t.state?.hash||"")}let t=window.location.search;if(t){t.startsWith("?")&&(t=t.slice(1));const e=u(t);let r=!1;if(e.code&&e.state)try{e.state=JSON.parse(e.state),e.state.portalUrl&&e.state.uid&&(this._oAuthLocationParams=e,r=!0)}catch{}else if(e.error&&e.error_description&&(console.log("IdentityManager OAuth Error: ",e.error," - ",e.error_description),"access_denied"===e.error&&(r=!0,e.state)))try{e.state=JSON.parse(e.state)}catch{}if(r){const t={...e};["code","error","error_description","message_code","persist","state"].forEach(e=>{delete t[e]});const r=_(t),s=window.location.pathname+(r?`?${r}`:"")+(e.state?.hash||"");window.history.replaceState(window.history.state,"",s)}}}_getOAuthToken(e,r,s,i,n){return e=e.replace(/^http:/i,"https:"),t(`${e}/sharing/rest/oauth2/token`,{authMode:"anonymous",method:"post",query:i&&n?{grant_type:"authorization_code",code:r,redirect_uri:i,client_id:s,code_verifier:n}:{grant_type:"refresh_token",refresh_token:r,client_id:s}}).then(e=>e.data)}async _getCodeChallenge(e){if(e&&globalThis.isSecureContext){const t=(new TextEncoder).encode(e),r=await crypto.subtle.digest("SHA-256",t);return p(new Uint8Array(r))}return null}_pageShowHandler(e){if(e.persisted&&this.isBusy()&&this._rejectOnPersistedPageShow){const e=new r("identity-manager:user-aborted","ABORTED");this._errbackFunc(e)}}_findCredential(e,t){let r,s,i,n,o=-1;const a=t?.token,h=t?.resource,l=this._isServerRsrc(e)?"server":"portal",c=this.credentials.filter(t=>this._hasSameServerInstance(t.server,e)&&t.scope===l);if(e=h||e,c.length)if(1===c.length){if(r=c[0],i=this.findServerInfo(r.server),s=i?.owningSystemUrl,n=s?this.findCredential(s,r.userId):void 0,o=this._getIdenticalSvcIdx(e,r),!a)return-1===o&&r.resources.push(e),this._addResource(e,n),r;-1!==o&&(r.resources.splice(o,1),this._removeResource(e,n))}else{let t,r;if(c.some(a=>(r=this._getIdenticalSvcIdx(e,a),-1!==r&&(t=a,i=this.findServerInfo(t.server),s=i?.owningSystemUrl,n=s?this.findCredential(s,t.userId):void 0,o=r,!0))),a)t&&(t.resources.splice(o,1),this._removeResource(e,n));else if(t)return this._addResource(e,n),t}}_findOAuthInfo(e){let t=this.findOAuthInfo(e);if(!t)for(const r of this.oAuthInfos)if(this._isIdProvider(r.portalUrl,e)){t=r;break}return t}_addResource(e,t){t&&-1===this._getIdenticalSvcIdx(e,t)&&t.resources.push(e)}_removeResource(e,t){let r=-1;t&&(r=this._getIdenticalSvcIdx(e,t),r>-1&&t.resources.splice(r,1))}_useProxy(e,t){return t?.isAdmin&&!c(e.adminTokenServiceUrl,this._appOrigin)||!this._isPortalDomain(e.tokenServiceUrl)&&"10.1"===String(e.currentVersion)&&!c(e.tokenServiceUrl,this._appOrigin)}_getOrigin(e){const t=new d(e);return t.scheme+"://"+t.host+(null!=t.port?":"+t.port:"")}_getServerInstanceRoot(e){const t=e.toLowerCase();let r=t.indexOf(this._agsRest);return-1===r&&this._isAdminResource(e)&&(r=this._agsAdmin.test(e)?e.replace(this._agsAdmin,"$1").length:e.search(this._adminSvcs)),-1!==r||y(t)||(r=t.indexOf("/sharing")),-1===r&&t.endsWith("/")&&(r=t.length-1),r>-1?e.slice(0,r):e}_hasSameServerInstance(e,t){return e.endsWith("/")&&(e=e.slice(0,-1)),e=e.toLowerCase(),t=this._getServerInstanceRoot(t).toLowerCase(),e=P(e),t=P(t),(e=e.slice(Math.max(0,e.indexOf(":"))))===(t=t.slice(Math.max(0,t.indexOf(":"))))}_sanitizeUrl(t){const r=(e.request.proxyUrl||"").toLowerCase(),s=r?t.toLowerCase().indexOf(r+"?"):-1;return-1!==s&&(t=t.slice(s+r.length+1)),t=f(t),l(t).path}_isRESTService(e){return e.includes(this._agsRest)}_isAdminResource(e){return this._agsAdmin.test(e)||this._adminSvcs.test(e)}_isServerRsrc(e){return this._isRESTService(e)||this._isAdminResource(e)}_isIdenticalService(e,t){let r=!1;if(this._isRESTService(e)&&this._isRESTService(t)){const s=this._getSuffix(e).toLowerCase(),i=this._getSuffix(t).toLowerCase();if(r=s===i,!r){const e=/(.*)\/(MapServer|FeatureServer|UtilityNetworkServer).*/gi;r=s.replaceAll(e,"$1")===i.replaceAll(e,"$1")}}else this._isAdminResource(e)&&this._isAdminResource(t)?r=!0:this._isServerRsrc(e)||this._isServerRsrc(t)||!this._isPortalDomain(e)||(r=!0);return r}_isPortalDomain(t){const r=new d(t.toLowerCase()),s=this._portalConfig;let i=this._gwDomains.some(e=>e.regex.test(r.uri));return!i&&s&&(i=this._hasSameServerInstance(this._getServerInstanceRoot(s.restBaseUrl),r.uri)),i||e.portalUrl&&(i=c(r,e.portalUrl,!0)),i||(i=this._portals.some(e=>this._hasSameServerInstance(e,r.uri))),i=i||this._agsPortal.test(r.path),i}_isIdProvider(e,t){let r=-1,s=-1;this._gwDomains.forEach((i,n)=>{-1===r&&i.regex.test(e)&&(r=n),-1===s&&i.regex.test(t)&&(s=n)});let i=!1;if(r>-1&&s>-1&&(0===r||4===r?0!==s&&4!==s||(i=!0):1===r?1!==s&&2!==s||(i=!0):2===r?2===s&&(i=!0):3===r&&3===s&&(i=!0)),!i){const r=this.findServerInfo(t),s=r?.owningSystemUrl;s&&T(r)&&this._isPortalDomain(s)&&this._isIdProvider(e,s)&&(i=!0)}return i}_getIdenticalSvcIdx(e,t){let r=-1;for(let s=0;s<t.resources.length;s++){const i=t.resources[s];if(this._isIdenticalService(e,i)){r=s;break}}return r}_getSuffix(e){return e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"$1")}_getTokenSvcUrl(e){let r,s,i;if(this._isRESTService(e)||this._isAdminResource(e)){const i=this._getServerInstanceRoot(e);return r=i+"/admin/generateToken",s=t(e=i+"/rest/info",{query:{f:"json"}}).then(e=>e.data),{adminUrl:r,promise:s}}if(this._isPortalDomain(e)){let t="";if(this._gwDomains.some(r=>(r.regex.test(e)&&(t=r.tokenServiceUrl),!!t)),t||this._portals.some(r=>(this._hasSameServerInstance(r,e)&&(t=r+this._gwTokenUrl),!!t)),t||(i=e.toLowerCase().indexOf("/sharing"),-1!==i&&(t=e.slice(0,i)+this._gwTokenUrl)),t||(t=this._getOrigin(e)+this._gwTokenUrl),t){const r=new d(e).port;/^http:\/\//i.test(e)&&"7080"===r&&(t=t.replace(/:7080/i,":7443")),t=t.replace(/http:/i,"https:")}return t}}_processOAuthResponseParams(e,t,r){const s=t._oAuthCred;if(e.code){const i=s.codeVerifier;return s.codeVerifier=null,s.stateUID=null,s.save(),this._getOAuthToken(r.server,e.code,t.appId,this._getRedirectURI(t,!0),i).then(i=>{const n=new w({userId:i.username,server:r.server??void 0,token:i.access_token,expires:Date.now()+1e3*i.expires_in,ssl:i.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=n.userId,s.storage=i.persist?C:D,s.refreshToken=i.refresh_token,s.token=null,s.expires=i.refresh_token_expires_in?Date.now()+1e3*i.refresh_token_expires_in:null,s.userId=n.userId,s.ssl=n.ssl,s.save(),n})}const i=new w({userId:e.username,server:r.server??void 0,token:e.access_token,expires:Date.now()+1e3*Number(e.expires_in),ssl:"true"===e.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=i.userId,s.storage=e.persist?C:D,s.refreshToken=null,s.token=i.token,s.expires=i.expires,s.userId=i.userId,s.ssl=i.ssl,s.save(),Promise.resolve(i)}_processOAuthPopupParams(e){const t=this._oAuthDfd;if(this._oAuthDfd=null,t)if(clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle?.remove(),e.error){const s="access_denied"===e.error,i=new r(s?"identity-manager:user-aborted":"identity-manager:authentication-failed",s?"ABORTED":"OAuth: "+e.error+" - "+e.error_description);t.reject(i)}else this._processOAuthResponseParams(e,t.oinfo_,t.sinfo_).then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)})}_setOAuthResponseQueryString(e){e&&(e.startsWith("?")&&(e=e.slice(1)),this._processOAuthPopupParams(u(e)))}async _exchangeToken(e,r,s){return(await t(`${e}/sharing/rest/oauth2/exchangeToken`,{authMode:"anonymous",method:"post",query:{f:"json",client_id:r,token:s}})).data.token}async _getPlatformSelf(e,r){if(this._getPlatformSelfError&&Date.now()-this._getPlatformSelfError[1]<1e3)throw this._getPlatformSelfError[0];e=e.replace(/^http:/i,"https:");try{const s=await t(`${e}/sharing/rest/oauth2/platformSelf`,{authMode:"anonymous",headers:{"X-Esri-Auth-Client-Id":r,"X-Esri-Auth-Redirect-Uri":window.location.href.replace(/#.*$/,"")},method:"post",query:{f:"json",expiration:30},withCredentials:!0});return this._getPlatformSelfError=null,s.data}catch(s){throw"OAUTH_0066"===s.details?.messageCode&&(this._getPlatformSelfError=[s,Date.now()]),s}}_getPortalSelf(e,r){let s;if(this._gwDomains.some(t=>(t.regex.test(e)&&(s=t.customBaseUrl),!!s)),s)return Promise.resolve({allSSL:!0,currentVersion:"8.4",customBaseUrl:s,portalMode:"multitenant",supportsOAuth:!0});this._appOrigin.startsWith("https:")?e=e.replace(/^http:/i,"https:").replace(/:7080/i,":7443"):/^http:/i.test(r)&&(e=e.replace(/^https:/i,"http:").replace(/:7443/i,":7080"));return t(e,{query:{f:"json"},authMode:"anonymous",withCredentials:!0}).then(e=>e.data)}_doPortalSignIn(e){const t=this._portalConfig,r=window.location.href,s=this.findServerInfo(e);return!(!t&&!this._isPortalDomain(r)||!(s?s.hasPortal||s.owningSystemUrl&&this._isPortalDomain(s.owningSystemUrl):this._isPortalDomain(e))||!(this._isIdProvider(r,e)||t&&(this._hasSameServerInstance(this._getServerInstanceRoot(t.restBaseUrl),e)||this._isIdProvider(t.restBaseUrl,e))||c(r,e,!0)))}_checkProtocol(e,t,s,i){let n=!0;const o=i?t.adminTokenServiceUrl:t.tokenServiceUrl;if(o.trim().toLowerCase().startsWith("https:")&&!this._appOrigin.startsWith("https:")&&g(o)&&(n=!!this._protocolFunc&&!!this._protocolFunc({resourceUrl:e,serverInfo:t}),!n)){s(new r("identity-manager:aborted","Aborted the Sign-In process to avoid sending password over insecure connection."))}return n}_enqueue(e,t,r,s,i,n){return s||(s=Promise.withResolvers()),s.resUrl_=e,s.sinfo_=t,s.options_=r,s.admin_=i,s.refresh_=n,this._busy?this._hasSameServerInstance(this._getServerInstanceRoot(e),this._busy.resUrl_)?(this._oAuthDfd&&this._oAuthDfd.oAuthWin_&&this._oAuthDfd.oAuthWin_.focus(),this._soReqs.push(s)):this._xoReqs.push(s):this._doSignIn(s),s.promise}_doSignIn(e){this._busy=e,this._rejectOnPersistedPageShow=!1;const t=t=>{const r=e.options_?.resource,s=e.resUrl_,i=e.refresh_;let n=!1;this.credentials.includes(t)||(i&&this.credentials.includes(i)?(i.userId=t.userId,i.token=t.token,i.expires=t.expires,i.validity=t.validity,i.ssl=t.ssl,i.creationTime=t.creationTime,n=!0,t=i):this.credentials.push(t)),t.resources||(t.resources=[]),t.resources.includes(r||s)||t.resources.push(r||s),t.scope=this._isServerRsrc(s)?"server":"portal",t.emitTokenChange();const o=this._soReqs,a={};this._soReqs=[],o.forEach(e=>{if(!this._isIdenticalService(s,e.resUrl_)){const r=this._getSuffix(e.resUrl_);a[r]||(a[r]=!0,t.resources.push(e.resUrl_))}}),e.resolve(t),o.forEach(e=>{this._hasSameServerInstance(this._getServerInstanceRoot(s),e.resUrl_)?e.resolve(t):this._soReqs.push(e)}),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,n||this.emit("credential-create",{credential:t}),this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},s=t=>{e.reject(t),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},n=(o,h,l,d)=>{const u=e.sinfo_,p=!e.options_||!1!==e.options_.prompt,_=u.hasPortal&&this._findOAuthInfo(e.resUrl_);let f,g;if(o)t(new w({userId:o,server:u.server??void 0,token:l??void 0,expires:null!=d?Number(d):null,ssl:!!h}));else if(window!==window.parent&&this._appUrlObj.query?.["arcgis-auth-origin"]&&this._appUrlObj.query?.["arcgis-auth-portal"]&&this._hasSameServerInstance(this._getServerInstanceRoot(this._appUrlObj.query["arcgis-auth-portal"]),e.resUrl_)){window.parent.postMessage({type:"arcgis:auth:requestCredential"},this._appUrlObj.query["arcgis-auth-origin"]);const n=i(window,"message",e=>{e.source===window.parent&&e.data&&("arcgis:auth:credential"===e.data.type?(n.remove(),e.data.credential.expires<Date.now()?s(new r("identity-manager:credential-request-failed","Parent application's token has expired.")):t(new w(e.data.credential))):"arcgis:auth:error"===e.data.type&&(n.remove(),"tokenExpiredError"===e.data.error.name?s(new r("identity-manager:credential-request-failed","Parent application's token has expired.")):s(r.fromJSON(e.data.error))))});a(e.options_?.signal,()=>{n.remove()})}else if(_){let i=_._oAuthCred;if(!i){const e=new k(_,C),t=new k(_,D);e.isValid()&&t.isValid()?e.expires>t.expires?(i=e,t.destroy()):(i=t,e.destroy()):i=e.isValid()?e:t,_._oAuthCred=i}if(i.isValid()){f=new w({userId:i.userId??void 0,server:u.server??void 0,token:i.token??void 0,expires:i.expires,ssl:i.ssl??void 0,_oAuthCred:i});const r=_.appId!==i.appId&&this._doPortalSignIn(e.resUrl_);r||i.refreshToken?(e._pendingDfd=i.refreshToken?this._getOAuthToken(u.server,i.refreshToken,i.appId).then(e=>(f.expires=Date.now()+1e3*e.expires_in,f.token=e.access_token,f)):Promise.resolve(f),e._pendingDfd.then(e=>r?this._exchangeToken(e.server,_.appId,e.token).then(t=>(e.token=t,e)).catch(()=>e):e).then(e=>{t(e)}).catch(e=>{const t=e.details?.httpStatus;t>0&&404!==t?(i.destroy(),n()):s(e)})):t(f)}else if(this._oAuthLocationParams&&this._hasSameServerInstance(_.portalUrl,this._oAuthLocationParams.state.portalUrl)&&(this._oAuthLocationParams.access_token||this._oAuthLocationParams.code&&this._oAuthLocationParams.state.uid===i.stateUID&&i.codeVerifier)){const r=this._oAuthLocationParams;this._oAuthLocationParams=null,e._pendingDfd=this._processOAuthResponseParams(r,_,u).then(e=>{t(e)}).catch(s)}else{const i=()=>{p?e._pendingDfd=this.oAuthSignIn(e.resUrl_,u,_,e.options_).then(t,s):(g=new r("identity-manager:not-authenticated","User is not signed in."),s(g))};this._doPortalSignIn(e.resUrl_)?e._pendingDfd=this._getPlatformSelf(u.server,_.appId).then(e=>{c(e.portalUrl,this._appOrigin,!0)?(f=new w({userId:e.username,server:u.server??void 0,expires:Date.now()+1e3*e.expires_in,token:e.token}),t(f)):i()}).catch(i):i()}}else if(p){if(this._checkProtocol(e.resUrl_,u,s,e.admin_)){let r=e.options_;e.admin_&&(r=r||{},r.isAdmin=!0),e._pendingDfd=this.signIn(e.resUrl_,u,r).then(t,s)}}else g=new r("identity-manager:not-authenticated","User is not signed in."),s(g)},h=()=>{const r=e.sinfo_,i=r.owningSystemUrl,n=e.options_;let o,a,h;if(n&&(o=n.token,a=n.prompt),h=this._findCredential(i,{resource:e.resUrl_}),!h)for(const e of this.credentials)if(this._isIdProvider(i,e.server)){h=e;break}if(h){const i=this.findCredential(e.resUrl_,h.userId);if(i)t(i);else if(R(r,this._legacyFed)){const e=h.toJSON();e.server=r.server,e.resources=null,t(new w(e))}else{(e._pendingDfd=this.generateToken(this.findServerInfo(h.server),null,{serverUrl:e.resUrl_,token:h.token,signal:e.options_.signal,ssl:h.ssl})).then(s=>{t(new w({userId:h?.userId,server:r.server??void 0,token:s.token,expires:null!=s.expires?Number(s.expires):null,ssl:!!s.ssl,isAdmin:e.admin_,validity:s.validity}))},s)}}else{this._busy=null,o&&(e.options_.token=null);(e._pendingDfd=this.getCredential(i.replace(/\/?$/,"/sharing"),{resource:e.resUrl_,owningTenant:r.owningTenant,signal:e.options_.signal,prompt:a})).then(()=>{this._enqueue(e.resUrl_,e.sinfo_,e.options_,e,e.admin_)},t=>{e.resUrl_=e.sinfo_=e.refresh_=null,e.reject(t)})}};this._errbackFunc=s;const l=e.sinfo_.owningSystemUrl,d=this._isServerRsrc(e.resUrl_),u=e.sinfo_._restInfoPms;u?u.promise.then(t=>{const r=e.sinfo_;if(r._restInfoPms){r.adminTokenServiceUrl=r._restInfoPms.adminUrl,r._restInfoPms=null,r.tokenServiceUrl=(o("authInfo.tokenServicesUrl",t)||o("authInfo.tokenServiceUrl",t)||o("tokenServiceUrl",t))??null,r.shortLivedTokenValidity=o("authInfo.shortLivedTokenValidity",t)??null,r.currentVersion=t.currentVersion,r.owningTenant=t.owningTenant;const e=r.owningSystemUrl=t.owningSystemUrl;e&&this._portals.push(e)}d&&r.owningSystemUrl?h():n()},()=>{e.sinfo_._restInfoPms=null;const t=new r("identity-manager:server-identification-failed","Unknown resource - could not find token service endpoint.");s(t)}):d&&l?h():e.sinfo_._selfReq?e.sinfo_._selfReq.selfDfd.then(t=>{const r={};let s,i,n,o;return t&&(s=t.user?.username,r.username=s,r.allSSL=t.allSSL,i=t.supportsOAuth,o=parseFloat(t.currentVersion),"multitenant"===t.portalMode&&(n=t.customBaseUrl),e.sinfo_.currentVersion=o),e.sinfo_.webTierAuth=!!s,s&&this.normalizeWebTierAuth?this.generateToken(e.sinfo_,null,{ssl:r.allSSL}).catch(()=>null).then(e=>(r.portalToken=e?.token,r.tokenExpiration=e?.expires,r)):!s&&i&&o>=4.4&&!this._findOAuthInfo(e.resUrl_)?this._generateOAuthInfo({portalUrl:e.sinfo_.server,customBaseUrl:n,owningTenant:e.sinfo_._selfReq.owningTenant}).catch(()=>null).then(()=>r):r}).catch(()=>null).then(t=>{e.sinfo_._selfReq=null,t?n(t.username,t.allSSL,t.portalToken,t.tokenExpiration):n()}):n()}_generateOAuthInfo(e){let r,s=null,i=e.portalUrl;const n=e.customBaseUrl,o=e.owningTenant,a=!this._defaultOAuthInfo&&this._createDefaultOAuthInfo&&!this._hasTestedIfAppIsOnPortal;if(a){s=this._appUrlObj.path;const e=s.search(/\/(apps|home)\//);s=e>-1?s.slice(0,e):null}return a&&s?(this._hasTestedIfAppIsOnPortal=!0,r=t(s+"/sharing/rest",{query:{f:"json"}}).then(()=>{this._defaultOAuthInfo=new A({appId:"arcgisonline",popupCallbackUrl:s+"/home/oauth-callback.html"})})):r=Promise.resolve(),r.then(()=>{if(this._defaultOAuthInfo)return i=i.replace(/^http:/i,"https:"),t(i+"/sharing/rest/oauth2/validateRedirectUri",{query:{accountId:o,client_id:this._defaultOAuthInfo.appId,redirect_uri:m(this._defaultOAuthInfo.popupCallbackUrl),f:"json"}}).then(e=>{if(e.data.valid){const t=this._defaultOAuthInfo.clone();e.data.urlKey&&n?t.portalUrl="https://"+e.data.urlKey.toLowerCase()+"."+n:t.portalUrl=i,t.popup=window!==window.top||!(c(i,this._appOrigin)||this._gwDomains.some(e=>e.regex.test(i)&&e.regex.test(this._appOrigin))),this.oAuthInfos.push(t)}})})}_doOAuthSignIn(e,t,s,n){const o=s._oAuthCred,a={portalUrl:s.portalUrl};!s.popup&&s.preserveUrlHash&&window.location.hash&&(a.hash=window.location.hash),o.stateUID&&(a.uid=o.stateUID);const h={client_id:s.appId,response_type:o.codeVerifier?"code":"token",state:JSON.stringify(a),expiration:s.expiration,locale:s.locale,redirect_uri:this._getRedirectURI(s,!!o.codeVerifier)};s.forceLogin&&(h.force_login=!0),s.forceUserId&&s.userId&&(h.prepopulatedusername=s.userId),!s.popup&&this._doPortalSignIn(e)&&(h.redirectToUserOrgUrl=!0),o.codeVerifier&&(h.code_challenge=n||o.codeVerifier,h.code_challenge_method=n?"S256":"plain");const l=this._getAuthorizeUrl(s.portalUrl),c=l+"?"+_(h);if(s.popup){const e=window.open(c,"esriJSAPIOAuth",s.popupWindowFeatures);if(e)e.focus(),this._oAuthDfd.oAuthWin_=e,this._oAuthIntervalId=setInterval(()=>{if(e.closed){clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle.remove();const e=this._oAuthDfd;if(e){const t=new r("identity-manager:user-aborted","ABORTED");e.reject(t)}}},500),this._oAuthOnPopupHandle=i(window,["arcgis:auth:hash","arcgis:auth:location:search"],e=>{"arcgis:auth:hash"===e.type?this.setOAuthResponseHash(e.detail):this._setOAuthResponseQueryString(e.detail)});else{const e=new r("identity-manager:popup-blocked","ABORTED");this._oAuthDfd.reject(e)}}else this._rejectOnPersistedPageShow=!0,this._oAuthRedirectFunc?this._oAuthRedirectFunc({authorizeParams:h,authorizeUrl:l,resourceUrl:e,serverInfo:t,oAuthInfo:s}):window.location.href=c}_getAuthorizeUrl(e){let t=e.replace(/^http:/i,"https:")+"/sharing/oauth2/authorize";const r=x(t);if(r?.portalHostname){const{customBaseUrl:e,portalHostname:s,urlKey:i}=r;let n=null;if("www.arcgis.com"===s||"devext.arcgis.com"===s&&(n="logindevext.arcgis.com"),n){t=v(t,i?`${i}.${e}`:s,i?`${i}.${n}`:n)}}return t}_getRedirectURI(e,t){const r=window.location.href.replace(/#.*$/,"");if(e.popup)return m(e.popupCallbackUrl);if(t){const e=l(r);return e.query&&["code","error","error_description","message_code","persist","state"].forEach(t=>{delete e.query[t]}),S(e.path,e.query)}return r}}b.prototype.declaredClass="esri.identity.IdentityManagerBase";export{b as IdentityManagerBase};
|
package/kernel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.
|
|
2
|
+
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.108",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../request.js";import{has}from"../applications/Components/baUtils.js";import i from"../core/Accessor.js";import s from"../core/Error.js";import r from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as n,isAborted as o,isAbortError as l}from"../core/promiseUtils.js";import{watch as d}from"../core/reactiveUtils.js";import{property as h,subclass as _}from"../core/accessorSupport/decorators.js";import y from"../geometry/SpatialReference.js";import{isGeographic as u}from"../geometry/support/spatialReferenceUtils.js";import c from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as g,elevQueriesFull as m,elevQueriesGenericFail as p,invalidLayerView as w}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as f}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as b}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as v}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as D}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as M}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as R}from"../views/support/Scheduler.js";import{Yield as k}from"../views/support/Yield.js";const L=3857,C=32662,S=4326,W=5773;let j=class extends i{constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._haveAddedViewSRForNoOpPrj=!1,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._elevationQueries=new Map,this._pendingJobCompleted=new Array,this._pendingJobFailed=new Array,this._pendingRenderableCreated=new Array,this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0,this._debugFlags=new Set,this._debugLevel=2,this._wasmNotLoaded="method requiring WASM was called when WASM isn't loaded",this._pulseTaskHandle=null,this._cameraDirty=!0,this._cameraElevationDirty=!0,this._debugFlags.add(0),this._debugFlags.add(1),this._debugFlags.add(2)}_debugLog(e,t,i,s=!0){if(this._debugFlags.has(e)&&this._debugLevel>=t){const e=s?`[js] ${i}`:`${i}`;0===t||1===t?r.getLogger(this).error(e):2===t&&r.getLogger(this).warn(e),r.getLogger(this).info(e)}}get viewSR(){return this._viewSR}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(r.getLogger(this).level="info"),this._debugLog(0,3,"Lyr3DWasmPerSceneView.initialize()"),this.addHandles([d(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),d(()=>this.view.state?.contentCamera.relativeElevation,()=>{this._cameraElevationDirty=!0,this._markAllLayerViewsUpdating()})]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(R.LYR3D,this)}destroy(){this._debugLog(0,3,"Lyr3DWasmPerSceneView.destroy()"),this._lyr3DMain&&(this._jobDataBufferPtr&&(this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0),this._layers.forEach(e=>{e.abortController.abort()}),this._elevationQueries.forEach((e,t)=>{this._lyr3DMain.cancel_elevation_query(t),e.rejectCallback(n())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),this._lyr3DMain=null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;const e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}runTask(e){return this._pulseTask(e),k}_hasPendingPulseWork(){return!!this._lyr3DMain&&(this._cameraDirty||this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)))}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,"Lyr3DWasmPerSceneView.add3DTilesLayerView() called when WASM wasn't initialized"),{wasmLayerId:g})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._doRemoveLayerView(e);const t=this._layers.size;return 0===t&&(this._debugLog(0,3,"Lyr3DWasmPerSceneView.remove3DTilesLayerView() no Lyr3D layers left after removing a layer, destroying"),this.destroy()),t}getValidLayerViewCount(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;let e=0;return this._layers.forEach(t=>{t.layerView.wasmLayerId>=0&&++e}),e}setEnabled(e,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const i=this._layers.get(e.wasmLayerId);if(i){this._lyr3DMain.set_enabled(e.wasmLayerId,t),i.needMemoryUsageUpdate=!0;const s=this._isUpdating(i);i.needFrame=!0,s||i.layerView.updatingFlagChanged()}}setLayerOffset(e,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const i=this._layers.get(e.wasmLayerId);i&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,t),i.needFrame=!0,i.layerView.updatingFlagChanged())}getAttributionText(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),[];return this._lyr3DMain.get_current_attribution_text().split("|")}onRenderableEvicted(e,t,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,t,i)}setMeshModifications(e,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const i=this._layers.get(e.wasmLayerId);if(i){const s=this._lyr3DMain._malloc(8*t.length),r=new Float64Array(this._lyr3DMain.HEAPF64.buffer,s,t.length);for(let e=0;e<t.length;++e)r[e]=t[e];this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,s,t.length),this._lyr3DMain._free(s);const a=this._isUpdating(i);i.needFrame=!0,a||i.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;const t=this._layers.get(e);return!!t&&(t.outstandingJobCount>0||t.outstandingRenderableCount>0||t.needFrame||this._lyr3DBusyCount>0)}initializeWasm(e,t){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,"Lyr3DWasmPerSceneView.initializeWasm()"),this._lyr3DMainPromise||(this._lyr3DMainPromise=v().then(i=>{this._lyr3DMain=i,this._lyr3DMainPromise=null;const s=this._lyr3DMain.addFunction(this._onNewJob.bind(this),"v"),r=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),"v"),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),"viii"),n=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),"viiii"),o=this._lyr3DMain.addFunction(this._onWasmError.bind(this),"viiii"),l=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),"vi");if(!this.view.renderSpatialReference)return void(this._lyr3DMain=null);this._viewSR=this.view.renderSpatialReference?.toJSON();let d="global"===this.view.viewingMode?6:4;6===d?(this._viewSR.wkid=this._viewSR.latestWkid=S,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W,this._viewSR.wkt=""):(this._viewSR.vcsWkid||(this._viewSR.vcsWkid=b(this.view.heightModelInfo)),this.view.renderSpatialReference?.isWebMercator?(this._viewSR.wkid=this._viewSR.latestWkid=L,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this.view.renderSpatialReference?.wkid===C?(this._viewSR.wkid=this._viewSR.latestWkid=S,d=3,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this._viewSR.vcsWkid||this._viewSR.latestVcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=-1));const h=has("esri-lyr3D-max-concurrent-requests")??16;return this._lyr3DMain.initialize_lyr3d_wasm(o,s,r,a,n,l,e,t,d,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),h)?(this._workerHandle=new f(M(this.view.resourceController)),this._workerHandle.promise?this._workerHandle.promise:void 0):(this._lyr3DMain=null,void this._debugLog(0,0,"Lyr3d Main WASM failed to initialize",!1))}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)})),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,t){this._lyr3DMain?.set_lod_pixel_threshold(t);const i=this._layers.get(e.wasmLayerId);i&&(i.needFrame=!0,i.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{"gaussian-splat-3d"===e.layerView.type&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,t,i){if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(0===t.coordinates.length)return Promise.reject("no coordinates for elevation query");const s="global"===this.view.viewingMode?y.WGS84:this._viewSR.wkid===L?y.WebMercator:y.PlateCarree,r=t.projectSync(s);r&&(t=r);const a=2*t.coordinates.length,n=this._lyr3DMain._malloc(8*a),o=new Float64Array(this._lyr3DMain.HEAPF64.buffer,n,a);for(let y=0;y<t.coordinates.length;++y){const e=t.coordinates[y];o[2*y]=e.x,o[2*y+1]=e.y}const l=i?.maxGeometricError??0,d=this._lyr3DMain.create_elevation_query(e.wasmLayerId,l,n,a);if(this._lyr3DMain._free(n),d===m)return Promise.reject("max mesh elevation query limit exceeded");if(d===p)return Promise.reject("elevation query failed");const h={descriptor:t,signal:i?.signal,resolveCallback:null,rejectCallback:null},_=new Promise((e,t)=>{h.resolveCallback=e,h.rejectCallback=t});return this._elevationQueries.set(d,h),_}_checkForAbortedElevationQueries(){const e=[];this._elevationQueries.forEach((t,i)=>{o(t.signal)&&(this._lyr3DMain.cancel_elevation_query(i),t.rejectCallback(n()),e.push(i))});for(let t=0;t<e.length;++t)this._elevationQueries.delete(e[t])}_pulseTask(e){const t=this._lyr3DMain;if(t){if(this._cameraDirty){const e=this.view.state?.contentCamera;if(e){const{eye:i,center:s,up:r,near:a,far:n,fovY:o}=e,l=[e.viewport[2],e.viewport[3]],d={eye:i,center:s,up:r,near:a,far:n,fov:o,aspectRatio:e.width/e.height,viewport:l};t.set_camera_parameters(d),this._cameraDirty=!1}}if(this._cameraElevationDirty){const e=this.view.state?.contentCamera.relativeElevation;t.set_camera_elevation(e)}this._checkForAbortedElevationQueries();let i=0,s=0;this._layers.forEach(e=>{i+=e.layerView.usedMemory,s+=e.layerView.cachedMemory}),i/=1048576,s/=1048576;const r=this.view.resourceController.memoryController,a=r.usedMemory*r.maxMemory-i-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(r.memoryFactor,i,s,a,r.maxMemory),this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange("isTerrainReady")),this._flushPendingWasmCalls(e),this._cameraElevationDirty=!1}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||e.needFrame||this._cameraDirty||this._lyr3DBusyCount>0}_incrementJobCount(e,t){if(t.isForElevationQuery)return;const i=this._isUpdating(e);e.outstandingJobCount+=1,i||e.layerView.updatingFlagChanged()}_decrementJobCount(e,t){if(t.isForElevationQuery)return;const i=this._isUpdating(e);e.outstandingJobCount-=1;i!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){const t=this._isUpdating(e);e.outstandingRenderableCount+=1,t||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){const t=this._isUpdating(e);e.outstandingRenderableCount-=1;t!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_flushPendingWasmCalls(e){this._lyr3DMain&&(this._flushPendingCalls(this._pendingJobFailed,e),this._flushPendingCalls(this._pendingJobCompleted,e),this._flushPendingCalls(this._pendingRenderableCreated,e))}_flushPendingCalls(e,t){for(;!t.done&&e.length>0;){e.shift()(this._lyr3DMain),t.madeProgress()}}_onJobFailed(e,t,i){t.error.length&&this._debugLog(1,1,t.error,!1),this._lyr3DMain&&!e.layerView.destroyed&&this._pendingJobFailed.push(e=>e.on_job_failed(i.jobId,i.desc)),this._decrementJobCount(e,i)}_onJobSucceeded(e,t,i){if(this._lyr3DMain){if(e.layerView.destroyed)return void this._pendingJobFailed.push(e=>e.on_job_failed(i.jobId,i.desc));const{data:s}=t,r=e=>{const r=s.byteLength,a=this._ensureJobDataBuffer(r);new Uint8Array(e.HEAPU8.buffer,a,r).set(s),e.on_job_completed(i.jobId,t.jobDescJson,a,r)};this._pendingJobCompleted.push(r)}this._decrementJobCount(e,i)}_ensureJobDataBuffer(e){return e<=this._jobDataBufferCapacity&&this._jobDataBufferPtr||(this._jobDataBufferPtr&&this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=this._lyr3DMain._malloc(e),this._jobDataBufferCapacity=e),this._jobDataBufferPtr}_getRequestPromises(e,i,s,r){const a=[];for(const n of e){const e=new URL(n);if("integrated-mesh-3dtiles"===r.type){if(e.origin===s.origin&&e.pathname===s.pathname){if(r.rootTileset){a.push(Promise.resolve(r.rootTileset.slice()));continue}}else r.session&&e.searchParams.set("session",r.session)}a.push(t(e.toString(),i).then(e=>e.data))}return a}_getInitialPromise(e,t,i,s,r,a,n){const o=this._getRequestPromises(e.urls,t,i,s);return Promise.all(o).then(e=>(r.inputs=e,this._workerHandle.invoke(r,a))).then(e=>e).catch(t=>{let i=1;return l(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):n&&400===t.details?.httpStatus?(i=3,this._debugLog(1,2,"Session expired, trying to create new Session.")):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),{status:i,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[],inputs:[]}})}async _onNewJob(){const e=this._lyr3DMain.get_next_job(),t=this._layers.get(e.layerId);if(!t)return;this._incrementJobCount(t,e);const i=t.abortController.signal,s=t.layerView.layer,r="integrated-mesh-3dtiles"===s.type?s.key:null,a="integrated-mesh-3dtiles"===s.type?s.session:null,n={responseType:"array-buffer",signal:i,query:{...t.customParameters,token:t.apiKey,key:r}},o={id:e.jobId,inputs:[],jobDescJson:e.desc.slice(),isMissingResourceCase:!1},d=new URL(s.url),h=r=>{if(1===r.status)this._onJobFailed(t,r,e);else if(0===r.status)this._onJobSucceeded(t,r,e);else if(2===r.status){const a=this._getRequestPromises(r.missingInputUrls,n,d,s);Promise.all(a).then(e=>{o.jobDescJson=r.jobDescJson,r.originalInputs?o.inputs=r.originalInputs:o.inputs=[],o.isMissingResourceCase=!0;for(const t of e)o.inputs.push(t);return this._workerHandle.invoke(o,i)}).then(i=>{1===i.status?this._onJobFailed(t,i,e):0===i.status&&this._onJobSucceeded(t,i,e)}).catch(i=>{this._decrementJobCount(t,e),l(i)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):this._debugLog(1,1,`job ${e.jobId} failed with error ${i}.`),this._lyr3DMain&&this._pendingJobFailed.push(t=>t.on_job_failed(e.jobId,e.desc))})}};try{const t=await this._getInitialPromise(e,n,d,s,o,i,a);if(3===t.status&&"integrated-mesh-3dtiles"===s.type){a===s.session&&null!==s.session&&await s.requestRootAndSession(i);h(await this._getInitialPromise(e,n,d,s,o,i,s.session))}else h(t)}catch(_){_&&this._debugLog(1,1,_.toString(),!1),this._lyr3DMain&&this._pendingJobFailed.push(t=>t.on_job_failed(e.jobId,e.desc)),this._decrementJobCount(t,e)}}_onNewRenderable(){const e=this._lyr3DMain.get_next_renderable(),{meshData:t}=e;t.data&&t.data.byteLength>0&&(t.data=t.data.slice());const i=this._layers.get(e.layerId);i&&(this._incrementRenderableCount(i),i.layerView.createRenderable(e).then(t=>{const s=t.numGaussians??0;if(this._lyr3DMain&&!i.layerView.destroyed){const{layerId:i,handle:r}=e,{memUsageBytes:a}=t;this._pendingRenderableCreated.push(e=>e.on_renderable_created(!0,i,r,a,s))}this._decrementRenderableCount(i)}).catch(t=>{if(l(t)||this._debugLog(2,1,`createRenderable failed with error ${t}.`),this._lyr3DMain&&!i.layerView.destroyed){const{layerId:t,handle:i}=e;this._pendingRenderableCreated.push(e=>e.on_renderable_created(!1,t,i,0,0))}this._decrementRenderableCount(i)}))}_freeRenderables(e,t,i){if(i<1)return;const s=this._layers.get(e);if(!s)return;const r=s.layerView,a=[],n=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,t,i);for(let o=0;o<i;++o)a.push(n[o]);for(let o=0;o<i;++o)r.freeRenderable(a[o])}_setRenderableVisibility(e,t,i,s){if(s<1)return;const r=this._layers.get(e);if(!r)return;const a=r.layerView,n=[],o=[],l=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,t,s),d=new Uint8Array(this._lyr3DMain.HEAPU8.buffer,i,s);for(let h=0;h<s;++h)n.push(l[h]),o.push(!!(1&d[h]));a.setRenderableVisibility(n,o,s)}_onWasmError(e,t,i,s){this._lyr3DMain&&this._debugLog(i,s,this._lyr3DMain.UTF8ToString(e,t),!1)}_onElevQueryComplete(e){const t=this._elevationQueries.get(e),i=this._lyr3DMain.get_elevation_query_result(e);if(t)if(i.succeeded&&i.zs){const s=i.zs.slice(),r=t.descriptor.clone();for(let e=0;e<s.length;++e)r.coordinates[e].z=s[e];this._debugLog(2,3,`Success EQ ${e}, number points ${s.length}.`),t.resolveCallback(r),this._elevationQueries.delete(e)}else t.rejectCallback(new s("elevation-query:error",i?.error??"Elevation query failed")),this._elevationQueries.delete(e);else this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${e}.`)}_doRemoveLayerView(e){const t=this._layers.get(e.wasmLayerId);return!!t&&(t.abortController.abort(),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")),this._layers.delete(e.wasmLayerId),!0)}_is3DTilesIMLayerView(e){return"integrated-mesh-3dtiles"===e.layer.type}_isGaussianSplatLayerView(e){return"gaussian-splat"===e.layer.type}_isGaussianSplatLayer(e){return"gaussian-splat"===e.type}_toWasmQuality(e){switch(e){case"low":return 1;case"medium":return 2;case"high":return 3}}_addLayerView(e){const t=e.layer;if(!t.url||!t.rootTilesetJSON)return{wasmLayerId:w};const i="integrated-mesh-3dtiles"===t.type?0:2,s=this._lyr3DMain.validate_root_tileset(JSON.stringify(t.rootTilesetJSON),i);if(0!==s.errorCode)return{wasmLayerId:w,check:s};const a=this._lyr3DMain.get_next_layer_id(),n=new AbortController;this._layers.set(a,{layerView:e,abortController:n,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:t.customParameters,apiKey:t.apiKey,needFrame:!0});const o=D(t.elevationInfo),l=this._toWasmQuality(this.view?.qualityProfile),d=e=>r.getLogger(this).error("add-spatial-reference-error","Error when adding SR:",e);let h=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(t)){let i=t.spatialReference;if(e.useEsriCrs&&t.esriCrsSpatialReference){i=t.esriCrsSpatialReference;const s=u(i);let r=1,a=1;!s&&i.wkid&&-1!==i.wkid&&(r=c.values[c[i.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(i)),s,r,a).catch(d),!this._haveAddedViewSRForNoOpPrj&&i.vcsWkid&&this._viewSR.vcsWkid&&-1!==this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==i.vcsWkid&&(this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(d),this._haveAddedViewSRForNoOpPrj=!0)}h=this._lyr3DMain.add_gaussian_splat_layer(l,t.url,a,o)}else this._is3DTilesIMLayerView(e)&&(h=this._lyr3DMain.add_3dtiles_layer(l,t.url,a,o,e.layer.replacesTerrain),h&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")));return h?(this._updateWasmCamera(),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:w})}_updateWasmCamera(){const e=this.view.state?.contentCamera;e&&this._lyr3DMain&&(this._cameraDirty=!0,this._markAllLayerViewsUpdating())}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{const t=this._isUpdating(e);e.needFrame=!0,t||e.layerView.updatingFlagChanged()})}_makeSRWasmSerializable(e){return{wkid:e?.wkid??-1,latestWkid:e?.latestWkid??-1,vcsWkid:e?.vcsWkid??-1,latestVcsWkid:e?.latestVcsWkid??-1,wkt:e?.wkt??""}}_cleanUpSR(e){return-1===e?.wkid&&e.latestWkid&&-1!==e.latestWkid?e.wkid=e.latestWkid:-1===e?.latestWkid&&e.wkid&&-1!==e.wkid&&(e.latestWkid=e.wkid),-1===e?.vcsWkid&&e.latestVcsWkid&&-1!==e.latestVcsWkid?e.vcsWkid=e.latestVcsWkid:-1===e?.latestVcsWkid&&e.vcsWkid&&-1!==e.vcsWkid&&(e.latestVcsWkid=e.vcsWkid),e}};e([h({constructOnly:!0})],j.prototype,"view",void 0),e([h({readOnly:!0})],j.prototype,"isTerrainReady",null),j=e([_("esri.layers.Lyr3DWasmPerSceneView")],j);const V=j;export{V as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import i from"../request.js";import{has}from"../applications/Components/baUtils.js";import t from"../core/Accessor.js";import s from"../core/Error.js";import r from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as n,isAborted as o,isAbortError as l}from"../core/promiseUtils.js";import{watch as d}from"../core/reactiveUtils.js";import{property as h,subclass as _}from"../core/accessorSupport/decorators.js";import y from"../geometry/SpatialReference.js";import{isGeographic as u}from"../geometry/support/spatialReferenceUtils.js";import c from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as g,elevQueriesFull as m,elevQueriesGenericFail as p,invalidLayerView as w}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as f}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as b}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as v}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as D}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as M}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as R}from"../views/support/Scheduler.js";import{Yield as k}from"../views/support/Yield.js";const L=3857,C=32662,S=4326,W=5773;let j=class extends t{constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._haveAddedViewSRForNoOpPrj=!1,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._elevationQueries=new Map,this._pendingJobCompleted=new Array,this._pendingJobFailed=new Array,this._pendingRenderableCreated=new Array,this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0,this._debugFlags=new Set,this._debugLevel=2,this._wasmNotLoaded="method requiring WASM was called when WASM isn't loaded",this._pulseTaskHandle=null,this._cameraDirty=!0,this._cameraElevationDirty=!0,this._debugFlags.add(0),this._debugFlags.add(1),this._debugFlags.add(2)}_debugLog(e,i,t,s=!0){if(this._debugFlags.has(e)&&this._debugLevel>=i){const e=s?`[js] ${t}`:`${t}`;0===i||1===i?r.getLogger(this).error(e):2===i&&r.getLogger(this).warn(e),r.getLogger(this).info(e)}}get viewSR(){return this._viewSR}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(r.getLogger(this).level="info"),this._debugLog(0,3,"Lyr3DWasmPerSceneView.initialize()"),this.addHandles([d(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),d(()=>this.view.state?.contentCamera.relativeElevation,()=>{this._cameraElevationDirty=!0,this._markAllLayerViewsUpdating()})]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(R.LYR3D,this)}destroy(){this._debugLog(0,3,"Lyr3DWasmPerSceneView.destroy()"),this._lyr3DMain&&(this._jobDataBufferPtr&&(this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0),this._layers.forEach(e=>{e.abortController.abort()}),this._elevationQueries.forEach((e,i)=>{this._lyr3DMain.cancel_elevation_query(i),e.rejectCallback(n())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),this._lyr3DMain=null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;const e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}runTask(e){return this._pulseTask(e),k}_hasPendingPulseWork(){return!!this._lyr3DMain&&(this._cameraDirty||this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)))}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,"Lyr3DWasmPerSceneView.add3DTilesLayerView() called when WASM wasn't initialized"),{wasmLayerId:g})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._doRemoveLayerView(e);const i=this._layers.size;return 0===i&&(this._debugLog(0,3,"Lyr3DWasmPerSceneView.remove3DTilesLayerView() no Lyr3D layers left after removing a layer, destroying"),this.destroy()),i}getValidLayerViewCount(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;let e=0;return this._layers.forEach(i=>{i.layerView.wasmLayerId>=0&&++e}),e}setEnabled(e,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const t=this._layers.get(e.wasmLayerId);if(t){this._lyr3DMain.set_enabled(e.wasmLayerId,i),t.needMemoryUsageUpdate=!0;const s=this._isUpdating(t);t.needFrame=!0,s||t.layerView.updatingFlagChanged()}}setLayerOffset(e,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const t=this._layers.get(e.wasmLayerId);t&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,i),t.needFrame=!0,t.layerView.updatingFlagChanged())}getAttributionText(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),[];return this._lyr3DMain.get_current_attribution_text().split("|")}onRenderableEvicted(e,i,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,i,t)}setMeshModifications(e,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const t=this._layers.get(e.wasmLayerId);if(t){const s=this._lyr3DMain._malloc(8*i.length),r=new Float64Array(this._lyr3DMain.HEAPF64.buffer,s,i.length);for(let e=0;e<i.length;++e)r[e]=i[e];this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,s,i.length),this._lyr3DMain._free(s);const a=this._isUpdating(t);t.needFrame=!0,a||t.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;const i=this._layers.get(e);return!!i&&(i.outstandingJobCount>0||i.outstandingRenderableCount>0||i.needFrame||this._lyr3DBusyCount>0)}initializeWasm(e,i){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,"Lyr3DWasmPerSceneView.initializeWasm()"),this._lyr3DMainPromise||(this._lyr3DMainPromise=v().then(t=>{this._lyr3DMain=t,this._lyr3DMainPromise=null;const s=this._lyr3DMain.addFunction(this._onNewJob.bind(this),"v"),r=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),"v"),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),"viii"),n=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),"viiii"),o=this._lyr3DMain.addFunction(this._onWasmError.bind(this),"viiii"),l=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),"vi");if(!this.view.renderSpatialReference)return void(this._lyr3DMain=null);this._viewSR=this.view.renderSpatialReference?.toJSON();let d="global"===this.view.viewingMode?6:4;6===d?(this._viewSR.wkid=this._viewSR.latestWkid=S,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W,this._viewSR.wkt=""):(this._viewSR.vcsWkid||(this._viewSR.vcsWkid=b(this.view.heightModelInfo)),this.view.renderSpatialReference?.isWebMercator?(this._viewSR.wkid=this._viewSR.latestWkid=L,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this.view.renderSpatialReference?.wkid===C?(this._viewSR.wkid=this._viewSR.latestWkid=S,d=3,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this._viewSR.vcsWkid||this._viewSR.latestVcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=-1));const h=has("esri-lyr3D-max-concurrent-requests")??16;return this._lyr3DMain.initialize_lyr3d_wasm(o,s,r,a,n,l,e,i,d,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),h)?(this._workerHandle=new f(M(this.view.resourceController)),this._workerHandle.promise?this._workerHandle.promise:void 0):(this._lyr3DMain=null,void this._debugLog(0,0,"Lyr3d Main WASM failed to initialize",!1))}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)})),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,i){this._lyr3DMain?.set_lod_pixel_threshold(i);const t=this._layers.get(e.wasmLayerId);t&&(t.needFrame=!0,t.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{"gaussian-splat-3d"===e.layerView.type&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,i,t){if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(0===i.coordinates.length)return Promise.reject("no coordinates for elevation query");const s="global"===this.view.viewingMode?y.WGS84:this._viewSR.wkid===L?y.WebMercator:y.PlateCarree,r=i.projectSync(s);r&&(i=r);const a=2*i.coordinates.length,n=this._lyr3DMain._malloc(8*a),o=new Float64Array(this._lyr3DMain.HEAPF64.buffer,n,a);for(let y=0;y<i.coordinates.length;++y){const e=i.coordinates[y];o[2*y]=e.x,o[2*y+1]=e.y}const l=t?.maxGeometricError??0,d=this._lyr3DMain.create_elevation_query(e.wasmLayerId,l,n,a);if(this._lyr3DMain._free(n),d===m)return Promise.reject("max mesh elevation query limit exceeded");if(d===p)return Promise.reject("elevation query failed");const h={descriptor:i,signal:t?.signal,resolveCallback:null,rejectCallback:null},_=new Promise((e,i)=>{h.resolveCallback=e,h.rejectCallback=i});return this._elevationQueries.set(d,h),_}_checkForAbortedElevationQueries(){const e=[];this._elevationQueries.forEach((i,t)=>{o(i.signal)&&(this._lyr3DMain.cancel_elevation_query(t),i.rejectCallback(n()),e.push(t))});for(let i=0;i<e.length;++i)this._elevationQueries.delete(e[i])}_pulseTask(e){const i=this._lyr3DMain;if(i){if(this._cameraDirty){const e=this.view.state?.contentCamera;if(e){const{eye:t,center:s,up:r,near:a,far:n,fovY:o}=e,l=[e.viewport[2],e.viewport[3]],d={eye:t,center:s,up:r,near:a,far:n,fov:o,aspectRatio:e.width/e.height,viewport:l};i.set_camera_parameters(d),this._cameraDirty=!1}}if(this._cameraElevationDirty){const e=this.view.state?.contentCamera.relativeElevation;i.set_camera_elevation(e)}this._checkForAbortedElevationQueries();let t=0,s=0;this._layers.forEach(e=>{t+=e.layerView.usedMemory,s+=e.layerView.cachedMemory}),t/=1048576,s/=1048576;const r=this.view.resourceController.memoryController,a=r.usedMemory*r.maxMemory-t-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(r.memoryFactor,t,s,a,r.maxMemory),this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange("isTerrainReady")),this._flushPendingWasmCalls(e),this._cameraElevationDirty=!1}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||e.needFrame||this._cameraDirty||this._lyr3DBusyCount>0}_incrementJobCount(e,i){if(i.isForElevationQuery)return;const t=this._isUpdating(e);e.outstandingJobCount+=1,t||e.layerView.updatingFlagChanged()}_decrementJobCount(e,i){if(i.isForElevationQuery)return;const t=this._isUpdating(e);e.outstandingJobCount-=1;t!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){const i=this._isUpdating(e);e.outstandingRenderableCount+=1,i||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){const i=this._isUpdating(e);e.outstandingRenderableCount-=1;i!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_flushPendingWasmCalls(e){this._lyr3DMain&&(this._flushPendingCalls(this._pendingJobFailed,e),this._flushPendingCalls(this._pendingJobCompleted,e),this._flushPendingCalls(this._pendingRenderableCreated,e))}_flushPendingCalls(e,i){for(;!i.done&&e.length>0;){e.shift()(this._lyr3DMain),i.madeProgress()}}_onJobFailed(e,i,t){i.error.length&&this._debugLog(1,1,i.error,!1),this._lyr3DMain&&!e.layerView.destroyed&&this._pendingJobFailed.push(e=>e.on_job_failed(t.jobId,t.desc)),this._decrementJobCount(e,t)}_onJobSucceeded(e,i,t){if(this._lyr3DMain){if(e.layerView.destroyed)return void this._pendingJobFailed.push(e=>e.on_job_failed(t.jobId,t.desc));const{data:s}=i,r=e=>{const r=s.byteLength,a=this._ensureJobDataBuffer(r);new Uint8Array(e.HEAPU8.buffer,a,r).set(s),e.on_job_completed(t.jobId,i.jobDescJson,a,r)};this._pendingJobCompleted.push(r)}this._decrementJobCount(e,t)}_ensureJobDataBuffer(e){return e<=this._jobDataBufferCapacity&&this._jobDataBufferPtr||(this._jobDataBufferPtr&&this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=this._lyr3DMain._malloc(e),this._jobDataBufferCapacity=e),this._jobDataBufferPtr}_getRequestPromises(e,t,s,r){const a=[];for(const n of e){const e=new URL(n);if("integrated-mesh-3dtiles"===r.type){if(e.origin===s.origin&&e.pathname===s.pathname){if(r.rootTileset){a.push(Promise.resolve(r.rootTileset.slice()));continue}}else r.session&&e.searchParams.set("session",r.session)}a.push(i(e.toString(),t).then(e=>e.data))}return a}_getInitialPromise(e,i,t,s,r,a,n){const o=this._getRequestPromises(e.urls,i,t,s);return Promise.all(o).then(e=>(r.inputs=e,this._workerHandle.invoke(r,a))).then(e=>e).catch(i=>{let t=1;return l(i)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):n&&400===i.details?.httpStatus?(t=3,this._debugLog(1,2,"Session expired, trying to create new Session.")):this._debugLog(1,1,`job ${e.jobId} failed with error ${i}.`),{status:t,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[],inputs:[]}})}async _onNewJob(){const e=this._lyr3DMain.get_next_job(),i=this._layers.get(e.layerId);if(!i)return;this._incrementJobCount(i,e);const t=i.abortController.signal,s=i.layerView.layer,r="integrated-mesh-3dtiles"===s.type?s.key:null,a="integrated-mesh-3dtiles"===s.type?s.session:null,n={responseType:"array-buffer",signal:t,query:{...i.customParameters,token:i.apiKey,key:r}},o={id:e.jobId,inputs:[],jobDescJson:e.desc.slice(),isMissingResourceCase:!1},d=new URL(s.url),h=r=>{if(1===r.status)this._onJobFailed(i,r,e);else if(0===r.status)this._onJobSucceeded(i,r,e);else if(2===r.status){const a=this._getRequestPromises(r.missingInputUrls,n,d,s);Promise.all(a).then(e=>{o.jobDescJson=r.jobDescJson,r.originalInputs?o.inputs=r.originalInputs:o.inputs=[],o.isMissingResourceCase=!0;for(const i of e)o.inputs.push(i);return this._workerHandle.invoke(o,t)}).then(t=>{1===t.status?this._onJobFailed(i,t,e):0===t.status&&this._onJobSucceeded(i,t,e)}).catch(t=>{this._decrementJobCount(i,e),l(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),this._lyr3DMain&&this._pendingJobFailed.push(i=>i.on_job_failed(e.jobId,e.desc))})}};try{const i=await this._getInitialPromise(e,n,d,s,o,t,a);if(3===i.status&&"integrated-mesh-3dtiles"===s.type){a===s.session&&null!==s.session&&await s.requestRootAndSession(t);h(await this._getInitialPromise(e,n,d,s,o,t,s.session))}else h(i)}catch(_){_&&this._debugLog(1,1,_.toString(),!1),this._lyr3DMain&&this._pendingJobFailed.push(i=>i.on_job_failed(e.jobId,e.desc)),this._decrementJobCount(i,e)}}_onNewRenderable(){const e=this._lyr3DMain.get_next_renderable(),{meshData:i}=e;i.data&&i.data.byteLength>0&&(i.data=i.data.slice());const t=this._layers.get(e.layerId);t&&(this._incrementRenderableCount(t),t.layerView.createRenderable(e).then(i=>{if(this._lyr3DMain&&!t.layerView.destroyed){const{layerId:t,handle:s}=e;this._pendingRenderableCreated.push(e=>{const r=i(),{memUsageBytes:a}=r;e.on_renderable_created(!0,t,s,a,r.numGaussians??0)})}}).catch(i=>{if(l(i)||this._debugLog(2,1,`createRenderable failed with error ${i}.`),this._lyr3DMain&&!t.layerView.destroyed){const{layerId:i,handle:t}=e;this._pendingRenderableCreated.push(e=>e.on_renderable_created(!1,i,t,0,0))}}).finally(()=>{this._decrementRenderableCount(t)}))}_freeRenderables(e,i,t){if(t<1)return;const s=this._layers.get(e);if(!s)return;const r=s.layerView,a=[],n=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,i,t);for(let o=0;o<t;++o)a.push(n[o]);for(let o=0;o<t;++o)r.freeRenderable(a[o])}_setRenderableVisibility(e,i,t,s){if(s<1)return;const r=this._layers.get(e);if(!r)return;const a=r.layerView,n=[],o=[],l=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,i,s),d=new Uint8Array(this._lyr3DMain.HEAPU8.buffer,t,s);for(let h=0;h<s;++h)n.push(l[h]),o.push(!!(1&d[h]));a.setRenderableVisibility(n,o,s)}_onWasmError(e,i,t,s){this._lyr3DMain&&this._debugLog(t,s,this._lyr3DMain.UTF8ToString(e,i),!1)}_onElevQueryComplete(e){const i=this._elevationQueries.get(e),t=this._lyr3DMain.get_elevation_query_result(e);if(i)if(t.succeeded&&t.zs){const s=t.zs.slice(),r=i.descriptor.clone();for(let e=0;e<s.length;++e)r.coordinates[e].z=s[e];this._debugLog(2,3,`Success EQ ${e}, number points ${s.length}.`),i.resolveCallback(r),this._elevationQueries.delete(e)}else i.rejectCallback(new s("elevation-query:error",t?.error??"Elevation query failed")),this._elevationQueries.delete(e);else this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${e}.`)}_doRemoveLayerView(e){const i=this._layers.get(e.wasmLayerId);return!!i&&(i.abortController.abort(),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")),this._layers.delete(e.wasmLayerId),!0)}_is3DTilesIMLayerView(e){return"integrated-mesh-3dtiles"===e.layer.type}_isGaussianSplatLayerView(e){return"gaussian-splat"===e.layer.type}_isGaussianSplatLayer(e){return"gaussian-splat"===e.type}_toWasmQuality(e){switch(e){case"low":return 1;case"medium":return 2;case"high":return 3}}_addLayerView(e){const i=e.layer;if(!i.url||!i.rootTilesetJSON)return{wasmLayerId:w};const t="integrated-mesh-3dtiles"===i.type?0:2,s=this._lyr3DMain.validate_root_tileset(JSON.stringify(i.rootTilesetJSON),t);if(0!==s.errorCode)return{wasmLayerId:w,check:s};const a=this._lyr3DMain.get_next_layer_id(),n=new AbortController;this._layers.set(a,{layerView:e,abortController:n,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:i.customParameters,apiKey:i.apiKey,needFrame:!0});const o=D(i.elevationInfo),l=this._toWasmQuality(this.view?.qualityProfile),d=e=>r.getLogger(this).error("add-spatial-reference-error","Error when adding SR:",e);let h=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(i)){let t=i.spatialReference;if(e.useEsriCrs&&i.esriCrsSpatialReference){t=i.esriCrsSpatialReference;const s=u(t);let r=1,a=1;!s&&t.wkid&&-1!==t.wkid&&(r=c.values[c[t.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(t)),s,r,a).catch(d),!this._haveAddedViewSRForNoOpPrj&&t.vcsWkid&&this._viewSR.vcsWkid&&-1!==this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==t.vcsWkid&&(this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(d),this._haveAddedViewSRForNoOpPrj=!0)}h=this._lyr3DMain.add_gaussian_splat_layer(l,i.url,a,o)}else this._is3DTilesIMLayerView(e)&&(h=this._lyr3DMain.add_3dtiles_layer(l,i.url,a,o,e.layer.replacesTerrain),h&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")));return h?(this._updateWasmCamera(),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:w})}_updateWasmCamera(){const e=this.view.state?.contentCamera;e&&this._lyr3DMain&&(this._cameraDirty=!0,this._markAllLayerViewsUpdating())}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{const i=this._isUpdating(e);e.needFrame=!0,i||e.layerView.updatingFlagChanged()})}_makeSRWasmSerializable(e){return{wkid:e?.wkid??-1,latestWkid:e?.latestWkid??-1,vcsWkid:e?.vcsWkid??-1,latestVcsWkid:e?.latestVcsWkid??-1,wkt:e?.wkt??""}}_cleanUpSR(e){return-1===e?.wkid&&e.latestWkid&&-1!==e.latestWkid?e.wkid=e.latestWkid:-1===e?.latestWkid&&e.wkid&&-1!==e.wkid&&(e.latestWkid=e.wkid),-1===e?.vcsWkid&&e.latestVcsWkid&&-1!==e.latestVcsWkid?e.vcsWkid=e.latestVcsWkid:-1===e?.latestVcsWkid&&e.vcsWkid&&-1!==e.vcsWkid&&(e.latestVcsWkid=e.vcsWkid),e}};e([h({constructOnly:!0})],j.prototype,"view",void 0),e([h({readOnly:!0})],j.prototype,"isTerrainReady",null),j=e([_("esri.layers.Lyr3DWasmPerSceneView")],j);const V=j;export{V as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{property as
|
|
2
|
+
import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{property as s,subclass as r}from"../../../core/accessorSupport/decorators.js";import i from"../../../geometry/Extent.js";import o from"../../../geometry/Point.js";import n from"../../../geometry/SpatialReference.js";import a from"./BaseRaster.js";import{parseSpatialReference as l,parsePAMInfo as f}from"./pamParser.js";import{getElement as u,getElementValue as h}from"./xmlUtilities.js";import{isPlatformLittleEndian as c}from"../formats/utils.js";import{estimateStatisticsFromHistograms as p}from"../functions/stretchUtils.js";import m from"../../support/PixelBlock.js";import g from"../../support/RasterInfo.js";import d from"../../support/RasterStorageInfo.js";const y=new Map([["byte","u8"],["signedbyte","s8"],["int8","s8"],["uint8","u8"],["int16","s16"],["uint16","u16"],["int32","s32"],["uint32","u32"],["float32","f32"],["float64","f64"],["double64","f64"]]),x=new Map;x.set("none",{blobExtension:".til",isOneSegment:!0,decoderFormat:"bip"}),x.set("lerc",{blobExtension:".lrc",isOneSegment:!1,decoderFormat:"lerc"}),x.set("deflate",{blobExtension:".pzp",isOneSegment:!0,decoderFormat:"deflate"}),x.set("jpeg",{blobExtension:".pjg",isOneSegment:!0,decoderFormat:"jpg"}),x.set("qb3",{blobExtension:".pq3",isOneSegment:!0,decoderFormat:"qb3"});let b=class extends a{constructor(){super(...arguments),this._files=null,this._storageIndex=null,this._isBsq=!1,this.datasetFormat="MRF"}async fetchRawTile(t,e,s,r={}){const{blockWidth:i,blockHeight:o,blockBoundary:n}=this.rasterInfo.storageInfo,a=n[t];if(!a||a.maxRow<e||a.maxCol<s||a.minRow>e||a.minCol>s)return null;const{bandCount:l,pixelType:f}=this.rasterInfo,{ranges:u,actualTileWidth:h,actualTileHeight:c}=this._getTileLocation(t,e,s);if(!u||0===u.length)return null;if(u.some(t=>t.from>t.to)){const t=new Uint8Array(i*o);return new m({width:i,height:o,pixels:void 0,mask:t,validPixelCount:0})}const{bandIds:p}=this.ioConfig,g=this._getBandSegmentCount(),d=[];let y=0;for(y=0;y<g;y++)p&&!p.includes(y)||d.push(this.request(this._files.data,{range:{from:u[y].from,to:u[y].to},responseType:"array-buffer",signal:r.signal}));const b=await Promise.all(d),w=b.map(t=>t.data.byteLength).reduce((t,e)=>t+e),I=new Uint8Array(w),_=[];let A=0;for(y=0;y<g;y++)_.push(A),I.set(new Uint8Array(b[y].data),A),A+=b[y].data.byteLength;const F=x.get(this.rasterInfo.storageInfo.compression).decoderFormat,R=await this.decodePixelBlock(I.buffer,{width:i,height:o,format:F,planes:p?.length||l,offsets:_,pixelType:f}).catch(()=>null);if(null==R)return null;let{noDataValue:S}=this.rasterInfo;if(null!=S&&"lerc"!==F&&!R.mask&&(S=S[0],null!=S)){const t=R.width*R.height,e=new Uint8Array(t);if(Math.abs(S)>1e24)for(y=0;y<t;y++)Math.abs((R.pixels[0][y]-S)/S)>1e-6&&(e[y]=1);else for(y=0;y<t;y++)R.pixels[0][y]!==S&&(e[y]=1);R.mask=e}let M=0,k=0;if(h!==i||c!==o){let t=R.mask;if(t)for(y=0;y<o;y++)if(k=y*i,y<c)for(M=h;M<i;M++)t[k+M]=0;else for(M=0;M<i;M++)t[k+M]=0;else for(t=new Uint8Array(i*o),R.mask=t,y=0;y<c;y++)for(k=y*i,M=0;M<h;M++)t[k+M]=1}return R}async _open(t){this.datasetName=this.url.slice(this.url.lastIndexOf("/")+1);const e=t?t.signal:null,s=await this.request(this.url,{responseType:"xml",signal:e}),{rasterInfo:r,files:i}=this._parseHeader(s.data),{skipMapInfo:o,skipExtensions:n=[]}=this.ioConfig;if(!n.includes("aux.xml")&&!o){const e=await this._fetchAuxiliaryData(t);null!=e&&(r.statistics=e.statistics??r.statistics,r.histograms=e.histograms,e.histograms&&null==r.statistics&&(r.statistics=p(e.histograms)))}o&&this.updateImageSpaceRasterInfo(r),this._set("rasterInfo",r),this._files=i;const a=await this.request(i.index,{responseType:"array-buffer",signal:e});this._storageIndex=w(a.data);const{blockWidth:l,blockHeight:f}=this.rasterInfo.storageInfo,u=this.rasterInfo.storageInfo.pyramidScalingFactor,{width:h,height:c}=this.rasterInfo,m=[],g=this._getBandSegmentCount();let d=0,y=-1;for(;d<this._storageIndex.length;){y++;const t=Math.ceil(h/l/u**y)-1,e=Math.ceil(c/f/u**y)-1;d+=(t+1)*(e+1)*g*4,m.push({maxRow:e,maxCol:t,minCol:0,minRow:0})}this.rasterInfo.storageInfo.blockBoundary=m,y>0&&(this.rasterInfo.storageInfo.firstPyramidLevel=1,this.rasterInfo.storageInfo.maximumPyramidLevel=y),this.updateTileInfo()}_getBandSegmentCount(){return this._isBsq?this.rasterInfo.bandCount:1}_getTileLocation(t,e,s){const{blockWidth:r,blockHeight:i,pyramidScalingFactor:o}=this.rasterInfo.storageInfo,{width:n,height:a}=this.rasterInfo,l=this._getBandSegmentCount();let f,u,h,c=0,p=0;for(h=0;h<t;h++)p=o**h,f=Math.ceil(n/r/p),u=Math.ceil(a/i/p),c+=f*u;p=o**t,f=Math.ceil(n/r/p),u=Math.ceil(a/i/p),c+=e*f+s,c*=4*l;const m=this._storageIndex.subarray(c,c+4*l);let g=0,d=0;const y=[];for(let x=0;x<l;x++)g=m[4*x]*2**32+m[4*x+1],d=g+m[4*x+2]*2**32+m[4*x+3]-1,y.push({from:g,to:d});return{ranges:y,actualTileWidth:s<f-1?r:Math.ceil(n/p)-r*(f-1),actualTileHeight:e<u-1?i:Math.ceil(a/p)-i*(u-1)}}_parseHeader(t){const s=u(t,"MRF_META/Raster");if(!s)throw new e("mrf:open","not a valid MRF format");const r=u(s,"Size"),a=parseInt(r.getAttribute("x"),10),f=parseInt(r.getAttribute("y"),10),c=parseInt(r.getAttribute("c"),10),p=(h(s,"Compression")||"none").toLowerCase();if(!x.has(p))throw new e("mrf:open","currently does not support compression "+p);const m=h(s,"DataType")||"UInt8",b=y.get(m.toLowerCase());if(null==b)throw new e("mrf:open","currently does not support pixel type "+m);const w=u(s,"PageSize"),I=parseInt(w.getAttribute("x"),10),_=parseInt(w.getAttribute("y"),10),A=w.getAttribute("c"),F=A?A===String(c):x.get(p).isOneSegment;this._isBsq=!F;const R=u(s,"DataValues");let S;if(R){const t=R.getAttribute("NoData");null!=t&&(S=t.trim().split(" ").map(t=>parseFloat(t)))}if(u(t,"MRF_META/CachedSource"))throw new e("mrf:open","currently does not support MRF referencing other data files");const M=u(t,"MRF_META/GeoTags"),k=u(M,"BoundingBox");let C,T=!1;if(null!=k){const t=parseFloat(k.getAttribute("minx")),e=parseFloat(k.getAttribute("miny")),s=parseFloat(k.getAttribute("maxx")),r=parseFloat(k.getAttribute("maxy")),o=h(M,"Projection")||"";let a=n.WGS84;if("LOCAL_CS[]"!==o)if(o.toLowerCase().startsWith("epsg:")){const t=Number(o.slice(5));isNaN(t)||0===t||(a=new n({wkid:t}))}else a=l(o)??n.WGS84;else T=!0,a=new n({wkid:3857});C=new i(t,e,s,r),C.spatialReference=a}else T=!0,C=new i({xmin:-.5,ymin:.5-f,xmax:a-.5,ymax:.5,spatialReference:new n({wkid:3857})});const j=u(t,"MRF_META/Rsets"),B=parseInt(j?.getAttribute("scale")||"2",10),L=C.spatialReference,E=new d({origin:new o({x:C.xmin,y:C.ymax,spatialReference:L}),blockWidth:I,blockHeight:_,pyramidBlockWidth:I,pyramidBlockHeight:_,compression:p,pyramidScalingFactor:B}),P=new o({x:C.width/a,y:C.height/f,spatialReference:L}),U=new g({width:a,height:f,extent:C,isPseudoSpatialReference:T,spatialReference:L,bandCount:c,pixelType:b,pixelSize:P,noDataValue:S,storageInfo:E}),q=this._getAuxFullPath(h(s,"DataFile")),W=this._getAuxFullPath(h(s,"IndexFile"));return{rasterInfo:U,files:{mrf:this.url,index:W||this.url.replace(".mrf",".idx"),data:q||this.url.replace(".mrf",x.get(p).blobExtension)}}}_getAuxFullPath(t){if(!t)return null;if(t.includes("\\"))return null;if(t.includes("/"))return t.startsWith(new URL(this.url).origin)?t:null;return`${this.url.slice(0,this.url.lastIndexOf("/"))}/${t}`}async _fetchAuxiliaryData(t){try{const{data:e}=await this.request(this.url+".aux.xml",{responseType:"xml",signal:t?.signal});return f(e)}catch{return null}}};function w(t){if(t.byteLength%16>0)throw new Error("invalid array buffer must be multiples of 16");let e;if(c){const s=new Uint8Array(t),r=new ArrayBuffer(t.byteLength),i=new Uint8Array(r);for(let e=0;e<t.byteLength/4;e++)for(let t=0;t<4;t++)i[4*e+t]=s[4*e+3-t];e=new Uint32Array(r)}else e=new Uint32Array(t);return e}t([s()],b.prototype,"_files",void 0),t([s()],b.prototype,"_storageIndex",void 0),t([s()],b.prototype,"_isBsq",void 0),t([s({type:String,json:{write:!0}})],b.prototype,"datasetFormat",void 0),b=t([r("esri.layers.raster.datasets.MRFRaster")],b);const I=b;export{I as default};
|