05-tilda-export-backup/Tilda_ «Энума Элиш 2.0»_files/t-page-all.min.js

33 lines
1.2 MiB
JavaScript
Raw Permalink Normal View History

2025-10-29 16:50:39 +00:00
function tp__edrec__getDictObj(e){var o={};"RU"===e&&(o={user_has_unsaved_changes_title:"Последние изменения не сохранены",user_has_unsaved_changes_msg:"На странице присутствуют несохраненные изменения. Вы уверены, что хотите закрыть панель?",close_button:"X",save:"Сохранить",save_and_close:"Сохранить и закрыть",videolink:"Видеоинструкция",block_in_archive:'Для этого блока доступна обновленная и более оптимизированная версия, которая может содержать новые функции. Рекомендуем добавить новый блок из библиотеки и перенести в него контент. <a href="https://help-ru.tilda.cc/outdated-blocks" target="_blank">Как это сделать</a>',do_not_show_again:"Больше не показывать",note_diff_edit_and_publish:"Примечание: Вид данного блока и его поведение в режиме редактирования может отличаться от вида в режиме предпросмотра или публикации.",set_width_viewport_limit:"Примечание: Для этого блока установлено ограничение на отображение на различных размерах экрана. Блок будет отображаться на экранах шириной от ${screenmin} до ${screenmax}",success_data_disclaimer:"Укажите сообщение и адрес страницы в случае успешной отправки данных в корзине без использования платежных систем. Если платежные системы будут подключены в настройках сайта, то будут использоваться ссылки на страницы успеха или неудачи из настроек конкретной системы.",convert_to_zero:"Конвертировать в Zero Block",convert_to_zero_descr:"Используйте редактор, чтобы изменить дизайн этого блока. Конвертируйте его в полностью редактируемый Zero Block и управляйте каждым элементом.",add_class_name:"Добавить CSS Class Name",name_must_begin_with_uc:"Имя должно начинаться с uc-",add_block_to_lib:"Добавить блок в библиотеку",my_blocks:"Мои блоки",new_category_will_appear_in_lib:'При активации функции, в Библиотеке блоков появится новая категория "Мои блоки" и в нее будет добавлен этот блок. Используйте эту функцию для организации фирменной дизайн-системы.',update_block_in_lib:"Обновить блок в Библиотеке",block_title:"Название блока",add_block_to_lib_v2:"Добавить блок в Библиотеку",add:"Добавить",cancel:"Отмена",block_id_copied:"ID блока скопирован в буфер обмена",add_to_library:"Добавить в библиотеку",css_class_name:"CSS Class Name",anchor_link:"Якорная ссылка",anchor_link_name:"Имя якорной ссылки",more_about_anchor_links:'Подробнее о якорных ссылках в <a href="https://help-ru.tilda.cc/anchor" target="_blank">Справочном центре</a>',input_is_empty:"Поле не заполнено",browser_not_support_copying:"Ошибка, ваш браузер не поддерживает данный метод. Скопируйте пожалуйста ID вручную",go_back:"Вернуться назад",exit_without_saving:"Выйти без сохранения",container:"Контейнер",click_
<div
class="pe-field__comment pe-field__comment_warning pe-field__comment_vertical"
bindTo=${[this.#c,"message"]}
>
<div class="pe-field__comment__text__container"></div>
${o?html`
<button
type="button"
class="pe-field__comment__button pe-field__comment__button_100"
onClick=${i}
bindTo=${[this.#c,"button"]}
>
${o}
</button>
`:""}
</div>
`;return r.firstElementChild.innerHTML=`<span>${e??""}</span>`,r}}const CSS_VAR_REGEXP=/^var\(--uc-([a-z]+)-([a-z]+)-([A-Za-z0-9]+),\s*(.+)\)$/i,HIDDEN_FIELD_CLASS="pe-form-group_globalstyles_hidden",ALWAYS_HIDDEN_FIELDS=["style"],ALWAYS_KEEP_VALUE_FIELDS=["size"];function edrec__globalstyles__init(e){if(!e)return;const o=undefined;e.querySelectorAll('.pe-group-action-button[data-action="choose_style"]').forEach((o=>{const i=o.getAttribute("data-group-id"),r=o.getAttribute("data-style-type"),a=e.querySelector(`.pe-json-fields[data-tpl-field="${i}"]`);if(!a||!i)return;const s=a.querySelector(".pe-json-fields__wrapper");if(!s)return;const l=o.parentElement.querySelector('.pe-group-action-button[data-action="choose_preset"]'),d=undefined;new EdrecStyleController({field:i,wrapper:s,actionBtn:o,presetsBtn:l,type:r}).init()}))}class EdrecStyleController{constructor(e){let{field:o,wrapper:i,actionBtn:r,presetsBtn:a,type:s}=e;this.field=o,this.elements={wrapper:i,actionBtn:r,presetsBtn:a},this.type=s,this.styles=Array.isArray(window.globalstyles_json)?window.globalstyles_json:[],this.currentStyle=null,this.currentMessage=null}init(){Object.assign(this.elements,this.renderInput()),this.hydrateStyle(),tp__connectTStylePicker(this.initStylePicker.bind(this))}renderInput(){const{field:e}=this,o=`${e}__globalstyle`,i=html`
<div class="pe-form-group" data-tpl-field=${o}>
<label class="pe-label">${tc__translate("{{style}}","edrec__dict")}</label>
<div class="pe-input__wrapper">
<input
type="text"
name="${o}"
class="pe-input"
value=""
data-skip="true"
data-json-skip="true"
/>
</div>
</div>
`,r=i.querySelector("input");return{inputWrapper:i,input:r}}initStylePicker(){if(!window.TStylePicker)return;const{input:e,actionBtn:o}=this.elements,{type:i,styles:r}=this,a=new window.TStylePicker({swatchSize:30,swatchGap:10,zIndex:2e3,input:e,actionBtn:o,styles:r,type:i,onOpen:()=>{o.classList.add("pe-group-action-button_active")},onClose:()=>{o.classList.remove("pe-group-action-button_active")}});a.init(),a.style=this.currentStyle?.id??"",e.addEventListener("stylechange",(e=>{this.pinStyle({newStyle:e.currentStyle})}))}hydrateStyle(){const{wrapper:e,actionBtn:o}=this.elements,i=undefined,r=edrec__getJSONFieldsValue(edrec__getjsonParentName(this.field).name),a=r.styleid??"",s=a?this.styles.find((e=>{let{id:o}=e;return o===a}))??null:null;if(s){const i=[],l=Object.keys(s.vars);if(Object.entries(r).forEach((o=>{let[r,s]=o;const d=l.includes(r),c=s.match(CSS_VAR_REGEXP);if((!c||c&&c[3]!==a)&&d&&s&&i.push(r),c){const[,,,o,i]=c;if(o!==a)return;d||this.setFieldValue(e,r,i)}})),i.length){const r=o.parentElement,a=i.map((o=>{const i=edrec__encodeJSONFieldName(this.field,o),r=undefined;return e.querySelector(`.pe-form-group[data-tpl-field="${i}"] .pe-label`)})).filter(Boolean),s=new EdrecMessage({messageText:tc__translate("{{style_conflict}}","edrec__dict"),buttonText:tc__translate("{{reset}}","edrec__dict"),labels:a,buttonCallback:e=>{e.stopPropagation(),this.handleConflictingFieldsClear(i)},elementBefore:r});s.init(),this.currentMessage=s}this.pinStyle({newStyle:s,skipFields:i,keepValues:!0})}else a&&(this.setFieldValue(e,"styleid",""),Object.entries(r).forEach((o=>{let[i,r]=o;const s=r.match(CSS_VAR_REGEXP);if(!s)return;const[,,,l,d]=s;l===a&&this.setFieldValue(e,i,d)})))}pinStyle(e){let{newStyle:o,skipFields:i,keepValues:r}=e;if(this.currentStyle&&this.unpinStyle(!o),!o)return;const{wrapper:a,actionBtn:s,presetsBtn:l,inputWrapper:d}=this.elements,c=s.parentElement;if(this.currentStyle=o,c.message&&(c.message.destroy(),delete c.message),l&&l.classList.add(HIDDEN_FIELD_CLASS),a.prepend(d),!r){const e=undefined,o=edrec__getJSONFieldsValue(edrec__getjsonParentName(this.field).name);Object.keys(o).forEach((e=>{ALWAYS_KEEP_VALUE_FIELDS.includes(e)||this.setFieldValue(a,e,"")}))}Object.keys(this.currentStyle.vars).forEach((e=>{Array.isArray(i)&&i.includes(e)||(this.applyStyleToField(e),this.applyStyleToField(`${e}_res_480`))}));const _=[...ALWAYS_HIDDEN_FIELDS];if("button"===this.type){const e=undefined;EdrecStyleController.getVarValue(this.currentStyle.vars.padding)&&_.push("size")}_.forEach((e=>{this.hideField(e),ALWAYS_KEEP_VALUE_FIELDS.includes(e)||this.setFieldValue(a,e,"")})),this.setFieldValue(a,"styleid",this.currentStyle.id);const u=undefined;a.querySelectorAll(".pe-form-podcut").forEach((e=>{const o=undefined,i=undefined;[...a.querySelectorAll(`.pe-form-group[data-podcut-id="${e.id}"][data-podcut-hidden="true"]`)].every((e=>e.classList.contains(HIDDEN_FIELD_CLASS)))&&e.classList.add(HIDDEN_FIELD_CLASS)})),this.updateGroupPosition()}unpinStyle(e){if(!this.currentStyle)return;const{wrapper:o,presetsBtn:i,inputWrapper:r}=this.elements;i&&i.classList.remove(HIDDEN_FIELD_CLASS),r.remove(),o.querySelectorAll(`.${HIDDEN_FIELD_CLASS}`).forEach((e=>{e.classList.remove(HIDDEN_FIELD_CLASS);const i=e.getAttribute("data-split");if(i){const r=i.split(":").map((e=>o.querySelector(`.pe-form-group[data-tpl-field="${e}"]`))).filter(Boolean);e.append(...r)}})),Object.entries(this.currentStyle.vars).forEach((i=>{let[r,a]=i;const s=EdrecStyleController.getVarValue(a);this.setFieldValue(o,r,e?s:"")})),this.setFieldValue(o,"styleid",""),this.currentStyle=null,this.currentMessage?.destroy(),this.currentMessage=null,this.updateGroupPosition()}handleConflictingFieldsClear(e){e.forEach((e=>{this.applyStyleToField(e),this.applyStyleToField(`${e}_res_480`)})),this.currentMessage?.destroy(),this.currentMessage=null,this.updateGroupPosition()}updateGroupPosition(){const{wrapper:e}=this.elements,o=e.closest(".pe-form-group-wrapper");o&&edrec__recalculateGroupWrapperPosition(o)}applyStyleToField(e){if(!this.currentStyle)return;const{wrapper:o}=this.