PageSourceSearch

https://cloud.cyberon.studio/assets.4Vsi5Rs8/js/app.min.js?1788519051

js cyberon.studio collected 2026-10-09 23:36:16 UTC 26,414 bytes, 1 lines download raw bytes

1const studio={name:"studio",create(){const app=this;this.studio={guid(){return Framework7.utils.id("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")},formatValue(value,precision=2){if(typeof value==="string")value=parseFloat(value);return value.toFixed(precision)},formatCurrency(value,precision=0,currency){if(typeof value==="string")value=parseFloat(value);currency=currency||app.config.shop.currency;const symbol=app.config.maps.currency[currency][1]||"?";return value.toFixed(precision)+" "+symbol},formatFilesize:function(size,format="B",precision=2){const sizes=[["TB",1099511627776],["GB",1073741824],["MB",1048576],["KB",1024],["B",1]];format=format.toUpperCase();for(const item of sizes){if(size>item[1]||item[0]===format){if(item[0]==="B")precision=0;return(size/item[1]).toFixed(precision)+" "+item[0]}}},formatString:function(format,value,mask="X"){for(let i=0,count=value.length;i<count;i++)format=format.replace(mask,value[i]);return format},formatGeoIPLocation:function(value,country=false){if(typeof value==="string")return[value||"\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u043E"];else if(!value)return["\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u043E"];return[value[0]||"\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u043E",value[1]?country?value[1][0]:value[1].join(", "):value[0]?"\u043D\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043E":""]},plural:(value,data)=>{let idx,digit=value%10;value=value%100;typeof data==="string"&&(data=data.split("_"));if(value>10&&value<20||digit===0||digit>4)idx=2;else if(digit===1)idx=0;else idx=1;return data?data[idx]:idx},showError(msg,timeout){typeof msg==="object"&&(msg=undefined);this.showMessage(msg||"\u0421\u0438\u0441\u0442\u0435\u043C\u0430 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430","bg-color-red",timeout)},showMessage(msg,bgcolor,timeout){app.toast.create({text:msg||"\u041E\u0448\u0438\u0431\u043A\u0430",position:"top",horizontalPosition:"center",closeTimeout:timeout||3000,destroyOnClose:true,cssClass:bgcolor+" text-color-white"}).open()},clipboard:function(e){const text=app.$(e.target).parent().data("clipboard");app.studio.clipboardWriteText(text).then(()=>{app.toast.create({text:"\u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E",icon:e.target.outerHTML,position:"center",closeTimeout:1000,destroyOnClose:true}).open()}).catch(()=>{app.showError("\u041E\u0448\u0438\u0431\u043A\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 \u043E\u0431\u043C\u0435\u043D\u0430")})},clipboardWriteText:function(text){return navigator.clipboard.writeText(text)},marked:function(text,files,item={}){const colors="red|green|blue|pink|yellow|orange|purple|deeppurple|lightblue|teal|lime|deeporange|gray|white|black|primary";const upload=app.config.system.upload;text=text.replace(/{{(\w+)}}/g,(match,p1)=>{return item[p1]||""}).replace(/\[\[\[BLOCK-\w{8}:(\w+)\s+(.+?)]]]/sg,(match,p1,p2)=>{return app.studio.markedBlock(p1,p2,files)}).replace(/\[row-(\d+) +(\d+) +(.+?)]/sg,(match,p1,p2,p3)=>{return`<div class="row"><img src="${upload}${files[p2]}" alt="" class="margin-right float-left" style="width: ${p1}%"><p>${p3}</p></div></div>`}).replace(/\[row-(\d+) +(.+?) +(\d+)]/sg,(match,p1,p2,p3)=>{return`<div class="row"><img src="${upload}${files[p3]}" alt="" class="margin-left float-right" style="width: ${100-p1}%"><p>${p2}</p></div></div>`}).replace(/\[(\d+) (.+?)]/g,"<span style=\"font-size: $1%\">$2</span>").replace(/__(.+?)__/g,"<u>$1</u>").replace(/~~(.+?)~~/g,"<del>$1</del>").replace(/- \[X] /g,"- ^checkmark_square ").replace(/- \[ ] /g,"- ^square ").replace(new RegExp(`\\[\\[(${colors}) (.+?)]]`,"g"),(match,p1,p2)=>{return`<span class="bg-color-${p1}" style="padding: 1px 5px; border-radius: 3px">${p2}</span>`}).replace(new RegExp(`\\[(${colors}) (.+?)]`,"g"),(match,p1,p2)=>{return`<span class="text-color-${p1}">${p2}</span>`}).replace(/\[\[(#[0-9A-F]{6}) (.+?)]]/g,(match,p1,p2)=>{return`<span style="background-color: ${p1}; padding: 1px 5px; border-radius: 3px">${p2}</span>`}).replace(/\[(#[0-9A-F]{6}) (.+?)]/g,(match,p1,p2)=>{return`<span style="color: ${p1}">${p2}</span>`}).replace(/!!!\[(.*?)]\((\d+(?:,(\d+))*)\)/g,(match,p1,p2)=>{const browse=p2.split(",").map(it=>`'${upload}${files[it]}'`);return`<browser href="#" onclick="_app.studio.markedBrowser([${browse}])">${p1}</browser>`}).replace(/!!\[]\((\d+)(?:-(\d+))?\)/g,(match,p1,p2)=>{const poster=p2?`${upload}${files[p2]}`:"";return`<video controls preload="metadata" src="${upload}${files[p1]}" poster="${poster}" style="max-width: 360px"></video>`}).replace(/!\[]\((\d+)\)/g,(match,p1)=>{return`![](${upload}${files[p1]})`}).replace(/\[(.+?)]\((\d+)\)/g,(match,p1,p2)=>{return`[${p1}](${upload}${files[p2]})`});text=marked.parse(text).replace(/<p>(==.*?)<\/p>/g,"$1").replace(/<table>/g,()=>`<div id="${app.utils.id()}" class="data-table card"><table>`).replace(/<\/table>/g,`</table></div>`).replace(/<p>/g,()=>`<p id="${app.utils.id()}">`).replace(/<a /g,"<a class=\"link external\" target=\"_blank\" ").replace(/<\/?browser[ >]/g,match=>match.replace("browser","a")).replace(/\((KL|PR)\/(\d+)\)\[(.+?)]/g,(match,p1,p2,p3)=>{const map=value=>{switch(value){case"KL":return"knowledge";case"PR":return"product";default:return"xxx"}};return`<a class="link" href="/admins/${map(p1)}/item/${p2}">${p3}</a>`}).replace(/<img /g,"<img loading=\"lazy\" ").replace(/\^(\w+)/g,"<i class=\"icon f7-icons\">$1</i>").replace(/>\[C(.+?)]</sg," style=\"text-align: center\">$1<").replace(/>\[L(.+?)]</sg," style=\"text-align: left\">$1<").replace(/>\[R(.+?)]</sg," style=\"text-align: right\">$1<").replace(/>\[J(.+?)]</sg," style=\"text-align: justify\">$1<").replace(/\[(info|done|warning|alert|theme|block) (.+?)]/sg,(match,p1,p2)=>{return`<blockquote class="cs-blockquote-${p1}">${p2}</blockquote>`}).replace(/==([!*+^-])?(.+?)==/sg,(match,p1,p2)=>{const map=value=>{switch(value){case"+":return"info";case"^":return"done";case"!":return"warning";case"*":return"alert";case"-":return"block";default:return"theme"}};return`<blockquote class="cs-blockquote-${map(p1)}">${p2}</blockquote>`});return text},markedBlock:function(type,text,files){let data,html=[];const upload=app.config.system.upload;text=text.replace(/\s+/gs," ");try{data=JSON.parse(text)}catch(e){return""}switch(type){case"PROMO":if(data["title"])html.push(`<div class='block block-title-large margin-vertical-half no-padding-horizontal'>${data["title"]}</div>`);if(data["text"])html.push(`<div class='block ${data["container"]?"container":""} margin-vertical-half no-padding-horizontal'>${data["text"]}</div>`);html.push(`<div class='block ${data["container"]?"container":""} margin-vertical-half no-padding-horizontal'>`);html.push(`<div class='cs-grid cs-grid-${data["grid"]??1} justify-content-space-around promo-app'>`);
1(data["items"]||[]).forEach(item=>{html.push(`<div id='marked-${app.utils.id()}' class='cs-grid-item margin-vertical-half no-padding'>`);html.push("<div class=\"padding-horizontal-half\">");html.push(`<div style='background-image: url(${upload}${files[item["image"]]}); border-style: ${data["border"]??""}; padding-bottom: ${data["ratio"]??75}%;'>`);html.push(`<div ${data["background"]?"style='background-color: "+data["background"]+"'":""}>`);html.push(`<p class='block-title-medium text-color-white'>${item["title"]}</p>`);html.push(`<div style="${data["lines"]?"-webkit-line-clamp: "+data["lines"]:""}">${item["description"]}</div>`);html.push("</div>");html.push("</div>");html.push("</div>");html.push("</div>")});html.push("</div>");html.push("</div>");break;default:html=[]}return html.join("")},markedBrowser:function(files){typeof files==="string"&&(files=files.split(","));this.browser=app.photoBrowser.create({photos:files});this.browser.open()},storageGet(key){key=app.id+"-"+key;try{let item=localStorage.getItem(key);if(/^\d{13}\|/.test(item)){item=item.split("|");item=item[0]>Date.now()?item[1]:null;item||localStorage.removeItem(key)}return JSON.parse(item)}catch(e){return null}},storageSet(key,item,timeout){key=app.id+"-"+key;timeout=timeout?Date.now()+timeout*1000+"|":"";if(item===undefined)localStorage.removeItem(key);else localStorage.setItem(key,timeout+JSON.stringify(item))},storageList(prefix=""){let result={};prefix=app.id+"-"+prefix;for(let key of Object.keys(localStorage))if(key.startsWith(prefix)){key=key.substring(app.id.length+1);result[key]=this.storageGet(key)}return result},storageGarbage(){const prefix=app.id;for(let key of Object.keys(localStorage))if(key.startsWith(prefix)){key=key.substring(app.id.length+1);this.storageGet(key)}},sessionGet(key){key=app.id+"-"+key;try{let item=sessionStorage.getItem(key);if(/^\d{13}\|/.test(item)){item=item.split("|");item=item[0]>Date.now()?item[1]:null;item||sessionStorage.removeItem(key)}return JSON.parse(item)}catch(e){return null}},sessionSet(key,item,timeout){key=app.id+"-"+key;timeout=timeout?Date.now()+timeout*1000+"|":"";if(item===undefined)sessionStorage.removeItem(key);else sessionStorage.setItem(key,timeout+JSON.stringify(item))},sessionGarbage(){const prefix=app.id;for(let key of Object.keys(sessionStorage))if(key.startsWith(prefix)){key=key.substring(app.id.length+1);this.sessionGet(key)}},buildConfig(config){app.config=config;app.member=config["member"];app.guid=config["shop"]["guid"];app.utcOffset=config["system"]["timezone"].slice(3)*60;app.cache.cstudio={};app.config.catalog.media=[];config["maps"]={company:{legal:{"":["\u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u0430","-"],"IP":["\u0418\u043D\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u0435\u0434\u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0442\u0435\u043B\u044C","\u0418\u041F"],"OOO":["\u041E\u0431\u0449\u0435\u0441\u0442\u0432\u043E \u0441 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043D\u043E\u0439 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u044E","\u041E\u041E\u041E"]},tax:{"NON":"\u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043E","OSN":"\u041E\u0421\u041D","OSNFREE":"\u041E\u0421\u041D (\u0411\u0435\u0437 \u041D\u0414\u0421)","USNI":"\u0423\u0421\u041D (\u0414\u043E\u0445\u043E\u0434)","USNIO":"\u0423\u0421\u041D (\u0414\u043E\u0445\u043E\u0434+\u0420\u0430\u0441\u0445\u043E\u0434)"}},currency:{RUB:["\u0420\u0443\u0431\u043B\u044C \u0420\u0424","\u20BD"],EUR:["\u0415\u0432\u0440\u043E","\u20AC"],USD:["\u0414\u043E\u043B\u043B\u0430\u0440 \u0421\u0428\u0410","$"]},shop:{status:{"ACTIVE":["\u0410\u043A\u0442\u0438\u0432\u0435\u043D","green"],"BLOCK":["\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D","red"],"SUSPEND":["\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D","orange"],"DEMO":["\u0414\u0435\u043C\u043E","blue"],"TRIAL":["\u041F\u0440\u043E\u0431\u043D\u044B\u0439","yellow"],"MAINTENANCE":["\u041E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435","gray"]}
1,timezone:{"UTC+2":"\u041A\u0430\u043B\u0438\u043D\u0438\u043D\u0433\u0440\u0430\u0434\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+2)","UTC+3":"\u041C\u043E\u0441\u043A\u043E\u0432\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+3)","UTC+4":"\u0421\u0430\u043C\u0430\u0440\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+4)","UTC+5":"\u0415\u043A\u0430\u0442\u0435\u0440\u0438\u043D\u0431\u0443\u0440\u0433\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+5)","UTC+6":"\u041E\u043C\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+6)","UTC+7":"\u041A\u0440\u0430\u0441\u043D\u043E\u044F\u0440\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+7)","UTC+8":"\u0418\u0440\u043A\u0443\u0442\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+8)","UTC+9":"\u042F\u043A\u0443\u0442\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+9)","UTC+10":"\u0412\u043B\u0430\u0434\u0438\u0432\u043E\u0441\u0442\u043E\u043A\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+10)","UTC+11":"\u041C\u0430\u0433\u0430\u0434\u0430\u043D\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+11)","UTC+12":"\u041A\u0430\u043C\u0447\u0430\u0442\u0441\u043A\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (UTC+12)"},showcase:{grid:{"3":"\u0422\u0440\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0438","2":"\u0414\u0432\u0435 \u043A\u043E\u043B\u043E\u043D\u043A\u0438","1":"\u041E\u0434\u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u043A\u0430"},picture:{"cover":"\u0417\u0430\u043F\u043E\u043B\u043D\u044F\u0442\u044C","contain":"\u0412\u043C\u0435\u0449\u0430\u0442\u044C"},ratio:{"150%":"3:2","133.33%":"4:3","100%":"1:1","50%":"1:2","75%":"3:4","56.25%":"16:9"}}},payment:{status:{false:["\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043F\u043E\u0436\u0435\u0440\u0442\u0432\u043E\u0432\u0430\u043D\u0438\u044F","yellow"],true:["\u041F\u043E\u0436\u0435\u0440\u0442\u0432\u043E\u0432\u0430\u043D\u043E","green"]},type:{YK:"\u042E\u041A\u0430\u0441\u0441\u0430",TB:"\u0422\u0411\u0430\u043D\u043A"}},product:{measure:{"006":["\u043C\u0435\u0442\u0440","\u043C"],"356":["\u0447\u0430\u0441","\u0447\u0430\u0441"],"363":["\u043C\u0435\u0441\u044F\u0446","\u043C\u0435\u0441"],"364":["\u043A\u0432\u0430\u0440\u0442\u0430\u043B","\u043A\u0432"],"366":["\u0433\u043E\u0434","\u0433\u043E\u0434"],"736":["\u0440\u0443\u043B\u043E\u043D","\u0440\u0443\u043B"],"778":["\u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0430","\u0443\u043F"],"796":["\u0448\u0442\u0443\u043A\u0430","\u0448\u0442"],"999":["\u0443\u0441\u043B\u0443\u0433\u0430","\u0443\u0441\u043B\u0443\u0433\u0430"]},tax:{"NON":"\u041D\u0435 \u043E\u0431\u043B\u0430\u0433\u0430\u0435\u0442\u0441\u044F","000":"0%","010":"10%","022":"22%"},type:{"GOODS":"\u0422\u043E\u0432\u0430\u0440","SERVICE":"\u0423\u0441\u043B\u0443\u0433\u0430","DIGITAL":"\u0426\u0438\u0444\u0440\u043E\u0432\u043E\u0439 \u0442\u043E\u0432\u0430\u0440"},showcase:{scale:{"1x":"\u041D\u0435\u0442","2x":"2x","3x":"3x"}}},order:{status:{CREATED:["\u0421\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u043D","yellow"],PAYED:["\u041E\u043F\u043B\u0430\u0447\u0435\u043D","green"],BUILDED:["\u0421\u043E\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F","orange"],SHIPED:["\u0412 \u043F\u0443\u0442\u0438","blue"],PICKUPED:["\u0413\u043E\u0442\u043E\u0432 \u043A \u0432\u044B\u0434\u0430\u0447\u0435","blue"],COLLECTED:["\u041E\u0442\u0434\u0430\u043D \u043A\u0443\u0440\u044C\u0435\u0440\u0443","blue"],DONE:["\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D","green"],CANCELED:["\u041E\u0442\u043C\u0435\u043D\u0451\u043D","red"],INVALID:["\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u0435\u043D","red",false],DEMO:["\u0434\u0435\u043C\u043E","primary",false]}},user:{status:{"ACTIVE":["\u0410\u043A\u0442\u0438\u0432\u0435\u043D","green"],"DISABLED":["\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D","red"],"DEMO":["\u0414\u0435\u043C\u043E","blue"]}}};if(!app.member?.id)return;app.websocket&&app.websocket.remove();app.websocket=app.studio.websocketInit(app.guid);config.isadmins=config["member"]["perms"]["isadmins"]}
1,LoadAccesson:function(id,refresh=false){refresh||app.preloader.show();return app.studio.request(app.apis+"/user/accesson",JSON.stringify({id})).then(res=>{return new Promise(resolve=>resolve(app.config["member"]["accessons"]=res))}).catch(message=>{app.studio.showError(message);throw true}).finally(()=>{refresh||app.preloader.hide()})},LoadItem(id,model){app.preloader.show();return app.studio.request(`${app.apis}/${model}/item/${id}`,JSON.stringify({guid:app.guid})).then(res=>{return new Promise(resolve=>resolve(app.config["orders"]=res))}).catch(message=>{app.studio.showError(message);throw true}).finally(()=>{app.preloader.hide()})},LoadCustomers:function(refresh=false){app.config.customerssimple&&(app.config["customers"]=undefined);if(!refresh&&app.config["customers"])return new Promise(resolve=>{resolve(app.config["customers"])});refresh||app.preloader.show();return app.studio.request(app.apis+"/customer/items",JSON.stringify({guid:app.guid})).then(res=>{return new Promise(resolve=>resolve(app.config["customers"]=res))}).catch(message=>{app.studio.showError(message);throw true}).finally(()=>{refresh||app.preloader.hide();delete app.config.customerssimple})},LoadPromos:function(refresh=false){if(!refresh&&app.config["promos"])return new Promise(resolve=>{resolve(app.config["promos"])});refresh||app.preloader.show();return app.studio.request(app.apis+"/promo/items",JSON.stringify({guid:app.guid})).then(res=>{return new Promise(resolve=>resolve(app.config["promos"]=res))}).catch(message=>{app.studio.showError(message);throw true}).finally(()=>{refresh||app.preloader.hide()})},LoadMedia(id,model,refresh=false){const parent=`${model}-${id}`;if(!refresh&&app.cache.cstudio[parent])return new Promise(resolve=>{resolve(app.config.catalog.media)});refresh||app.preloader.show();return app.studio.request(`${app.apis}/${model}/media-items`,JSON.stringify({guid:app.guid,id})).then(res=>{app.cache.cstudio[parent]=true;app.config.catalog.media.push(...res);return new Promise(resolve=>resolve(app.config.catalog.media))}).catch(message=>{app.studio.showError(message);throw true}).finally(()=>{refresh||app.preloader.hide()})},LoadOrders:function(refresh=false){if(!refresh&&app.config["orders"])return new Promise(resolve=>{resolve(app.config["orders"])});refresh||app.preloader.show();return app.studio.request(app.apis+"/order/items",JSON.stringify({guid:app.guid})).then(res=>{return new Promise(resolve=>resolve(app.config["orders"]=res))}).catch(message=>{app.studio.showError(message);throw true}).finally(()=>{refresh||app.preloader.hide()})},LoadPayments:function(refresh=false){if(!refresh&&app.config["payments"])return new Promise(resolve=>{resolve(app.config["payments"])});refresh||app.preloader.show();return app.studio.request(app.apis+"/payment/items",JSON.stringify({})).then(res=>{return new Promise(resolve=>resolve(app.config["payments"]=res))}).catch(message=>{app.studio.showError(message);throw true}).finally(()=>{refresh||app.preloader.hide()})},LoadShopPayments:function(refresh=false){if(!refresh&&app.config.catalog["payments"])return new Promise(resolve=>{resolve(app.config.catalog["payments"])});refresh||app.preloader.show();return app.studio.request(app.apis+"/shop/payments",JSON.stringify({guid:app.guid})).then(res=>{return new Promise(resolve=>resolve(app.config.catalog["payments"]=res))}).catch(message=>{app.studio.showError(message);throw true}).finally(()=>{refresh||app.preloader.hide()})},LoadShops:function(refresh=false){if(!refresh&&app.config["shops"])return new Promise(resolve=>{resolve(app.config["shops"])});refresh||app.preloader.show();return app.studio.request(app.apis+"/shop/items",JSON.stringify({})).then(res=>{return new Promise(resolve=>resolve(app.config["shops"]=res))}).catch(message=>{app.studio.showError(message);throw true}).finally(()=>{refresh||app.preloader.hide()})},prepareShopShowcase(){return app.utils.extend({grid:1,picture:"cover",ratio:"75%"}
1,app.config.shop["extra"]["showcase"])},prepareProductShowcase(item){item.extra=item["extra"]||{showcase:{}};return app.utils.extend({scale:"1x",onerow:false},item.extra.showcase)},request(uri,params={},headers={}){if(typeof params==="string")app.utils.extend(headers,{"Content-Type":"application/json"});params={method:"POST",body:params,headers};return fetch(uri,params).then(res=>{if(res["status"]===400)throw"\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0437\u0430\u043F\u0440\u043E\u0441";if(res["status"]===403)throw"\u0414\u043E\u0441\u0442\u0443\u043F \u0437\u0430\u043F\u0440\u0435\u0449\u0451\u043D";else if(res["status"]===429)throw"\u041F\u0440\u0435\u0432\u044B\u0448\u0435\u043D \u043B\u0438\u043C\u0438\u0442 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432";else if(res["status"]===204)throw"\u0414\u0435\u043C\u043E \u043C\u0430\u0433\u0430\u0437\u0438\u043D - \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043D\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u044B";else if(res["ok"]===false)throw undefined;return res.json()})},YaAuthSuggest(){if(app.config.debug&&!window["YaAuthSuggest"])loadScript("//yastatic.net/s3/passport-sdk/autofill/v1/sdk-suggest-with-polyfills-latest.js").then(()=>{YaAuthSuggest.init({client_id:"bf6d6a634f4247b7b043c96ce19c7630",response_type:"token",redirect_uri:"https://cyberon.studio/oauth-yandex.php"},"https://cyberon.studio",{view:"button",parentId:"buttonYandexId",buttonSize:"m",buttonView:"main",buttonTheme:"light",buttonBorderRadius:10,buttonIcon:"ya"}).then(({handler})=>handler()).then(data=>console.log("\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 \u0442\u043E\u043A\u0435\u043D\u043E\u043C",data)).catch(error=>console.log("\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u043E\u0448\u0438\u0431\u043A\u0438",error))})},signout(redirect="/admins/authorize"){app.studio.storageSet("shop.id");app.guid=app.member=undefined;app.config.shop={};app.websocket&&app.websocket.remove();redirect&&app.view["home"].router.navigate(redirect,{clearPreviousHistory:true,transition:"f7-fade"})},websocketInit:function(guid){const wsUri="wss://cyberon.studio/ws/"+guid;const websocket=new WebSocket(wsUri);websocket.onclose=()=>{wait(1000).then(()=>app.websocket=app.studio.websocketInit(guid))};websocket.onmessage=e=>{try{const data=JSON.parse(e.data);data["uid"]!==app.uid&&data["on"]&&app.emit(data["on"],data["payload"])}catch(e){}};websocket.remove=()=>{websocket.onclose=null;websocket.close()};return websocket},nop(){}}},instance:{id:"studio.cyberon.dev.admins",apis:"/apis",hasclipboard:false,uid:Framework7.utils.id(),config:{},years:"2022-"+new Date().getFullYear(),debug:navigator.userAgent.match(/Debug/)!==null}};String.prototype.studio=function(){return this.replace("4Vsi5Rs8","Fu0kE3A1")};Framework7.use(studio);const _app=new Framework7({el:"#app",name:"Cyberon Studio",theme:"auto",darkMode:"auto",iosTranslucentBars:false,iosTranslucentModals:false,actions:{closeOnEscape:true},colors:{primary:"#fed15b",gray:"#8e8e93"},dialog:{buttonOk:"\u0425\u043E\u0440\u043E\u0448\u043E",buttonCancel:"\u041E\u0442\u043C\u0435\u043D\u0430"},popup:{closeOnEscape:true,swipeToClose:true},popover:{closeOnEscape:true},swipeout:{removeElements:false},touch:{tapHold:true},on:{init:async function(){try{this.hasclipboard=typeof navigator.clipboard==="object"||this.device.android;let tmp=this.studio.storageGet("shopid");tmp&&this.studio.storageSet("shop.id",tmp);this.studio.storageSet("shopid");await this.studio.request(`${this.apis}/configs?guid=${this.studio.storageGet("shop.id")}`).then(config=>{this.studio.buildConfig(config)});moment.updateLocale("ru",{longDateFormat:{L:"DD.MM.YY",LL:"D MMMM",LLL:"D MMMM (ddd)",LLLL:"dddd, D MMMM YYYY, H:mm"},calendar:{sameElse:"LLL"}});if(this.config["maintenance"])return this.views.create("#view-home",{routes:[{path:"(.*)",componentUrl:_assets+"/pages/513.html"}]});if(window["_page"])return this.views.create("#view-home",{routes:[{path:"(.*)",componentUrl:_assets+`/pages/${_page}.html`}]});this.views.create("#view-home",{name:"home",url:"/admins/",browserHistory:true,browserHistorySeparator:"",animate:!this.device.desktop})}catch(e){console.error(e)}Math.random()<0.1&&wait(1500).then(()=>{this.studio.storageGarbage();this.studio.sessionGarbage()});this.studio.nop()},onCustomerChange:function(formData){const items=this.config.customers;let idx;
1if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items[idx]=formData;else items.push(formData)},onMediaChange:function(formData){const items=this.config.catalog.media;let idx;if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items[idx]=formData;else items.push(formData)},onMediaRemove:function(formData){const items=this.config.catalog.media;let idx;if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items.splice(idx,1)},onOrderChange:function(formData){const items=this.config.orders;let idx;if(items)if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items[idx]=formData;else items.unshift(formData)},onProductChange:function(formData){const items=this.config.catalog.products;let idx;if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items[idx]=formData;else items.push(formData)},onProductRemove:function(formData){const items=this.config.catalog.products;let idx;if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items.splice(idx,1)},onProductPosition:function(formData){const items=this.config.catalog.products;const ids=formData.map(item=>item[0]);const idso=Object.fromEntries(formData);items.filter(item=>ids.includes(item.id)).forEach(item=>item.position=idso[item.id])},onProductSectionChange:function(formData){const items=this.config.catalog.sections;let idx;
1if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items[idx]=formData;else items.push(formData)},onProductSectionRemove:function(formData){const items=this.config.catalog.sections;let idx;if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items.splice(idx,1)},onProductSectionPosition:function(formData){const items=this.config.catalog.sections;const ids=formData.map(item=>item[0]);const idso=Object.fromEntries(formData);items.filter(item=>ids.includes(item.id)).forEach(item=>item.position=idso[item.id])},onProductBrandChange:function(formData){const items=this.config.catalog.brands;let idx;if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items[idx]=formData;else items.push(formData)},onPaymentChange:function(formData){let items,idx;if(items=this.config.catalog.payments)if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items[idx]=formData;else items.unshift(formData);if(items=this.config.payments)if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items[idx]=formData;else items.unshift(formData)},onShopChange:function(formData){if(formData&&this.config.shop.id===formData.id)this.config.shop=formData},onUserChange:function(formData){const items=this.config.catalog.users;let idx;if(items)if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items[idx]=formData;else items.push(formData);if(this.member.id===formData.id)this.member=formData},onUserRemove:function(formData){const items=this.config.catalog.users;let idx;
1if((idx=items.findIndex(item=>item.id===+formData.id))!==-1)items.splice(idx,1)}},routes});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.