{"version":3,"sources":["node_modules/@arcgis/core/layers/mixins/PortalLayer.js"],"sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport { _ as e } from \"../../chunks/tslib.es6.js\";\nimport t from \"../../config.js\";\nimport { id as r } from \"../../kernel.js\";\nimport s from \"../../request.js\";\nimport { result as i } from \"../../core/asyncUtils.js\";\nimport o from \"../../core/Error.js\";\nimport a from \"../../core/Logger.js\";\nimport { destroyMaybe as l } from \"../../core/maybe.js\";\nimport { throwIfAborted as n, isAbortError as p, throwIfAbortError as u } from \"../../core/promiseUtils.js\";\nimport { hasSameCanonicalPortal as c, normalize as m, hasSamePortal as d } from \"../../core/urlUtils.js\";\nimport { property as h } from \"../../core/accessorSupport/decorators/property.js\";\nimport \"../../core/accessorSupport/ensureType.js\";\nimport \"../../core/arrayUtils.js\";\nimport \"../../core/has.js\";\nimport { reader as f } from \"../../core/accessorSupport/decorators/reader.js\";\nimport { subclass as g } from \"../../core/accessorSupport/decorators/subclass.js\";\nimport { writer as y } from \"../../core/accessorSupport/decorators/writer.js\";\nimport { getOwningPortalUrl as I } from \"../support/layerUtils.js\";\nimport v from \"../../portal/Portal.js\";\nimport P from \"../../portal/PortalItem.js\";\nimport U from \"../../portal/PortalUser.js\";\nimport { getUserPrivileges as w } from \"../../portal/support/portalItemUtils.js\";\nconst j = j => {\n let _ = class extends j {\n constructor() {\n super(...arguments), this.resourceReferences = {\n portalItem: null,\n paths: []\n }, this.userHasEditingPrivileges = !0, this.userHasFullEditingPrivileges = !1, this.userHasUpdateItemPrivileges = !1;\n }\n destroy() {\n this.portalItem = l(this.portalItem), this.resourceReferences.portalItem = null, this.resourceReferences.paths.length = 0;\n }\n set portalItem(e) {\n e !== this._get(\"portalItem\") && (this.removeOrigin(\"portal-item\"), this._set(\"portalItem\", e));\n }\n readPortalItem(e, t, r) {\n if (t.itemId) return new P({\n id: t.itemId,\n portal: r?.portal\n });\n }\n writePortalItem(e, t) {\n e?.id && (t.itemId = e.id);\n }\n async loadFromPortal(e, t) {\n if (this.portalItem?.id) try {\n const {\n load: r\n } = await import(\"../../portal/support/layersLoader.js\");\n return n(t), await r({\n instance: this,\n supportedTypes: e.supportedTypes,\n validateItem: e.validateItem,\n supportsData: e.supportsData,\n layerModuleTypeMap: e.layerModuleTypeMap\n }, t);\n } catch (r) {\n throw p(r) || a.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\\n ${r}`), r;\n }\n }\n async finishLoadEditablePortalLayer(e) {\n this._set(\"userHasEditingPrivileges\", await this._fetchUserHasEditingPrivileges(e).catch(e => (u(e), !0)));\n }\n async setUserPrivileges(e, r) {\n if (!t.userPrivilegesApplied) return this.finishLoadEditablePortalLayer(r);\n if (this.url) try {\n const {\n features: {\n edit: t,\n fullEdit: s\n },\n content: {\n updateItem: i\n }\n } = await this._fetchUserPrivileges(e, r);\n this._set(\"userHasEditingPrivileges\", t), this._set(\"userHasFullEditingPrivileges\", s), this._set(\"userHasUpdateItemPrivileges\", i);\n } catch (s) {\n u(s);\n }\n }\n async _fetchUserPrivileges(e, t) {\n let s = this.portalItem;\n if (!e || !s || !s.loaded || s.sourceUrl) return this._fetchFallbackUserPrivileges(t);\n const i = e === s.id;\n if (i && s.portal.user) return w(s);\n let o, a;\n if (i) o = s.portal.url;else try {\n o = await I(this.url, t);\n } catch (m) {\n u(m);\n }\n if (!o || !c(o, s.portal.url)) return this._fetchFallbackUserPrivileges(t);\n try {\n const e = null != t ? t.signal : null;\n a = await r?.getCredential(`${o}/sharing`, {\n prompt: !1,\n signal: e\n });\n } catch (m) {\n u(m);\n }\n const l = !0,\n n = !1,\n p = !1;\n if (!a) return {\n features: {\n edit: l,\n fullEdit: n\n },\n content: {\n updateItem: p\n }\n };\n try {\n if (i ? await s.reload() : (s = new P({\n id: e,\n portal: {\n url: o\n }\n }), await s.load(t)), s.portal.user) return w(s);\n } catch (m) {\n u(m);\n }\n return {\n features: {\n edit: l,\n fullEdit: n\n },\n content: {\n updateItem: p\n }\n };\n }\n async _fetchFallbackUserPrivileges(e) {\n let t = !0;\n try {\n t = await this._fetchUserHasEditingPrivileges(e);\n } catch (r) {\n u(r);\n }\n return {\n features: {\n edit: t,\n fullEdit: !1\n },\n content: {\n updateItem: !1\n }\n };\n }\n async _fetchUserHasEditingPrivileges(e) {\n const t = this.url ? r?.findCredential(this.url) : null;\n if (!t) return !0;\n const s = E.credential === t ? E.user : await this._fetchEditingUser(e);\n return E.credential = t, E.user = s, null == s?.privileges || s.privileges.includes(\"features:user:edit\");\n }\n async _fetchEditingUser(e) {\n const t = this.portalItem?.portal?.user;\n if (t) return t;\n const o = r.findServerInfo(this.url ?? \"\");\n if (!o?.owningSystemUrl) return null;\n const a = `${o.owningSystemUrl}/sharing/rest`,\n l = v.getDefault();\n if (l && l.loaded && m(l.restUrl) === m(a)) return l.user;\n const n = `${a}/community/self`,\n p = null != e ? e.signal : null,\n u = await i(s(n, {\n authMode: \"no-prompt\",\n query: {\n f: \"json\"\n },\n signal: p\n }));\n return u.ok ? U.fromJSON(u.value.data) : null;\n }\n read(e, t) {\n t && (t.layer = this), super.read(e, t);\n }\n write(e, t) {\n const r = t?.portal,\n s = this.portalItem?.id && (this.portalItem.portal || v.getDefault());\n return r && s && !d(s.restUrl, r.restUrl) ? (t.messages && t.messages.push(new o(\"layer:cross-portal\", `The layer '${this.title} (${this.id})' cannot be persisted because it refers to an item on a different portal than the one being saved to. To save, set layer.portalItem to null or save to the same portal as the item associated with the layer`, {\n layer: this\n })), null) : super.write(e, {\n ...t,\n layer: this\n });\n }\n };\n return e([h({\n type: P\n })], _.prototype, \"portalItem\", null), e([f(\"web-document\", \"portalItem\", [\"itemId\"])], _.prototype, \"readPortalItem\", null), e([y(\"web-document\", \"portalItem\", {\n itemId: {\n type: String\n }\n })], _.prototype, \"writePortalItem\", null), e([h({\n clonable: !1\n })], _.prototype, \"resourceReferences\", void 0), e([h({\n type: Boolean,\n readOnly: !0\n })], _.prototype, \"userHasEditingPrivileges\", void 0), e([h({\n type: Boolean,\n readOnly: !0\n })], _.prototype, \"userHasFullEditingPrivileges\", void 0), e([h({\n type: Boolean,\n readOnly: !0\n })], _.prototype, \"userHasUpdateItemPrivileges\", void 0), _ = e([g(\"esri.layers.mixins.PortalLayer\")], _), _;\n },\n E = {\n credential: null,\n user: null\n };\nexport { j as PortalLayer };"],"mappings":"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","names":["j","_","e","t","r","s","p","o","a","u"],"x_google_ignoreList":[0]}