markuno_lib 1.0.77 → 1.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/marked.js +1 -1
- package/bin/markuno.js +1 -1
- package/package.json +1 -1
package/bin/marked.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function escape(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function replace(e,t){return e=e.source,t=t||"",function self(s,r){return s?(r=(r=r.source||r).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(s,r),self):new RegExp(e,t)}}function noop(){}function merge(e){for(var t,s,r=1;r<arguments.length;r++)for(s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}noop.exec=noop;var e={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/,bullet:/(?:[*+-])/,item:/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/};e.item=replace(e.item,"gm")(/bull/g,e.bullet)(),e.list=replace(e.list)(/bull/g,e.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+e.def.source+")")(),e.blockquote=replace(e.blockquote)("def",e.def)(),e._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",e.html=replace(e.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,e._tag)(),e.paragraph=replace(e.paragraph)("hr",e.hr)("heading",e.heading)("lheading",e.lheading)("blockquote",e.blockquote)("tag","<"+e._tag)("def",e.def)(),e.normal=merge({},e),e.gfm=merge({},e.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/,formula:/^ *(\${2,})([\s\S]*?)\s*\1 *(?:\n+|$)/}),e.gfm.paragraph=replace(e.paragraph)("(?!","(?!"+e.gfm.fences.source.replace("\\1","\\2")+"|"+e.list.source.replace("\\1","\\3")+"|")(),e.tables=merge({},e.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :0123456789]*)\n((?: *\|.*(?:\n|$))*)\n*/});var t={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,blink:/^\[\[([\s\S]+?)\]\](?!\])/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,ico:/^\:\:([\s\S]+?)\:\:/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,colorbase:noop,coloralt:noop,text:/^[\s\S]+?(?=[\\<!\[_*\:`]| {2,}\n|$)/,_inside:/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/,_href:/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/};t.link=replace(t.link)("inside",t._inside)("href",t._href)(),t.reflink=replace(t.reflink)("inside",t._inside)(),t.normal=merge({},t),t.pedantic=merge({},t.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),t.gfm=merge({},t.normal,{escape:replace(t.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~~(?=\S)([\s\S]*?\S)~~~/,colorbase:/^~(?=\S)([\s\S]*?\S)~/,coloralt:/^~~(?=\S)([\s\S]*?\S)~~/,formula:/^\$(?=\S)([\s\S]*?\S)\$/,text:replace(t.text)("]|","~$]|")("|","|https?://|")()}),t.breaks=merge({},t.gfm,{br:replace(t.br)("{2,}","*")(),text:replace(t.gfm.text)("{2,}","*")()});const s={s:"subtitle",k:"keywords",g:"gruppo",e:"editore",y:"datapub",d:"datapub",p:"priority",a:"autore",u:"base",t:"title",l:"link",i:"img","#":"title"};const r=new class AliasInfo{constructor(){this.alias=JSON.parse(JSON.stringify(s)),this.check()}check(){var e=new Set,checkr=t=>{t&&t.length>2&&!e.has(t)&&e.add(t)};for(var t in this.alias)this.alias[t]?(checkr(t),checkr(this.alias[t])):delete this.alias[t];this.retoalias=function retroalias(e){var t={};for(var s in e)e[s]&&(t[e[s]]=s);return t}(this.alias),e=`^\\s*\\:(${(e=[...e]).join("|")}|\\w{1,2})\\:(.*)$`,this.regex=e}add(e,t){return e&&(this.alias[e]=t,this.check()),this}removeAll(){return this.alias={},this.check(),this}setmappa(e){for(var t in this.alias={},e)this.alias[t]=e[t];this.alias["#"]||(this.alias["#"]="title"),this.check()}parse(e,t,s){s&&this.setmappa();var r=e,n={};t&&((n=Object.assign(n,t)).info=!0),(o=/^\s*\#\s+(.*?)\s*$/im.exec(r))&&(n[this.alias["#"]]=o[1].toLowerCase());for(var i=0;i<20;i++){if(!(o=/:::(.*)([^]+?):::/im.exec(r)))break;var a=o[1];a||(a=i+""),n.comments||(n.comments=[]),n.comments.push({k:a,v:o[2]}),r=r.substr(o.index+o[0].length)}r=e;var l=new RegExp(this.regex,"im");for(i=0;i<50;i++){var o;if(!((o=l.exec(r))&&o.length>=2))break;r=r.substr(o.index+o[0].length),n.info=!0;var c=(o[2]||"").trim(),p=this.alias[o[1].toLowerCase()];p||(p=o[1].toLowerCase()),"l"==p||"link"==p?(n[p]||(n[p]=[]),n[p].push(c)):n[p]=c}return n}};var tokenize=(t,s,n=!1)=>{function _parsetable(e,t){var s,r={type:"table",headers:[],align:[],cells:[],cols:0},n=t.split("\n"),i=!1;function checkcols(e){if(r.cols<e){for(var t=r.cols;t<e;t++)for(var s of(r.align[t]="left",r.headers[t]=[],r.cells))s[t]=[];r.cols=e}}for(var a of n)if((a=a.trim()).length)if(a.length>2&&a.startsWith("|")&&a.endsWith("|")&&(a=a.slice(1,-1)),checkcols((s=a.split("|")).length),0==i&&/^[\- :]+\|[\- :\|]*$/im.test(a)){for(var l=0;l<s.length;l++){var o=(u=s[l]).slice(0,1),c=u.slice(-1);r.align[l]=":"==o&&":"==c?"center":":"==c?"right":"left"}i=!0}else{var p=[];for(l=0;l<s.length;l++){var u=s[l];if(i){var g=[];_tokenize(g,u,!1),p.push(g)}else _tokenize(r.headers[l],u,!1)}i&&r.cells.push(p)}e.push(r)}function _pushtoken(e,t){var s=/^([\d\.]+)\s*/.exec(t),r="",n="";s&&(r=s[1],t=t.substring(s.index+s[0].length)),(s=/^([\w\s]*?):.*$/gim.exec(t))&&(n=s[1],t=t.substring(s.index+s[1].length)),e.push({type:"list_item_start",num:r}),n&&(e.push({type:"list_title_start"}),_tokenize(e,n,!1),e.push({type:"list_title_end"})),t=t.replace(/\n +/gim,"<br>"),_tokenize(e,t,!1),e.push({type:"list_item_end"})}function _parselista(e,t,s,r){var n=[s];for(e.push({type:"list_start",ordered:t});;){var i=/^( *)([*\-+])[\s$]/im.exec(r);if(!i){_pushtoken(e,r);break}i.index&&_pushtoken(e,r.substring(0,i.index));var a=i[1].length;if(a>n[n.length-1])e.push({type:"list_start",ordered:t}),n.push(a);else for(;;){var l=n[n.length-1];if(1==n.length||l<=a)break;e.push({type:"list_end"}),n.pop()}r=r.substring(i.index+i[0].length)}for(var o of n)e.push({type:"list_end"})}var _tokenize=(e,t,r,n)=>{var a;for(t=t.replace(/^ +$/gm,"");t;){if(s){var l=0;for(var o of e)o.text||o.html?l=l+o.text.length+2:l+=3;if(l>s)break}if((a=i.newline.exec(t))&&(t=t.substring(a[0].length),a[0].length>1&&e.push({type:"space"})),a=i.formula.exec(t))t=t.substring(a[0].length),e.push({type:"code",lang:"math",text:a[2]||""});else if(a=/^(\s*`{3})(.*)([^]+?)(`{3})/gim.exec(t)){a.index>0&&_tokenize(e,t.substring(0,a.index),r);var c=(a[3]||"").replace(/^\n/,"").replace(/\n+$/,"");e.push({type:"code",lang:a[2],text:c}),t=t.substring(a.index+a[0].length)}else if(a=i.heading.exec(t))t=t.substring(a[0].length),e.push({type:"heading",depth:a[1].length,text:a[2]});else if(r&&(a=/^(.*?\|.*\n[\-: ]+\|[\-\| :]*\n.*?\|[^]*?)\n\n/gim.exec(t)))a.index>0&&_tokenize(e,t.substring(0,a.index),r),_parsetable(e,a[1]),t=t.substring(a.index+a[0].length);else if(r&&(a=/^\|.*\|\s*(?:\n\|.*\|)+/gim.exec(t)))a.index>0&&_tokenize(e,t.substring(0,a.index),r),_parsetable(e,a[0]),t=t.substring(a.index+a[0].length);else if(a=i.lheading.exec(t))t=t.substring(a[0].length),e.push({type:"heading",depth:"="===a[2]?1:2,text:a[1]});else if(a=i.hr.exec(t))t=t.substring(a[0].length),e.push({type:"hr"});else if(a=i.blockquote.exec(t))t=t.substring(a[0].length),e.push({type:"blockquote_start"}),_tokenize(e,a[0].replace(/^ *> ?/gm,""),r,!0),e.push({type:"blockquote_end"});else if((a=/^[\s-:]*?\|[\s-:\|]*/im.exec(t))||!(a=/^( *)([*\-+])[\s$]/im.exec(t))){if(a=i.html.exec(t))t=t.substring(a[0].length),e.push({type:"html",pre:"pre"===a[1]||"script"===a[1]||"style"===a[1],text:a[0]});else if(!n&&r&&(a=i.def.exec(t)))t=t.substring(a[0].length),e.push({type:"code",text:`??${a[0]}??${i.def}??`});else if(r&&(a=i.paragraph.exec(t)))t=t.substring(a[0].length),e.push({type:"paragraph",text:"\n"===a[1].charAt(a[1].length-1)?a[1].slice(0,-1):a[1]});else if(a=i.text.exec(t))t=t.substring(a[0].length),e.push({type:"text",text:a[0]});else if(t)throw new Error("Infinite loop on byte: "+t.charCodeAt(0))}else{a.index>0&&_tokenize(e,t.substring(0,a.index)),t=t.substring(a.index+a[0].length);var p=/([^]*?)(\n\n|\n\s*[#\>])/im.exec(t+"\n\n");p?(_parselista(e,"*"==a[2],a[1].length,p[1]),t=t.substring(p[1].length)):e.push({type:"text??",text:a[0]})}}return e},i=e.tables;return t=function removeInfo(e,t=!1){var s=e.replace(/:::([^]+?):::/gim,"").replace(new RegExp(r.regex,"gim"),"").replace(/^\s*#\s+/im,"# ").replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");if(t){const e=/(^\s*\#\s+(.*)?\s*)$/im;var n=e.exec(s);n&&0==n.index&&(s=s.replace(e,""))}return s}(t,n),_tokenize([],t,!0)},n={string:/(".*?[^\\]"|'.*?[^\\]'|`[^]*?[^\\]`|""|''|``)/m,puntuaction:/(-[-=]?|,|;|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3})/g,parentesis:/(\(|\)|\[|\]|\{|\})/g,ingraffe:/([^$])(\{)(.*?)(\})/g,regex:/\/.*?[^\\]\/[gimu]*/m,numbers:/\b((?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?)/gi,js:{comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/)))/m,keyword:/(\b)(import|require|endif|include|define|float|int|real|char|bool|as|true|false|async|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)(\b)/g,keyword2:/(\.\w+|\w+\:)/g},json:{string:/(".*?[^\\]")/m,string1:/(".*?[^\\]"\s*:)/m},html:{script:/(<script[\s\S]*?>)([^]*?)(<\/script>)/im,tag:/\<(!DOCTYPE|\/?\w+)([^]*?)(\/?\>)/im,intag:/(\b)([\w-]+)(=)/g,comments:/\<\!--[^]*?--\>/im},bash:{comments:/# .*/,keyword1:/(^ *|\; *)(\w+)(\b)/g,keyword:/(\b)(sudo *[\w-]+)(\b)/g},sql:{keyword:".",keyword2:/(\b)(FROM|USING|FTS5|NVARCHAR|INTEGER|REAL|BLOB|DELETE|UPDATE|BEGIN|END|ADD|CREATE|CONSTRAINT|ALTER|COLUMN|TABLE|ALL|ASC|BETWEEN|CASE|CHECK|COLUMN|INDEX|VIEW|PROCEDURE|DESC|DISTINTC|DROP|OUTER|INNER|LEFT|JOIN|INSERT|INTO|[NOT ]*NULL|LIMIT|SELECT|ORDER BY|UNION|WHERE)(\b)/gi,keyword1:/(\b)(COLLATE|NOCASE|DEFAULT|IF [NOT ]*EXISTS|PRIMARY KEY|VALUES|AS)(\b)/gi,comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/))|(--\s.*))/m}};function elang(e,t,s,r){var n;return r&&(n=r.length,r.push(e)),`<pre class="elang relative"><div class="absolute clipboard top-1 right-1 w-5 h-5 " data="${n}"></div>${xelang(e,t,s)}</pre>`}const escapeTag=e=>e.replace(/[<>]/g,(e=>({"<":"<",">":">"}[e]))),escapeHTML=e=>e.replace(/[&<>'"]/g,(e=>({"&":"&","<":"<",">":">","'":"'",'"':"""}[e]))),unescapeHTML=e=>e.replace(/\&\;/g,"&").replace(/\"\;/g,'"').replace(/\'\;/g,"'").replace(/\>\;/g,">").replace(/\<\;/g,"<");function xelang(e,t,s){var gspan=(e,t)=>(t&&(t=t.replace(/(\b)(\w+)(\b)/g,"$1_$2$3")),`☉☊${t||""}☊☉${(e=escapeTag(e))||""}☉☋`),regex=e=>{if(n[t]){if("."==(s=n[t][e]))return;if(s)return s}var s;return"."==(s=n[e])?void 0:s},r=[],i=0,a=[];if(t){if(n[t]||(t="js"),c=regex("script")){for(var l=[];;){if(!(p=c.exec(e)))break;p.index>0&&l.push(e.substr(0,p.index)),l.push(`★★K${a.length}★★`),a.push(xelang(p[1],t)+xelang(p[2],"js")+xelang(p[3],t)),e=e.substr(p.index+p[0].length)}e.length&&l.push(e),e=l.join("")}for(var i of[{r:"comments",s:"C"}]){if(c=regex(i.r)){for(l=[];;){if(!(p=c.exec(e)))break;if(p.index>0&&l.push(e.substr(0,p.index)),l.push(`★★${i.s}${a.length}★★`),"html"==t){var o=p[0].replace(/\</g,"<").replace(/\>/g,">");a.push(o)}else a.push(p[0]);e=e.substr(p.index+p[0].length)}e.length&&l.push(e),e=l.join("")}}for(var i of[{r:"string2",s:"A"},{r:"string1",s:"B"},{r:"string",s:"S"},{r:"tag",s:"T"},{r:"regex",s:"R"}]){var c;if(c=regex(i.r)){for(l=[];;){var p;if(!(p=c.exec(e)))break;if(p.index>0&&l.push(e.substr(0,p.index)),l.push(`★★${i.s}${a.length}★★`),"T"==i.s){o=p[2].replace(regex("intag"),((e,t,s,r)=>t+gspan(s,"intag")+gspan(r,"punc")));a.push(gspan("<","punc")+p[1]+o+gspan(p[3],"punc"))}else if("`"==p[0][0]){o=p[0].replace(/(\${)(.*?)(})/gm,((e,t,s,r)=>gspan(t,"punc")+gspan(s,"word")+gspan(r,"punc")));a.push(o)}else a.push(p[0]);e=e.substr(p.index+p[0].length)}e.length&&l.push(e),e=l.join("")}}g=e.split("\n"),i=0;for(var u of g)i++,u=u.replace(regex("keyword"),((e,t,s,r)=>gspan(t,"tag")+gspan(s,"keys")+r)).replace(regex("keyword1"),((e,t,s,r)=>t+gspan(s,"keys1 keys")+r)).replace(regex("keyword2"),(e=>gspan(e,"keys2 keys"))).replace(regex("numbers"),(e=>gspan(e,"number"))).replace(regex("ingraffe"),((e,t,s,r,n)=>t+gspan(s,"punc")+gspan(r,"word")+gspan(n,"punc"))).replace(regex("puntuaction"),(e=>gspan(e,"punc"))).replace(/★★T(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"tag"))).replace(/★★S(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"string"))).replace(/★★B(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"string string1"))).replace(/★★A(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"string string2"))).replace(/★★R(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"regex"))).replace(/★★C(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"comment"))).replace(/★★K(\d+)★★/gu,((e,t)=>a[Number(t)])),s?r.push(gspan((" "+i).substr(-4),"rowid")+gspan(u)):r.push(gspan(u))}else{var g=e.split("\n");for(var u of g)i++,s?r.push(`${gspan((" "+i).substr(-4),"rowid")}${gspan(u)}`):r.push(gspan(u))}var h=r.join("\n");return h=h.replace(/☉☋/gmu,"</span>").replace(/☉☊([^]*?)☊☉/gmu,((e,s)=>{if(s){var r=s.split(" "),n=[];for(var i of r)n.push(`elang_${t}${i}`),n.push(`elang${i}`);return`<span class="${n.join(" ")}">`}return"<span>"})),h}class Render{constructor(e,t,s){this.baseurl=e,this.easy=t,this.callback=s}code(e,t,s){if(this.easy)return"";t||(t="js");var r=t==t.toUpperCase();return elang(e,t=t.toLowerCase(),r,s)}blockquote(e){return this.easy?e:`<blockquote>\n${e}</blockquote>\n`}html(e){return e}heading(e,t,s){return"."==e||"*"==e?"":this.easy?`${e} `:`<h${t}>${e}</h${t}>`}hr(){return this.easy?"":'<div class="my-4"><hr/></div>'}list(e,t){var s=t?"ol":"ul";return`<${s}>\n${e}</${s}>\n`}listtitle(e){return`<span class="listtitle">${e}</span>`}listitem(e,t){return t?`<li attr-num="${t||""}">${e}</li>\n`:`<li>${e}</li>\n`}paragraph(e){return this.easy?e:`<p>${e}</p>\n`}table(e,t){return this.easy?"":`<table>\n<thead>\n${e}\n</thead>\n<tbody>\n${t}\n</tbody>\n</table>\n\n`}tablerow(e){return`<tr>\n${e}</tr>\n`}tablecell(e,t,s){return t?`<th style="text-align:center;">${e}</th>\n`:`<td style="${s?"text-align:"+s+";":""}">${e}</td>`}colorbase(e){return`<span class='tilde'>${e}</span>`}formula(e,t=!1){if(this.easy)return"";var s=`<img class='inline px-2' src='https://math.croswil.com/f?${e=e.replace(/<\/?em>/g," ").replace(/\r/g,"").replace("/\n/g"," ")}' alt='${e}'/>`;return t?`<div class='flex justify-center'><div>${s}</div></div>`:s}coloralt(e){return`<span class='tilde2'>${e}</span>`}blink(e){}strong(e){return"<strong>"+e+"</strong>"}ico(e){return`<span class="font-ico">${e}</span>`}em(e){return"<em>"+e+"</em>"}codespan(e){return"<code>"+e+"</code>"}br(){return"<br>"}del(e){return`<del>${e}</del>`}link(e,t,s){if(this.easy)return"("+s+")";"/"==e.substr(0,1)&&this.baseurl&&(e=this.baseurl+e.substr(1));var r="";return e.startsWith(".")?e=e.slice(1):r='target="_blank"',`<a ${r} href='${e}' title='${t||""}'>${s}</a>`}image(e,t,s){if(this.easy)return"";var r=s.split("|"),n="";let i=!1,a=!1,l=!1;if((e=(e=e.replace("https://www.youtube.com/watch?v=","https://youtu.be/")).replace("https://youtu.be","https://www.youtube.com/embed")).endsWith(".mp3")?(e=e.slice(0,-4),l=!0):e.endsWith(".mp4")?(e=e.slice(0,-4),a=!0):e.endsWith(".webm")?(e=e.slice(0,-5),i=!0):e.endsWith(".video")&&(e=e.slice(0,-6),i=!0,a=!0),l)n=`\n <audio controls ${r.length>=1?' width="'+r[1]+'"':""}\n class="mx-auto my-2 ${r.length>=2?r[2]:""}" \n >\n <source src="${e}.mp3" type="audio/mpeg">\n Il tuo browser non supporta l'elemento audio.\n </audio>\n `;else if(a||i)n=`\n<video ${r.length>=1?' width="'+r[1]+'"':""}\nclass="border rounded-lg shadow-xl ${r.length>=2?r[2]:""}" \ncontrols controlsList="nodownload" >\n ${i?'<source src="'+e+'.webm" type="video/webm" >':""}\n ${a?'<source src="'+e+'.mp4" type="video/mp4" >':""}\n \n Your browser does not support the video tag.\n</video>`;else{if(e.indexOf("https://www.youtu")>=0){var o=e.split("/embed/")[1]?.split("?")[0];return n=`\n\n<div style="width: 94%; box-shadow: 6px 6px 10px hsl(206.5, 0%, 75%); margin: 3%;">\n <div style="position: relative; padding-bottom: 56.15%; height: 0; overflow: hidden;">\n <iframe \n style="position: absolute; top: 0; left:0; width: 100%; height: 100%; border: 0;"\n loading="lazy";\n srcdoc="<style>\n * {\n padding: 0;\n margin: 0;\n overflow: hidden;\n }\n \n body, html {\n height: 100%;\n }\n \n img, svg {\n position: absolute;\n width: 100%;\n top: 0;\n bottom: 0;\n margin: auto;\n }\n \n svg {\n filter: drop-shadow(1px 1px 10px hsl(206.5, 70.7%, 8%));\n transition: all 250ms ease-in-out;\n }\n \n body:hover svg {\n filter: drop-shadow(1px 1px 10px hsl(206.5, 0%, 10%));\n transform: scale(2);\n }\n </style>\n <a href='https://www.youtube.com/embed/${o}?autoplay=1'>\n <img src='https://img.youtube.com/vi/${o}/hqdefault.jpg' alt='${t||"video"}'>\n <svg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='#ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-play-circle'><circle cx='12' cy='12' r='10'></circle><polygon points='10 8 16 12 10 16 10 8'></polygon></svg>\n </a>\n "\n src="https://www.youtube.com/embed/${o}" \n title="${t||"video"}"\n frameborder="0"\n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n </div>\n </div> \n \n`}this.callback&&"function"==typeof this.callback&&(e=this.callback(e)),"/"==e.substr(0,1)&&this.baseurl&&(e=this.baseurl+e.substr(1)),n='<img src="'+e+'" alt="'+r[0]+'"',r.length>1&&(r[1].length&&(n+=' width="'+r[1]+'"'),r.length>2&&(n+=' class="'+r[2]+'"')),r[0]&&(n+=' title="'+r[0]+'"'),n+="/>"}return n}text(e){return e}}const i=t.gfm;var tokenparser=(e,t,s=0)=>{for(var r=0,checklen=e=>{if(s>0&&e.length>s-r){var t=(e=e.substring(0,s-r)).lastIndexOf(" ");t>0&&(e=e.substring(0,t))}return e},next=()=>a=n.pop(),parseText=()=>{for(var e=a.text;"text"===(n[n.length-1]||0).type;)e+="\n"+next().text;return output(checklen(e))},outputLink=(e,s)=>{var r=escape(s.href),n=s.title?escape(s.title):null;return"!"!==e[0].charAt(0)?t.link(r,n,output(e[1])):t.image(r,n,escape(e[1]))},output=e=>{for(var s,r,n,a,c="";e;)if(a=i.escape.exec(e))e=e.substring(a[0].length),c+=a[1];else if(a=i.autolink.exec(e))e=e.substring(a[0].length),n="@"===a[2]?`mailto:${r=":"===a[1].charAt(6)?a[1].substring(7):a[1]}`:r=escape(a[1]),c+=t.link(n,null,r);else if(a=i.blink.exec(e))e=e.substring(a[0].length),c+=t.blink(output(a[2]||a[1]));else if(l||!(a=i.url.exec(e))){if(a=i.tag.exec(e))!l&&/^<a /i.test(a[0])?l=!0:l&&/^<\/a>/i.test(a[0])&&(l=!1),e=e.substring(a[0].length),c+=a[0];else if(a=i.link.exec(e))e=e.substring(a[0].length),l=!0,c+=outputLink(a,{href:a[2],title:a[3]}),l=!1;else if((a=i.reflink.exec(e))||(a=i.nolink.exec(e))){if(e=e.substring(a[0].length),s=(a[2]||a[1]).replace(/\s+/g," "),!(s=o[s.toLowerCase()])||!s.href){c+=a[0].charAt(0),e=a[0].substring(1)+e;continue}l=!0,c+=outputLink(a,s),l=!1}else if(a=i.formula.exec(e))e=e.substring(a[0].length),c+=t.formula(output(a[1]));else if(a=i.ico.exec(e))e=e.substring(a[0].length),c+=t.ico(output(a[2]||a[1]));else if(a=i.strong.exec(e))e=e.substring(a[0].length),c+=t.strong(output(a[2]||a[1]));else if(a=i.em.exec(e))e=e.substring(a[0].length),c+=t.em(output(a[2]||a[1]));else if(a=i.code.exec(e))e=e.substring(a[0].length),c+=t.codespan(escape(a[2],!0));else if(a=i.br.exec(e))e=e.substring(a[0].length),c+=t.br();else if(a=i.del.exec(e))e=e.substring(a[0].length),c+=t.del(output(a[1]));else if(a=i.coloralt.exec(e))e=e.substring(a[0].length),c+=t.coloralt(output(a[1]));else if(a=i.colorbase.exec(e))e=e.substring(a[0].length),c+=t.colorbase(output(a[1]));else if(a=i.text.exec(e))e=e.substring(a[0].length),c+=t.text(a[0]);else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else e=e.substring(a[0].length),n=r=escape(a[1]),c+=t.link(n,null,r);return c},tok=()=>{switch(a.type){case"space":return"";case"hr":return t.hr();case"heading":return t.heading(output(checklen(a.text)),a.depth,a.text);case"code":return"math"==a.lang?t.formula(a.text,!0):t.code(a.text,a.lang,c);case"table":var e,s,r,n,i=[];r=[];for(var l=0;l<a.headers.length;l++)r.push(t.tablecell(tokenparser(a.headers[l],t,0).out,!0,a.align[l]));for(e=t.tablerow(r.join("")),l=0;l<a.cells.length;l++){for(s=a.cells[l],r=[],n=0;n<s.length;n++)r.push(t.tablecell(tokenparser(s[n],t,0).out,!1,a.align[n]));i.push(t.tablerow(r.join("")))}return t.table(e,i.join(""));case"blockquote_start":for(i="";"blockquote_end"!==next().type;)i+=tok();return t.blockquote(i);case"list_start":i="";for(var o=a.ordered;"list_end"!==next().type;)i+=tok();return t.list(i,o);case"list_title_start":for(i="";"list_title_end"!==next().type;)i+=tok();return t.listtitle(i);case"list_item_start":i="";for(var p=a.num;"list_item_end"!==next().type;)i+="text"===a.type?parseText():tok();return t.listitem(i,p);case"html":return t.html(a.text);case"paragraph":return t.paragraph(output(checklen(a.text)));case"text":return t.paragraph(parseText());default:console.log("missing",a.type)}},n=e.reverse(),a=void 0,l=!1,o={},c=[],p=[];next();){var u=tok();if(r+=u.length,u&&p.push(u),s>0&&r>s)break}return{out:p.join(""),codes:c}};function __parselist(e,t){var s;function pb(r,n,i){if(s=r.exec(e)){__parselist(e.slice(0,s.index),t);var a=s[1];return a.startsWith("\n")&&(t.push({class:"",text:"\n"}),a=a.slice(1)),t.push({class:n,text:i?i(a):a}),__parselist(e.slice(s.index+s[1].length),t),!0}return!1}e&&"string"==typeof e&&(pb(/^(\:{3}\s*$[^]+?\:{3}\s*$)/gim,"comment")||pb(/^(\s*`{3}[^]+?`{3}\s*$)/gim,"code")||pb(/^(\s*:\w+:.*)$/gim,"comment")||(e=e.replace(/ {2,}\n/gim," "),pb(/^(\s*#{1,6}\s+.*)/gim,"title")||pb(/(\n\s*\n)/gim,"break")||pb(/^(\s*\>\s+[^]*?\n\n)/gim,"cite")||pb(/^(\s*\>\s+.*)/gim,"cite")||pb(/^(.*?\|[^]*?\n\n)/gim,"table")||pb(/^( *\*| *\-|\-{1,8})[ $]/gim,"list")||pb(/^( ([\d]+[\.]*)+)[ $]/gim,"list",(e=>{var t=e.split(".");t.shift();var s=[];for(var r of t)r.length&&s.push(" ");return s.push("-"),s.join("")}))||t.push({class:"",text:e})))}function parselist(e,t=""){var s=[];__parselist(e,s);for(var r=[],n=0,i=0;i<s.length;i++){if("list"==(g=s[i]).class){var a=g.text.replace("\n","").length;if(a>n)r.push({space:a,id:1}),n=a;else for(;;){var l=r[r.length-1];if(1==r.length||l.space<=a){n=l.space,l.id++;break}r.pop()}var o=[],c=[];for(var l of r)c.push(" "),o.push(l.id);c.pop(),g.old=g.text,g.text.indexOf("-")>=0?g.text=c.join("")+"- "+o.join(".")+".":g.text=c.join("")+"* ",o=[];for(var p=i+1;p<s.length&&""==s[p].class;p++)o.push(s[p].text);g.title=t,g.data=g.text+o.join("")}else""!=g.class&&("title"==g.class&&(t=g.text),r=[],n=0)}o=[];var u=[];for(var g of s)"list"==g.class&&u.push({title:g.title,lev:g.text,data:g.data}),o.push(g.text);return{txt:o.join(""),cards:u,tm:s}}function parserow$1(e,t,s=""){var r;function parse3(n,i){return!!(r=n.exec(e))&&(parserow$1(e.slice(0,r.index),t,s),t.push({class:`${s} ${i}`,text:r[1]}),parserow$1(r[2],t,`${s} ${i}`),t.push({class:`${s} ${i}`,text:r[3]}),parserow$1(e.slice(r.index+r[1].length+r[2].length+r[3].length),t,s),!0)}(function parse1(n,i){return!!(r=n.exec(e))&&(parserow$1(e.slice(0,r.index),t,s),t.push({class:`${s} ${i}`,text:r[1]}),parserow$1(e.slice(r.index+r[1].length),t,s),!0)})(/(`.*?`)/gim,"code2")||parse3(/(\*{3})([^]+?)(\*{3})/gim,"grassetto italico")||parse3(/(\*{2})([^]+?)(\*{2})/gim,"grassetto")||parse3(/(\*{1})([^]+?)(\*{1})/gim,"italico")||parse3(/(_{3})([^]+?)(_{3})/gim,"grassetto italico")||parse3(/(_{2})([^]+?)(_{2})/gim,"grassetto")||parse3(/(_{1})([^]+?)(_{1})/gim,"italico")||parse3(/(\~{3})([^]+?)(\~{3})/gim,"barrato")||parse3(/(\~{2})([^]+?)(\~{2})/gim,"tilde2")||parse3(/(\~{1})([^]+?)(\~{1})/gim,"tilde")||t.push({class:s,text:e})}function parseblock$1(e,t){var s;function pb(r,n,i=!1){return!!(s=r.exec(e))&&(parseblock$1(e.slice(0,s.index),t),i?parserow$1(s[1],t,n):t.push({class:n,text:s[1]}),parseblock$1(e.slice(s.index+s[1].length),t),!0)}if(!(pb(/^(\:{3}[^]+?\:{3})/gim,"comment")||pb(/^(\s*`{3}[^]+?`{3})/gim,"code")||pb(/^(\s*:\w+:.*)$/gim,"comment")||pb(/^(\s*#{1,6} +.*)$/gim,"title",!0)||pb(/^(\s*\>\s+[^]*?\n\n)/gim,"cite",!0)||pb(/^(\s*\>\s+.*)/gim,"cite",!0)||pb(/^(.*?\|.*\n[\-: ]+\|[\-\| :]*\n.*?\|[^]*?\n\n)/gim,"tabella",!0)||pb(/^(\n{2,})/gim,"break",!0)||pb(/^( *\*| *\-|\-{1,8})[ $]/gim,"list",!0)||pb(/(^\s*[\d\.]+)[\s$]/gim,"list",!0))){if(s=/(\!*\[)(.*?)(\]\s*\()(.*?)(\))/.exec(e))return parserow$1(e.slice(0,s.index),t,""),t.push({class:"grassetto",text:s[1]}),t.push({class:"linkdes",text:s[2]}),t.push({class:"grassetto",text:s[3]}),t.push({class:"linkval",text:s[4]}),t.push({class:"grassetto",text:s[5]}),void parserow$1(e.slice(s.index+s[1].length+s[2].length+s[3].length+s[4].length+s[5].length),t,"");parserow$1(e,t,"")}}function parsetext(e){e||(e=" "),e.endsWith("\n")&&(e+=" ");var t=[];return parseblock$1(e,t),t}function parserow(e,t,s=""){var r;function parse1(n,i){return!!(r=n.exec(e))&&(parserow(e.slice(0,r.index),t,s),t.push({class:`${s} ${i}`,text:r[1]}),parserow(e.slice(r.index+r[1].length),t,s),!0)}parse1(/(\/\/.*)$/gim,"commento2")||function parse2(n,i){if(r=n.exec(e)){var a=r.index+r[1].length;return parserow(e.slice(0,a),t,s),t.push({class:`${s} ${i}`,text:r[2]}),parserow(e.slice(a+r[2].length),t,s),!0}return!1}(/(#let.? +)([\w_\.]+)/gi,"variabile")||parse1(/(#(select|cases|endselect|ifdef|log|msg|endif|cvar|cache|look|lookb|elseifdef|variante|forvar|for|endfor|continue|break|inc|macro|default|lets|letv|lett|cat|func))/gim,"comando")||parse1(/(#(if\s*|elseif\s*))/gim,"comando")||parse1(/(#(else|let|i |m |f |j |case|def ))/gim,"comando")||parse1(/(\$[\{\(]?[\w_\.]+)/gim,"variabile")||parse1(/(\{.+?\})/gim,"formula")||parse1(/([\}\)\(])/gim,"variabile")||parse1(/([\d\.\:\,\;\\,]+)/gim,"digit")||t.push({class:s,text:e})}function parseblock(e,t){var s;(function pb(r,n,i=!1){return!!(s=r.exec(e))&&(parseblock(e.slice(0,s.index),t),i?parserow(s[1],t,n):t.push({class:n,text:s[1]}),parseblock(e.slice(s.index+s[1].length),t),!0)})(/(\/\*[^]+?\*\/)/gim,"comment")||parserow(e,t,"")}function parserule(e){e||(e=" "),e.endsWith("\n")&&(e+=" ");var t=[];return parseblock(e,t),t}function formatrule(e){let t=e.split("\n"),s=[],r=0;const n=" ";for(let e=0;e<t.length;e++){let i=t[e].trim(),a=n.repeat(r>=0?r:0),l="";(i.startsWith("#")||i.startsWith("!"))&&(l=i.substring(1).split(" ")[0].toUpperCase(),i=i.substring(0,1)+l+i.substring(l.length+1)),"IF"==l||"IFDEF"==l||"IFNDEF"==l?i.indexOf("#",2)<0?r++:i=i.replace(/#([\w]+)/g,((e,t)=>"#"+t.toUpperCase())):["FOR","FORVAR","DO","SELECT"].includes(l)?r++:["ENDIF","LOOP","ENDFOR","ENDSELECT"].includes(l)&&(r--,a=n.repeat(r>=0?r:0)),["ELSEIF","ELSE","ELSEIFDEF","ELSEIFNDEF","CASE","CASES","DEFAULT"].includes(l)&&r>0?s.push(n.repeat(r-1)+i):s.push(a+i)}return s.join("\n")}function getcolonne(e){if((e=e+""||"").includes('"')){return e.split(/[,;](?=(?:(?:[^"]*["]){2})*[^"]*$)/).map((e=>e.trim().replace(/(^["'])|(["']$)/g,"").replace(/=\s*["']/g,"=")))}return e.split(/[,;]/).map((e=>e.trim()))}function formatvariante(e){let t=[],s=[];for(var r of e.split("\n")){let e=getcolonne(r);for(let t=0;t<e.length;t++){let r=e[t]||"";(r.includes(",")||r.includes(";"))&&(r=`"${r}"`,e[t]=r);let n=r.length;(!s[t]||s[t]<n)&&(s[t]=n)}t.push(getcolonne(r))}let n=[];for(var r of t){let e=[];for(let t=0;t<s.length;t++)e[t]=(r[t]||"").padEnd(s[t]);n.push(e.join(" , "))}return n.join("\n")}function markunoFormatCodeMirror(e){e.defineMode("markuno",(function(){return{startState:function(){return{inComment:!1}},token:function(e,t){return t.inComment?(e.match(/\*\//)?t.inComment=!1:e.skipToEnd(),"commento1"):e.match(/\/\/.*/)?"commento2":e.match(/\/\*/)?(t.inComment=!0,"commento1"):e.match(/^\s*#(select|cache|cvar|lookb|look|cases|endselect|log|msg|ifdef|ifndef|elseif|elseifndef|endif|elseifdef|variante|forvar|for|endfor|continue|break|inc|macro|default|lets|lett|cat|func|push|pop|letv|let|letm|lett|else)/i)||e.match(/^\s*#(if\s*|elseif\s*|i |m |f |j |case|def )/i)||e.match(/#(else|let|letv|lett|letm|cvar|cache|lookb|look)/i)?"comando":!t.inCommand&&e.match(/^\s*#[\w_\.]+/i)?"macro":e.match(/^\s*![\w_\.]+/i)||e.match(/\$\[[\w_\.]+/)?"funzione":e.match(/\$[\{\(]?[\w_\.]+/)?"variabile":e.match(/\]/)?"funzione":e.match(/\{.+?\}/)?"formula":e.match(/[\d\.\:\,\;\\,]+/)?"digit":(e.next(),null)}}}))}function parsevars(e,t){var s=e;if(t)for(var r in t){var n=t[r]||`..${r}..`;s=s.replace(new RegExp(`\\[${r}\\]`,"gim"),n)}return s}var parseinfomd=(e,t,s)=>r.parse(e,t,s),mark=(e,t,s=!1,r=!1,n)=>{var i;if(r)i=tokenize(e,0,s);else{var{txt:a}=parselist(e);i=tokenize(a,0,s)}return tokenparser(i,new Render(t,!1,n))},markeasy=(e,t=400,s=!1)=>{var r=tokenize(e,t,s);return tokenparser(r,new Render,t).out};export{Render,r as aliasInfo,elang,escapeHTML,formatrule,formatvariante,mark,markeasy,markunoFormatCodeMirror,parseinfomd,parselist,parserule,parsetext,tokenparser as parsetokens,parsevars,tokenize,unescapeHTML};
|
|
1
|
+
function escape(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function replace(e,t){return e=e.source,t=t||"",function self(s,r){return s?(r=(r=r.source||r).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(s,r),self):new RegExp(e,t)}}function noop(){}function merge(e){for(var t,s,r=1;r<arguments.length;r++)for(s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}noop.exec=noop;var e={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/,bullet:/(?:[*+-])/,item:/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/};e.item=replace(e.item,"gm")(/bull/g,e.bullet)(),e.list=replace(e.list)(/bull/g,e.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+e.def.source+")")(),e.blockquote=replace(e.blockquote)("def",e.def)(),e._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",e.html=replace(e.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,e._tag)(),e.paragraph=replace(e.paragraph)("hr",e.hr)("heading",e.heading)("lheading",e.lheading)("blockquote",e.blockquote)("tag","<"+e._tag)("def",e.def)(),e.normal=merge({},e),e.gfm=merge({},e.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/,formula:/^ *(\${2,})([\s\S]*?)\s*\1 *(?:\n+|$)/}),e.gfm.paragraph=replace(e.paragraph)("(?!","(?!"+e.gfm.fences.source.replace("\\1","\\2")+"|"+e.list.source.replace("\\1","\\3")+"|")(),e.tables=merge({},e.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :0123456789]*)\n((?: *\|.*(?:\n|$))*)\n*/});var t={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,blink:/^\[\[([\s\S]+?)\]\](?!\])/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,ico:/^\:\:([\s\S]+?)\:\:/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,colorbase:noop,coloralt:noop,text:/^[\s\S]+?(?=[\\<!\[_*\:`]| {2,}\n|$)/,_inside:/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/,_href:/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/};t.link=replace(t.link)("inside",t._inside)("href",t._href)(),t.reflink=replace(t.reflink)("inside",t._inside)(),t.normal=merge({},t),t.pedantic=merge({},t.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),t.gfm=merge({},t.normal,{escape:replace(t.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~~(?=\S)([\s\S]*?\S)~~~/,colorbase:/^~(?=\S)([\s\S]*?\S)~/,coloralt:/^~~(?=\S)([\s\S]*?\S)~~/,formula:/^\$(?=\S)([\s\S]*?\S)\$/,text:replace(t.text)("]|","~$]|")("|","|https?://|")()}),t.breaks=merge({},t.gfm,{br:replace(t.br)("{2,}","*")(),text:replace(t.gfm.text)("{2,}","*")()});const s={s:"subtitle",k:"keywords",g:"gruppo",e:"editore",y:"datapub",d:"datapub",p:"priority",a:"autore",u:"base",t:"title",l:"link",i:"img","#":"title"};const r=new class AliasInfo{constructor(){this.alias=JSON.parse(JSON.stringify(s)),this.check()}check(){var e=new Set,checkr=t=>{t&&t.length>2&&!e.has(t)&&e.add(t)};for(var t in this.alias)this.alias[t]?(checkr(t),checkr(this.alias[t])):delete this.alias[t];this.retoalias=function retroalias(e){var t={};for(var s in e)e[s]&&(t[e[s]]=s);return t}(this.alias),e=`^\\s*\\:(${(e=[...e]).join("|")}|\\w{1,2})\\:(.*)$`,this.regex=e}add(e,t){return e&&(this.alias[e]=t,this.check()),this}removeAll(){return this.alias={},this.check(),this}setmappa(e){for(var t in this.alias={},e)this.alias[t]=e[t];this.alias["#"]||(this.alias["#"]="title"),this.check()}parse(e,t,s){s&&this.setmappa();var r=e,n={};t&&((n=Object.assign(n,t)).info=!0),(o=/^\s*\#\s+(.*?)\s*$/im.exec(r))&&(n[this.alias["#"]]=o[1].toLowerCase());for(var i=0;i<20;i++){if(!(o=/:::(.*)([^]+?):::/im.exec(r)))break;var a=o[1];a||(a=i+""),n.comments||(n.comments=[]),n.comments.push({k:a,v:o[2]}),r=r.substr(o.index+o[0].length)}r=e;var l=new RegExp(this.regex,"im");for(i=0;i<50;i++){var o;if(!((o=l.exec(r))&&o.length>=2))break;r=r.substr(o.index+o[0].length),n.info=!0;var c=(o[2]||"").trim(),p=this.alias[o[1].toLowerCase()];p||(p=o[1].toLowerCase()),"l"==p||"link"==p?(n[p]||(n[p]=[]),n[p].push(c)):n[p]=c}return n}};var tokenize=(t,s,n=!1)=>{function _parsetable(e,t){var s,r={type:"table",headers:[],align:[],cells:[],cols:0},n=t.split("\n"),i=!1;function checkcols(e){if(r.cols<e){for(var t=r.cols;t<e;t++)for(var s of(r.align[t]="left",r.headers[t]=[],r.cells))s[t]=[];r.cols=e}}for(var a of n)if((a=a.trim()).length)if(a.length>2&&a.startsWith("|")&&a.endsWith("|")&&(a=a.slice(1,-1)),checkcols((s=a.split("|")).length),0==i&&/^[\- :]+\|[\- :\|]*$/im.test(a)){for(var l=0;l<s.length;l++){var o=(u=s[l]).slice(0,1),c=u.slice(-1);r.align[l]=":"==o&&":"==c?"center":":"==c?"right":"left"}i=!0}else{var p=[];for(l=0;l<s.length;l++){var u=s[l];if(i){var g=[];_tokenize(g,u,!1),p.push(g)}else _tokenize(r.headers[l],u,!1)}i&&r.cells.push(p)}e.push(r)}function _pushtoken(e,t){var s=/^([\d\.]+)\s*/.exec(t),r="",n="";s&&(r=s[1],t=t.substring(s.index+s[0].length)),(s=/^([\w\s]*?):.*$/gim.exec(t))&&(n=s[1],t=t.substring(s.index+s[1].length)),e.push({type:"list_item_start",num:r}),n&&(e.push({type:"list_title_start"}),_tokenize(e,n,!1),e.push({type:"list_title_end"})),t=t.replace(/\n +/gim,"<br>"),_tokenize(e,t,!1),e.push({type:"list_item_end"})}function _parselista(e,t,s,r){var n=[s];for(e.push({type:"list_start",ordered:t});;){var i=/^( *)([*\-+])[\s$]/im.exec(r);if(!i){_pushtoken(e,r);break}i.index&&_pushtoken(e,r.substring(0,i.index));var a=i[1].length;if(a>n[n.length-1])e.push({type:"list_start",ordered:t}),n.push(a);else for(;;){var l=n[n.length-1];if(1==n.length||l<=a)break;e.push({type:"list_end"}),n.pop()}r=r.substring(i.index+i[0].length)}for(var o of n)e.push({type:"list_end"})}var _tokenize=(e,t,r,n)=>{var a;for(t=t.replace(/^ +$/gm,"");t;){if(s){var l=0;for(var o of e)o.text||o.html?l=l+o.text.length+2:l+=3;if(l>s)break}if((a=i.newline.exec(t))&&(t=t.substring(a[0].length),a[0].length>1&&e.push({type:"space"})),a=i.formula.exec(t))t=t.substring(a[0].length),e.push({type:"code",lang:"math",text:a[2]||""});else if(a=/^(\s*`{3})(.*)([^]+?)(`{3})/gim.exec(t)){a.index>0&&_tokenize(e,t.substring(0,a.index),r);var c=(a[3]||"").replace(/^\n/,"").replace(/\n+$/,"");e.push({type:"code",lang:a[2],text:c}),t=t.substring(a.index+a[0].length)}else if(a=i.heading.exec(t))t=t.substring(a[0].length),e.push({type:"heading",depth:a[1].length,text:a[2]});else if(r&&(a=/^(.*?\|.*\n[\-: ]+\|[\-\| :]*\n.*?\|[^]*?)\n\n/gim.exec(t)))a.index>0&&_tokenize(e,t.substring(0,a.index),r),_parsetable(e,a[1]),t=t.substring(a.index+a[0].length);else if(r&&(a=/^\|.*\|\s*(?:\n\|.*\|)+/gim.exec(t)))a.index>0&&_tokenize(e,t.substring(0,a.index),r),_parsetable(e,a[0]),t=t.substring(a.index+a[0].length);else if(a=i.lheading.exec(t))t=t.substring(a[0].length),e.push({type:"heading",depth:"="===a[2]?1:2,text:a[1]});else if(a=i.hr.exec(t))t=t.substring(a[0].length),e.push({type:"hr"});else if(a=i.blockquote.exec(t))t=t.substring(a[0].length),e.push({type:"blockquote_start"}),_tokenize(e,a[0].replace(/^ *> ?/gm,""),r,!0),e.push({type:"blockquote_end"});else if((a=/^[\s-:]*?\|[\s-:\|]*/im.exec(t))||!(a=/^( *)([*\-+])[\s$]/im.exec(t))){if(a=i.html.exec(t))t=t.substring(a[0].length),e.push({type:"html",pre:"pre"===a[1]||"script"===a[1]||"style"===a[1],text:a[0]});else if(!n&&r&&(a=i.def.exec(t)))t=t.substring(a[0].length),e.push({type:"code",text:`??${a[0]}??${i.def}??`});else if(r&&(a=i.paragraph.exec(t)))t=t.substring(a[0].length),e.push({type:"paragraph",text:"\n"===a[1].charAt(a[1].length-1)?a[1].slice(0,-1):a[1]});else if(a=i.text.exec(t))t=t.substring(a[0].length),e.push({type:"text",text:a[0]});else if(t)throw new Error("Infinite loop on byte: "+t.charCodeAt(0))}else{a.index>0&&_tokenize(e,t.substring(0,a.index)),t=t.substring(a.index+a[0].length);var p=/([^]*?)(\n\n|\n\s*[#\>])/im.exec(t+"\n\n");p?(_parselista(e,"*"==a[2],a[1].length,p[1]),t=t.substring(p[1].length)):e.push({type:"text??",text:a[0]})}}return e},i=e.tables;return t=function removeInfo(e,t=!1){var s=e.replace(/:::([^]+?):::/gim,"").replace(new RegExp(r.regex,"gim"),"").replace(/^\s*#\s+/im,"# ").replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");if(t){const e=/(^\s*\#\s+(.*)?\s*)$/im;var n=e.exec(s);n&&0==n.index&&(s=s.replace(e,""))}return s}(t,n),_tokenize([],t,!0)},n={string:/(".*?[^\\]"|'.*?[^\\]'|`[^]*?[^\\]`|""|''|``)/m,puntuaction:/(-[-=]?|,|;|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3})/g,parentesis:/(\(|\)|\[|\]|\{|\})/g,ingraffe:/([^$])(\{)(.*?)(\})/g,regex:/\/.*?[^\\]\/[gimu]*/m,numbers:/\b((?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?)/gi,js:{comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/)))/m,keyword:/(\b)(import|require|endif|include|define|float|int|real|char|bool|as|true|false|async|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)(\b)/g,keyword2:/(\.\w+|\w+\:)/g},json:{string:/(".*?[^\\]")/m,string1:/(".*?[^\\]"\s*:)/m},html:{script:/(<script[\s\S]*?>)([^]*?)(<\/script>)/im,tag:/\<(!DOCTYPE|\/?\w+)([^]*?)(\/?\>)/im,intag:/(\b)([\w-]+)(=)/g,comments:/\<\!--[^]*?--\>/im},bash:{comments:/# .*/,keyword1:/(^ *|\; *)(\w+)(\b)/g,keyword:/(\b)(sudo *[\w-]+)(\b)/g},sql:{keyword:".",keyword2:/(\b)(FROM|USING|FTS5|NVARCHAR|INTEGER|REAL|BLOB|DELETE|UPDATE|BEGIN|END|ADD|CREATE|CONSTRAINT|ALTER|COLUMN|TABLE|ALL|ASC|BETWEEN|CASE|CHECK|COLUMN|INDEX|VIEW|PROCEDURE|DESC|DISTINTC|DROP|OUTER|INNER|LEFT|JOIN|INSERT|INTO|[NOT ]*NULL|LIMIT|SELECT|ORDER BY|UNION|WHERE)(\b)/gi,keyword1:/(\b)(COLLATE|NOCASE|DEFAULT|IF [NOT ]*EXISTS|PRIMARY KEY|VALUES|AS)(\b)/gi,comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/))|(--\s.*))/m}};function elang(e,t,s,r){var n;return r&&(n=r.length,r.push(e)),`<pre class="elang relative"><div class="absolute clipboard top-1 right-1 w-5 h-5 " data="${n}"></div>${xelang(e,t,s)}</pre>`}const escapeTag=e=>e.replace(/[<>]/g,(e=>({"<":"<",">":">"}[e]))),escapeHTML=e=>e.replace(/[&<>'"]/g,(e=>({"&":"&","<":"<",">":">","'":"'",'"':"""}[e]))),unescapeHTML=e=>e.replace(/\&\;/g,"&").replace(/\"\;/g,'"').replace(/\'\;/g,"'").replace(/\>\;/g,">").replace(/\<\;/g,"<");function xelang(e,t,s){var gspan=(e,t)=>(t&&(t=t.replace(/(\b)(\w+)(\b)/g,"$1_$2$3")),`☉☊${t||""}☊☉${(e=escapeTag(e))||""}☉☋`),regex=e=>{if(n[t]){if("."==(s=n[t][e]))return;if(s)return s}var s;return"."==(s=n[e])?void 0:s},r=[],i=0,a=[];if(t){if(n[t]||(t="js"),c=regex("script")){for(var l=[];;){if(!(p=c.exec(e)))break;p.index>0&&l.push(e.substr(0,p.index)),l.push(`★★K${a.length}★★`),a.push(xelang(p[1],t)+xelang(p[2],"js")+xelang(p[3],t)),e=e.substr(p.index+p[0].length)}e.length&&l.push(e),e=l.join("")}for(var i of[{r:"comments",s:"C"}]){if(c=regex(i.r)){for(l=[];;){if(!(p=c.exec(e)))break;if(p.index>0&&l.push(e.substr(0,p.index)),l.push(`★★${i.s}${a.length}★★`),"html"==t){var o=p[0].replace(/\</g,"<").replace(/\>/g,">");a.push(o)}else a.push(p[0]);e=e.substr(p.index+p[0].length)}e.length&&l.push(e),e=l.join("")}}for(var i of[{r:"string2",s:"A"},{r:"string1",s:"B"},{r:"string",s:"S"},{r:"tag",s:"T"},{r:"regex",s:"R"}]){var c;if(c=regex(i.r)){for(l=[];;){var p;if(!(p=c.exec(e)))break;if(p.index>0&&l.push(e.substr(0,p.index)),l.push(`★★${i.s}${a.length}★★`),"T"==i.s){o=p[2].replace(regex("intag"),((e,t,s,r)=>t+gspan(s,"intag")+gspan(r,"punc")));a.push(gspan("<","punc")+p[1]+o+gspan(p[3],"punc"))}else if("`"==p[0][0]){o=p[0].replace(/(\${)(.*?)(})/gm,((e,t,s,r)=>gspan(t,"punc")+gspan(s,"word")+gspan(r,"punc")));a.push(o)}else a.push(p[0]);e=e.substr(p.index+p[0].length)}e.length&&l.push(e),e=l.join("")}}g=e.split("\n"),i=0;for(var u of g)i++,u=u.replace(regex("keyword"),((e,t,s,r)=>gspan(t,"tag")+gspan(s,"keys")+r)).replace(regex("keyword1"),((e,t,s,r)=>t+gspan(s,"keys1 keys")+r)).replace(regex("keyword2"),(e=>gspan(e,"keys2 keys"))).replace(regex("numbers"),(e=>gspan(e,"number"))).replace(regex("ingraffe"),((e,t,s,r,n)=>t+gspan(s,"punc")+gspan(r,"word")+gspan(n,"punc"))).replace(regex("puntuaction"),(e=>gspan(e,"punc"))).replace(/★★T(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"tag"))).replace(/★★S(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"string"))).replace(/★★B(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"string string1"))).replace(/★★A(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"string string2"))).replace(/★★R(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"regex"))).replace(/★★C(\d+)★★/gu,((e,t)=>gspan(a[Number(t)],"comment"))).replace(/★★K(\d+)★★/gu,((e,t)=>a[Number(t)])),s?r.push(gspan((" "+i).substr(-4),"rowid")+gspan(u)):r.push(gspan(u))}else{var g=e.split("\n");for(var u of g)i++,s?r.push(`${gspan((" "+i).substr(-4),"rowid")}${gspan(u)}`):r.push(gspan(u))}var h=r.join("\n");return h=h.replace(/☉☋/gmu,"</span>").replace(/☉☊([^]*?)☊☉/gmu,((e,s)=>{if(s){var r=s.split(" "),n=[];for(var i of r)n.push(`elang_${t}${i}`),n.push(`elang${i}`);return`<span class="${n.join(" ")}">`}return"<span>"})),h}class Render{constructor(e,t,s){this.baseurl=e,this.easy=t,this.callback=s}code(e,t,s){if(this.easy)return"";t||(t="js");var r=t==t.toUpperCase();return elang(e,t=t.toLowerCase(),r,s)}blockquote(e){return this.easy?e:`<blockquote>\n${e}</blockquote>\n`}html(e){return e}heading(e,t,s){return"."==e||"*"==e?"":this.easy?`${e} `:`<h${t}>${e}</h${t}>`}hr(){return this.easy?"":'<div class="my-4"><hr/></div>'}list(e,t){var s=t?"ol":"ul";return`<${s}>\n${e}</${s}>\n`}listtitle(e){return`<span class="listtitle">${e}</span>`}listitem(e,t){return t?`<li attr-num="${t||""}">${e}</li>\n`:`<li>${e}</li>\n`}paragraph(e){return this.easy?e:`<p>${e}</p>\n`}table(e,t){return this.easy?"":`<table>\n<thead>\n${e}\n</thead>\n<tbody>\n${t}\n</tbody>\n</table>\n\n`}tablerow(e){return`<tr>\n${e}</tr>\n`}tablecell(e,t,s){return t?`<th style="text-align:center;">${e}</th>\n`:`<td style="${s?"text-align:"+s+";":""}">${e}</td>`}colorbase(e){return`<span class='tilde'>${e}</span>`}formula(e,t=!1){if(this.easy)return"";var s=`<img class='inline px-2' src='https://math.croswil.com/f?${e=e.replace(/<\/?em>/g," ").replace(/\r/g,"").replace("/\n/g"," ")}' alt='${e}'/>`;return t?`<div class='flex justify-center'><div>${s}</div></div>`:s}coloralt(e){return`<span class='tilde2'>${e}</span>`}blink(e){}strong(e){return"<strong>"+e+"</strong>"}ico(e){return`<span class="font-ico">${e}</span>`}em(e){return"<em>"+e+"</em>"}codespan(e){return"<code>"+e+"</code>"}br(){return"<br>"}del(e){return`<del>${e}</del>`}link(e,t,s){if(this.easy)return"("+s+")";"/"==e.substr(0,1)&&this.baseurl&&(e=this.baseurl+e.substr(1));var r="";return e.startsWith(".")?e=e.slice(1):r='target="_blank"',`<a ${r} href='${e}' title='${t||""}'>${s}</a>`}image(e,t,s){if(this.easy)return"";var r=s.split("|"),n="";let i=!1,a=!1,l=!1;if((e=(e=e.replace("https://www.youtube.com/watch?v=","https://youtu.be/")).replace("https://youtu.be","https://www.youtube.com/embed")).endsWith(".mp3")?(e=e.slice(0,-4),l=!0):e.endsWith(".mp4")?(e=e.slice(0,-4),a=!0):e.endsWith(".webm")?(e=e.slice(0,-5),i=!0):e.endsWith(".video")&&(e=e.slice(0,-6),i=!0,a=!0),l)n=`\n <audio controls ${r.length>=1?' width="'+r[1]+'"':""}\n class="mx-auto my-2 ${r.length>=2?r[2]:""}" \n >\n <source src="${e}.mp3" type="audio/mpeg">\n Il tuo browser non supporta l'elemento audio.\n </audio>\n `;else if(a||i)n=`\n<video ${r.length>=1?' width="'+r[1]+'"':""}\nclass="border rounded-lg shadow-xl ${r.length>=2?r[2]:""}" \ncontrols controlsList="nodownload" >\n ${i?'<source src="'+e+'.webm" type="video/webm" >':""}\n ${a?'<source src="'+e+'.mp4" type="video/mp4" >':""}\n \n Your browser does not support the video tag.\n</video>`;else{if(e.indexOf("https://www.youtu")>=0){var o=e.split("/embed/")[1]?.split("?")[0];return n=`\n\n<div style="width: 94%; box-shadow: 6px 6px 10px hsl(206.5, 0%, 75%); margin: 3%;">\n <div style="position: relative; padding-bottom: 56.15%; height: 0; overflow: hidden;">\n <iframe \n style="position: absolute; top: 0; left:0; width: 100%; height: 100%; border: 0;"\n loading="lazy";\n srcdoc="<style>\n * {\n padding: 0;\n margin: 0;\n overflow: hidden;\n }\n \n body, html {\n height: 100%;\n }\n \n img, svg {\n position: absolute;\n width: 100%;\n top: 0;\n bottom: 0;\n margin: auto;\n }\n \n svg {\n filter: drop-shadow(1px 1px 10px hsl(206.5, 70.7%, 8%));\n transition: all 250ms ease-in-out;\n }\n \n body:hover svg {\n filter: drop-shadow(1px 1px 10px hsl(206.5, 0%, 10%));\n transform: scale(2);\n }\n </style>\n <a href='https://www.youtube.com/embed/${o}?autoplay=1'>\n <img src='https://img.youtube.com/vi/${o}/hqdefault.jpg' alt='${t||"video"}'>\n <svg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='#ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-play-circle'><circle cx='12' cy='12' r='10'></circle><polygon points='10 8 16 12 10 16 10 8'></polygon></svg>\n </a>\n "\n src="https://www.youtube.com/embed/${o}" \n title="${t||"video"}"\n frameborder="0"\n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n </div>\n </div> \n \n`}this.callback&&"function"==typeof this.callback&&(e=this.callback(e)),"/"==e.substr(0,1)&&this.baseurl&&(e=this.baseurl+e.substr(1)),n='<img src="'+e+'" alt="'+r[0]+'"',r.length>1&&(r[1].length&&(n+=' width="'+r[1]+'"'),r.length>2&&(n+=' class="'+r[2]+'"')),r[0]&&(n+=' title="'+r[0]+'"'),n+="/>"}return n}text(e){return e}}const i=t.gfm;var tokenparser=(e,t,s=0)=>{for(var r=0,checklen=e=>{if(s>0&&e.length>s-r){var t=(e=e.substring(0,s-r)).lastIndexOf(" ");t>0&&(e=e.substring(0,t))}return e},next=()=>a=n.pop(),parseText=()=>{for(var e=a.text;"text"===(n[n.length-1]||0).type;)e+="\n"+next().text;return output(checklen(e))},outputLink=(e,s)=>{var r=escape(s.href),n=s.title?escape(s.title):null;return"!"!==e[0].charAt(0)?t.link(r,n,output(e[1])):t.image(r,n,escape(e[1]))},output=e=>{for(var s,r,n,a,c="";e;)if(a=i.escape.exec(e))e=e.substring(a[0].length),c+=a[1];else if(a=i.autolink.exec(e))e=e.substring(a[0].length),n="@"===a[2]?`mailto:${r=":"===a[1].charAt(6)?a[1].substring(7):a[1]}`:r=escape(a[1]),c+=t.link(n,null,r);else if(a=i.blink.exec(e))e=e.substring(a[0].length),c+=t.blink(output(a[2]||a[1]));else if(l||!(a=i.url.exec(e))){if(a=i.tag.exec(e))!l&&/^<a /i.test(a[0])?l=!0:l&&/^<\/a>/i.test(a[0])&&(l=!1),e=e.substring(a[0].length),c+=a[0];else if(a=i.link.exec(e))e=e.substring(a[0].length),l=!0,c+=outputLink(a,{href:a[2],title:a[3]}),l=!1;else if((a=i.reflink.exec(e))||(a=i.nolink.exec(e))){if(e=e.substring(a[0].length),s=(a[2]||a[1]).replace(/\s+/g," "),!(s=o[s.toLowerCase()])||!s.href){c+=a[0].charAt(0),e=a[0].substring(1)+e;continue}l=!0,c+=outputLink(a,s),l=!1}else if(a=i.formula.exec(e))e=e.substring(a[0].length),c+=t.formula(output(a[1]));else if(a=i.ico.exec(e))e=e.substring(a[0].length),c+=t.ico(output(a[2]||a[1]));else if(a=i.strong.exec(e))e=e.substring(a[0].length),c+=t.strong(output(a[2]||a[1]));else if(a=i.em.exec(e))e=e.substring(a[0].length),c+=t.em(output(a[2]||a[1]));else if(a=i.code.exec(e))e=e.substring(a[0].length),c+=t.codespan(escape(a[2],!0));else if(a=i.br.exec(e))e=e.substring(a[0].length),c+=t.br();else if(a=i.del.exec(e))e=e.substring(a[0].length),c+=t.del(output(a[1]));else if(a=i.coloralt.exec(e))e=e.substring(a[0].length),c+=t.coloralt(output(a[1]));else if(a=i.colorbase.exec(e))e=e.substring(a[0].length),c+=t.colorbase(output(a[1]));else if(a=i.text.exec(e))e=e.substring(a[0].length),c+=t.text(a[0]);else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else e=e.substring(a[0].length),n=r=escape(a[1]),c+=t.link(n,null,r);return c},tok=()=>{switch(a.type){case"space":return"";case"hr":return t.hr();case"heading":return t.heading(output(checklen(a.text)),a.depth,a.text);case"code":return"math"==a.lang?t.formula(a.text,!0):t.code(a.text,a.lang,c);case"table":var e,s,r,n,i=[];r=[];for(var l=0;l<a.headers.length;l++)r.push(t.tablecell(tokenparser(a.headers[l],t,0).out,!0,a.align[l]));for(e=t.tablerow(r.join("")),l=0;l<a.cells.length;l++){for(s=a.cells[l],r=[],n=0;n<s.length;n++)r.push(t.tablecell(tokenparser(s[n],t,0).out,!1,a.align[n]));i.push(t.tablerow(r.join("")))}return t.table(e,i.join(""));case"blockquote_start":for(i="";"blockquote_end"!==next().type;)i+=tok();return t.blockquote(i);case"list_start":i="";for(var o=a.ordered;"list_end"!==next().type;)i+=tok();return t.list(i,o);case"list_title_start":for(i="";"list_title_end"!==next().type;)i+=tok();return t.listtitle(i);case"list_item_start":i="";for(var p=a.num;"list_item_end"!==next().type;)i+="text"===a.type?parseText():tok();return t.listitem(i,p);case"html":return t.html(a.text);case"paragraph":return t.paragraph(output(checklen(a.text)));case"text":return t.paragraph(parseText());default:console.log("missing",a.type)}},n=e.reverse(),a=void 0,l=!1,o={},c=[],p=[];next();){var u=tok();if(r+=u.length,u&&p.push(u),s>0&&r>s)break}return{out:p.join(""),codes:c}};function __parselist(e,t){var s;function pb(r,n,i){if(s=r.exec(e)){__parselist(e.slice(0,s.index),t);var a=s[1];return a.startsWith("\n")&&(t.push({class:"",text:"\n"}),a=a.slice(1)),t.push({class:n,text:i?i(a):a}),__parselist(e.slice(s.index+s[1].length),t),!0}return!1}e&&"string"==typeof e&&(pb(/^(\:{3}\s*$[^]+?\:{3}\s*$)/gim,"comment")||pb(/^(\s*`{3}[^]+?`{3}\s*$)/gim,"code")||pb(/^(\s*:\w+:.*)$/gim,"comment")||(e=e.replace(/ {2,}\n/gim," "),pb(/^(\s*#{1,6}\s+.*)/gim,"title")||pb(/(\n\s*\n)/gim,"break")||pb(/^(\s*\>\s+[^]*?\n\n)/gim,"cite")||pb(/^(\s*\>\s+.*)/gim,"cite")||pb(/^(.*?\|[^]*?\n\n)/gim,"table")||pb(/^( *\*| *\-|\-{1,8})[ $]/gim,"list")||pb(/^( ([\d]+[\.]*)+)[ $]/gim,"list",(e=>{var t=e.split(".");t.shift();var s=[];for(var r of t)r.length&&s.push(" ");return s.push("-"),s.join("")}))||t.push({class:"",text:e})))}function parselist(e,t=""){var s=[];__parselist(e,s);for(var r=[],n=0,i=0;i<s.length;i++){if("list"==(g=s[i]).class){var a=g.text.replace("\n","").length;if(a>n)r.push({space:a,id:1}),n=a;else for(;;){var l=r[r.length-1];if(1==r.length||l.space<=a){n=l.space,l.id++;break}r.pop()}var o=[],c=[];for(var l of r)c.push(" "),o.push(l.id);c.pop(),g.old=g.text,g.text.indexOf("-")>=0?g.text=c.join("")+"- "+o.join(".")+".":g.text=c.join("")+"* ",o=[];for(var p=i+1;p<s.length&&""==s[p].class;p++)o.push(s[p].text);g.title=t,g.data=g.text+o.join("")}else""!=g.class&&("title"==g.class&&(t=g.text),r=[],n=0)}o=[];var u=[];for(var g of s)"list"==g.class&&u.push({title:g.title,lev:g.text,data:g.data}),o.push(g.text);return{txt:o.join(""),cards:u,tm:s}}function parserow$1(e,t,s=""){var r;function parse3(n,i){return!!(r=n.exec(e))&&(parserow$1(e.slice(0,r.index),t,s),t.push({class:`${s} ${i}`,text:r[1]}),parserow$1(r[2],t,`${s} ${i}`),t.push({class:`${s} ${i}`,text:r[3]}),parserow$1(e.slice(r.index+r[1].length+r[2].length+r[3].length),t,s),!0)}(function parse1(n,i){return!!(r=n.exec(e))&&(parserow$1(e.slice(0,r.index),t,s),t.push({class:`${s} ${i}`,text:r[1]}),parserow$1(e.slice(r.index+r[1].length),t,s),!0)})(/(`.*?`)/gim,"code2")||parse3(/(\*{3})([^]+?)(\*{3})/gim,"grassetto italico")||parse3(/(\*{2})([^]+?)(\*{2})/gim,"grassetto")||parse3(/(\*{1})([^]+?)(\*{1})/gim,"italico")||parse3(/(_{3})([^]+?)(_{3})/gim,"grassetto italico")||parse3(/(_{2})([^]+?)(_{2})/gim,"grassetto")||parse3(/(_{1})([^]+?)(_{1})/gim,"italico")||parse3(/(\~{3})([^]+?)(\~{3})/gim,"barrato")||parse3(/(\~{2})([^]+?)(\~{2})/gim,"tilde2")||parse3(/(\~{1})([^]+?)(\~{1})/gim,"tilde")||t.push({class:s,text:e})}function parseblock$1(e,t){var s;function pb(r,n,i=!1){return!!(s=r.exec(e))&&(parseblock$1(e.slice(0,s.index),t),i?parserow$1(s[1],t,n):t.push({class:n,text:s[1]}),parseblock$1(e.slice(s.index+s[1].length),t),!0)}if(!(pb(/^(\:{3}[^]+?\:{3})/gim,"comment")||pb(/^(\s*`{3}[^]+?`{3})/gim,"code")||pb(/^(\s*:\w+:.*)$/gim,"comment")||pb(/^(\s*#{1,6} +.*)$/gim,"title",!0)||pb(/^(\s*\>\s+[^]*?\n\n)/gim,"cite",!0)||pb(/^(\s*\>\s+.*)/gim,"cite",!0)||pb(/^(.*?\|.*\n[\-: ]+\|[\-\| :]*\n.*?\|[^]*?\n\n)/gim,"tabella",!0)||pb(/^(\n{2,})/gim,"break",!0)||pb(/^( *\*| *\-|\-{1,8})[ $]/gim,"list",!0)||pb(/(^\s*[\d\.]+)[\s$]/gim,"list",!0))){if(s=/(\!*\[)(.*?)(\]\s*\()(.*?)(\))/.exec(e))return parserow$1(e.slice(0,s.index),t,""),t.push({class:"grassetto",text:s[1]}),t.push({class:"linkdes",text:s[2]}),t.push({class:"grassetto",text:s[3]}),t.push({class:"linkval",text:s[4]}),t.push({class:"grassetto",text:s[5]}),void parserow$1(e.slice(s.index+s[1].length+s[2].length+s[3].length+s[4].length+s[5].length),t,"");parserow$1(e,t,"")}}function parsetext(e){e||(e=" "),e.endsWith("\n")&&(e+=" ");var t=[];return parseblock$1(e,t),t}function parserow(e,t,s=""){var r;function parse1(n,i){return!!(r=n.exec(e))&&(parserow(e.slice(0,r.index),t,s),t.push({class:`${s} ${i}`,text:r[1]}),parserow(e.slice(r.index+r[1].length),t,s),!0)}parse1(/(\/\/.*)$/gim,"commento2")||function parse2(n,i){if(r=n.exec(e)){var a=r.index+r[1].length;return parserow(e.slice(0,a),t,s),t.push({class:`${s} ${i}`,text:r[2]}),parserow(e.slice(a+r[2].length),t,s),!0}return!1}(/(#let.? +)([\w_\.]+)/gi,"variabile")||parse1(/(#(select|cases|endselect|ifdef|log|msg|endif|cvar|cache|look|lookb|elseifdef|variante|forvar|for|endfor|continue|break|inc|macro|default|lets|letv|lett|cat|func))/gim,"comando")||parse1(/(#(if\s*|elseif\s*))/gim,"comando")||parse1(/(#(else|let|i |m |f |j |case|def ))/gim,"comando")||parse1(/(\$[\{\(]?[\w_\.]+)/gim,"variabile")||parse1(/(\{.+?\})/gim,"formula")||parse1(/([\}\)\(])/gim,"variabile")||parse1(/([\d\.\:\,\;\\,]+)/gim,"digit")||t.push({class:s,text:e})}function parseblock(e,t){var s;(function pb(r,n,i=!1){return!!(s=r.exec(e))&&(parseblock(e.slice(0,s.index),t),i?parserow(s[1],t,n):t.push({class:n,text:s[1]}),parseblock(e.slice(s.index+s[1].length),t),!0)})(/(\/\*[^]+?\*\/)/gim,"comment")||parserow(e,t,"")}function parserule(e){e||(e=" "),e.endsWith("\n")&&(e+=" ");var t=[];return parseblock(e,t),t}function formatrule(e){let t=e.split("\n"),s=[],r=0;const n=" ";for(let e=0;e<t.length;e++){let i=t[e].trim(),a=n.repeat(r>=0?r:0),l="";(i.startsWith("#")||i.startsWith("!"))&&(l=i.substring(1).split(" ")[0].toUpperCase(),i=i.substring(0,1)+l+i.substring(l.length+1)),"IF"==l||"IFDEF"==l||"IFNDEF"==l?i.indexOf("#",2)<0?r++:i=i.replace(/#([\w]+)/g,((e,t)=>"#"+t.toUpperCase())):["FOR","FORVAR","DO","SELECT"].includes(l)?r++:["ENDIF","LOOP","ENDFOR","ENDSELECT"].includes(l)&&(r--,a=n.repeat(r>=0?r:0)),["ELSEIF","ELSE","ELSEIFDEF","ELSEIFNDEF","CASE","CASES","DEFAULT"].includes(l)&&r>0?s.push(n.repeat(r-1)+i):s.push(a+i)}return s.join("\n")}function getcolonne(e){if((e=e+""||"").includes('"')){return e.split(/[,;](?=(?:(?:[^"]*["]){2})*[^"]*$)/).map((e=>e.trim().replace(/(^["'])|(["']$)/g,"").replace(/=\s*["']/g,"=")))}return e.split(/[,;]/).map((e=>e.trim()))}function formatvariante(e){let t=[],s=[];for(var r of e.split("\n")){let e=getcolonne(r);for(let t=0;t<e.length;t++){let r=e[t]||"";(r.includes(",")||r.includes(";"))&&(r=`"${r}"`,e[t]=r);let n=r.length;(!s[t]||s[t]<n)&&(s[t]=n)}t.push(getcolonne(r))}let n=[];for(var r of t){let e=[];for(let t=0;t<s.length;t++)e[t]=(r[t]||"").padEnd(s[t]);n.push(e.join(" , "))}return n.join("\n")}function markunoFormatCodeMirror(e){e.defineMode("markuno",(function(){return{startState:function(){return{inComment:!1}},token:function(e,t){return t.inComment?(e.skipTo("*/")?(e.next(),e.next(),t.inComment=!1):e.skipToEnd(),"commento1"):e.match(/\/\/.*/)?"commento2":e.match("/*")?(e.skipTo("*/")?(e.next(),e.next()):t.inComment=!0,"commento1"):e.match(/^\s*#(select|cache|cvar|lookb|look|cases|endselect|log|msg|ifdef|ifndef|elseif|elseifndef|endif|elseifdef|variante|forvar|for|endfor|continue|break|inc|macro|default|lets|lett|cat|func|push|pop|letv|let|letm|lett|else)/i)||e.match(/^\s*#(if\s*|elseif\s*|i |m |f |j |case|def )/i)||e.match(/#(else|let|letv|lett|letm|cvar|cache|lookb|look)/i)?"comando":!t.inCommand&&e.match(/^\s*#[\w_\.]+/i)?"macro":e.match(/^\s*![\w_\.]+/i)||e.match(/\$\[[\w_\.]+/)?"funzione":e.match(/\$[\{\(]?[\w_\.]+/)?"variabile":e.match(/\]/)?"funzione":e.match(/\{.+?\}/)?"formula":e.match(/[\d\.\:\,\;\\,]+/)?"digit":(e.next(),null)}}}))}function parsevars(e,t){var s=e;if(t)for(var r in t){var n=t[r]||`..${r}..`;s=s.replace(new RegExp(`\\[${r}\\]`,"gim"),n)}return s}var parseinfomd=(e,t,s)=>r.parse(e,t,s),mark=(e,t,s=!1,r=!1,n)=>{var i;if(r)i=tokenize(e,0,s);else{var{txt:a}=parselist(e);i=tokenize(a,0,s)}return tokenparser(i,new Render(t,!1,n))},markeasy=(e,t=400,s=!1)=>{var r=tokenize(e,t,s);return tokenparser(r,new Render,t).out};export{Render,r as aliasInfo,elang,escapeHTML,formatrule,formatvariante,mark,markeasy,markunoFormatCodeMirror,parseinfomd,parselist,parserule,parsetext,tokenparser as parsetokens,parsevars,tokenize,unescapeHTML};
|
package/bin/markuno.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function testsync(a,b){return a+b}const tk=()=>(new Date).valueOf();function quote(v){if((v=(v||"").trim()).length>1){if(v.startsWith('"')&&v.endsWith('"'))return v;if(v.startsWith("(")&&v.endsWith(")"))return v}return`"${v}"`}function hash(obj){let str="";if("string"==typeof obj||"number"==typeof obj)str=obj+"";else if("object"==typeof obj&&obj){const chiaviOrdinati=Object.keys(obj).sort(),separatore="\0";str=chiaviOrdinati.map((key=>`${key}${separatore}${String(obj[key])}`)).join(separatore)}let h1=2166136261,h2=2218511855;for(let i=0;i<str.length;i++){const char=str.charCodeAt(i);h1^=char,h1+=h1<<5^2779096485,h2^=h1,h2=((h2<<3)+char^2134516169)>>>0}return h1>>>=0,h1.toString(16)+h2.toString(16)}function geterrdes(err){if(err&&"object"==typeof err){let errMsg=err.stack?.toString().replace(/^.*?node_modules.*$/gim,"")||err.message||"";errMsg=errMsg.replaceAll("/","_").replaceAll(".js","").replaceAll("\n\n","\n").replace(/\;\s+/gi,"\n"),err=errMsg}return(err=err.replace(/sqlite/gi,"SQL ")).replaceAll(";",",").trim()}let cbGetVariante,cbGetMacro,cbFunc,cbInfo,cbGetFile,cbLogga;const logga=(...args)=>{cbLogga?cbLogga(args):console.log(...args)};function setcallbacks(cbGetMacro1,cbGetVariante1,cbFunc1,cbInfo1,cbGetFile1,cbLogga1){cbGetMacro=cbGetMacro1,cbGetVariante=cbGetVariante1,cbFunc=cbFunc1,cbInfo=cbInfo1,cbGetFile=cbGetFile1,cbLogga=cbLogga1}const xdt=()=>(new Date).valueOf();function clean(k,locase=!1){return locase?(k||"").trim().toLowerCase():(k||"").trim()}function getcouple(r,sep="=",locase=!0){var q=(r=r||"").indexOf(sep);return q>=0?{v:clean(r.substring(0,q),locase),o:r.substring(q+sep.length).trim(),fl:!0}:{v:clean(r,locase),o:"",fl:!1}}function checkmu(id,cat){if((id=(id||"").trim()).indexOf("/")>0){var vv=id.split("/");cat=vv[0]||"",id=vv[1]||""}if(!cat)throw new Error("manca il catalogo per "+id);return{name:id,cat:cat=checkname(cat)}}function checkname(id){if(!(id=(id||"").trim())||!/^(?:(\w|\-|\_|\+|\.))+$/im.test(id)){throw new Error(`nome non valido: |${id}| \n deve contenere solo lettere, _, e numeri`)}return id.toLowerCase()}function getcolonne(value,keepquote=!1){value=String(value||"");const pp=/^(\d+)\.\.(\d+)$/.exec(value);if(pp){var n1=parseInt(pp[1]),n2=parseInt(pp[2]),cl=[];n1>n2&&([n1,n2]=[n2,n1]);for(var i=n1;i<=n2;i++)cl.push(i+"");return cl}if(!/["({[]/.test(value))return value.split(/[,;]/).map((e=>e.trim()));const risultato=[];let buffer="",livelloParentesi=0,inVirgolette=!1;for(let i=0;i<value.length;i++){const char=value[i];if(0===livelloParentesi&&'"'===char&&(0!==i&&"\\"===value[i-1]||(inVirgolette=!inVirgolette)),inVirgolette||("("===char||"["===char||"{"===char?livelloParentesi++:")"!==char&&"]"!==char&&"}"!==char||(livelloParentesi=Math.max(0,livelloParentesi-1))),","!==char&&";"!==char||0!==livelloParentesi||inVirgolette)buffer+=char;else{const trimmed=buffer.trim();risultato.push(trimmed),buffer=""}}const trimmed=buffer.trim();return trimmed&&risultato.push(trimmed),risultato.map((e=>(e=e.trim(),!keepquote&&(e.startsWith('"')&&e.endsWith('"')||e.startsWith("(")&&e.endsWith(")"))?e.slice(1,-1):e)))}const parsevar=(ex,k0,inipar,endpar,nonewline=!1)=>{const pars1=["[","(","{"],pars2=["]",")","}"];endpar||(endpar="["==inipar?"]":"("==inipar?")":"}");for(var mp=pars1.includes(inipar),par=1,res=[],nres=0,i=k0;i<ex.length;i++)if(mp&&pars1.includes(ex[i])||ex[i]==inipar)par++;else if(mp&&pars2.includes(ex[i])||ex[i]==endpar){if(0==--par&&ex[i]==endpar)return res[nres]=ex.substring(k0,i),{i:i,res:res}}else if(":"==ex[i])1==par&&(res[nres]=ex.substring(k0,i),k0=i+1,nres++);else if("\n"==ex[i]&&nonewline)return{i:i,res:res};return{i:-1,res:ex.substring(k0)}};function setOggetto(objDestinazione,objSorgente){"object"==typeof objDestinazione&&"object"==typeof objSorgente&&Object.keys(objSorgente).forEach((key=>{Object.hasOwn(objDestinazione,key)&&"function"!=typeof objDestinazione[key]&&(objDestinazione[key]=objSorgente[key])}))}function getOggetto(obj,exclude){return"object"==typeof obj?Object.keys(obj).reduce(((acc,key)=>("function"!=typeof obj[key]&&(exclude&&exclude.length>0&&exclude.includes(key)||(acc[key]=obj[key])),acc)),{}):{}}function fromjson(str,def){if(Array.isArray(str))return str;if("string"!=typeof str)return str;if(""==str)return def||{};try{return JSON.parse(str)}catch(e){return logga(`Errore parsing JSON: ${e}\n${str}`),def||{}}}const errori=new class Errori{constructor(){this.azzera()}azzera(){this.err=[]}add(msg,row){this.err.push({msg:msg,row:row})}get(){return this.err}get length(){return this.err.length}toString(){var cl=[];for(var e of this.err){let m="object"==typeof e.msg?JSON.stringify(e.msg):e.msg||"";cl.push(`${e.row?e.row+":":""}${m}`)}return cl.join("\n")}};function getheaddims(dims){let res;try{res="object"==typeof dims&&dims?dims:JSON.parse(dims||"{}")}catch(error){}return res||(res={}),res.l||(res.l={visible:1,val:1e3,min:0,max:1e4}),res.a||(res.a={visible:1,val:1e3,min:0,max:1e4}),res.p||(res.p={visible:1,val:1e3,min:0,max:1e4}),res}const REGEX_PARENTESI=/(?<!\w)\(/g,REGEX_NUMERO=/^-?[0-9.]+$/,REGEX_FUNZIONE=/^(\w+)(\!)?\[(.*)?\]$/,REGEX_RANDOM=/^(rnd|random|cas)\(/i,REGEX_CLAMP=/^clamp\(/i,REGEX_ROUND=/^(dec|round)\(/i,REGEX_DIGIT=/[0-9.]/,REGEX_OPERATOR=/[+\-*/\^\%]/,REGEX_ALPHA=/[a-zA-Z]/i;function valutaparentesi(expression){for(expression=(expression+"").trim();;){var tm=REGEX_PARENTESI.exec(expression);if(!tm)break;var{i:i,res:res}=parsevar(expression,tm.index+1,"(",")");if(i<=0)break;expression=expression.substring(0,tm.index)+valutaparentesi(res[0])+(i>=0?expression.substring(i+1):"")}return expression=function valutainsiemi(expression){if(expression.includes("[")){function resinisiemi(rr){let v1=rr[1],fl=!!rr[2],vv=getcolonne(rr[3]);for(var v of vv)if(v==v1)return fl?"0":"1";return fl?"1":"0"}for(;;){var rr=REGEX_FUNZIONE.exec(expression);if(!rr)break;var tm=resinisiemi(rr);expression=expression.substring(0,rr.index)+tm+expression.substring(rr.index+rr[0].length)}}return expression}(expression),function operatoricomparazione(expression){let left,right;const operators={"||":()=>valutaparentesi(left)||valutaparentesi(right)?1:0,"|":()=>valutaparentesi(left)||valutaparentesi(right)?1:0,"&&":()=>valutaparentesi(left)&&valutaparentesi(right)?1:0,"&":()=>valutaparentesi(left)&&valutaparentesi(right)?1:0,"<<=":()=>clean(left)<=clean(right),">>=":()=>clean(left)>=clean(right),"===":()=>clean(left)==clean(right),"==":()=>clean(left)==clean(right),"!!":()=>clean(left)!=clean(right),"<<":()=>clean(left)<clean(right),">>":()=>clean(left)>clean(right),"<=":()=>muCalcbase(left)<=muCalcbase(right),">=":()=>muCalcbase(left)>=muCalcbase(right),"<":()=>muCalcbase(left)<muCalcbase(right),">":()=>muCalcbase(left)>muCalcbase(right),"=":()=>muCalcbase(left)==muCalcbase(right),"!":()=>muCalcbase(left)!=muCalcbase(right)};var operatorIndex=-1,op="";for(var operator in operators)if((operatorIndex=expression.indexOf(operator))>=0){op=operator;break}return-1!==operatorIndex?(left=expression.slice(0,operatorIndex),right=expression.slice(operatorIndex+op.length),operators[op]&&operators[op]()?1:0):muCalcbase(expression)}(expression)}const mathFunctions={sqr:x=>Math.sqrt(x),sqrt:x=>Math.sqrt(x),int:x=>Math.floor(x),floor:x=>Math.floor(x),round:x=>Math.round(x),abs:x=>Math.abs(x),sin:x=>Math.sin(x*(Math.PI/180)),cos:x=>Math.cos(x*(Math.PI/180)),tan:x=>Math.tan(x*(Math.PI/180)),atan:x=>Math.atan(x*(Math.PI/180)),atan2:(x,y)=>Math.atan2(x,y)*(Math.PI/180),asin:x=>Math.asin(x*(Math.PI/180)),acos:x=>Math.acos(x*(Math.PI/180))};function muCalcbase(expression){let index=0;function parseOperator(){const op=expression[index];return REGEX_OPERATOR.test(op)?(index++,op):null}function parsePrimary(){if(REGEX_DIGIT.test(expression[index]))return function parseNumber(){const start=index;for(;index<expression.length&®EX_DIGIT.test(expression[index]);)index++;return Number(expression.slice(start,index))}();if("("===expression[index]){index++;const result=parseExpr();return")"===expression[index]&&index++,result}return REGEX_ALPHA.test(expression[index])?function parseFunctions(){var ex=expression.slice(index);if(!ex)return 0;for(const[name,func]of Object.entries(mathFunctions)){const match=new RegExp(`^(${name})\\(`,"i").exec(ex);if(match){index+=match[0].length;const result=func(parseExpr());return")"===expression[index]&&index++,result}}let fn;if(fn=REGEX_RANDOM.exec(ex),fn){index+=fn[0].length;let min=0,max=1;return")"!==expression[index]&&(min=parseExpr(),","===expression[index]?(index++,max=parseExpr()):(max=min,min=0)),")"===expression[index]&&index++,Math.random()*(max-min)+min}if(fn=REGEX_CLAMP.exec(ex),fn){index+=fn[0].length;const a=parseExpr();","===expression[index]&&index++;const b=parseExpr();","===expression[index]&&index++;const c=parseExpr();return")"===expression[index]&&index++,Math.min(Math.max(a,b),c)}if(fn=REGEX_ROUND.exec(ex),fn){index+=fn[0].length;const value=parseExpr();let decimals=0;return","===expression[index]&&(index++,decimals=parseExpr()),")"===expression[index]&&index++,parseFloat(value.toFixed(decimals))}return index++,parseExpr()}():0}function parseFactor(){let left=parsePrimary();for(;index<expression.length&&/[\/\*\^\%]/.test(expression[index]);){const op=parseOperator(),right=parsePrimary();"*"===op?left*=right:"/"===op?left=right?left/right:0:"%"===op?left=right?left%right:0:"^"===op&&(left=Math.pow(left,right))}return left}function parseExpr(){let left=parseFactor();for(;index<expression.length&&/[+\-]/.test(expression[index]);){const op=parseOperator(),right=parseFactor();"+"===op?left+=right:"-"===op&&(left-=right)}return left}return expression=expression.replace(/\s/g,""),parseExpr()}function muCalc(expression){if(!expression)return 0;if("number"==typeof expression)return expression||0;if("string"!=typeof expression)return 0;var s=expression.replaceAll(",",".");return REGEX_NUMERO.test(s)?Number(s)||0:valutaparentesi(expression)||0}function valutavar(sh,res){var vv=res[0]||"";if(!vv)return"";if(sh.counter>=500)return vv;var vx=valutabase(sh,sh.var(valuta0(sh,vv)));if(sh.counter>=500)return vv;if(res[1]){var cols=getcolonne(vx);if("l"==res[1])return String(cols.length);var col=muCalc(valuta0(sh,res[1]));if(!(col>=0&&col<cols.length))return"";vx=valuta0(sh,cols[col])}if(res[2]){var c1=muCalc(valuta0(sh,res[2]));if(c1){var c2=0;return res[3]&&(c2=muCalc(valuta0(sh,res[3]))),c1<0?vx.slice(c1):c2?vx.substring(c1-1,c1+c2-1):vx.substring(c1-1)}}return vx}function valutaquadra(sh,res){var vv=getcolonne(res||""),r1=clean(vv[0]);function replacecharcode(str){return"\\t"==str?"\t":"\\n"==str?"\n":(str||"").replace(/&(\d+)/g,((match,m1)=>String.fromCharCode(parseInt(m1))))}switch(r1){case"set":var m1=valuta0(sh,vv[1]||""),m2=valuta0(sh,vv[2]||"");sh.add(m1,sh.vars(m2));break;case"ex":m1=valuta0(sh,vv[1]||"");(m2=valuta0(sh,vv[2]||""))||(m2=",");var m3=muCalc(valuta0(sh,vv[3]||"")),tm=m1.split(m2);return m3>0&&tm[m3-1]||"";case"ex2":var sep=replacecharcode(vv[1]||""),pos=muCalc(valuta0(sh,vv[2]||""));return vv.splice(0,3),(str=vv.join(";")).split(sep)[pos>0?pos-1:0]||"";case"replace":return vv[1].replace(new RegExp(vv[2]||"x","gim"),(vv[3]||"").trim());case"replace2":case"rp2":var search=replacecharcode(vv[1]||"x"),replace=replacecharcode(vv[2]||"").trim();return vv.splice(0,3),vv.join(";").replace(new RegExp(search,"im"),replace);case"look":case"lookb":{let val=parseFloat(vv[1]||"");if(vv=vv.slice(2).map((e=>parseFloat(e)||0)),"lookb"==r1){const filtered=vv.filter((v=>v<=val));return filtered.length?Math.max(...filtered):val}{const filtered=vv.filter((v=>v>=val));return filtered.length?Math.min(...filtered):val}}case"tk":return(pos=muCalc(valuta0(sh,vv[1]||""))||0)?vv[pos>0?pos+1:2]||"":(pos=muCalc(valuta0(sh,vv[2]||"")),sep=vv[1]||"",pos?vv[3].split(sep)[pos-1]:"");case"totab":return vv.splice(0,1),vv.join("\t");case"tosep":sep=replacecharcode(vv[1]||"")||";";return vv.splice(0,2),vv.join(sep);case"len":{let tm;return vv.length>2?(vv.shift(),tm=vv.join(";")):tm=vv[1]||"",tm.length}case"mid":var str=valuta0(sh,vv[1]||""),len=(pos=muCalc(valuta0(sh,vv[2]||"")),muCalc(valuta0(sh,vv[3]||"")));return str.substring(pos-1,pos+len-1);case"arrotonda":{str=muCalc(vv[1]);let coeff=1;return["0","1","2","3","4","5","6"].includes(vv[2])?coeff=Math.pow(10,parseInt(vv[2])):(coeff=muCalc(vv[2]),0==coeff&&(coeff=1e3)),Math.round(str*coeff)/coeff}case"iif":return(str=muCalc(valuta0(sh,vv[1])))?vv[2]||1:vv[3]||0;case"instr":case"instr2":var str1=vv[1]||"",str2=vv[2]||"";return str1.toLowerCase().indexOf(str2.toLowerCase())+1;case"instr2":str2=vv[1]||"";return vv.splice(0,2),vv.join(";").toLowerCase().indexOf(str2.toLowerCase())+1;default:return{fun:r1,pars:vv}}}function valuta0(sh,ex){if(ex+="",sh.counter>=500)return ex;for(;;){const rt=/\$([\{\(])/im.exec(ex);if(!rt)break;var i1=rt.index,{i:i,res:res}="("==rt[1]?parsevar(ex,i1+2,"(",")"):parsevar(ex,i1+2,"{","}");ex=valuta0(sh,ex.substring(0,i1))+valutavar(sh,res)+(i>=0?valuta0(sh,ex.substring(i+1)):"")}return ex=(ex=ex.replace(/\$([a-z|][\w|\.]*)/gi,((match,m1)=>{for(var m2="";m1.length;){var tm=valutabase(sh,sh.var(m1));if(tm||!(m1.length>1)){m2=tm+m2;break}m2=m1.slice(-1)+m2,m1=m1.substring(0,m1.length-1)}return m2}))).replace(/\$(\d+)\:(\d+)(\:(\d+))?/g,((p0,p1,p2,p3,p4)=>{p4=p4?+p4:1;let cl=[];for(let i=+p1;i<=+p2;i+=p4)cl.push(i.toString());return cl.join(";")})),ex}function valutabase(sh,ex){return ex&&(sh.counter++,sh.counter<=500&&(ex=valuta0(sh,ex)),sh.counter--),ex}class Variabile{constructor(){this.dictionary={},this.vec=[],this.counter=0,this.fndotcallback=void 0}static isValidKey(key){return/^[\w][\w\d\.\[\]]*$/.test(key)}static sanitizeKey(key){return key.replace(/[^a-zA-Z0-9_\.\[\]]/g,"_")}setfndot(fndotcallback){this.fndotcallback=fndotcallback}push(){this.vec.push({...this.dictionary})}pop(){this.vec.length>0&&(this.dictionary=this.vec.pop())}clear(){this.vec=[],this.dictionary={}}azzera=()=>this.clear();var(key){let fmt="";const pp=/^(\d+)\.\.(\d+)$/.exec(key);if(pp){var n1=parseInt(pp[1]),n2=parseInt(pp[2]),cl=[];n1>n2&&([n1,n2]=[n2,n1]);for(var i=n1;i<=n2;i++)cl.push(i+"");return cl}if(key.indexOf("|")>=0){let tm=key.split("|");key=tm[0],fmt=tm[1]}function toformat(val,fmt){switch(fmt.trim().toLowerCase()){case"data":return date=parseFloat(val)||0,new Intl.DateTimeFormat("it",{day:"2-digit",month:"short",year:"2-digit"}).format(date.toDate());case"euro":return((n,valorezero="")=>{if(n){var xx=Intl.NumberFormat("en",{style:"currency",currency:"EUR"}).format(n);return xx.replace(/€/g,"").replace(/\./g,";").replace(/,/g,".").replace(/;/g,",")+"€"}return valorezero})(parseFloat(val));case"num":return((n,dec=-1)=>{const num="string"==typeof n?parseFloat(n)||0:n;if(dec<0)return num||0;const factor=Math.pow(10,dec);return Math.round(num*factor)/factor||0})(parseFloat(val));default:return val}var date}const sanitizedKey=Variabile.sanitizeKey(key);if(sanitizedKey.startsWith(".")&&this.fndotcallback){let tm=this.fndotcallback(sanitizedKey.toLowerCase());if(tm)return toformat(tm,fmt)}if(Variabile.isValidKey(sanitizedKey)){const lowercaseKey=sanitizedKey.toLowerCase();var rr=/^([\w][\w\d]*)[\.\[]/.exec(lowercaseKey);if(rr){var tm=this.dictionary[rr[1]];if(tm&&"object"==typeof tm)return toformat(function objval(tm,key){for(var parts=key.split("."),obj=tm,i=0;i<parts.length;i++){var part=parts[i],match=part.match(/(.*?)\[(\d+)\]/);if(match){if(void 0===(obj=obj[match[1]]))return"";obj=obj[parseInt(match[2],10)]}else obj=obj[part];if(void 0===obj)return""}return"number"==typeof obj?obj+"":obj}(tm,lowercaseKey.substring(rr[0].length)),fmt)}return toformat(this.dictionary[lowercaseKey]||"",fmt)}return""}getvar(key){return this.var(key)}colonna(value,index){return getcolonne[index]||value}dump(isstr=!1){var cl=[];for(var t in this.dictionary)cl.push({cod:t,val:this.dictionary[t]});return cl=cl.sort(((a,b)=>a.cod>b.cod)),isstr?cl.map((e=>`${e.cod} = ${e.val}`)):cl}add(key,value){"number"==typeof value&&(value=String(value));const sanitizedKey=Variabile.sanitizeKey(key);if(Variabile.isValidKey(sanitizedKey)){const lowercaseKey=sanitizedKey.toLowerCase();0===value||value?this.dictionary[lowercaseKey]=value:delete this.dictionary[lowercaseKey]}else logga(`Invalid key: ${key}`)}valutasync(str){return valutabase(this,str)}async valuta(ex,callback){var tm=await async function valutafunc(sh,ex,callback){if(ex){for(var ii=0;ii<20;ii++){var i1=ex.lastIndexOf("$[");if(!(i1>=0)){ex=valutabase(sh,ex);break}var{i:i,res:res}=parsevar(ex,i1+2,"[","]"),t1=valutabase(sh,ex.substring(0,i1)),t2=res?valutabase(sh,res[0]):"",t3=i>=0?valutabase(sh,ex.substring(i+1)):"",t4=valutaquadra(sh,t2);"object"==typeof t4&&(t4=callback?await callback(t4?.fun,t4.pars):`** fun: ${t4.fun} ** `),ex=t1+(t4="object"==typeof t4?"**str**":t4+""||"")+t3}return ex}return""}(this,ex,callback);return tm=(ex=>{for(;;){var i1=ex.indexOf("{");if(!(i1>=0))break;var{i:i,res:res}=parsevar(ex,i1+1,"{","}");if(i<0)return ex;ex=ex.substring(0,i1)+muCalc(res[0])+(i>=0?ex.substring(i+1):"")}return ex})(tm),tm}async parametrokeyval(p){if(!(p=p.trim()))return{};let k,v,q,isnum=!1;return p.startsWith("#")&&(isnum=!0,p=p.slice(1)),q=p.indexOf("="),q>0?(k=clean(p.slice(0,q)),v=p.slice(q+1)):(q=p.indexOf(":"),q>0?(k=clean(p.slice(0,q)),v=p.slice(q+1),v=this.var(v)):(k=clean(p),v=this.var(k))),v&&"string"==typeof v&&v.includes("$")&&(v=await this.valuta(v)),["l","a","p"].includes(k)&&(isnum=!0),isnum&&(v=muCalc(v)),{k:k,v:v}}}class CodiceBarra{constructor(){this.barre={}}azzera(){this.barre={}}oriented(t,l,a,p){switch(t=(t||"1").substr(0,1).toLowerCase()){case"0":break;case"l":return{t:"l",x:l};case"a":return{t:"a",x:a};case"p":return{t:"p",x:p};case"2":return{t:t,x:l,y:p,z:a};case"5":return{t:t,x:l,y:a,z:p};case"4":return{t:t,x:p,y:l,z:a};case"3":return{t:t,x:a,y:p,z:l};case"6":return{t:t,x:p,y:a,z:l};default:return{t:"1",x:a,y:l,z:p}}}async getcode(codicebarratot,l,a,p,callback){let[codicebarra,modello]=codicebarratot.split(":");modello=modello||"";var getcode0=async(codicebarra,liv)=>{var barra=this.barre[codicebarra];if(!barra&&callback&&((barra=await callback(codicebarra))||(barra={t:"1",r:[]}),this.barre[codicebarra]=barra,barra.coderr&&"errore"!=barra.coderr||(barra.coderr=`#err_${codicebarra}`)),!barra||0==barra.r.length)return{extra:{err:"missing codicebarra"},c:`#err_${codicebarra}`,fm:10};var{t:t,x:x,y:y,z:z}=this.oriented(codicebarra,l,a,p),extra={barra:codicebarra,fm:barra.fm,t:t,liv:liv,items:barra.r.length,err:""},bx=barra.r;if(z){var t2=bx.filter((e=>e.z===z||!e.z));t2.length>0?bx=t2:extra.err=`spessore non coerente: ${z}`}if("l"==t||"a"==t||"p"==t){if(t=bx.find((e=>e.x>=x)))return{c:t.c,fm:t.x==x?0:1,x1:t.x,x:x,extra:extra}}else{var t;if(t=bx.find((e=>e.x==x&&e.y==y)))return{c:t.c,fm:0,x:x,y:y,z:z,x1:t.x,y1:t.y,z1:t.z,extra:extra};if(0!=barra.fm&&(t=bx.find((e=>e.x>=x&&e.y==y))))return{c:t.c,fm:1,x:x,y:y,z:z,x1:t.x,y1:t.y,z1:t.z,extra:extra};if(0!=barra.fm&&2!=barra.fm&&(t=bx.find((e=>e.x>=x&&e.y>=y))))return{c:t.c,fm:2,x:x,y:y,z:z,x1:t.x,y1:t.y,z1:t.z,extra:extra}}return barra.codalt&&liv<5?await getcode0(barra.codalt,liv+1):{c:barra.coderr,fm:9,x:x,y:y,z:z,extra:extra}};return await getcode0(codicebarra,0)}compila(vettore,headers){headers||(headers={});var barre={};if(Array.isArray(vettore)){for(var r of vettore)if(r.cod=clean(r.cod),r.barcode=clean(r.barcode),r.barcode.length>2&&"+"==r.barcode[0]){r.barcode=r.barcode.substr(1);var tm=this.oriented(r.barcode.substr(0,1),r.l,r.a,r.p);tm.c=r.modello?{c:r.cod,m:r.modello}:r.cod,barre[r.barcode]||(barre[r.barcode]={t:r.barcode.substr(0,1),r:[]},headers[r.barcode]&&(barre[r.barcode]=Object.assign(headers[r.barcode],barre[r.barcode]))),barre[r.barcode].r.push(tm)}for(var x in barre){barre[x].r.sort(((a,b)=>a.y?1e4*(a.x-b.x)+(a.y-b.y):a.x-b.x))}}this.barre=barre}}const keys="IFDEF|IFNDEF|CACHE|CVAR|LOOK|LOOKB|SELECT|CASES|CASE|LOG|MSG|DEFAULT|ELSEIFDEF|ELSEIFNDEF|ELSEIF|ELSE|ENDIF|ENDSELECT|PUSH|POP|FUNC|MACRO|LETS|LETO|LETM|LETT|LETV|LETM|LET|DEF|DO|VARIANTE|FORVAR|FOR|LOOP|ENDFOR|BREAK|EXIT|EXITFOR|CONTINUE|IF|INC|I|F|M|J|:P".split("|");function toCadPars(str){let t0=muClComments(str),t2=[];for(var row of t0){let t1=getcolonne(row,!0),fl=!1;for(var t of t1)!t.startsWith('"')&&t.includes("=")?(t2.push(t),fl=!0):fl&&(t2[t2.length-1]+=","+t)}let pars={};for(var x of t2){let{v:v,o:o}=getcouple(x,"=",!1);v&&o&&(/^[\-+]?\d*\.?\d+$/.test(o)&&(o=parseFloat(o)),pars[v]=o)}return pars}function muClComments(codice,tienivuoti){const righe=codice.split(/\r?\n/),tm=[];let inBloccoCommento=!1,rigaContinua="";for(const riga of righe){let rigaTrim=riga.trim();if(inBloccoCommento)rigaTrim.endsWith("*/")&&(inBloccoCommento=!1);else if(rigaTrim.startsWith("/*"))inBloccoCommento=!0;else if(!inBloccoCommento&&rigaTrim.includes("//")&&(rigaTrim=rigaTrim.split("//")[0].trim()),0!==rigaTrim.length||tienivuoti)if(rigaContinua.length>0&&(rigaTrim=rigaContinua+" "+rigaTrim,rigaContinua=""),rigaTrim.endsWith("\\")){rigaTrim=rigaTrim.slice(0,-1);const indiceCommento=rigaTrim.lastIndexOf("//");-1!==indiceCommento&&(rigaTrim=rigaTrim.slice(0,indiceCommento).trim()),rigaContinua=rigaTrim}else tm.push(rigaTrim)}return tm}function muClean(tt,acapo=!1){if(Array.isArray(tt)){var tm=[];for(var rigaTrim of tt){const matchComando=rigaTrim.match(/^#([\w\.]+)\s*(.*)$/);if(matchComando){var tipo=matchComando[1].toUpperCase().trim(),tipo2="";if(tipo.includes(".")){var vv=tipo.split(".");tipo=vv[0],tipo2=vv[1]}if(keys.includes(tipo)){const contenuto=matchComando[2];if("IF"!==tipo&&"IFDEF"!=tipo&&"IFNDEF"!=tipo||!contenuto.includes("#")){let tmx={tipo:tipo,contenuto:matchComando[2]};tipo2&&(tmx.tipo2=tipo2),tm.push(tmx)}else{var matchInline=contenuto.match(/^(.*?)\s*#\s*(\w+)\s*(.*?)\s*#\s*(\w+)\s*(.*)$/);matchInline?(tm.push({tipo:tipo,contenuto:matchInline[1].trim()}),tm.push({tipo:matchInline[2].toUpperCase(),contenuto:matchInline[3]}),tm.push({tipo:"ELSE",contenuto:""}),tm.push({tipo:matchInline[4].toUpperCase(),contenuto:matchInline[5]}),tm.push({tipo:"ENDIF",contenuto:""})):(matchInline=contenuto.match(/^(.*?)\s*#\s*(\w+)\s*(.*)$/))?(tm.push({tipo:tipo,contenuto:matchInline[1].trim()}),tm.push({tipo:matchInline[2].toUpperCase(),contenuto:matchInline[3]}),tm.push({tipo:"ENDIF",contenuto:""})):tm.push({tipo:matchComando[1].toUpperCase(),contenuto:matchComando[2]})}}else addgen(rigaTrim)}else addgen(rigaTrim)}for(var nn=0,nf=0,ns=0,lev=[],lef=[],les=[],i=0;i<tm.length;i++){var t=tm[i];switch(t.i=i,t.tipo){case"FOR":case"FORVAR":case"VARIANTE":case"DO":lef[++nf]={pos:i,bk:[]};break;case"LOOP":case"ENDFOR":if(nf>0){var{pos:pos}=lef[nf];for(var b of lef[nf].bk)b.next=i,b.prev=pos;t.prev=pos,tm[pos].next=i,nf--}break;case"BREAK":case"EXIT":case"EXITFOR":case"CONTINUE":nf>0&&lef[nf].bk.push(t);break;case"IF":case"IFDEF":case"IFNDEF":lev[++nn]={pos:i,bk:[t]};break;case"SELECT":les[++ns]={pos:i,bk:[t],first:i};break;case"ELSEIF":case"ELSEIFDEF":case"ELSEIFNDEF":case"ELSE":if(nn>0){var{pos:pos}=lev[nn];lev[nn].bk.push(t),tm[pos].next=i,lev[nn].pos=i}break;case"CASE":case"CASES":case"DEFAULT":if(ns>0){var{pos:pos,first:first}=les[ns];les[ns].bk.push(t),tm[pos].next=i,t.first=first,les[ns].pos=i}break;case"ENDIF":if(nn>0){var{pos:pos,next:next}=lev[nn];for(var b of(tm[pos].next=i,lev[nn].bk))b.last=i;nn--}break;case"ENDSELECT":if(ns>0){var{pos:pos,next:next}=les[ns];for(var b of(tm[pos].next=i,les[ns].bk))b.last=i;ns--}}}return tm}function addgen(r){if(tm.length>0&&""==tm[tm.length-1].tipo){var x=tm[tm.length-1];acapo||!(!r.startsWith("!")&!r.startsWith("."))||r.startsWith("$")||r.startsWith("{")||r.startsWith("#")||x.contenuto.startsWith("!")||x.contenuto.startsWith(".")||x.contenuto.startsWith("$")||x.contenuto.startsWith("{")||x.contenuto.startsWith("#")?tm.push({tipo:"",contenuto:r}):x.contenuto=x.contenuto+"\n"+r}else tm.push({tipo:"",contenuto:r})}errori.add("muClean: expected array!")}function muLimits(dati){var tk,rr=muClComments(dati),tm=[],parsa=v=>v?[...new Set(v.split(",").map((e=>e.trim())).sort().filter((e=>e)))]:void 0;for(var r of rr){var m=/^\s*\{(.*)?\}/im.exec(r);if(m)"limit"==clean(m[1])?(tk={},tm.push(tk)):tk=void 0;else if(tk&&(m=/^\s*\:(\w+)\s*(.*)/.exec(r)))switch(m[1].toLowerCase()){case"opz":case"o":tk.opz=parsa(m[2]);break;case"obs":case"obsolete":tk.obsolete=parsa(m[2]);break;case"scons":case"sconsigliate":tk.scons=parsa(m[2]);break;case"neutri":tk.neutri=parsa(m[2]);break;case"art":tk.art=parsa(m[2]);break;case"mod":tk.mod=parsa(m[2]);break;default:logga("missing:",m[1])}}return tm}function parselimitifromdb(rr){let c,cl=[];if(rr&&rr.length)for(var r of rr){c={},r.varfilter=fromjson(r.varfilter,[]),r.result=fromjson(r.result,[]),r.result2=fromjson(r.result2,[]),r.exclude=parseInt(r.exclude)?1:0,r.exclude2=parseInt(r.exclude2)?1:0;let{item:item,model:model,rule:rule,varfilter:varfilter,result:result,result2:result2,exclude:exclude,exclude2:exclude2,datai:datai,dataf:dataf}=r;function remap(res){return res.map((e=>clean("string"==typeof e?e:e.Value,!0))).filter((e=>e))}if(result.length||result2.length){if(result.length&&(exclude?c.ex=remap(result):c.valid=remap(result)),result2.length&&(exclude2?c.ex2=remap(result2):c.valid2=remap(result2)),item&&(c.i=clean(item).split(";")),model&&(c.m=clean(model).split(";")),rule&&(c.r=clean(rule).split(";")),(datai||dataf)&&datai<dataf&&(c.datai=parseInt(datai),c.dataf=parseInt(dataf)),varfilter&&varfilter.length){c.v=[];for(let x of varfilter){let tm=c.v.find((e=>e.v==clean(x.Variant)));tm||(tm={v:clean(x.Variant),o:[]},c.v.push(tm)),tm.o=[...tm.o,...clean(x.Value).split(";")],tm.o=[...new Set(tm.o.filter((x=>x)))]}}setlevelimite(c),cl.push(c)}}return cl=cl.sort(((a,b)=>b.l-a.l)),cl}function setlevelimite(rs){let l=0;rs.i&&rs.i.length&&(l+=5),rs.m&&rs.m.length&&(l+=3),rs.r&&rs.r.length&&(l+=2),rs.v&&rs.v.length&&(l+=3),rs.datai&&rs.dataf&&(l+=1),rs.l=l}function parselimitifromrule(limvec){function parsevettorelimiti(vec){let rs={};const rx1=/^\s*[\!\:]\s*(\w+)\s*(.*)$/i;function addres(key,data){function addres0(key,d){(d=clean(d))&&(rs[key]||(rs[key]=[]),rs[key].includes(d)||rs[key].push(d))}if(Array.isArray(data))for(var d of data)addres0(key,d);else addres0(key,data)}for(var v of vec){var tm=rx1.exec(v);if(tm)switch(tm[1]){case"var":case"v":case"variante":let i=(tm[2]||"").indexOf(" ");if(i>0){let v1=clean(tm[2].substring(0,i)),v2=getcolonne(tm[2].substring(i+1));if(v1&&v2&&v2.length){rs.v||(rs.v=[]);let tv=rs.v.find((e=>e.v==v1));for(var o of(tv||(tv={v:v1,o:[]},rs.v.push(tv)),v2))tv.o.includes(o)||tv.o.push(o)}}break;case"d":case"dt":case"data":case"date":let vv=tm[2].split(" "),d1=parseInt(vv[0]),d2=parseInt(vv[1]);(d1||d2)&&(rs.datai=d1,rs.dataf=d2);break;case"rule":case"r":case"mu":addres("r",getcolonne(tm[2]));break;case"item":case"i":addres("i",getcolonne(tm[2]));break;case"model":case"m":addres("m",getcolonne(tm[2]));break;case"e":case"escludi":case"exclude":addres("ex",getcolonne(tm[2]))}else addres("valid",getcolonne(v))}return setlevelimite(rs),rs}let limits;if(limvec&&limvec.length){for(var ll of limvec){let rs=parsevettorelimiti(ll);if(rs&&(rs.valid&&rs.valid.length||rs.ex&&rs.ex.length)){let l=0;rs.i&&rs.i.length&&(l+=5),rs.m&&rs.m.length&&(l+=3),rs.r&&rs.r.length&&(l+=2),rs.v&&rs.v.length&&(l+=3),rs.datai&&rs.dataf&&(l+=1),rs.l=l,limits||(limits=[]),limits.push(rs)}}limits&&(limits=limits.sort(((a,b)=>b.l-a.l)))}return limits}
|
|
1
|
+
function testsync(a,b){return a+b}const tk=()=>(new Date).valueOf();function quote(v){if((v=(v||"").trim()).length>1){if(v.startsWith('"')&&v.endsWith('"'))return v;if(v.startsWith("(")&&v.endsWith(")"))return v}return`"${v}"`}function hash(obj){let str="";if("string"==typeof obj||"number"==typeof obj)str=obj+"";else if("object"==typeof obj&&obj){const chiaviOrdinati=Object.keys(obj).sort(),separatore="\0";str=chiaviOrdinati.map((key=>`${key}${separatore}${String(obj[key])}`)).join(separatore)}let h1=2166136261,h2=2218511855;for(let i=0;i<str.length;i++){const char=str.charCodeAt(i);h1^=char,h1+=h1<<5^2779096485,h2^=h1,h2=((h2<<3)+char^2134516169)>>>0}return h1>>>=0,h1.toString(16)+h2.toString(16)}function geterrdes(err){if(err&&"object"==typeof err){let errMsg=err.stack?.toString().replace(/^.*?node_modules.*$/gim,"")||err.message||"";errMsg=errMsg.replaceAll("/","_").replaceAll(".js","").replaceAll("\n\n","\n").replace(/\;\s+/gi,"\n"),err=errMsg}return(err=err.replace(/sqlite/gi,"SQL ")).replaceAll(";",",").trim()}let cbGetVariante,cbGetMacro,cbFunc,cbInfo,cbGetFile,cbLogga;const logga=(...args)=>{cbLogga?cbLogga(args):console.log(...args)};function setcallbacks(cbGetMacro1,cbGetVariante1,cbFunc1,cbInfo1,cbGetFile1,cbLogga1){cbGetMacro=cbGetMacro1,cbGetVariante=cbGetVariante1,cbFunc=cbFunc1,cbInfo=cbInfo1,cbGetFile=cbGetFile1,cbLogga=cbLogga1}const xdt=()=>(new Date).valueOf();function clean(k,locase=!1){return locase?(k||"").trim().toLowerCase():(k||"").trim()}function getcouple(r,sep="=",locase=!0){var q=(r=r||"").indexOf(sep);return q>=0?{v:clean(r.substring(0,q),locase),o:r.substring(q+sep.length).trim(),fl:!0}:{v:clean(r,locase),o:"",fl:!1}}function checkmu(id,cat){if((id=(id||"").trim()).indexOf("/")>0){var vv=id.split("/");cat=vv[0]||"",id=vv[1]||""}if(!cat)throw new Error("manca il catalogo per "+id);return{name:id,cat:cat=checkname(cat)}}function checkname(id){if(!(id=(id||"").trim())||!/^(?:(\w|\-|\_|\+|\.))+$/im.test(id)){throw new Error(`nome non valido: |${id}| \n deve contenere solo lettere, _, e numeri`)}return id.toLowerCase()}function getcolonne(value,keepquote=!1){value=String(value||"");const pp=/^(\d+)\.\.(\d+)$/.exec(value);if(pp){var n1=parseInt(pp[1]),n2=parseInt(pp[2]),cl=[];n1>n2&&([n1,n2]=[n2,n1]);for(var i=n1;i<=n2;i++)cl.push(i+"");return cl}if(!/["({[]/.test(value))return value.split(/[,;]/).map((e=>e.trim()));const risultato=[];let buffer="",livelloParentesi=0,inVirgolette=!1;for(let i=0;i<value.length;i++){const char=value[i];if(0===livelloParentesi&&'"'===char&&(0!==i&&"\\"===value[i-1]||(inVirgolette=!inVirgolette)),inVirgolette||("("===char||"["===char||"{"===char?livelloParentesi++:")"!==char&&"]"!==char&&"}"!==char||(livelloParentesi=Math.max(0,livelloParentesi-1))),","!==char&&";"!==char||0!==livelloParentesi||inVirgolette)buffer+=char;else{const trimmed=buffer.trim();risultato.push(trimmed),buffer=""}}const trimmed=buffer.trim();return trimmed&&risultato.push(trimmed),risultato.map((e=>(e=e.trim(),!keepquote&&(e.startsWith('"')&&e.endsWith('"')||e.startsWith("(")&&e.endsWith(")"))?e.slice(1,-1):e)))}const parsevar=(ex,k0,inipar,endpar,nonewline=!1)=>{const pars1=["[","(","{"],pars2=["]",")","}"];endpar||(endpar="["==inipar?"]":"("==inipar?")":"}");for(var mp=pars1.includes(inipar),par=1,res=[],nres=0,i=k0;i<ex.length;i++)if(mp&&pars1.includes(ex[i])||ex[i]==inipar)par++;else if(mp&&pars2.includes(ex[i])||ex[i]==endpar){if(0==--par&&ex[i]==endpar)return res[nres]=ex.substring(k0,i),{i:i,res:res}}else if(":"==ex[i])1==par&&(res[nres]=ex.substring(k0,i),k0=i+1,nres++);else if("\n"==ex[i]&&nonewline)return{i:i,res:res};return{i:-1,res:ex.substring(k0)}};function setOggetto(objDestinazione,objSorgente){"object"==typeof objDestinazione&&"object"==typeof objSorgente&&Object.keys(objSorgente).forEach((key=>{Object.hasOwn(objDestinazione,key)&&"function"!=typeof objDestinazione[key]&&(objDestinazione[key]=objSorgente[key])}))}function getOggetto(obj,exclude){return"object"==typeof obj?Object.keys(obj).reduce(((acc,key)=>("function"!=typeof obj[key]&&(exclude&&exclude.length>0&&exclude.includes(key)||(acc[key]=obj[key])),acc)),{}):{}}function fromjson(str,def){if(Array.isArray(str))return str;if("string"!=typeof str)return str;if(""==str)return def||{};try{return JSON.parse(str)}catch(e){return logga(`Errore parsing JSON: ${e}\n${str}`),def||{}}}const errori=new class Errori{constructor(){this.azzera()}azzera(){this.err=[]}add(msg,row){this.err.push({msg:msg,row:row})}get(){return this.err}get length(){return this.err.length}toString(){var cl=[];for(var e of this.err){let m="object"==typeof e.msg?JSON.stringify(e.msg):e.msg||"";cl.push(`${e.row?e.row+":":""}${m}`)}return cl.join("\n")}};function getheaddims(dims){let res;try{res="object"==typeof dims&&dims?dims:JSON.parse(dims||"{}")}catch(error){}return res||(res={}),res.l||(res.l={visible:1,val:1e3,min:0,max:1e4}),res.a||(res.a={visible:1,val:1e3,min:0,max:1e4}),res.p||(res.p={visible:1,val:1e3,min:0,max:1e4}),res}const REGEX_PARENTESI=/(?<!\w)\(/g,REGEX_NUMERO=/^-?[0-9.]+$/,REGEX_FUNZIONE=/^(\w+)(\!)?\[(.*)?\]$/,REGEX_RANDOM=/^(rnd|random|cas)\(/i,REGEX_CLAMP=/^clamp\(/i,REGEX_ROUND=/^(dec|round)\(/i,REGEX_DIGIT=/[0-9.]/,REGEX_OPERATOR=/[+\-*/\^\%]/,REGEX_ALPHA=/[a-zA-Z]/i;function valutaparentesi(expression){for(expression=(expression+"").trim();;){var tm=REGEX_PARENTESI.exec(expression);if(!tm)break;var{i:i,res:res}=parsevar(expression,tm.index+1,"(",")");if(i<=0)break;expression=expression.substring(0,tm.index)+valutaparentesi(res[0])+(i>=0?expression.substring(i+1):"")}return expression=function valutainsiemi(expression){if(expression.includes("[")){function resinisiemi(rr){let v1=rr[1],fl=!!rr[2],vv=getcolonne(rr[3]);for(var v of vv)if(v==v1)return fl?"0":"1";return fl?"1":"0"}for(;;){var rr=REGEX_FUNZIONE.exec(expression);if(!rr)break;var tm=resinisiemi(rr);expression=expression.substring(0,rr.index)+tm+expression.substring(rr.index+rr[0].length)}}return expression}(expression),function operatoricomparazione(expression){let left,right;const operators={"||":()=>valutaparentesi(left)||valutaparentesi(right)?1:0,"|":()=>valutaparentesi(left)||valutaparentesi(right)?1:0,"&&":()=>valutaparentesi(left)&&valutaparentesi(right)?1:0,"&":()=>valutaparentesi(left)&&valutaparentesi(right)?1:0,"<<=":()=>clean(left)<=clean(right),">>=":()=>clean(left)>=clean(right),"===":()=>clean(left)==clean(right),"==":()=>clean(left)==clean(right),"!!":()=>clean(left)!=clean(right),"<<":()=>clean(left)<clean(right),">>":()=>clean(left)>clean(right),"<=":()=>muCalcbase(left)<=muCalcbase(right),">=":()=>muCalcbase(left)>=muCalcbase(right),"<":()=>muCalcbase(left)<muCalcbase(right),">":()=>muCalcbase(left)>muCalcbase(right),"=":()=>muCalcbase(left)==muCalcbase(right),"!":()=>muCalcbase(left)!=muCalcbase(right)};var operatorIndex=-1,op="";for(var operator in operators)if((operatorIndex=expression.indexOf(operator))>=0){op=operator;break}return-1!==operatorIndex?(left=expression.slice(0,operatorIndex),right=expression.slice(operatorIndex+op.length),operators[op]&&operators[op]()?1:0):muCalcbase(expression)}(expression)}const mathFunctions={sqr:x=>Math.sqrt(x),sqrt:x=>Math.sqrt(x),int:x=>Math.floor(x),floor:x=>Math.floor(x),round:x=>Math.round(x),abs:x=>Math.abs(x),sin:x=>Math.sin(x*(Math.PI/180)),cos:x=>Math.cos(x*(Math.PI/180)),tan:x=>Math.tan(x*(Math.PI/180)),atan:x=>Math.atan(x*(Math.PI/180)),atan2:(x,y)=>Math.atan2(x,y)*(Math.PI/180),asin:x=>Math.asin(x*(Math.PI/180)),acos:x=>Math.acos(x*(Math.PI/180))};function muCalcbase(expression){let index=0;function parseOperator(){const op=expression[index];return REGEX_OPERATOR.test(op)?(index++,op):null}function parsePrimary(){if(REGEX_DIGIT.test(expression[index]))return function parseNumber(){const start=index;for(;index<expression.length&®EX_DIGIT.test(expression[index]);)index++;return Number(expression.slice(start,index))}();if("("===expression[index]){index++;const result=parseExpr();return")"===expression[index]&&index++,result}return REGEX_ALPHA.test(expression[index])?function parseFunctions(){var ex=expression.slice(index);if(!ex)return 0;for(const[name,func]of Object.entries(mathFunctions)){const match=new RegExp(`^(${name})\\(`,"i").exec(ex);if(match){index+=match[0].length;const result=func(parseExpr());return")"===expression[index]&&index++,result}}let fn;if(fn=REGEX_RANDOM.exec(ex),fn){index+=fn[0].length;let min=0,max=1;return")"!==expression[index]&&(min=parseExpr(),","===expression[index]?(index++,max=parseExpr()):(max=min,min=0)),")"===expression[index]&&index++,Math.random()*(max-min)+min}if(fn=REGEX_CLAMP.exec(ex),fn){index+=fn[0].length;const a=parseExpr();","===expression[index]&&index++;const b=parseExpr();","===expression[index]&&index++;const c=parseExpr();return")"===expression[index]&&index++,Math.min(Math.max(a,b),c)}if(fn=REGEX_ROUND.exec(ex),fn){index+=fn[0].length;const value=parseExpr();let decimals=0;return","===expression[index]&&(index++,decimals=parseExpr()),")"===expression[index]&&index++,parseFloat(value.toFixed(decimals))}return index++,parseExpr()}():0}function parseFactor(){let left=parsePrimary();for(;index<expression.length&&/[\/\*\^\%]/.test(expression[index]);){const op=parseOperator(),right=parsePrimary();"*"===op?left*=right:"/"===op?left=right?left/right:0:"%"===op?left=right?left%right:0:"^"===op&&(left=Math.pow(left,right))}return left}function parseExpr(){let left=parseFactor();for(;index<expression.length&&/[+\-]/.test(expression[index]);){const op=parseOperator(),right=parseFactor();"+"===op?left+=right:"-"===op&&(left-=right)}return left}return expression=expression.replace(/\s/g,""),parseExpr()}function muCalc(expression){if(!expression)return 0;if("number"==typeof expression)return expression||0;if("string"!=typeof expression)return 0;var s=expression.replaceAll(",",".");return REGEX_NUMERO.test(s)?Number(s)||0:valutaparentesi(expression)||0}function valutavar(sh,res){var vv=res[0]||"";if(!vv)return"";if(sh.counter>=500)return vv;var vx=valutabase(sh,sh.var(valuta0(sh,vv)));if(sh.counter>=500)return vv;if(res[1]){var cols=getcolonne(vx);if("l"==res[1])return String(cols.length);var col=muCalc(valuta0(sh,res[1]));if(!(col>=0&&col<cols.length))return"";vx=valuta0(sh,cols[col])}if(res[2]){var c1=muCalc(valuta0(sh,res[2]));if(c1){var c2=0;return res[3]&&(c2=muCalc(valuta0(sh,res[3]))),c1<0?vx.slice(c1):c2?vx.substring(c1-1,c1+c2-1):vx.substring(c1-1)}}return vx}function valutaquadra(sh,res){var vv=getcolonne(res||""),r1=clean(vv[0]);function replacecharcode(str){return"\\t"==str?"\t":"\\n"==str?"\n":(str||"").replace(/&(\d+)/g,((match,m1)=>String.fromCharCode(parseInt(m1))))}switch(r1){case"set":var m1=valuta0(sh,vv[1]||""),m2=valuta0(sh,vv[2]||"");sh.add(m1,sh.vars(m2));break;case"ex":m1=valuta0(sh,vv[1]||"");(m2=valuta0(sh,vv[2]||""))||(m2=",");var m3=muCalc(valuta0(sh,vv[3]||"")),tm=m1.split(m2);return m3>0&&tm[m3-1]||"";case"ex2":var sep=replacecharcode(vv[1]||""),pos=muCalc(valuta0(sh,vv[2]||""));return vv.splice(0,3),(str=vv.join(";")).split(sep)[pos>0?pos-1:0]||"";case"replace":return vv[1].replace(new RegExp(vv[2]||"x","gim"),(vv[3]||"").trim());case"replace2":case"rp2":try{var search=replacecharcode(vv[1]||"x"),replace=replacecharcode(vv[2]||"").trim();return vv.splice(0,3),search=search.replace(/&(\d+)/g,((match,code)=>`\\u${parseInt(code).toString(16).padStart(4,"0")}`)),vv.join(";").replace(new RegExp(search,"im"),replace)}catch(error){return""}case"look":case"lookb":{let val=parseFloat(vv[1]||"");if(vv=vv.slice(2).map((e=>parseFloat(e)||0)),"lookb"==r1){const filtered=vv.filter((v=>v<=val));return filtered.length?Math.max(...filtered):val}{const filtered=vv.filter((v=>v>=val));return filtered.length?Math.min(...filtered):val}}case"tk":return(pos=muCalc(valuta0(sh,vv[1]||""))||0)?vv[pos>0?pos+1:2]||"":(pos=muCalc(valuta0(sh,vv[2]||"")),sep=vv[1]||"",pos?vv[3].split(sep)[pos-1]:"");case"totab":return vv.splice(0,1),vv.join("\t");case"tosep":sep=replacecharcode(vv[1]||"")||";";return vv.splice(0,2),vv.join(sep);case"len":{let tm;return vv.length>2?(vv.shift(),tm=vv.join(";")):tm=vv[1]||"",tm.length}case"mid":var str=valuta0(sh,vv[1]||""),len=(pos=muCalc(valuta0(sh,vv[2]||"")),muCalc(valuta0(sh,vv[3]||"")));return str.substring(pos-1,pos+len-1);case"arrotonda":{str=muCalc(vv[1]);let coeff=1;return["0","1","2","3","4","5","6"].includes(vv[2])?coeff=Math.pow(10,parseInt(vv[2])):(coeff=muCalc(vv[2]),0==coeff&&(coeff=1e3)),Math.round(str*coeff)/coeff}case"iif":return(str=muCalc(valuta0(sh,vv[1])))?vv[2]||1:vv[3]||0;case"instr":case"instr2":var str1=vv[1]||"",str2=vv[2]||"";return str1.toLowerCase().indexOf(str2.toLowerCase())+1;case"instr2":str2=vv[1]||"";return vv.splice(0,2),vv.join(";").toLowerCase().indexOf(str2.toLowerCase())+1;default:return{fun:r1,pars:vv}}}function valuta0(sh,ex){if(ex+="",sh.counter>=500)return ex;for(;;){const rt=/\$([\{\(])/im.exec(ex);if(!rt)break;var i1=rt.index,{i:i,res:res}="("==rt[1]?parsevar(ex,i1+2,"(",")"):parsevar(ex,i1+2,"{","}");ex=valuta0(sh,ex.substring(0,i1))+valutavar(sh,res)+(i>=0?valuta0(sh,ex.substring(i+1)):"")}return ex=(ex=ex.replace(/\$([a-z|][\w|\.]*)/gi,((match,m1)=>{for(var m2="";m1.length;){var tm=valutabase(sh,sh.var(m1));if(tm||!(m1.length>1)){m2=tm+m2;break}m2=m1.slice(-1)+m2,m1=m1.substring(0,m1.length-1)}return m2}))).replace(/\$(\d+)\:(\d+)(\:(\d+))?/g,((p0,p1,p2,p3,p4)=>{p4=p4?+p4:1;let cl=[];for(let i=+p1;i<=+p2;i+=p4)cl.push(i.toString());return cl.join(";")})),ex}function valutabase(sh,ex){return ex&&(sh.counter++,sh.counter<=500&&(ex=valuta0(sh,ex)),sh.counter--),ex}class Variabile{constructor(){this.dictionary={},this.vec=[],this.counter=0,this.fndotcallback=void 0}static isValidKey(key){return/^[\w][\w\d\.\[\]]*$/.test(key)}static sanitizeKey(key){return key.replace(/[^a-zA-Z0-9_\.\[\]]/g,"_")}setfndot(fndotcallback){this.fndotcallback=fndotcallback}push(){this.vec.push({...this.dictionary})}pop(){this.vec.length>0&&(this.dictionary=this.vec.pop())}clear(){this.vec=[],this.dictionary={}}azzera=()=>this.clear();var(key){let fmt="";const pp=/^(\d+)\.\.(\d+)$/.exec(key);if(pp){var n1=parseInt(pp[1]),n2=parseInt(pp[2]),cl=[];n1>n2&&([n1,n2]=[n2,n1]);for(var i=n1;i<=n2;i++)cl.push(i+"");return cl}if(key.indexOf("|")>=0){let tm=key.split("|");key=tm[0],fmt=tm[1]}function toformat(val,fmt){switch(fmt.trim().toLowerCase()){case"data":return date=parseFloat(val)||0,new Intl.DateTimeFormat("it",{day:"2-digit",month:"short",year:"2-digit"}).format(date.toDate());case"euro":return((n,valorezero="")=>{if(n){var xx=Intl.NumberFormat("en",{style:"currency",currency:"EUR"}).format(n);return xx.replace(/€/g,"").replace(/\./g,";").replace(/,/g,".").replace(/;/g,",")+"€"}return valorezero})(parseFloat(val));case"num":return((n,dec=-1)=>{const num="string"==typeof n?parseFloat(n)||0:n;if(dec<0)return num||0;const factor=Math.pow(10,dec);return Math.round(num*factor)/factor||0})(parseFloat(val));default:return val}var date}const sanitizedKey=Variabile.sanitizeKey(key);if(sanitizedKey.startsWith(".")&&this.fndotcallback){let tm=this.fndotcallback(sanitizedKey.toLowerCase());if(tm)return toformat(tm,fmt)}if(Variabile.isValidKey(sanitizedKey)){const lowercaseKey=sanitizedKey.toLowerCase();var rr=/^([\w][\w\d]*)[\.\[]/.exec(lowercaseKey);if(rr){var tm=this.dictionary[rr[1]];if(tm&&"object"==typeof tm)return toformat(function objval(tm,key){for(var parts=key.split("."),obj=tm,i=0;i<parts.length;i++){var part=parts[i],match=part.match(/(.*?)\[(\d+)\]/);if(match){if(void 0===(obj=obj[match[1]]))return"";obj=obj[parseInt(match[2],10)]}else obj=obj[part];if(void 0===obj)return""}return"number"==typeof obj?obj+"":obj}(tm,lowercaseKey.substring(rr[0].length)),fmt)}return toformat(this.dictionary[lowercaseKey]||"",fmt)}return""}getvar(key){return this.var(key)}colonna(value,index){return getcolonne[index]||value}dump(isstr=!1){var cl=[];for(var t in this.dictionary)cl.push({cod:t,val:this.dictionary[t]});return cl=cl.sort(((a,b)=>a.cod>b.cod)),isstr?cl.map((e=>`${e.cod} = ${e.val}`)):cl}add(key,value){"number"==typeof value&&(value=String(value));const sanitizedKey=Variabile.sanitizeKey(key);if(Variabile.isValidKey(sanitizedKey)){const lowercaseKey=sanitizedKey.toLowerCase();0===value||value?this.dictionary[lowercaseKey]=value:delete this.dictionary[lowercaseKey]}else logga(`Invalid key: ${key}`)}valutasync(str){return valutabase(this,str)}async valuta(ex,callback){var tm=await async function valutafunc(sh,ex,callback){if(ex){for(var ii=0;ii<20;ii++){var i1=ex.lastIndexOf("$[");if(!(i1>=0)){ex=valutabase(sh,ex);break}var{i:i,res:res}=parsevar(ex,i1+2,"[","]"),t1=valutabase(sh,ex.substring(0,i1)),t2=res?valutabase(sh,res[0]):"",t3=i>=0?valutabase(sh,ex.substring(i+1)):"",t4=valutaquadra(sh,t2);"object"==typeof t4&&(t4=callback?await callback(t4?.fun,t4.pars):`** fun: ${t4.fun} ** `),ex=t1+(t4="object"==typeof t4?"**str**":t4+""||"")+t3}return ex}return""}(this,ex,callback);return tm=(ex=>{for(;;){var i1=ex.indexOf("{");if(!(i1>=0))break;var{i:i,res:res}=parsevar(ex,i1+1,"{","}");if(i<0)return ex;ex=ex.substring(0,i1)+muCalc(res[0])+(i>=0?ex.substring(i+1):"")}return ex})(tm),tm}async parametrokeyval(p){if(!(p=p.trim()))return{};let k,v,q,isnum=!1;return p.startsWith("#")&&(isnum=!0,p=p.slice(1)),q=p.indexOf("="),q>0?(k=clean(p.slice(0,q)),v=p.slice(q+1)):(q=p.indexOf(":"),q>0?(k=clean(p.slice(0,q)),v=p.slice(q+1),v=this.var(v)):(k=clean(p),v=this.var(k))),v&&"string"==typeof v&&v.includes("$")&&(v=await this.valuta(v)),["l","a","p"].includes(k)&&(isnum=!0),isnum&&(v=muCalc(v)),{k:k,v:v}}}class CodiceBarra{constructor(){this.barre={}}azzera(){this.barre={}}oriented(t,l,a,p){switch(t=(t||"1").substr(0,1).toLowerCase()){case"0":break;case"l":return{t:"l",x:l};case"a":return{t:"a",x:a};case"p":return{t:"p",x:p};case"2":return{t:t,x:l,y:p,z:a};case"5":return{t:t,x:l,y:a,z:p};case"4":return{t:t,x:p,y:l,z:a};case"3":return{t:t,x:a,y:p,z:l};case"6":return{t:t,x:p,y:a,z:l};default:return{t:"1",x:a,y:l,z:p}}}async getcode(codicebarratot,l,a,p,callback){let[codicebarra,modello]=codicebarratot.split(":");modello=modello||"";var getcode0=async(codicebarra,liv)=>{var barra=this.barre[codicebarra];if(!barra&&callback&&((barra=await callback(codicebarra))||(barra={t:"1",r:[]}),this.barre[codicebarra]=barra,barra.coderr&&"errore"!=barra.coderr||(barra.coderr=`#err_${codicebarra}`)),!barra||0==barra.r.length)return{extra:{err:"missing codicebarra"},c:`#err_${codicebarra}`,fm:10};var{t:t,x:x,y:y,z:z}=this.oriented(codicebarra,l,a,p),extra={barra:codicebarra,fm:barra.fm,t:t,liv:liv,items:barra.r.length,err:""},bx=barra.r;if(z){var t2=bx.filter((e=>e.z===z||!e.z));t2.length>0?bx=t2:extra.err=`spessore non coerente: ${z}`}if("l"==t||"a"==t||"p"==t){if(t=bx.find((e=>e.x>=x)))return{c:t.c,fm:t.x==x?0:1,x1:t.x,x:x,extra:extra}}else{var t;if(t=bx.find((e=>e.x==x&&e.y==y)))return{c:t.c,fm:0,x:x,y:y,z:z,x1:t.x,y1:t.y,z1:t.z,extra:extra};if(0!=barra.fm&&(t=bx.find((e=>e.x>=x&&e.y==y))))return{c:t.c,fm:1,x:x,y:y,z:z,x1:t.x,y1:t.y,z1:t.z,extra:extra};if(0!=barra.fm&&2!=barra.fm&&(t=bx.find((e=>e.x>=x&&e.y>=y))))return{c:t.c,fm:2,x:x,y:y,z:z,x1:t.x,y1:t.y,z1:t.z,extra:extra}}return barra.codalt&&liv<5?await getcode0(barra.codalt,liv+1):{c:barra.coderr,fm:9,x:x,y:y,z:z,extra:extra}};return await getcode0(codicebarra,0)}compila(vettore,headers){headers||(headers={});var barre={};if(Array.isArray(vettore)){for(var r of vettore)if(r.cod=clean(r.cod),r.barcode=clean(r.barcode),r.barcode.length>2&&"+"==r.barcode[0]){r.barcode=r.barcode.substr(1);var tm=this.oriented(r.barcode.substr(0,1),r.l,r.a,r.p);tm.c=r.modello?{c:r.cod,m:r.modello}:r.cod,barre[r.barcode]||(barre[r.barcode]={t:r.barcode.substr(0,1),r:[]},headers[r.barcode]&&(barre[r.barcode]=Object.assign(headers[r.barcode],barre[r.barcode]))),barre[r.barcode].r.push(tm)}for(var x in barre){barre[x].r.sort(((a,b)=>a.y?1e4*(a.x-b.x)+(a.y-b.y):a.x-b.x))}}this.barre=barre}}const keys="IFDEF|IFNDEF|CACHE|CVAR|LOOK|LOOKB|SELECT|CASES|CASE|LOG|MSG|DEFAULT|ELSEIFDEF|ELSEIFNDEF|ELSEIF|ELSE|ENDIF|ENDSELECT|PUSH|POP|FUNC|MACRO|LETS|LETO|LETM|LETT|LETV|LETM|LET|DEF|DO|VARIANTE|FORVAR|FOR|LOOP|ENDFOR|BREAK|EXIT|EXITFOR|CONTINUE|IF|INC|I|F|M|J|:P".split("|");function toCadPars(str){let t0=muClComments(str),t2=[];for(var row of t0){let t1=getcolonne(row,!0),fl=!1;for(var t of t1)!t.startsWith('"')&&t.includes("=")?(t2.push(t),fl=!0):fl&&(t2[t2.length-1]+=","+t)}let pars={};for(var x of t2){let{v:v,o:o}=getcouple(x,"=",!1);v&&o&&(/^[\-+]?\d*\.?\d+$/.test(o)&&(o=parseFloat(o)),pars[v]=o)}return pars}function muClComments(codice,tienivuoti){const righe=(code=codice,code.replace(/("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')|\/\*[\s\S]*?\*\//g,((match,quoted)=>quoted||""))).split(/\r?\n/);var code;const tm=[];let rigaContinua="";for(const riga of righe){let rigaTrim=riga.trim();if(rigaTrim.includes("//")&&(rigaTrim=rigaTrim.split("//")[0].trim()),0!==rigaTrim.length||tienivuoti)if(rigaContinua.length>0&&(rigaTrim=rigaContinua+" "+rigaTrim,rigaContinua=""),rigaTrim.endsWith("\\")){rigaTrim=rigaTrim.slice(0,-1);const indiceCommento=rigaTrim.lastIndexOf("//");-1!==indiceCommento&&(rigaTrim=rigaTrim.slice(0,indiceCommento).trim()),rigaContinua=rigaTrim}else tm.push(rigaTrim)}return tm}function muClean(tt,acapo=!1){if(Array.isArray(tt)){var tm=[];for(var rigaTrim of tt){const matchComando=rigaTrim.match(/^#([\w\.]+)\s*(.*)$/);if(matchComando){var tipo=matchComando[1].toUpperCase().trim(),tipo2="";if(tipo.includes(".")){var vv=tipo.split(".");tipo=vv[0],tipo2=vv[1]}if(keys.includes(tipo)){const contenuto=matchComando[2];if("IF"!==tipo&&"IFDEF"!=tipo&&"IFNDEF"!=tipo||!contenuto.includes("#")){let tmx={tipo:tipo,contenuto:matchComando[2]};tipo2&&(tmx.tipo2=tipo2),tm.push(tmx)}else{var matchInline=contenuto.match(/^(.*?)\s*#\s*(\w+)\s*(.*?)\s*#\s*(\w+)\s*(.*)$/);matchInline?(tm.push({tipo:tipo,contenuto:matchInline[1].trim()}),tm.push({tipo:matchInline[2].toUpperCase(),contenuto:matchInline[3]}),tm.push({tipo:"ELSE",contenuto:""}),tm.push({tipo:matchInline[4].toUpperCase(),contenuto:matchInline[5]}),tm.push({tipo:"ENDIF",contenuto:""})):(matchInline=contenuto.match(/^(.*?)\s*#\s*(\w+)\s*(.*)$/))?(tm.push({tipo:tipo,contenuto:matchInline[1].trim()}),tm.push({tipo:matchInline[2].toUpperCase(),contenuto:matchInline[3]}),tm.push({tipo:"ENDIF",contenuto:""})):tm.push({tipo:matchComando[1].toUpperCase(),contenuto:matchComando[2]})}}else addgen(rigaTrim)}else addgen(rigaTrim)}for(var nn=0,nf=0,ns=0,lev=[],lef=[],les=[],i=0;i<tm.length;i++){var t=tm[i];switch(t.i=i,t.tipo){case"FOR":case"FORVAR":case"VARIANTE":case"DO":lef[++nf]={pos:i,bk:[]};break;case"LOOP":case"ENDFOR":if(nf>0){var{pos:pos}=lef[nf];for(var b of lef[nf].bk)b.next=i,b.prev=pos;t.prev=pos,tm[pos].next=i,nf--}break;case"BREAK":case"EXIT":case"EXITFOR":case"CONTINUE":nf>0&&lef[nf].bk.push(t);break;case"IF":case"IFDEF":case"IFNDEF":lev[++nn]={pos:i,bk:[t]};break;case"SELECT":les[++ns]={pos:i,bk:[t],first:i};break;case"ELSEIF":case"ELSEIFDEF":case"ELSEIFNDEF":case"ELSE":if(nn>0){var{pos:pos}=lev[nn];lev[nn].bk.push(t),tm[pos].next=i,lev[nn].pos=i}break;case"CASE":case"CASES":case"DEFAULT":if(ns>0){var{pos:pos,first:first}=les[ns];les[ns].bk.push(t),tm[pos].next=i,t.first=first,les[ns].pos=i}break;case"ENDIF":if(nn>0){var{pos:pos,next:next}=lev[nn];for(var b of(tm[pos].next=i,lev[nn].bk))b.last=i;nn--}break;case"ENDSELECT":if(ns>0){var{pos:pos,next:next}=les[ns];for(var b of(tm[pos].next=i,les[ns].bk))b.last=i;ns--}}}return tm}function addgen(r){if(tm.length>0&&""==tm[tm.length-1].tipo){var x=tm[tm.length-1];acapo||!(!r.startsWith("!")&!r.startsWith("."))||r.startsWith("$")||r.startsWith("{")||r.startsWith("#")||x.contenuto.startsWith("!")||x.contenuto.startsWith(".")||x.contenuto.startsWith("$")||x.contenuto.startsWith("{")||x.contenuto.startsWith("#")?tm.push({tipo:"",contenuto:r}):x.contenuto=x.contenuto+"\n"+r}else tm.push({tipo:"",contenuto:r})}errori.add("muClean: expected array!")}function muLimits(dati){var tk,rr=muClComments(dati),tm=[],parsa=v=>v?[...new Set(v.split(",").map((e=>e.trim())).sort().filter((e=>e)))]:void 0;for(var r of rr){var m=/^\s*\{(.*)?\}/im.exec(r);if(m)"limit"==clean(m[1])?(tk={},tm.push(tk)):tk=void 0;else if(tk&&(m=/^\s*\:(\w+)\s*(.*)/.exec(r)))switch(m[1].toLowerCase()){case"opz":case"o":tk.opz=parsa(m[2]);break;case"obs":case"obsolete":tk.obsolete=parsa(m[2]);break;case"scons":case"sconsigliate":tk.scons=parsa(m[2]);break;case"neutri":tk.neutri=parsa(m[2]);break;case"art":tk.art=parsa(m[2]);break;case"mod":tk.mod=parsa(m[2]);break;default:logga("missing:",m[1])}}return tm}function parselimitifromdb(rr){let c,cl=[];if(rr&&rr.length)for(var r of rr){c={},r.varfilter=fromjson(r.varfilter,[]),r.result=fromjson(r.result,[]),r.result2=fromjson(r.result2,[]),r.exclude=parseInt(r.exclude)?1:0,r.exclude2=parseInt(r.exclude2)?1:0;let{item:item,model:model,rule:rule,varfilter:varfilter,result:result,result2:result2,exclude:exclude,exclude2:exclude2,datai:datai,dataf:dataf}=r;function remap(res){return res.map((e=>clean("string"==typeof e?e:e.Value,!0))).filter((e=>e))}if(result.length||result2.length){if(result.length&&(exclude?c.ex=remap(result):c.valid=remap(result)),result2.length&&(exclude2?c.ex2=remap(result2):c.valid2=remap(result2)),item&&(c.i=clean(item).split(";")),model&&(c.m=clean(model).split(";")),rule&&(c.r=clean(rule).split(";")),(datai||dataf)&&datai<dataf&&(c.datai=parseInt(datai),c.dataf=parseInt(dataf)),varfilter&&varfilter.length){c.v=[];for(let x of varfilter){let tm=c.v.find((e=>e.v==clean(x.Variant)));tm||(tm={v:clean(x.Variant),o:[]},c.v.push(tm)),tm.o=[...tm.o,...clean(x.Value).split(";")],tm.o=[...new Set(tm.o.filter((x=>x)))]}}setlevelimite(c),cl.push(c)}}return cl=cl.sort(((a,b)=>b.l-a.l)),cl}function setlevelimite(rs){let l=0;rs.i&&rs.i.length&&(l+=5),rs.m&&rs.m.length&&(l+=3),rs.r&&rs.r.length&&(l+=2),rs.v&&rs.v.length&&(l+=3),rs.datai&&rs.dataf&&(l+=1),rs.l=l}function parselimitifromrule(limvec){function parsevettorelimiti(vec){let rs={};const rx1=/^\s*[\!\:]\s*(\w+)\s*(.*)$/i;function addres(key,data){function addres0(key,d){(d=clean(d))&&(rs[key]||(rs[key]=[]),rs[key].includes(d)||rs[key].push(d))}if(Array.isArray(data))for(var d of data)addres0(key,d);else addres0(key,data)}for(var v of vec){var tm=rx1.exec(v);if(tm)switch(tm[1]){case"var":case"v":case"variante":let i=(tm[2]||"").indexOf(" ");if(i>0){let v1=clean(tm[2].substring(0,i)),v2=getcolonne(tm[2].substring(i+1));if(v1&&v2&&v2.length){rs.v||(rs.v=[]);let tv=rs.v.find((e=>e.v==v1));for(var o of(tv||(tv={v:v1,o:[]},rs.v.push(tv)),v2))tv.o.includes(o)||tv.o.push(o)}}break;case"d":case"dt":case"data":case"date":let vv=tm[2].split(" "),d1=parseInt(vv[0]),d2=parseInt(vv[1]);(d1||d2)&&(rs.datai=d1,rs.dataf=d2);break;case"rule":case"r":case"mu":addres("r",getcolonne(tm[2]));break;case"item":case"i":addres("i",getcolonne(tm[2]));break;case"model":case"m":addres("m",getcolonne(tm[2]));break;case"e":case"escludi":case"exclude":addres("ex",getcolonne(tm[2]))}else addres("valid",getcolonne(v))}return setlevelimite(rs),rs}let limits;if(limvec&&limvec.length){for(var ll of limvec){let rs=parsevettorelimiti(ll);if(rs&&(rs.valid&&rs.valid.length||rs.ex&&rs.ex.length)){let l=0;rs.i&&rs.i.length&&(l+=5),rs.m&&rs.m.length&&(l+=3),rs.r&&rs.r.length&&(l+=2),rs.v&&rs.v.length&&(l+=3),rs.datai&&rs.dataf&&(l+=1),rs.l=l,limits||(limits=[]),limits.push(rs)}}limits&&(limits=limits.sort(((a,b)=>b.l-a.l)))}return limits}
|
|
2
2
|
//!END_SYNC
|
|
3
3
|
class Variante{constructor(amb){this.rows={},this.name="$",this.key="$",this.limits=void 0,this.amb=amb}setheader(id,cat){var{name:name,cat:cat}=checkmu(id,cat);return this.cat=cat,this.name=name,this.alias="",this.obbligo=!1,this.des=name,this.vdef=[],this.rows={},this.h=[],this.key=`${cat}/${name}`,{name:name,cat:cat}}fromdim(dim,colonna=2){"number"!=typeof dim&&(dim=muCalc(dim)),colonna>0&&colonna--;var rsel,max=1e9;for(var kk in this.rows){var row=this.rows[kk];if(!row.annulla){var dd=parseFloat(row.v[colonna])||0;dd<=max&&dd>=dim&&(max=dd,rsel=row)}}return this.#torow(dim,rsel)}async load(id,cat,nofilter=!1){var{name:name,cat:cat}=this.setheader(id,cat);if(cbGetVariante){var content=await cbGetVariante(cat,name);if(content){
|
|
4
4
|
//!BEGIN_SYNC
|