persistableUrlUtils.js 2.3 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{unwrap as e}from"../core/maybe.js";import{makeAbsolute as r,makeRelative as t,isAbsolute as o,normalize as l,isDataProtocol as s,splitPathExtension as n,changeDomain as a,hasSameOrigin as u,getAppUrl as i}from"../core/urlUtils.js";function c(e,o){const l=o&&o.url&&o.url.path;if(e&&l&&(e=r(e,l,{preserveProtocolRelative:!0}),o.portalItem&&o.readResourcePaths)){const r=t(e,o.portalItem.itemUrl);null!=r&&v.test(r)&&o.readResourcePaths.push(o.portalItem.resourceFromPath(r).path)}return I(e,o&&o.portal)}function m(e,n,a=R.YES){if(null==e)return e;!o(e)&&n&&n.blockedRelativeUrls&&n.blockedRelativeUrls.push(e);let u=r(e);if(n){const r=n.verifyItemRelativeUrls&&n.verifyItemRelativeUrls.rootPath||n.url&&n.url.path;if(r){const o=I(r,n.portal);u=t(I(u,n.portal),o,o),null!=u&&u!==e&&n.verifyItemRelativeUrls&&n.verifyItemRelativeUrls.writtenUrls.push(u)}}return u=y(u,n?.portal),o(u)&&(u=l(u)),n?.resources&&n?.portalItem&&!o(u)&&!s(u)&&a===R.YES&&n.resources.toKeep.push({resource:n.portalItem.resourceFromPath(u),compress:!1}),u}function p(e,r,t){return c(e,t)}function f(e,r,t,o){const l=m(e,o);void 0!==l&&(r[t]=l)}const h=/\/items\/([^\/]+)\/resources\/(.*)/,v=/^\.\/resources\//;function U(e){return(e?.match(h)??null)?.[1]??null}function d(r){const t=r?.match(h)??null;if(null==t)return null;const o=t[2],l=o.lastIndexOf("/");if(-1===l){const{path:r,extension:t}=n(o);return{prefix:null,filename:r,extension:e(t)}}const{path:s,extension:a}=n(o.slice(l+1));return{prefix:o.slice(0,l),filename:s,extension:e(a)}}function y(e,r){return r&&!r.isPortal&&r.urlKey&&r.customBaseUrl?a(e,`${r.urlKey}.${r.customBaseUrl}`,r.portalHostname):e}function I(e,r){if(!r||r.isPortal||!r.urlKey||!r.customBaseUrl)return e;const t=`${r.urlKey}.${r.customBaseUrl}`,o=i();return u(o,`${o.scheme}://${t}`)?a(e,r.portalHostname,t):a(e,t,r.portalHostname)}var R;!function(e){e[e.YES=0]="YES",e[e.NO=1]="NO"}(R||(R={}));const x=Object.freeze(Object.defineProperty({__proto__:null,fromJSON:c,toJSON:m,read:p,write:f,itemIdFromResourceUrl:U,prefixAndFilenameFromResourceUrl:d,ensureMainOnlineDomain:y,get MarkKeep(){return R}},Symbol.toStringTag,{value:"Module"}));export{R as M,x as a,y as e,c as f,U as i,d as p,p as r,m as t,f as w};