05-tilda-export-backup/Tilda_ Монада и «толстовство»_files/t-ai-init.min.js

2 lines
5.0 KiB
JavaScript
Raw Permalink Normal View History

2025-10-29 16:50:39 +00:00
async function tai__init(e,t){const{tplId:i,recordId:a,place:n,textAction:s,textRange:o,field:c}=t||{},r=window.location.search.includes("aimin=n"),l=undefined,d=`https://tilda.${2===window.location.hostname.split(".").pop().length?window.location.hostname.split(".").pop():"cc"}/front/tildaai`,p="https://front.tildacdn.com/tildaai",u=["t-ai.min.css"],m=["t-ai-common.min.js","t-ai-dict.min.js","t-ai-draw.min.js"];switch(e){case"quick":m.push("t-ai-field-quick-actions.min.js"),m.push("t-ai-field-gen.min.js");break;case"field":m.push("t-ai-field-gen.min.js");break;case"block":m.push("t-ai-block-gen.min.js"),m.push("t-ai-block-utils.min.js"),m.push("t-ai-image-match.min.js"),m.push("t-ai-image-utils.min.js");break;case"image":m.push("t-ai-img-gen.min.js"),m.push("t-ai-image-utils.min.js");break;case"page":m.push("t-ai-page-gen.min.js"),m.push("t-ai-block-utils.min.js");break;case"fullpage":m.push("t-ai-page-gen.min.js"),m.push("t-ai-block-utils.min.js"),m.push("t-ai-image-match.min.js"),m.push("t-ai-image-utils.min.js");break;case"structure":m.push("t-ai-structure-gen.min.js");break;case"feedback":case"page-suggest":m.push("t-ai-page-gen.min.js");break;case"image-match":m.push("t-ai-image-match.min.js"),m.push("t-ai-block-utils.min.js"),m.push("t-ai-image-utils.min.js");break;case"image-helper":m.push("t-ai-image-match.min.js"),m.push("t-ai-image-helpers.min.js"),m.push("t-ai-image-utils.min.js");break;default:console.error("Error: wrong generation type")}"function"==typeof showLoadIcon&&showLoadIcon();for(let h=0;h<u.length;h++){const e=r?u[h].replace(".min",""):u[h],t=undefined;tai__loadResource(`${r?p:d}/${r?"css":"dist"}/${e}`)}await Promise.all(m.map((e=>{const t=r?e.replace(".min",""):e,i=undefined;return tai__loadResource(`${r?p:d}/${r?"js":"dist"}/${t}`)}))),"function"==typeof hideLoadIcon&&hideLoadIcon();let g="";switch(e){case"quick":taiq__init(i,n,a,s,o);break;case"field":taif__init(i,n,a);break;case"block":taib__init(i,a);break;case"image":taii__init(i,a,c);break;case"page":taip__init(i,"page",a);break;case"fullpage":taip__init(i,"fullpage",a);break;case"structure":tais__init();break;case"feedback":taip__init__feedback(JSON.parse(taip__getFeebackSession()).type);break;case"page-suggest":taip__init__suggest();break;case"image-match":taiim__init(i,a);break;case"image-helper":g=taiimh__init(i,a,c);break;default:console.error("Error: wrong generation type")}return tai__initTooltip(),g}function tai__loadResource(e){const t=e.split(".").pop(),i=undefined,a=e+(window.ver?"?v="+window.ver:"");return"css"===t?tai__loadFile(a,"style"):"js"===t?tai__loadFile(a,"script"):Promise.reject("Unknown resource extension. Make sure the resource url ends with .css or .js")}function tai__loadFile(e,t){return new Promise(((i,a)=>{const n="style"===t,s=n?"link":"script",o=n?"href":"src";let c;try{const{pathname:t,origin:i,href:a}=new URL(e,window.location.href);c=a.includes("tilda")?t:i+t}catch(d){c=e,console.log(d)}const r=document.querySelector(`${s}[${o}*="${c}"]`);if(r)return"true"===r.getAttribute("data-loading")?(r.addEventListener("load",i),void r.addEventListener("error",a)):i();const l=document.createElement(s);l.setAttribute(o,e),n&&l.setAttribute("rel","stylesheet"),l.setAttribute("data-loading","true"),l.addEventListener("load",(()=>(l.removeAttribute("data-loading"),i()))),l.addEventListener("error",(()=>(document.head.removeChild(l),a()))),document.head.appendChild(l)}))}async function tai__initTooltip(){const e=[`https://app.tildacdn.${taic__getAppDomain()}/tfront/plugins/tooltip/t-tooltip.min.css`,`https://app.tildacdn.${taic__getAppDomain()}/tfront/plugins/tooltip/t-tooltip.min.js`];window.Tooltip||await Promise.all(e.map((e=>tai__loadResource(e))));const t=["js-regenerate","js-actions-regenerate","js-show-history","tai_head__help","js-head-compress","js-head-compress"];let i=document.querySelectorAll("#tai-popup .tai_tooltip");const a=undefined;matchMedia("(pointer: coarse)").matches&&(i=Array.from(i).filter((e=>!t.some((t=>e.classList.contains(t)))))),i.forEach((e=>{const t=e.getAttribute("data-position")||"top",i=e.