(self.webpackChunknodebb=self.webpackChunknodebb||[]).push([[1091,34271,49897,52185,74566,92332,99127],{12236:(E,h,s)=>{"use strict";var g,y;g=[s(49897),s(29930)],y=function(p,L){const r={};r.init=function(e,n){const i=e.find(".draft-icon"),t=e.attr("data-uuid");function o(){$(`[component="composer"][data-uuid="${t}"]`).length&&(n.save_id||(n.save_id=utils.generateSaveId(app.user.uid)),r.addToDraftList("available",n.save_id),r.addToDraftList("open",n.save_id),O(e,i,n))}e.on("keyup","textarea, input.handle, input.title",utils.debounce(o,1e3)),e.on("click",'input[type="checkbox"]',utils.debounce(o,1e3)),e.on("click",'[component="category/list"] [data-cid]',utils.debounce(o,1e3)),e.on("itemAdded",".tags",utils.debounce(o,1e3)),e.on("thumb.uploaded",o),i.on("animationend",function(){$(this).toggleClass("active",!1)}),$(window).on("unload",function(){const a=r.getList("open");a.length&&a.forEach(u=>r.removeFromDraftList("open",u))}),r.migrateGuest(),r.migrateThumbs(...arguments)};function d(e){return parseInt(e,10)>0?localStorage:sessionStorage}r.get=function(e){if(!e)return null;const n=e.split(":")[1],i=d(n);try{const t=i.getItem(e),o=JSON.parse(t)||null;if(!o)throw new Error(`can't parse draft json for ${e}`);return o.save_id=e,o.timestamp&&(o.timestampISO=utils.toISOString(o.timestamp)),$(window).trigger("action:composer.drafts.get",{save_id:e,draft:o,storage:i}),o}catch{return console.warn(`[composer/drafts] Could not get draft ${e}, removing`),r.removeFromDraftList("available"),r.removeFromDraftList("open"),null}};function O(e,n,i){if(m(app.user.uid?"localStorage":"sessionStorage")&&i&&i.save_id&&e.length){const t=e.find("input.title"),o=t&&t.length&&t.val(),a=e.find("textarea").val(),u=d(app.user.uid);if(a.length||o&&o.length){const l={save_id:i.save_id,action:i.action,text:a,uuid:e.attr("data-uuid"),timestamp:Date.now()};if(i.action==="topics.post"){const v=e.find("input.tags").val();l.tags=v,l.title=o,l.cid=i.cid}else i.action==="posts.reply"?(l.title=i.title,l.tid=i.tid,l.toPid=i.toPid):i.action==="posts.edit"&&(l.pid=i.pid,l.title=o||i.title);app.user.uid||(l.handle=e.find("input.handle").val()),u.setItem(i.save_id,JSON.stringify(l)),$(window).trigger("action:composer.drafts.save",{storage:u,postData:i,postContainer:e}),n.toggleClass("active",!0)}else r.removeDraft(i.save_id)}}r.removeDraft=function(e){if(!e)return;r.removeFromDraftList("available",e),r.removeFromDraftList("open",e);const n=e.split(":")[1],i=d(n);i.removeItem(e),$(window).trigger("action:composer.drafts.remove",{storage:i,save_id:e})},r.getList=function(e){try{const n=localStorage.getItem(`drafts:${e}`);return JSON.parse(n)||[]}catch{return console.warn("[composer/drafts] Could not read list of available drafts"),[]}},r.addToDraftList=function(e,n){if(!m(app.user.uid?"localStorage":"sessionStorage")||!n)return;const i=r.getList(e);i.includes(n)||(i.push(n),localStorage.setItem("drafts:"+e,JSON.stringify(i)))},r.removeFromDraftList=function(e,n){if(!m(app.user.uid?"localStorage":"sessionStorage")||!n)return;const i=r.getList(e);i.includes(n)&&(i.splice(i.indexOf(n),1),localStorage.setItem("drafts:"+e,JSON.stringify(i)))},r.migrateGuest=function(){if(m("localStorage")&&app.user.uid){const e=/^composer:\d+:\d$/,n=Object.keys(sessionStorage).filter(function(o){return e.test(o)}),i=new Set([]),t=n.map(function(o){const a=o.split(":");return a[1]=app.user.uid,i.add(a.join(":")),a.join(":")});return n.forEach(function(o,a){localStorage.setItem(t[a],sessionStorage.getItem(o)),sessionStorage.removeItem(o)}),i.forEach(function(o){r.addToDraftList("available",o)}),i}},r.migrateThumbs=function(e,n){if(!app.uid)return;const i=e.attr("data-uuid"),t=r.get(n.save_id);t&&t.uuid&&p.put(`/topics/${t.uuid}/thumbs`,{tid:i}).then(()=>{Promise.all([s.e(20056),s.e(23662),s.e(65285),s.e(40559),s.e(449),s.e(5785),s.e(36159)]).then(function(){var o=[s(71431)];(function(a){a.updateThumbCount(i,e)}).apply(null,o)}).catch(s.oe)})},r.listAvailable=function(){return r.getList("available").map(r.get).filter(Boolean)},r.getAvailableCount=function(){return r.listAvailable().length},r.open=function(e){if(!e)return;const n=r.get(e);S(e,n)},r.loadOpen=function(){if(ajaxify.data.template.login||ajaxify.data.template.register||config.hasOwnProperty("openDraftsOnPageLoad")&&!config.openDraftsOnPageLoad)return;const e=r.getList("available"),n=r.getList("open");e.length&&e.forEach(function(i){if(!i||n.includes(i))return;const t=r.get(i);if(!t||!t.text&&!t.title){r.removeFromDraftList("available",i),r.removeFromDraftList("open",i);return}S(i,t)})};function S(e,n){const t=e.split(":")[1];parseInt(app.user.uid,10)===parseInt(t,10)&&Promise.all([s.e(20056),s.e(23662),s.e(65285),s.e(40559),s.e(449),s.e(5785),s.e(36159)]).then(function(){var o=[s(71431)];(function(a){n.action==="topics.post"?a.newTopic({save_id:n.save_id,cid:n.cid,handle:app.user&&app.user.uid?void 0:utils.escapeHTML(n.handle),title:utils.escapeHTML(n.title),body:n.text,tags:String(n.tags||"").split(",")}):n.action==="posts.reply"?p.get("/topics/"+n.tid,{},function(u,l){if(u)return L.error(u);a.newReply({save_id:n.save_id,tid:n.tid,toPid:n.toPid,title:l.title,body:n.text})}):n.action==="posts.edit"&&a.editPost({save_id:n.save_id,pid:n.pid,title:n.title?utils.escapeHTML(n.title):void 0,body:n.text})}).apply(null,o)}).catch(s.oe)}function m(e){var n;try{n=window[e];var i="__storage_test__";return n.setItem(i,i),n.removeItem(i),!0}catch(t){return t instanceof DOMException&&(t.code===22||t.code===1014||t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")&&n&&n.length!==0}}return r}.apply(h,g),y!==void 0&&(E.exports=y)},49897:(E,h,s)=>{"use strict";s.r(h),s.d(h,{del:()=>i,get:()=>O,head:()=>S,patch:()=>e,post:()=>m,put:()=>n});var g=s(91749),y=s.n(g),p=s(40027),L=s.n(p);const r=config.relative_path+"/api/v3";async function f(t,o){if(t.url=t.url.startsWith("/api")?config.relative_path+t.url:r+t.url,typeof o=="function"){d(t).then(a=>o(null,a),a=>o(a));return}try{return await d(t)}catch(a){if(a.message==="A valid login session was not found. Please log in and try again."){const{url:u}=await(0,g.fire)("filter:admin.reauth",{url:"login"});return(0,p.confirm)("[[error:api.reauth-required]]",l=>{l&&ajaxify.go(u)})}throw a}}async function d(t){const{url:o}=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,g.fire)("filter:api.options",{options:t}),t.data&&(t.body=t.data,delete t.data);const a=await fetch(o,t),{headers:u}=a;if(u.get("x-redirect"))return d({url:u.get("x-redirect"),...t});const l=u.get("content-type"),v=l&&l.startsWith("application/json");let c;if(t.method!=="HEAD"&&(v?c=await a.json():c=await a.text()),!a.ok)throw c?new Error(v?c.status.message:c):new Error(a.statusText);return v&&c&&c.hasOwnProperty("status")&&c.hasOwnProperty("response")?c.response:c}function O(t,o,a){return f({url:t+(o&&Object.keys(o).length?"?"+$.param(o):"")},a)}function S(t,o,a){return f({url:t+(o&&Object.keys(o).length?"?"+$.param(o):""),method:"HEAD"},a)}function m(t,o,a){return f({url:t,method:"POST",data:o,headers:{"x-csrf-token":config.csrf_token}},a)}function e(t,o,a){return f({url:t,method:"PATCH",data:o,headers:{"x-csrf-token":config.csrf_token}},a)}function n(t,o,a){return f({url:t,method:"PUT",data:o,headers:{"x-csrf-token":config.csrf_token}},a)}function i(t,o,a){return f({url:t,method:"DELETE",data:o,headers:{"x-csrf-token":config.csrf_token}},a)}},74566:(E,h,s)=>{E.exports=s(12236)}}]);