openstack-uicore-foundation
Version:
ui reactjs components for openstack marketing site
1 lines • 86.4 kB
JavaScript
!function(A,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],e):"object"==typeof exports?exports["openstack-uicore-foundation"]=e():A["openstack-uicore-foundation"]=e()}(this,(()=>(()=>{"use strict";var A={8418:(A,e,t)=>{t.d(e,{j:()=>u});var r=t(2015),o=t.n(r);const n=require("extend");var s=t.n(n);require("dropzone/dist/dropzone.css");const i=A=>o().createElement("div",{"data-filetype":A.filetype,className:"filepicker-file-icon"});var l=t(9825),a=t.n(l),g=t(2183),C=t(3195),c=t(8853);let E=null;class u extends o().Component{constructor(A){super(A),this.dropzoneRef=o().createRef(),this.state={files:[]},this.onUploadComplete=this.onUploadComplete.bind(this),this.onError=this.onError.bind(this),this.activeXHRs=new Map,this.chunkQueue=[],this.chunksInFlight=0}onError(A,e){this.props.onError&&this.props.onError(A,e,this.props.id)}onUploadComplete(A){this.props.onUploadComplete&&this.props.onUploadComplete(A,this.props.id,this.props.data)}processChunkQueue(){const A=this.props.maxConcurrentChunks||6;for(;this.chunkQueue.length>0&&this.chunksInFlight<A;){const{files:A,dataBlocks:e}=this.chunkQueue.shift();this.chunksInFlight++,this._originalUploadData(A,e)}}setupChunkThrottle(){this.dropzone&&this.dropzone._uploadData&&(this._originalUploadData=this.dropzone._uploadData.bind(this.dropzone),this.dropzone._uploadData=(A,e)=>{1===e.length&&void 0!==e[0].chunkIndex?(this.chunkQueue.push({files:A,dataBlocks:e}),this.processChunkQueue()):this._originalUploadData(A,e)})}onChunkComplete(){this.chunksInFlight=Math.max(0,this.chunksInFlight-1),this.processChunkQueue()}pollUploadStatus(A,e,t){if(t._pollingActive)return;t._pollingActive=!0;const r=`${e}/status/${A}`;let o=0;this._pollInterval=setInterval((async()=>{if(o++,o>300)return clearInterval(this._pollInterval),this._pollInterval=null,t._pollingActive=!1,void this.onError({message:"Upload timed out"});try{const A=await(0,g.getAccessToken)(),e=await fetch(r,{headers:{Authorization:`Bearer ${A}`}}),o=await e.json();"complete"===o.status?(clearInterval(this._pollInterval),this._pollInterval=null,t._pollingActive=!1,null!=t&&t._chunksUploadedDone&&t._chunksUploadedDone(),this.onUploadComplete(o)):"error"===o.status&&(clearInterval(this._pollInterval),this._pollInterval=null,t._pollingActive=!1,this.onError(o))}catch(A){clearInterval(this._pollInterval),this._pollInterval=null,t._pollingActive=!1,this.onError(A)}}),2e3)}getDjsConfig(){let A=null;const e={url:this.props.config.postUrl?this.props.config.postUrl:null};if(null===e.url)throw new Error("missing postUrl");return A=this.props.djsConfig?s()(!0,{},e,this.props.djsConfig):e,A.accept=async(e,t)=>{try{e.accessToken=await(0,g.getAccessToken)(),e.md5=await(0,c.Zq)(e),e.fileSize=e.size}catch(A){return console.log(A),this.onError(A),A.message&&A.message.startsWith(C.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR)||(0,g.initLogOut)(),void t(A.message||"Auth error")}A.maxFiles&&A.maxFiles<this.state.files.length+this.props.uploadCount?t("Max files reached."):t()},A.chunksUploaded=(A,e)=>{A._asyncProcessing?A._chunksUploadedDone=e:e()},A}componentDidMount(){if(!this.dropzoneRef.current)return;const A=this.getDjsConfig();E=E||t(4999),E.autoDiscover=!1,this.props.config.postUrl||this.props.eventHandlers.drop||console.info('Neither postUrl nor a "drop" eventHandler specified, the React-Dropzone component might misbehave.');const e=this.dropzoneRef.current;if(!e)throw new Error("Dropzone node not found");this.dropzone=new E(e,A),this.setupChunkThrottle(),this.setupEvents()}componentWillUnmount(){if(this._pollInterval&&(clearInterval(this._pollInterval),this._pollInterval=null),this.chunkQueue=[],this.chunksInFlight=0,this.activeXHRs.forEach(((A,e)=>{A.forEach((A=>{A.readyState!==XMLHttpRequest.DONE&&A.abort()}))})),this.activeXHRs.clear(),this.dropzone){const A=this.dropzone.getActiveFiles();A.length>0?(A.forEach((A=>{this.dropzone.cancelUpload(A)})),this.dropzone=this.destroy(this.dropzone)):this.dropzone=this.destroy(this.dropzone)}}componentDidUpdate(){const{config:A,djsConfig:e}=this.props,t=e||{},r=A&&A.postUrl?{url:A.postUrl}:{};if(this.queueDestroy=!1,!this.dropzone){const A=this.dropzoneRef.current;if(!A)throw new Error("Dropzone node not found");this.dropzone=new E(A,this.getDjsConfig()),this.setupChunkThrottle(),this.setupEvents()}this.dropzone.options=s()(!0,{},this.dropzone.options,t,r)}render(){const A=[],{files:e}=this.state,{config:t}=this.props,r=this.props.className?"filepicker dropzone "+this.props.className:"filepicker dropzone";if(t.showFiletypeIcon&&t.iconFiletypes&&(!e||e.length<1))for(var n=0;n<this.props.config.iconFiletypes.length;n+=1)A.push(o().createElement(i,{filetype:t.iconFiletypes[n],key:"icon-component"+n}));return!this.props.config.postUrl&&this.props.action?o().createElement("form",{ref:this.dropzoneRef,action:this.props.action,className:r},A,this.props.children):o().createElement("div",{ref:this.dropzoneRef,id:this.props.id,className:r}," ",A," ",this.props.children," ")}setupEvents(){const A=this.props.eventHandlers;if(this.dropzone&&A){for(var e in A)if(A.hasOwnProperty(e)&&A[e])if("[object Array]"===Object.prototype.toString.call(A[e]))for(var t=0;t<A[e].length;t+=1)"init"===e?A[e][t](this.dropzone):this.dropzone.on(e,A[e][t]);else"init"===e?A[e](this.dropzone):this.dropzone.on(e,A[e]);this.dropzone.on("addedfile",(async A=>{if(!A)return;const e=this.state.files||[];e.push(A),this.setState({files:e})})),this.dropzone.on("removedfile",(A=>{if(!A)return;const e=this.activeXHRs.get(A);e&&(e.forEach((A=>{A.readyState!==XMLHttpRequest.DONE&&A.abort()})),this.activeXHRs.delete(A));const t=this.state.files||[];t.forEach(((e,r)=>{e.name===A.name&&e.size===A.size&&t.splice(r,1)})),this.setState({files:t})})),this.dropzone.on("uploadprogress",((A,e,t)=>{const r=Math.max(t,A._completedBytes||0);if(e=Math.min(r/A.size*100,100),A.previewElement){let t=A.previewElement.querySelectorAll("[data-dz-uploadprogress]");t.length>0&&(t=t[0]),t&&(t.style.width=e+"%")}})),this.dropzone.on("sending",((A,e,t)=>{null!=A&&A.accessToken&&e.setRequestHeader("Authorization",`Bearer ${A.accessToken}`),null!=A&&A.md5&&t.append("md5",A.md5),t.append("size",String((null==A?void 0:A.size)||0)),console.log(`DropzoneJS::sending md5 ${null==A?void 0:A.md5} size ${null==A?void 0:A.size}`),this.activeXHRs.has(A)||this.activeXHRs.set(A,[]),this.activeXHRs.get(A).push(e);let r=this,o=e.onload;e.onload=function(t){var n;const s=r.activeXHRs.get(A);if(s){const A=s.indexOf(e);A>-1&&s.splice(A,1)}r.onChunkComplete();const i=(null===(n=r.dropzone)||void 0===n||null===(n=n.options)||void 0===n?void 0:n.chunkSize)||2e6;let l;A._completedBytes=Math.min((A._completedBytes||0)+i,A.size);try{l=JSON.parse(e.responseText)}catch(A){l={}}if(202==(null==e?void 0:e.status)&&l.file_id&&(A._asyncProcessing=!0),o(t),200==(null==e?void 0:e.status))"string"==typeof l.name&&r.onUploadComplete(l);else if(202==(null==e?void 0:e.status)&&l.file_id){const e=r.props.config.postUrl;r.pollUploadStatus(l.file_id,e,A)}else 200!=(null==e?void 0:e.status)&&202!=(null==e?void 0:e.status)&&r.onError(l,null==e?void 0:e.status)};let n=e.onerror;e.onerror=function(A){r.onChunkComplete(),n&&n(A)}})),this.dropzone.on("error",((A,e)=>{console.log("DropzoneJS::error",e),this.onError(e)}))}}destroy(A){return A.off(),A.destroy()}}u.defaultProps={djsConfig:{},config:{},eventHandlers:{},data:{}},u.propTypes={id:a().string.isRequired}},288:(A,e,t)=>{t.d(e,{default:()=>b});var r=t(1116),o=t.n(r),n=t(2015),s=t.n(n),i=t(6842),l=t.n(i),a=t(8619);const g=require("@mui/icons-material/UploadFile");var C=t.n(g),c=t(6084),E=t.n(c),u=t(8177),p=t.n(u);const d=require("@mui/icons-material/ErrorOutline");var Q=t.n(d),B=t(4325),I=t.n(B),w=t(6031),f=t.n(w),H=t(2462),h=t.n(H),m=t(8418);const y=["onAddedFile","onUploadProgress","onFileRemoved","onFileCompleted","onFileError","onDropzoneReady","eventHandlers","children"];function v(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(A,e).enumerable}))),t.push.apply(t,r)}return t}function D(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?v(Object(t),!0).forEach((function(e){o()(A,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach((function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}))}return A}const k=A=>{let{onAddedFile:e,onUploadProgress:t,onFileRemoved:r,onFileCompleted:o,onFileError:n,onDropzoneReady:i,eventHandlers:l={},children:a}=A,g=h()(A,y);const C=D(D({},l),{},{init:A=>{i&&i(A),l.init&&l.init(A)},addedfile:A=>{e&&e(A),l.addedfile&&l.addedfile(A)},removedfile:A=>{r&&r(A),l.removedfile&&l.removedfile(A)},uploadprogress:(A,e,r)=>{t&&t(A,A.size>0?r/A.size*100:0),l.uploadprogress&&l.uploadprogress(A,e,r)},success:A=>{o&&o(A),l.success&&l.success(A)},error:(A,e)=>{n&&n(A,e),l.error&&l.error(A,e)}});return s().createElement(m.j,f()({},g,{eventHandlers:C}),a)};var S=t(6220),U=t(1788);function R(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(A,e).enumerable}))),t.push.apply(t,r)}return t}function P(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?R(Object(t),!0).forEach((function(e){o()(A,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):R(Object(t)).forEach((function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}))}return A}const T={display:"flex",alignItems:"center",py:1.5,mb:1},O=A=>A?A>=1048576?`${Math.round(A/1048576)} MB`:`${Math.round(A/1024)} KB`:"0 KB",b=({value:A=[],onRemove:e,canAdd:t=!0,canDelete:r=!0,mediaType:o,postUrl:i,maxFiles:g=1,timeOut:c,onUploadComplete:u,onUploadStart:d=null,djsConfig:B,id:w,parallelChunkUploads:f=!1,maxConcurrentChunks:H=6,onError:h=()=>{},getAllowedExtensions:m=null,getMaxSize:y=null,error:v,label:D,helpText:R})=>{const b=(0,n.useRef)(null),[X,G]=(0,n.useState)([]),[x,K]=(0,n.useState)([]),[L,J]=(0,n.useState)({}),z=(0,n.useRef)({});z.current=L;const j=(0,n.useRef)([]);j.current=X,(0,n.useEffect)((()=>()=>{Object.values(z.current).forEach((A=>{A&&URL.revokeObjectURL(A)})),j.current.forEach((A=>{A.previewUrl&&URL.revokeObjectURL(A.previewUrl)}))}),[]);const F=(0,n.useMemo)((()=>{var A;return m?m():(null==o||null===(A=o.type)||void 0===A||null===(A=A.allowed_extensions)||void 0===A?void 0:A.map((A=>`.${A.toLowerCase()}`)).join(","))??""}),[m,o]),M=(0,n.useMemo)((()=>y?y():o?o.max_size/1048576:100),[y,o]),N=(0,n.useMemo)((()=>!g||A.length<g),[g,A.length]),Y=(0,n.useMemo)((()=>N&&0===X.length&&0===x.length),[N,X.length,x.length]),W=(0,n.useMemo)((()=>e?{removedfile:e}:{}),[e]),q=(0,n.useMemo)((()=>P({paramName:"file",maxFilesize:M,timeout:c||6e5,chunking:!0,retryChunks:!0,parallelChunkUploads:f,addRemoveLinks:!0,maxFiles:g,acceptedFiles:F,dictDefaultMessage:""},B)),[M,c,f,g,F,B]),V=(0,n.useMemo)((()=>({showFiletypeIcon:!1,postUrl:i})),[i]),Z=(0,n.useMemo)((()=>({media_type:o,media_upload:A})),[o,A]),_=(0,n.useMemo)((()=>{if(!F)return"";const A=F.split(",").map((A=>A.trim().replace(".","").toUpperCase())).filter(Boolean);return 0===A.length?"":1===A.length?A[0]:`${A.slice(0,-1).join(", ")} or ${A[A.length-1]}`}),[F]),$=(0,n.useCallback)((A=>t=>{t.preventDefault();const r=L[A.filename];r&&(URL.revokeObjectURL(r),J((e=>{const t=P({},e);return delete t[A.filename],t}))),e(A)}),[e,L]),AA=(0,n.useCallback)((A=>{b.current=A}),[]),eA=(0,n.useCallback)((A=>{var e;const t=null!==(e=A.type)&&void 0!==e&&e.startsWith("image/")?URL.createObjectURL(A):null;G((e=>[...e,{name:A.name,size:A.size,progress:0,complete:!1,previewUrl:t}])),d&&d(A)}),[d]),tA=(0,n.useCallback)(((A,e)=>{G((t=>t.map((t=>t.name===A.name&&t.size===A.size?P(P({},t),{},{progress:e}):t))))}),[]),rA=(0,n.useCallback)((A=>{const e=j.current.find((e=>e.name===A.name&&e.size===A.size));null!=e&&e.previewUrl&&URL.revokeObjectURL(e.previewUrl),G((e=>e.filter((e=>!(e.name===A.name&&e.size===A.size)))))}),[]),oA=(0,n.useCallback)((A=>{A._asyncProcessing||G((e=>e.map((e=>e.name===A.name&&e.size===A.size?P(P({},e),{},{progress:100,complete:!0}):e))))}),[]);(0,n.useLayoutEffect)((()=>{const e=j.current;if(0===e.length||0===A.length)return;const t=new Set(A.map((A=>A.filename))),r={};e.forEach((A=>{A.complete&&A.serverFilename&&A.previewUrl&&t.has(A.serverFilename)&&(r[A.serverFilename]=A.previewUrl)})),Object.keys(r).length>0&&J((A=>P(P({},A),r))),G((A=>A.filter((A=>!A.complete||!!A.serverFilename&&!t.has(A.serverFilename)))))}),[A]);const nA=(0,n.useCallback)(((A,e)=>{G((e=>{const t=e.find((e=>e.name===A.name&&e.size===A.size));return null!=t&&t.previewUrl&&URL.revokeObjectURL(t.previewUrl),e.filter((e=>!(e.name===A.name&&e.size===A.size)))})),K((t=>[...t,{name:A.name,size:A.size,message:e}]))}),[]),sA=(0,n.useCallback)((A=>{if(b.current){var e;const t=null===(e=b.current.files)||void 0===e?void 0:e.find((e=>e.name===A.name&&e.size===A.size));t&&b.current.removeFile(t)}K((e=>e.filter((e=>!(e.name===A.name&&e.size===A.size)))))}),[]),iA=(0,n.useCallback)((A=>{const e=j.current.find((e=>e.name===A.name&&e.size===A.size));if(null!=e&&e.previewUrl&&URL.revokeObjectURL(e.previewUrl),G((e=>e.filter((e=>!(e.name===A.name&&e.size===A.size))))),b.current){var t;const e=null===(t=b.current.files)||void 0===t?void 0:t.find((e=>e.name===A.name&&e.size===A.size));e&&b.current.removeFile(e)}}),[]),lA=(0,n.useCallback)(((A,e,t)=>{G((e=>{const t=null==A?void 0:A.name;let r;if(null!=A&&A.original_name)r=e.find((e=>e.name===A.original_name&&!e.serverFilename));else{const t=null!=A&&A.size?e.find((e=>e.size===A.size&&e.previewUrl&&!e.serverFilename)):null;r=t??(null!=A&&A.size?e.find((e=>e.size===A.size&&!e.previewUrl&&!e.serverFilename)):null)}return e.map((A=>A!==r?A:P(P({},A),{},{complete:!0},t?{serverFilename:t}:{})))})),u&&u(A,e,t)}),[u]);return s().createElement(a.Box,{className:"upload-input-v3"},D&&s().createElement(a.Typography,{variant:"subtitle1",fontWeight:600,gutterBottom:!0},D),R&&s().createElement(a.Typography,{variant:"body2",color:"text.secondary",gutterBottom:!0,sx:{mb:2}},R),N&&s().createElement(a.Box,{sx:{mb:2,display:Y?"block":"none"}},(()=>i?t?s().createElement(k,{id:w,djsConfig:q,config:V,eventHandlers:W,data:Z,uploadCount:A.length,onUploadComplete:lA,onError:h,onDropzoneReady:AA,onAddedFile:eA,onUploadProgress:tA,onFileRemoved:rA,onFileCompleted:oA,onFileError:nA,maxConcurrentChunks:H},s().createElement(a.Box,{className:"dz-custom-content"},s().createElement(C(),{className:"dz-custom-icon"}),s().createElement(a.Typography,{variant:"body2",className:"dz-custom-message"},s().createElement("span",{className:"dz-click-text"},l().translate("upload_input_v3.click_upload"))," ",l().translate("upload_input_v3.drag_and_drop")),(_||M)&&s().createElement(a.Typography,{variant:"caption",className:"dz-custom-hint"},_?`${_} files`:"",M?` (max. ${M}MB)`:""))):s().createElement(a.Alert,{severity:"warning",sx:{borderRadius:2}},l().translate("upload_input_v3.upload_disabled")):s().createElement(a.Alert,{severity:"error",sx:{borderRadius:2}},l().translate("upload_input_v3.no_post_url")))()),v&&s().createElement(a.Alert,{severity:"error",sx:{mb:2,borderRadius:2}},v),X.length>0&&s().createElement(a.Box,{sx:{mt:2}},X.map(((A,e)=>s().createElement(a.Box,{key:`uploading-${e}`,sx:T},s().createElement(a.Box,{sx:{display:"flex",alignItems:"center",mr:2,width:64,height:64,flexShrink:0}},A.previewUrl?s().createElement(S.default,{alt:A.name,src:A.previewUrl,placeholderSrc:U}):s().createElement(a.Box,{sx:{color:"primary.main",display:"flex",alignItems:"center"}},s().createElement(C(),{fontSize:"medium"}))),s().createElement(a.Box,{sx:{flex:1,minWidth:0}},s().createElement(a.Typography,{variant:"body2",fontWeight:500,sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},A.name),s().createElement(a.Typography,{variant:"caption",color:"text.secondary"},O(A.size)," · ",A.complete?"Complete":"Loading"),!A.complete&&s().createElement(a.LinearProgress,{variant:"determinate",value:A.progress,sx:{mt:.5,borderRadius:1}})),s().createElement(a.Box,{sx:{display:"flex",alignItems:"center",gap:1}},s().createElement(a.IconButton,{size:"small",onClick:()=>iA(A),sx:{color:"text.secondary","&:hover":{color:"error.main"}}},s().createElement(E(),null)),A.complete&&s().createElement(p(),{sx:{color:"success.main",fontSize:28}})))))),x.length>0&&s().createElement(a.Box,{sx:{mt:2}},x.map(((A,e)=>s().createElement(a.Box,{key:`error-${e}`,sx:T},s().createElement(a.Box,{sx:{color:"error.main",display:"flex",alignItems:"center",mr:2,minWidth:32}},s().createElement(Q(),{fontSize:"medium"})),s().createElement(a.Box,{sx:{flex:1,minWidth:0}},s().createElement(a.Typography,{variant:"body2",fontWeight:500,sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},A.name),s().createElement(a.Typography,{variant:"caption",color:"error"},A.message)),s().createElement(a.IconButton,{size:"small",onClick:()=>sA(A),sx:{color:"error.main"}},s().createElement(I(),{fontSize:"small"})))))),A.length>0&&s().createElement(a.Box,{sx:{mt:2}},A.map(((A,t)=>{const o=A.filename,n=O(A.size);let i=(null==A?void 0:A.private_url)||(null==A?void 0:A.public_url)||(null==A?void 0:A.file_url);"#"===i&&(i=null==A?void 0:A.public_url);const g=i?i.replace("?dl=0","?raw=1"):o,C=L[o]||g;return s().createElement(a.Box,{key:`uploaded-${t}`,sx:T},s().createElement(a.Box,{sx:{display:"flex",alignItems:"center",mr:2,width:64,height:64,flexShrink:0}},s().createElement("a",{href:i,target:"_blank",title:l().translate("upload_input_v3.see_preview")},s().createElement(S.default,{alt:o,src:C,placeholderSrc:U}))),s().createElement(a.Box,{sx:{flex:1,minWidth:0}},s().createElement(a.Typography,{component:"a",href:i,target:"_blank",rel:"noreferrer",title:l().translate("upload_input_v3.preview_file"),download:!0,variant:"body2",fontWeight:500,sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",color:"primary.main",textDecoration:"none","&:hover":{textDecoration:"underline"}}},o),s().createElement(a.Typography,{variant:"caption",color:"text.secondary"},n," · ",l().translate("upload_input_v3.complete"))),s().createElement(a.Box,{sx:{display:"flex",alignItems:"center",gap:1}},e&&r&&s().createElement(a.IconButton,{size:"small",onClick:$(A),sx:{color:"text.secondary","&:hover":{color:"error.main"}}},s().createElement(E(),null)),s().createElement(p(),{sx:{color:"success.main",fontSize:28}})))}))))}},6220:(A,e,t)=>{t.d(e,{default:()=>f});var r=t(6031),o=t.n(r),n=t(1116),s=t.n(n),i=t(2462),l=t.n(i),a=t(2015),g=t.n(a);const C="T1PEDYso224efj98hUw9",c="HydBuzzegFMoqMkrptg7",E="Pq0tg32DAJ33TmIQMvMs";var u=t(8810),p=t(2138),d=t(1033),Q=t(2644),B=t(1788);const I=["placeholderSrc","src"];function w(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(A,e).enumerable}))),t.push.apply(t,r)}return t}const f=A=>{let{placeholderSrc:e,src:t}=A,r=l()(A,I);const n=(null==t?void 0:t.startsWith("data:"))||(null==t?void 0:t.startsWith("blob:")),[i,f]=(0,a.useState)(n?t:e||t),[H,h]=(0,a.useState)(n?c:C);return(0,a.useEffect)((()=>{if(null!=t&&t.startsWith("data:")||null!=t&&t.startsWith("blob:"))return f(t),void h(c);let A=!1;const e=new Image,r=t?t.split(".").pop():null;return e.src=t,e.onload=()=>{A||(f(t),h(c))},e.onerror=()=>{A||(e.onerror=null,r&&r.toString().toLowerCase().includes("pdf")?f(u):r&&r.toString().toLowerCase().includes("mov")?f(p):r&&r.toString().toLowerCase().includes("mp4")?f(d):r&&r.toString().toLowerCase().includes("csv")?f(Q):f(B),h(c))},()=>{A=!0}}),[t]),g().createElement("img",o()({},function(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?w(Object(t),!0).forEach((function(e){s()(A,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):w(Object(t)).forEach((function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}))}return A}({src:i},r),{alt:r.alt||"",className:`${E} ${H}`}))}},5097:(A,e,t)=>{t(1116),t(6842),t(9087),t(9558),t(2183)},3195:(A,e,t)=>{t.d(e,{AUTH_ERROR_ACCESS_TOKEN_EXPIRED:()=>n,AUTH_ERROR_LOCK_ACQUIRE_ERROR:()=>s,AUTH_ERROR_MISSING_AUTH_INFO:()=>r,AUTH_ERROR_MISSING_REFRESH_TOKEN:()=>o,AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR:()=>l,AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR:()=>i});const r="AUTH_ERROR_MISSING_AUTH_INFO",o="AUTH_ERROR_MISSING_REFRESH_TOKEN",n="AUTH_ERROR_ACCESS_TOKEN_EXPIRED",s="AUTH_ERROR_LOCK_ACQUIRE_ERROR",i="AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR",l="AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR"},2183:(A,e,t)=>{t.d(e,{getAccessToken:()=>I,initLogOut:()=>S});var r=t(9558),o=t(5812),n=t.n(o);t(806);const s=require("browser-tabs-lock");var i=t.n(s);const l=require("js-cookie");var a=t.n(l),g=t(8041),C=t.n(g),c=(t(9891),t(5097),t(8853),t(3195));const Lock=new(i()),GET_TOKEN_SILENTLY_LOCK_KEY="openstackuicore.lock.getTokenSilently",E="code",u="authInfo",p="idToken",d=A=>{let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t="";for(let r=0;r<A;r++)t+=e.charAt(Math.floor(62*Math.random()));return t},Q=async(A,e)=>{if(A===E&&D()){if(!e)throw h(),Error(c.AUTH_ERROR_MISSING_REFRESH_TOKEN);let A=await(async(A,e=5,t=1e3)=>{for(let r=0;r<e;r++)try{return await A()}catch(A){if(!A.message||!A.message.startsWith(c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR)||r===e-1)throw A;const o=t*Math.pow(2,r);console.log(`retryWithBackoff retry ${r+1}/${e} in ${o}ms`),await new Promise((A=>setTimeout(A,o)))}})((()=>w(e))),{access_token:t,expires_in:r,refresh_token:o,id_token:n}=A;return void 0===o&&(o=null),f(t,r,o,n),t}throw h(),Error(c.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)},B=async()=>{console.log("openstack-uicore-foundation::Security::methods::_getAccessToken");let A=H();if(!A)throw console.log("openstack-uicore-foundation::Security::methods::_getAccessToken AUTH_ERROR_MISSING_AUTH_INFO"),Error(c.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:e,expiresIn:t,accessTokenUpdatedAt:r,refreshToken:o}=A,s=v();const i=n()().unix();let l=i-r;return t-=60,console.log(`openstack-uicore-foundation::Security::methods::_getAccessToken now ${i} accessTokenUpdatedAt ${r} expiresIn ${t} timeElapsedSecs ${l}`),(l>=t||null==e)&&(console.log("openstack-uicore-foundation::Security::methods::_getAccessToken access token expired, refreshing it ..."),e=await Q(s,o)),e},I=async()=>{if("undefined"!=typeof navigator&&navigator.locks)return await navigator.locks.request(GET_TOKEN_SILENTLY_LOCK_KEY,(async A=>(console.log("openstack-uicore-foundation::Security::methods::getAccessToken web lock api",A),await B())));if(!await(0,r.retryPromise)((()=>Lock.acquireLock(GET_TOKEN_SILENTLY_LOCK_KEY,6e3)),10))throw Error(c.AUTH_ERROR_LOCK_ACQUIRE_ERROR);try{return await B()}finally{await Lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY)}},w=async A=>{let e=k(),t=y();const o={grant_type:"refresh_token",client_id:encodeURI(t),refresh_token:A},n=new AbortController,s=setTimeout((()=>n.abort()),1e4);let i,l;try{i=await fetch(`${e}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(o),signal:n.signal})}catch(A){throw console.log("refreshAccessToken network error:",A.message),Error(`${c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${A.message}`)}finally{clearTimeout(s)}if(!i.ok){if(console.log(`refreshAccessToken server error: ${i.status} - ${i.statusText}`),i.status>=500||408===i.status||429===i.status)throw Error(`${c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${i.status} - ${i.statusText}`);throw(0,r.setSessionClearingState)(!0),Error(`${c.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${i.status} - ${i.statusText}`)}try{l=await i.json()}catch(A){throw Error(`${c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: invalid JSON response from IDP`)}let{access_token:a,refresh_token:g,expires_in:C,id_token:E}=l;if(!a)throw(0,r.setSessionClearingState)(!0),Error(`${c.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: missing access_token in refresh response`);return{access_token:a,refresh_token:g,expires_in:C,id_token:E}},f=(A,e,t=null,o=null)=>{let n=H(),s={accessToken:A,expiresIn:e,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null==t&&n&&(t=n.refreshToken),null==o&&n&&(o=n.idToken),t&&(s.refreshToken=t),o?(s[p]=o,a().set(p,o,{secure:!0,sameSite:"Lax"})):a().remove(p),(0,r.putOnLocalStorage)(u,JSON.stringify(s))},H=()=>{try{let A=(0,r.getFromLocalStorage)(u,!1);return A?JSON.parse(A):null}catch(A){return null}},h=()=>{"undefined"!=typeof window&&((0,r.removeFromLocalStorage)(u),a().remove(p))},m=()=>{if("undefined"!=typeof window){const A=H();return A?A.idToken:null}return null},y=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,v=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",D=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),k=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,S=()=>{(0,r.getCurrentLocation)().replace(((A=null)=>{let e=k(),t=y(),o=C()(`${e}/oauth2/end-session`),n=d(16),s=`${(0,r.getOrigin)()}/auth/logout`;(0,r.putOnLocalStorage)("post_logout_state",n);const i={post_logout_redirect_uri:encodeURI(s),client_id:encodeURI(t),state:n};return A&&(i.id_token_hint=A),o.query(i)})(m()).toString())}},9087:(A,e,t)=>{t(2462),t(1116),t(806);var r=t(8041),o=t.n(r);t(9236),t(6842),t(9558),t(5097),t(2183),t(3209);o().escapeQuerySpace=!1;const n=A=>e=>({type:A,payload:e});n("RESET_LOADING"),n("START_LOADING"),n("STOP_LOADING")},3209:(A,e,t)=>{t.d(e,{tv:()=>r});const r=2},8853:(A,e,t)=>{t.d(e,{Zq:()=>n});const r=require("spark-md5");var o=t.n(r);require("crypto-js/sha256"),require("crypto-js/enc-base64url"),require("crypto-js/enc-hex"),"undefined"!=typeof window&&(window.crypto||window.msCrypto);const n=A=>new Promise(((e,t)=>{const r=2097152,n=new(o().ArrayBuffer),s=new FileReader;let i=0;function l(){const e=A.slice(i,i+r);s.readAsArrayBuffer(e)}s.onload=t=>{n.append(t.target.result),i+=r,i<A.size?l():e(n.end())},s.onerror=()=>t("Error reading the file"),l()}))},9558:(A,e,t)=>{t.d(e,{getCurrentLocation:()=>r,getFromLocalStorage:()=>s,getOrigin:()=>o,putOnLocalStorage:()=>n,removeFromLocalStorage:()=>i,retryPromise:()=>a,setSessionClearingState:()=>l});t(5812),t(8041);const r=()=>{let A="";return"undefined"!=typeof window&&(A=window.location,window.top&&(A=window.top.location)),A},o=()=>"undefined"!=typeof window?window.location.origin:null,n=(A,e)=>{"undefined"!=typeof window&&window.localStorage.setItem(A,e)},s=(A,e)=>{if("undefined"!=typeof window){let t=window.localStorage.getItem(A);return e&&(console.log(`getFromLocalStorage removing key ${A}`),i(A)),t}return null},i=A=>{"undefined"!=typeof window&&window.localStorage.removeItem(A)},l=A=>{"undefined"!=typeof window&&(window.clearing_session_state=A)},a=async(A,e=3)=>{for(let t=0;t<e;t++)if(await A())return!0;return!1}},2644:A=>{A.exports="data:image/png;base64,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"},1788:A=>{A.exports="data:image/png;base64,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KCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgCAdgdGDxhBAIxzz5LHHTXpCoDddMwKx9492YoZEwDjfHLJ406ZdAXAbjp1hWPvmGzFjAmAcW5b8rinTLoCYDetct/5L5OtmDEBMM4/LHnceUmOn3IIwA561pLH3Zfk5imHzJUAGOevljzumCTfNOUQgB1zcpLnLHnsh5N8esItsyUAxnnfCsd+/2QrAHbP/iz/IsD3TjkE/i/HJbkzi7efLPP1gjEzAbbKI5N8LMvft14yZibtbszyP6S3JfnCMTMBtsZvZfn71c8kOWHMTNp9c5b/QT2Q5I+SHDtkKcD8vTSr3af++piZkOxN8o9Z7Qf2XUn2jRgLMGM/lNXuSw8kOX/IUrjflVn9h/Zv4voAAMniIfw3ZvX70XcP2Aqf48gkf5vVf3j/K8nPZbWrXQHsiqOTfFeSf87q95/3Jnn65ifD53tWVv8BfnAI/F6S70lyTrygBdhNRyd5fJLnJbkuyb/l0O83f2HD22dpz+gBfNarkrxkTee6L4sfcoBdsXdN5/lQkqdl+c9j2VkCYD6OSfLHSb509BCAHfXpJF+R5K9HD5kDVwKcj7uyuOTvLaOHAOyge5NcFr/8P0sAzMttSb4myT+NHgKwQ+7L4gWDN44eMicCYH4+nOQZST44egjADrgzi8v9vnHwjtkRAPP0kSRfnuSmwTsAttmtSZ6Z5K2jh8zRul5VyfrdmeTNSW5PckEWb4EBYDnXJ3lukptHD5krjwDM33VJzkrya1k8jwXAQ/vLJM9OcnmSjw/eMmveBrhdzkzyg0lemOT4wVsA5uJAkj9M8sosnjp1HZQlCIDttC/JxUm+MclXJ3nU0DUAm/epJH+a5A+yeI7fW6hXJAB2w6OyeJrg9CSPSPKweH0HsDsOZHGtlE9kce3/DyX5+yze2w8AAAAAAAAAAAAAAAAAAAAAALB9/ht8xmXxSgNe+QAAAABJRU5ErkJggg=="},2138:A=>{A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAzeAAAM3gETUBB6AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAwB