/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/clean-jsdoc-theme-burndown@4.2.19/publish.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
const _=require("lodash"),env=require("jsdoc/env"),fs=require("fs-extra"),helper=require("jsdoc/util/templateHelper"),logger=require("jsdoc/util/logger"),path=require("jsdoc/path"),{taffy:taffy}=require("@jsdoc/salty"),template=require("jsdoc/template"),htmlMinify=require("html-minifier-terser"),{buildFooter:buildFooter,codepen:codepen,createDynamicStyleSheet:createDynamicStyleSheet,createDynamicsScripts:createDynamicsScripts,getBaseURL:getBaseURL,getFavicon:getFavicon,getMetaTagData:getMetaTagData,getTheme:getTheme,includeCss:includeCss,includeScript:includeScript,moduleHeader:moduleHeader,resizeable:resizeable,returnPathOfScriptScr:returnPathOfScriptScr,returnPathOfStyleSrc:returnPathOfStyleSrc,copyStaticFolder:copyStaticFolder,getProcessedYield:getProcessedYield,lsSync:lsSync}=require("./clean-jsdoc-theme-helper"),{HTML_MINIFY_OPTIONS:HTML_MINIFY_OPTIONS,SECTION_TYPE:SECTION_TYPE,defaultSections:defaultSections}=require("./clean-jsdoc-theme-defaults"),htmlsafe=helper.htmlsafe,linkto=helper.linkto,resolveAuthorLinks=helper.resolveAuthorLinks,hasOwnProp=Object.prototype.hasOwnProperty,themeOpts=env&&env.opts&&env.opts.theme_opts||{};let data,view;const searchList=[],todoList=[],doneList=[],questionList=[],hasSearch=void 0===themeOpts.search||Boolean(themeOpts.search);let outdir=path.resolve(path.normalize(env.opts.destination));function mkdirSync(e){return fs.mkdirSync(e,{recursive:!0})}function sourceToDestination(e,t,n){const a=path.relative(e,t);return path.resolve(path.join(n,a))}function find(e){return helper.find(data,e)}function tutoriallink(e){return helper.toTutorial(e,null,{tag:"em",classname:"disabled",prefix:"Tutorial: "})}function getAncestorLinks(e){return helper.getAncestorLinks(data,e)}function hashToLink(e,t,n){let a;return/^(#.+)/.test(t)?(a=helper.createLink(e,n),a=a.replace(/(#.+|$)/,t),`<a href="${a}">${t}</a>`):t}function needsSignature({kind:e,type:t,meta:n}){let a=!1;if("function"===e||"class"===e)a=!0;else if("typedef"===e&&t&&t.names&&t.names.length){for(let e=0,n=t.names.length;e<n;e++)if("function"===t.names[e].toLowerCase()){a=!0;break}}else"namespace"===e&&n&&n.code&&n.code.type&&n.code.type.match(/[Ff]unction/)&&(a=!0);return a}function getSignatureAttributes({optional:e,nullable:t}){const n=[];return e&&n.push("opt"),!0===t?n.push("nullable"):!1===t&&n.push("non-null"),n}function updateItemName(e){const t=getSignatureAttributes(e);let n=e.name||"";return e.variable&&(n="&hellip;"+n),t&&t.length&&(n=`${n}<span class="signature-attributes">${t.join(", ")}</span>`),n}function addParamAttributes(e){return e.filter((({name:e})=>e&&!e.includes("."))).map(updateItemName)}function buildItemTypeStrings(e){const t=[];return e&&e.type&&e.type.names&&e.type.names.forEach((function(e){t.push(linkto(e,htmlsafe(e)))})),t}function buildAttribsString(e){let t="";return e&&e.length&&(t=htmlsafe(`(${e.join(", ")}) `)),t}function addNonParamAttributes(e){let t=[];return e.forEach((function(e){t=t.concat(buildItemTypeStrings(e))})),t}function addSignatureParams(e){const t=e.params?addParamAttributes(e.params):[];e.signature=`${e.signature||""}(${t.join(", ")})`}function addSignatureReturns(e){const t=[];let n="",a=[],i="";const r=e.yields||e.returns;r&&(r.forEach((e=>{helper.getAttribs(e).forEach((e=>{t.includes(e)||t.push(e)}))})),n=buildAttribsString(t)),r&&(a=addNonParamAttributes(r)),a.length&&(i=` &rarr; ${n}{${a.join("|")}}`);let s="";e.signature&&(s='<span class="signature">'+(e.signature||"")+"</span>"),i&&(s+='<span class="type-signature">'+i+"</span>"),e.signature=s}function addSignatureTypes(e){const t=e.type?buildItemTypeStrings(e):[];e.signature=`${e.signature||""}<span class="type-signature">`+(t.length?` :${t.join("|")}`:"")+"</span>"}function addAttribs(e){const t=buildAttribsString(helper.getAttribs(e));e.attribs=`<span class="type-signature">${t}</span>`}function shortenPaths(e,t){return Object.keys(e).forEach((function(n){e[n].shortened=e[n].resolved.replace(t,"").replace(/\\/g,"/")})),e}function getPathFromDoclet({meta:e}){return e?e.path&&"null"!==e.path?path.join(e.path,e.filename):e.filename:null}function createPrettyAnchor(e,t,n,a){return`<${e} ${a?`href="${a}"`:""} class="has-anchor">\n        <span class="ancestors">\n            ${t}~\n        </span>\n        ${n}\n    </${e}>`}function prefixModuleToItemAnchor(e){let t,{anchor:n}=e,a=n.split('href="')[1].split('"')[0];return a.replace(/\.html$/,"").replace(/module-([^-]+)(?:-|\.)(.*)/,((e,n,i)=>{t=createPrettyAnchor("a",n,i,a)})),t||n}async function generate(e,t,n,a){let i,r,s;i={env:env,title:e,docs:t,filename:n},s=path.join(outdir,n),r=view.render("container.tmpl",i),!1!==a&&(r=helper.resolveLinks(r));const o=await htmlMinify.minify(r,HTML_MINIFY_OPTIONS);fs.writeFileSync(s,o,"utf8")}function generateSourceFiles(e,t="utf8"){Object.keys(e).forEach((function(n){let a;const i=helper.getUniqueFilename(e[n].shortened);helper.registerLink(e[n].shortened,i);try{a={kind:"source",title:i.replace(".html",""),code:helper.htmlsafe(fs.readFileSync(e[n].resolved,t))}}catch(e){logger.error("Error while generating source file %s: %s",n,e.message)}generate(`Source: ${e[n].shortened}`,[a],i,!1)}))}function attachModuleSymbols(e,t){const n={};e.forEach((e=>{n[e.longname]=n[e.longname]||[],n[e.longname].push(e)})),t.forEach((e=>{n[e.longname]&&(e.modules=n[e.longname].filter((({description:e,kind:t})=>e||"class"===t)).map((e=>("class"!==(e=_.cloneDeep(e)).kind&&"function"!==e.kind||(e.name=`${e.name.replace("module:",'(require("')}"))`),e))))}))}function buildSidebarMembers({items:e,itemHeading:t,itemsSeen:n,linktoFn:a,sectionName:i}){const r={name:t,items:[],id:`sidebar-${t.toLowerCase()}`};return e.length&&e.forEach((function(e){const t={name:e.name,anchor:e.longname?a(e.longname,e.name):a("",e.name),children:[]},s=i===SECTION_TYPE.Tutorials||i===SECTION_TYPE.Global?[]:find({kind:"function",memberof:e.longname,inherited:{"!is":Boolean(themeOpts.exclude_inherited)}});hasOwnProp.call(n,e.longname)||(t.anchor=a(e.longname,e.name.replace(/^module:/,"")),s.length&&s.forEach((function(e){const n={name:e.longName,link:a(e.longname,e.name)};t.children.push(n)})),n[e.longname]=!0),r.items.push(t)})),r}function buildSearchListForData(){data().each((e=>{"package"===e.kind||e.inherited||searchList.push({title:e.longname,link:linkto(e.longname,e.name),description:e.description})}))}function buildTodoListForData(){const e=helper.linkto;data().each((t=>{t.todo&&(t.anchor=t.longname?e(t.longname,t.name):e("",t.name),t.anchor=prefixModuleToItemAnchor(t),void 0===t.done&&(t.done=[]),void 0===t.question&&(t.question=[]),t.todo.forEach(((e,n)=>{(e=e.replaceAll(/^(@\w+)/g,'$1: <span style="margin-right: 8px;"></span>').replaceAll(/- (@\w+)/g,'<br />$1: <span style="margin-right: 8px;"></span>').replaceAll(/@(\w+)/g,'<span class="type-signature" style="text-transform: capitalize;" data-tag="$1">$1</span>')).indexOf('data-tag="done"')>=0?(t.done.push(`<span>${e}</span>`),t.todo[n]=void 0):e.indexOf('data-tag="question"')>=0?(t.question.push(`<span>${e}</span>`),t.todo[n]=void 0):t.todo[n]=`<span>${e}</span>`})),t.todo=t.todo.filter((e=>void 0!==e)),t.todo.length&&todoList.push(t),t.done.length&&doneList.push(t),t.question.length&&questionList.push(t))}))}function linktoTutorial(e,t){return tutoriallink(t)}function linktoExternal(e,t){return linkto(e,t.replace(/(^"|"$)/g,""))}function buildNavbar(){return{menu:themeOpts.menu||void 0,search:hasSearch}}function buildSidebar(e){const t=themeOpts.title||"Home",n=RegExp.prototype.test.bind(/(<([^>]+)>)/i),a={sections:[]};n(t)?a.title={title:t,isHTML:!0}:a.title={title:t,isHTML:!1};const i={},r=themeOpts.sections||defaultSections,s={[SECTION_TYPE.Modules]:buildSidebarMembers({itemHeading:"Modules",items:e.modules,itemsSeen:i,linktoFn:linkto,sectionName:SECTION_TYPE.Modules}),[SECTION_TYPE.Classes]:buildSidebarMembers({itemHeading:"Classes",items:e.classes,itemsSeen:i,linktoFn:linkto,sectionName:SECTION_TYPE.Classes}),[SECTION_TYPE.Externals]:buildSidebarMembers({itemHeading:"Externals",items:e.externals,itemsSeen:i,linktoFn:linktoExternal,sectionName:SECTION_TYPE.Externals}),[SECTION_TYPE.Events]:buildSidebarMembers({itemHeading:"Events",items:e.events,itemsSeen:i,linktoFn:linkto,sectionName:SECTION_TYPE.Events}),[SECTION_TYPE.Namespaces]:buildSidebarMembers({itemHeading:"Namespaces",items:e.namespaces,itemsSeen:i,linktoFn:linkto,sectionName:SECTION_TYPE.Namespaces}),[SECTION_TYPE.Mixins]:buildSidebarMembers({itemHeading:"Mixins",items:e.mixins,itemsSeen:i,linktoFn:linkto,sectionName:SECTION_TYPE.Mixins}),[SECTION_TYPE.Tutorials]:buildSidebarMembers({itemHeading:"Tutorials",items:e.tutorials,itemsSeen:{},linktoFn:linktoTutorial,sectionName:SECTION_TYPE.Tutorials}),[SECTION_TYPE.Interfaces]:buildSidebarMembers({itemHeading:"Interfaces",items:e.interfaces,itemsSeen:i,linktoFn:linkto,sectionName:SECTION_TYPE.Interfaces}),[SECTION_TYPE.Global]:buildSidebarMembers({itemHeading:"Global",items:e.globals,itemsSeen:{},linktoFn:linkto,sectionName:SECTION_TYPE.Global})};return r.forEach((e=>{if(void 0===SECTION_TYPE[e]){const t=`While building nav. Section name: ${e} is not recognized.\n            Accepted sections are: ${defaultSections.join(", ")}\n            `;throw new Error(t)}a.sections.push(s[e])})),a}exports.publish=async function(e,t,n){let a,i,r,s,o,l,c,d,u,m,p,h,g,f,S;const b=[];let y,T,k,E,v,O={};data=e,i=env.conf.templates||{},i.default=i.default||{},v=path.normalize(t.template),view=new template.Template(path.join(v,"tmpl")),c=helper.getUniqueFilename("index"),l=helper.getUniqueFilename("global"),helper.registerLink("global",l),view.layout=i.default.layoutFile?path.resolve(i.default.layoutFile):"layout.tmpl",helper.setTutorials(n),data=helper.prune(data),!1!==themeOpts.sort&&data.sort("longname, version, since"),helper.addEventListeners(data),data().each((e=>{let t;e.displayname=e.longname.replace("#","."),e.attribs="",e.examples&&(e.examples=e.examples.map((e=>{let t,n;return e.match(/^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)&&(t=RegExp.$1,n=RegExp.$3),{caption:t||"",code:n||e}}))),e.see&&e.see.forEach((function(t,n){e.see[n]=hashToLink(e,t)})),e.meta&&(t=getPathFromDoclet(e),O[t]={resolved:t,shortened:null},-1===b.indexOf(t)&&b.push(t)),e.yields&&(e.yields=getProcessedYield(e.yields))})),f=(find({kind:"package"})||[])[0],f&&f.name&&(outdir=path.join(outdir,f.name,f.version||"")),mkdirSync(outdir),copyStaticFolder(themeOpts,outdir),o=path.join(v,"static"),k=lsSync(o),k.forEach((e=>{const t=sourceToDestination(o,e,outdir);mkdirSync(path.dirname(t)),fs.copyFileSync(e,t)})),i.default.staticFiles&&(T=i.default.staticFiles.include||i.default.staticFiles.paths||[],y=new(require("jsdoc/src/filter").Filter)(i.default.staticFiles),E=new(require("jsdoc/src/scanner").Scanner),T.forEach((e=>{e=path.resolve(env.pwd,e);E.scan([e],10,y).forEach((t=>{const n=sourceToDestination(e,t,outdir);mkdirSync(path.dirname(n)),fs.copyFileSync(t,n)}))}))),b.length&&(O=shortenPaths(O,path.commonPrefix(b))),data().each((function(e){let t;const n=helper.createLink(e);helper.registerLink(e.longname,n),e.meta&&(t=getPathFromDoclet(e),t=O[t].shortened,t&&(e.meta.shortpath=t))})),data().each((function(e){helper.longnameToUrl[e.longname].indexOf("#")>-1?e.id=helper.longnameToUrl[e.longname].split(/#/).pop():e.id=e.name,needsSignature(e)&&(addSignatureParams(e),addSignatureReturns(e),addAttribs(e))})),data().each((e=>{e.ancestors=getAncestorLinks(e),"member"===e.kind&&(addSignatureTypes(e),addAttribs(e)),"constant"===e.kind&&(addSignatureTypes(e),addAttribs(e),e.kind="member")})),u=helper.getMembers(data),u.tutorials=n.children,g=Boolean(i.default&&!1!==i.default.outputSourceFiles),view.find=find,view.linkto=linkto,view.resolveAuthorLinks=resolveAuthorLinks,view.tutoriallink=tutoriallink,view.htmlsafe=htmlsafe,view.outputSourceFiles=g,view.footer=buildFooter(themeOpts),view.displayModuleHeader=moduleHeader(themeOpts),view.favicon=getFavicon(themeOpts),view.dynamicStyle=createDynamicStyleSheet(themeOpts),view.dynamicStyleSrc=returnPathOfStyleSrc(themeOpts),view.dynamicScript=createDynamicsScripts(themeOpts),view.dynamicScriptSrc=returnPathOfScriptScr(themeOpts),view.includeScript=includeScript(themeOpts,outdir),view.includeCss=includeCss(themeOpts,outdir),view.meta=getMetaTagData(themeOpts),view.theme=getTheme(themeOpts),view.sidebar=buildSidebar(u),view.navbar=buildNavbar(themeOpts),view.resizeable=resizeable(themeOpts),view.codepen=codepen(themeOpts),view.excludeInherited=Boolean(themeOpts.exclude_inherited),view.baseURL=getBaseURL(themeOpts),attachModuleSymbols(find({longname:{left:"module:"}}),u.modules),themeOpts.prefixModuleToSidebarItems_experimental&&view.sidebar.sections.forEach(((e,t)=>{view.sidebar.sections[t].items=e.items.map((e=>(e.anchor=prefixModuleToItemAnchor(e),e)))})),g&&generateSourceFiles(O,t.encoding),u.globals.length&&await generate("Global",[{kind:"globalobj"}],l),s=find({kind:"file"}),S=find({kind:"package"});const w=themeOpts.homepageTitle||"Home",P=themeOpts.includeFilesListInHomepage||!1;buildTodoListForData(),await generate(w,S.concat([{kind:"mainpage",readme:t.readme,questionList:questionList,todoList:todoList,doneList:doneList,realrender:!0,longname:t.mainpagetitle?t.mainpagetitle:"Main Page"}]).concat(P?s:[]),c),a=taffy(u.classes),p=taffy(u.modules),h=taffy(u.namespaces),m=taffy(u.mixins),r=taffy(u.externals),d=taffy(u.interfaces),Object.keys(helper.longnameToUrl).forEach((async function(e){const t=helper.find(a,{longname:e}),n=helper.find(r,{longname:e}),i=helper.find(d,{longname:e}),s=helper.find(m,{longname:e}),o=helper.find(p,{longname:e}),l=helper.find(h,{longname:e});o.length&&await generate(`Module: ${o[0].name}`,o,helper.longnameToUrl[e]),t.length&&await generate(`Class: ${t[0].name}`,t,helper.longnameToUrl[e]),l.length&&await generate(`Namespace: ${l[0].name}`,l,helper.longnameToUrl[e]),s.length&&await generate(`Mixin: ${s[0].name}`,s,helper.longnameToUrl[e]),n.length&&await generate(`External: ${n[0].name}`,n,helper.longnameToUrl[e]),i.length&&await generate(`Interface: ${i[0].name}`,i,helper.longnameToUrl[e])})),function e({children:t}){t.forEach((function(t){!async function(e,t,n){const a={title:e,header:t.title,content:t.parse(),children:t.children,filename:n},i=path.join(outdir,n);let r=view.render("tutorial.tmpl",a);r=helper.resolveLinks(r);const s=await htmlMinify.minify(r,HTML_MINIFY_OPTIONS);if(fs.writeFileSync(i,s,"utf8"),hasSearch)try{const e=path.basename(i);let t=/<body.*?>([\s\S]*)<\/body>/.exec(a.content),n="";Array.isArray(t)||(t=/<article.*?>([\s\S]*)<\/article>/.exec(a.content)),Array.isArray(t)&&"string"==typeof t[1]&&(n=t[1].replace(/(<([^>]+)>)/g,"").replace(/(\r\n|\n|\r)/gm," ").replace(/\s+/gm," ").substring(0,100)),"string"==typeof e&&e&&searchList.push({title:a.header,link:`<a href="${e}">${e}</a>`,description:n})}catch(e){console.error("There was some error while creating search array for tutorial."),console.error(e)}}(`Tutorial: ${t.title}`,t,helper.tutorialToUrl(t.name)),e(t)}))}(n),hasSearch&&(buildSearchListForData(),mkdirSync(path.join(outdir,"data")),fs.writeFileSync(path.join(outdir,"data","search.json"),JSON.stringify({list:searchList})))};
//# sourceMappingURL=/sm/ed9c016b7a69038eceefacc655c0d2a52a7d0ddb6f64d55a6ea8110bb5fdcd90.map