1"use strict";(self.webpackChunknodebb=self.webpackChunknodebb||[]).push([[7245,70565,83014,99617,3564],{12649:(E,g,o)=>{var h,p;h=[o(74344),o(63281),o(7927),o(50431)],p=function(a,y,c,f){const m={};return m.init=function(){$("#upload").on("click",function(){f.show({title:"[[admin/manage/uploads:upload-file]]",route:config.relative_path+"/api/admin/upload/file",params:{folder:ajaxify.data.currentFolder}},function(){ajaxify.refresh()})}),$(".delete").on("click",function(){const e=$(this).parents("[data-path]");y.confirm("[[admin/manage/uploads:confirm-delete]]",function(i){i&&a.del("/files",{path:e.attr("data-path")}).then(()=>{e.remove()}).catch(c.error)})}),$("#new-folder").on("click",async function(){y.prompt("[[admin/manage/uploads:name-new-folder]]",e=>{!e||!e.trim()||a.put("/files/folder",{path:ajaxify.data.currentFolder,folderName:e}).then(()=>{ajaxify.refresh()}).catch(c.error)})})},m}.apply(g,h),p!==void 0&&(E.exports=p)},74344:(E,g,o)=>{o.r(g),o.d(g,{del:()=>w,get:()=>e,head:()=>i,patch:()=>r,post:()=>u,put:()=>l});var h=o(85233),p=o.n(h),a=o(63281),y=o.n(a);const c=config.relative_path+"/api/v3";async function f(t,s){if(t.url=t.url.startsWith("/api")?config.relative_path+t.url:c+t.url,typeof s=="function"){m(t).then(n=>s(null,n),n=>s(n));return}try{return await m(t)}catch(n){if(n.message==="A valid login session was not found. Please log in and try again.")return(0,a.confirm)("[[error:api.reauth-required]]",_=>{_&&ajaxify.go("login")});throw n}}async function m(t){const{url:s}=t;delete t.url,t.data&&!(t.data instanceof FormData)&&(t.data=JSON.stringify(t.data||{}),t.headers["content-type"]="application/json; charset=utf-8"),{options:t}=await(0,h.fire)("filter:api.options",{options:t}),t.data&&(t.body=t.data,delete t.data);const n=await fetch(s,t),{headers:_}=n,A=_.get("content-type"),b=A&&A.startsWith("application/json");let d;if(t.method!=="head"&&(b?d=await n.json():d=await n.text()),!n.ok)throw d?new Error(b?d.status.message:d):new Error(n.statusText);return b&&d&&d.hasOwnProperty("status")&&d.hasOwnProperty("response")?d.response:d}function e(t,s,n){return f({url:t+(s&&Object.keys(s).length?"?"+$.param(s):"")},n)}function i(t,s,n){return f({url:t+(s&&Object.keys(s).length?"?"+$.param(s):""),method:"head"},n)}function u(t,s,n){return f({url:t,method:"post",data:s,headers:{"x-csrf-token":config.csrf_token}},n)}function r(t,s,n){return f({url:t,method:"patch",data:s,headers:{"x-csrf-token":config.csrf_token}},n)}function l(t,s,n){return f({url:t,method:"put",data:s,headers:{"x-csrf-token":config.csrf_token}},n)}function w(t,s,n){return f({url:t,method:"delete",data:s,headers:{"x-csrf-token":config.csrf_token}},n)}},50431:(E,g,o)=>{var h,p;h=[o(86569)],p=function(){const a={};a.show=function(e,i){const u=e.hasOwnProperty("fileSize")&&e.fileSize!==void 0?parseInt(e.fileSize,10):!1;app.parseAndTranslate("modals/upload-file",{showHelp:e.hasOwnProperty("showHelp")&&e.showHelp!==void 0?e.showHelp:!0,fileSize:u,title:e.title||"[[global:upload_file]]",description:e.description||"",button:e.button||"[[global:upload]]",accept:e.accept?e.accept.replace(/,/g,", "):""},function(r){r.modal("show"),r.on("hidden.bs.modal",function(){r.remove()});const l=r.find("#uploadForm");l.attr("action",e.route),l.find("#params").val(JSON.stringify(e.params)),r.find("#fileUploadSubmitBtn").on("click",function(){$(this).addClass("disabled"),l.submit()}),l.submit(function(){return y(r,u,i),!1})})},a.hideAlerts=function(e){$(e).find("#alert-status, #alert-success, #alert-error, #upload-progress-box").addClass("hide")};function y(e,i,u){c(e,"status","[[uploads:uploading-file]]"),e.find("#upload-progress-bar").css("width","0%"),e.find("#upload-progress-box").show().removeClass("hide");const r=e.find("#fileInput");if(!r.val())return c(e,"error","[[uploads:select-file-to-upload]]");if(!m(r[0],i))return c(e,"error","[[error:file-too-big, "+i+"]]");a.ajaxSubmit(e,u)}function c(e,i,u){a.hideAlerts(e),i==="error"&&e.find("#fileUploadSubmitBtn").removeClass("disabled"),u=u.replace(/&#44/g,","),e.find("#alert-"+i).translateText(u).removeClass("hide")}a.ajaxSubmit=function(e,i){e.find("#uploadForm").ajaxSubmit({headers:{"x-csrf-token":config.csrf_token},error:function(r){r=f(r),c(e,"error",r.responseJSON?.status?.message||r.responseJSON?.error||`[[error:upload-error-fallback, ${r.status} ${r.statusText}]]`)},uploadProgress:function(r,l,w,t){e.find("#upload-progress-bar").css("width",t+"%")},success:function(r){let l=f(r);r.hasOwnProperty("response")&&r.hasOwnProperty("status")&&r.status.code==="ok"&&(l=r.response.images),i(l[0].url),c(e,"success","[[uploads:upload-success]]"),setTimeout(function(){a.hideAlerts(e),e.modal("hide")},750)}})};function f(e){if(typeof e=="string")try{return JSON.parse(e)}catch{return{error:"[[error:parse-error]]"}}return e}function m(e,i){return window.FileReader&&i?e.files[0].size<=i*1e3:!0}return a}.apply(g,h),p!==void 0&&(E.exports=p)}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.