define("application-livedata-exporter-translation-keys",{prefix:"livedata.exporter.",keys:"menuName panelTitle startExportButton download cancel delete deleting deleted deleteFailed startingExport startingExportFailed startingExportDone exportTitle properties filters filterItem sorting descendingSortItem ascendingSortItem".split(" ")});
require(["xwiki-l10n!application-livedata-exporter-translation-keys","moment","jquery"],function(f,q,v){class r{constructor(a){this.id="exporterPanel";this.name=f.menuName;this.title=f.panelTitle;this.icon="download";this.container=document.createElement("div");this.component="LiveDataAdvancedPanelExtension";this.order=5E3;this.liveData=a;a=document.createElement("button");a.addEventListener("click",g=>{this.startExport();g.preventDefault()});a.textContent=f.startExportButton;const b=document.createElement("span");
b.classList.add("buttonwrapper");b.appendChild(a);this.container.appendChild(b);this.exportList=document.createElement("ul");this.exportList.classList.add("export-list","list-group");this.container.appendChild(this.exportList);a=XWiki.Model.resolve("LiveDataExporter.Code.JobCSS",XWiki.EntityType.DOCUMENT);a=(new XWiki.Document(a)).getURL("get");fetch(a)}delay(a){return new Promise(b=>setTimeout(b,a))}updateStatus(a,b){a.querySelector(".ui-progress-bar").style.width=`${100*(b.progress?.offset||0)}%`;
let g=a.querySelector(".ui-progress-message");var e=b.log?.logEvents;e&&0<e.length&&(e=e[e.length-1]?.formattedMessage)&&(g.textContent=e);"FINISHED"===b.state&&(a.querySelector(".download").classList.remove("disabled"),a.querySelector(".delete").textContent=f["delete"])}createExportDescription(){const a=document.createElement("dl");a.classList.add("export-description");var b=document.createElement("dt");b.textContent=f.properties;a.appendChild(b);const g=this.liveData.data.meta.propertyDescriptors.reduce((c,
d)=>({...c,[d.id]:d}),{});b=this.liveData.data.query.properties.filter(c=>"_actions"!==c&&g[c].visible);const e=document.createElement("dd");e.textContent=b.map(c=>g[c].name).join(", ");a.appendChild(e);b=document.createElement("dt");b.textContent=f.filters;a.appendChild(b);this.liveData.data.query.filters.forEach(c=>{const d=this.liveData.getFilterDescriptor(c.property),h=g[c.property].name;let k=[];c.constraints.forEach(l=>{const n=d?.operators.find(m=>m.id===l.operator).name;let p=l.value;if("date"===
d.id){const m=p.split("/");2>=m.length&&(p=m.map(t=>{const u=q(t),w=d.dateFormat?q().toMomentFormatString(d.dateFormat):"YYYY/MM/DD HH:mm";return u.isValid()?u.format(w):t}).join(" - "))}k.push(n+" "+p)});c=document.createElement("dd");c.textContent=f.get("filterItem",h,k.join(", "));a.appendChild(c)});b=document.createElement("dt");b.textContent=f.sorting;a.appendChild(b);this.liveData.data.query.sort.forEach(c=>{const d=g[c.property].name,h=document.createElement("dd");h.textContent=c.descending?
f.get("descendingSortItem",d):f.get("ascendingSortItem",d);a.appendChild(h)});return a}startExport(){const a=this.createExportDescription(),b=new XWiki.widgets.Notification(f.startingExport,"inprogress"),g=`${XWiki.contextPath}/rest/liveData/export/csv?namespace=wiki:${encodeURIComponent(XWiki.currentWiki)}`;fetch(g,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({meta:this.liveData.data.meta,query:this.liveData.data.query,id:this.liveData.data.id,
data:{count:this.liveData.data.data.count}})}).then(async e=>{if(e.ok){b.replace(new XWiki.widgets.Notification(f.startingExportDone,"done"));e=await e.json();const d=document.createElement("li");d.classList.add("ui-progress","list-group-item");d.innerHTML='\x3cp\x3e\x3cstrong class\x3d"export-title"\x3e\x3c/strong\x3e\x3c/p\x3e\n\x3cdl class\x3d"export-description"\x3e\x3c/dl\x3e\n\x3cdiv class\x3d"ui-progress-background"\x3e\n\x3cdiv class\x3d"ui-progress-bar green" style\x3d"width: 0;"\x3e\x3c/div\x3e\x3c/div\x3e\n\x3cp class\x3d"ui-progress-message"\x3e\x3c/p\x3e\n\x3cdiv class\x3d"xform"\x3e\n\x3cdiv class\x3d"buttons"\x3e\n\x3cspan class\x3d"buttonwrapper"\x3e\x3ca class\x3d"button disabled download" download\x3e\x3c/a\x3e\x3c/span\x3e\x3cspan class\x3d"buttonwrapper"\x3e\x3cbutton class\x3d"secondary delete"\x3e\x3c/button\x3e\x3c/span\x3e\n\x3c/div\x3e\x3c/div\x3e';
this.exportList.appendChild(d);const h=`${XWiki.contextPath}/rest/liveData/export/csv?jobId=${encodeURIComponent(e.id)}`;d.querySelector(".export-description").replaceWith(a);d.querySelector(".export-title").textContent=f.get("exportTitle",e.id);var c=d.querySelector(".delete");c.textContent=f.cancel;c.addEventListener("click",k=>{const l=new XWiki.widgets.Notification(f.deleting,"inprogress");fetch(h,{method:"DELETE",body:null}).then(async n=>{n.ok?(l.replace(new XWiki.widgets.Notification(f.deleted,
"done")),d.parentNode?.removeChild(d)):l.replace(new XWiki.widgets.Notification(f.deleteFailed,"error"))});k.preventDefault()});c=d.querySelector(".download");c.textContent=f.download;c.href=h;this.updateStatus(d,e);if(c=e?.links?.find(k=>"self"===k.rel)?.href)for(c+="?log\x3dtrue",await this.delay(50);c&&("NONE"===e.state||"RUNNING"===e.state);)e=await (await fetch(c,{headers:{Accept:"application/json"}})).json(),this.updateStatus(d,e),await this.delay(1E3)}else b.replace(new XWiki.widgets.Notification(f.startFailed,
"error"))})}}document.addEventListener("xwiki:livedata:instanceCreated",function(a){a.detail.livedata.panels.find(b=>"exporterPanel"===b.id)||a.detail.livedata.registerPanel(new r(a.detail.livedata))});document.querySelectorAll(".liveData").forEach(a=>{(a=v(a).data("liveData"))&&!a.panels.find(b=>"exporterPanel"===b.id)&&a.registerPanel(new r(a))})});