Files
Miroca_Server/www/static/file/home/js/home-conditional-form-1.0.min.js
Victor Alexandrovich Tsyrenschikov 75be663d7f css,js,ws
2026-01-02 18:20:49 +05:00

2 lines
19 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
function t_form__conditionals_decodeHTMLEntities(t){var e=document.createElement("textarea");return e.innerHTML=t,e.value}function t_form__conditionals_initFields(t,e){return t_form__conditionals_syncFields(t,{shouldPreventSubmit:!1,ignoredInputGroups:e}),t_form__conditionals_initFieldsListeners(t,e),t_form__conditionals_initSyncListeners(t),t_form__conditionals_notifyAboutInit(t),{addListeners:function n(o){t_form__conditionals_addFieldsListeners(t,o,e)},addStateChangeListeners:function e(n){t_form__conditionals_addConditionalStateListeners(t,n)}}}function t_form__conditionals_syncFields(t,e){var n=e||{},o=n.shouldPreventSubmit,i=void 0===o||o,r=n.ignoredInputGroups,a=void 0===r?[]:r,c=document.getElementById("rec"+t),u=c.querySelectorAll(".t-conditional[data-conditionals]");0===u.length&&(u=c.querySelectorAll(".t-input-group[data-conditionals]"));var l=Array.prototype.slice.call(u);a&&a.length&&(l=t_form__conditionals_filterOut(l,a)),l.forEach((function(e){var n=e.getAttribute("data-conditionals"),o=JSON.parse(n),r=o.action,a=o.conditions,c=o.conditionsCombination,u=a.map((function(e){return t_form__conditionals_calculateCondition(t,e)})).filter((function(t){return"invalid"!==t.status}));if(0!==u.length){var l=u.some((function(t){return"hidden"===t.status}));if("all"!==c&&1!==u.length||!l){var d="all"===c?u.every(t_form__conditionals_canApplyCondition):u.some(t_form__conditionals_canApplyCondition),_;if(i)t_form__conditionals_shouldPreventSubmit(e,d,r)&&t_form__conditionals_preventSubmit(e);return"hide"===r?d?t_form__hideField(e):t_form__showField(e):"show"===r?d?t_form__showField(e):t_form__hideField(e):void 0}t_form__hideField(e)}}))}function t_form__conditionals_shouldPreventSubmit(t,e,n){var o=t.getAttribute("data-hidden-by-condition");return"hide"===n?e&&!o:"show"===n?e&&o:void 0}function t_form__conditionals_handlePreventSubmit(t){t.target.classList.contains("t-submit")&&(t.preventDefault(),t.stopPropagation()),this.removeEventListener("click",t_form__conditionals_handlePreventSubmit),this.removeEventListener("focusout",t_form__conditionals_handlePreventSubmit)}function t_form__conditionals_preventSubmit(t){var e=t.closest("form");e&&(e.addEventListener("click",t_form__conditionals_handlePreventSubmit,{once:!0}),e.addEventListener("focusout",t_form__conditionals_handlePreventSubmit,{once:!0}))}function t_form__conditionals_initFieldsListeners(t,e){function n(){t_form__conditionals_syncFields(t,{ignoredInputGroups:e})}t_form__conditionals_addFieldsListeners(t,n,e)}function t_form__conditionals_addFieldsListeners(t,e,n){var o,i=document.getElementById("rec"+t).querySelector(".t-form__inputsbox"),r=Array.prototype.slice.call(i.querySelectorAll(".t-input-group"));n&&n.length&&(r=t_form__conditionals_filterOut(r,n)),r.forEach((function(t){t_form__conditionals_getCallbacks(t).listen(e)}))}function t_form__conditionals_addConditionalStateListeners(t,e){var n,o;document.getElementById("rec"+t).querySelectorAll(".t-conditional").forEach((function(t){t.addEventListener("conditional-state-change",(function(t){e(t)}))}))}function t_form__conditionals_calculateCondition(t,e){var n=e.fieldId,o,i=document.getElementById("rec"+t).querySelector('.t-input-group[data-input-lid="'+n+'"]'),r=t_form__conditionals_isConditionEmpty(e),a=e.disabled;if(!i||r||a)return{status:"invalid",value:null};var c=i.closest(".t-conditional"),u;return"true"===i.getAttribute("data-hidden-by-condition")||c&&"true"===c.getAttribute("data-hidden-by-condition")?{status:"hidden",value:null}:{status:"valid",value:t_form__conditionals_getCallbacks(i).verify(e)}}function t_form__showField(t){var e=t_form__getFieldType(t),n="true"===t.getAttribute("data-hidden-by-condition");t.ariaHidden=!1,t.removeAttribute("data-hidden-by-condition"),n&&t_form__conditionals_notifyAboutStateChange(t,{hidden:!1});var o=t.querySelector(".t-quiz__step__img-wrapper"),i,r;if(("ri"===e||o)&&window.t_lazyload_update&&window.t_lazyload_update(),"rg"===e){var a=t.querySelector(".t-range");a&&t_triggerEvent(a,"displayChanged")}"contact_method"!==e?t.querySelectorAll('.js-tilda-rule[data-tilda-req="1"]').forEach((function(t){t.removeAttribute("data-hidden-by-condition")})):t.querySelectorAll('.t-input[data-tilda-req="1"]').forEach((function(t){t.removeAttribute("data-hidden-by-condition")}))}function t_form__hideField(t){var e=t_form__getFieldType(t),n="true"===t.getAttribute("data-hidden-by-condition"),o,i;(t.ariaHidden=!0,t.setAttribute("data-hidden-by-condition","true"),n||t_form__conditionals_notifyAboutStateChange(t,{hidden:!0}),"contact_method"!==e)?t.querySelectorAll('.js-tilda-rule[data-tilda-req="1"]').forEach((function(t){t.setAttribute("data-hidden-by-condition","true")})):t.querySelectorAll('.t-input[data-tilda-req="1"]').forEach((function(t){t.setAttribute("data-hidden-by-condition","true")}))}function t_form__getFieldType(t){if(t.classList.contains("t-quiz__step__input")){var e=t.querySelector(".t-input-group");return e?e.getAttribute("data-field-type"):""}return t.getAttribute("data-field-type")}function t_form__conditionals_getCallbacks(t){var e=t.getAttribute("data-field-type"),n=t.getAttribute("data-input-lid"),o={rd:{verify:function e(n){var o=n.condition;return t_form__conditionals_verifyCheckboxOrRadio(t,o)},listen:function e(n){var o,i;("cb"===t.getAttribute("data-field-radcb")?t.querySelectorAll('input[type="checkbox"]'):t.querySelectorAll('input[type="radio"]')).forEach((function(t){t.addEventListener("change",n)}))}},sb:{verify:function e(n){var o=n.fieldId,i=n.condition,r=t.querySelector("#input_"+o),a=r.value.trim(),c=r.options[r.selectedIndex],u,l;return c&&c.hasAttribute("data-calc-value")&&(a=t_form__conditionals_prepareCalcValue(c).trim()),a.toString().replace(/\s+/g," ")===i.value.trim().toString().replace(/\s+/g," ")},listen:function e(n){var o;t.querySelector("select").addEventListener("change",n)}},ri:{verify:function e(n){var o=n.condition;return t_form__conditionals_verifyCheckboxOrRadio(t,o)},listen:function e(n){var o,i;("cb"===t.getAttribute("data-field-radcb")?t.querySelectorAll('input[type="checkbox"]'):t.querySelectorAll('input[type="radio"]')).forEach((function(t){t.addEventListener("change",n)}))}},qn:{verify:function e(n){var o=n.condition,i;return t_form__conditionals_compareNumbers(t.querySelector('input[type="number"]').value,o.value,o.comparisonType)},listen:function e(n){var o=t.querySelector('input[type="number"]'),i=t.querySelectorAll(".t-inputquantity__btn");t_form__conditionals_listenToEventOrEnterPress(o,"change",n),i.forEach((function(t){t&&t.addEventListener("click",n)}))}},rg:{verify:function e(n){var o=n.condition,i;return t_form__conditionals_compareNumbers(t.querySelector('input[type="range"]').value,o.value,o.comparisonType)},listen:function e(n){var o;t_form__conditionals_listenToEventOrEnterPress(t.querySelector('input[type="range"]'),"change",n)}},fr:{verify:function e(n){var o=n.condition,i;return t_form__conditionals_compareNumbers(t.querySelector("input.t-calc__hiddeninput").value,o.value,o.comparisonType)},listen:function e(n){var o=t.querySelector("input.t-calc__hiddeninput");o&&o.addEventListener("change",n)}},in:{verify:function e(n){var o=n.condition,i=t.querySelector('input[type="text"]'),r,a;return t_form__conditionals_compareStrings(t_form__conditionals_inputMatchesMask(i,["data-tilda-mask"])?i.value:"",o.value,o.comparisonType)},listen:function e(n){var o=t.querySelector('input[type="text"]');o&&(o.getAttribute("data-tilda-mask")?t_form__conditionals_listenToEventOrEnterPress(o,"blur",n):t_form__conditionals_listenToEventOrEnterPress(o,"change",n))}},ta:{verify:function e(n){var o=n.condition,i,r,a;return t_form__conditionals_compareStrings(t.querySelector("textarea").value.split("\n").map((function(t){return t.trim()})).filter(Boolean).join(" "),o.value,o.comparisonType)},listen:function e(n){var o=t.querySelector("textarea");o&&o.addEventListener("change",n)}},em:{verify:function e(n){var o=n.condition,i,r;return t_form__conditionals_compareStrings(t.querySelector('input[type="email"]').value,o.value,o.comparisonType)},listen:function e(n){var o;t_form__conditionals_listenToEventOrEnterPress(t.querySelector('input[type="email"]'),"change",n)}},ph:{verify:function e(n){var o=n.condition,i,r,a;return t_form__conditionals_compareStrings(t_form__conditionals_inputMatchesMask(t.querySelector('input[type="tel"]'),["data-phonemask-without-code","data-tilda-mask"])?t_form__conditionals_getCurrentPhone(t):"",o.value,o.comparisonType)},listen:function e(n){t_onFuncLoad("t_forms__fieldApi",(function(){t_forms__fieldApi(t).then((function(t){t.onChange(n)}))}))}},nm:{verify:function e(o){var i=o.condition,r,a;return t_form__conditionals_compareStrings(t.querySelector("#input_"+n).value,i.value,i.comparisonType)},listen:function e(o){var i;t_form__conditionals_listenToEventOrEnterPress(t.querySelector("#input_"+n),"change",o)}},ur:{verify:function e(o){var i=o.condition,r,a;return t_form__conditionals_compareStrings(t.querySelector("#input_"+n).value,i.value,i.comparisonType)},listen:function e(o){var i;t_form__conditionals_listenToEventOrEnterPress(t.querySelector("#input_"+n),"change",o)}},da:{verify:function e(o){var i=o.condition,r,a;return t_form__conditionals_compareDates(t_form__conditionals_prepareDateFromDatePicker(t.querySelector("#input_"+n)),i.value,i.comparisonType)},listen:function e(o){var i=t.querySelector("#input_"+n);i&&(t_form__conditionals_listenToEventOrEnterPress(i,"blur",o),i.addEventListener("change",(function(){o()})))}},tm:{verify:function e(o){var i=o.condition,r=t.querySelector("#input_"+n),a,c;return t_form__conditionals_compareTime(t_form__conditionals_inputMatchesMask(r,["data-tilda-mask"])?r.value:"",i.value,i.comparisonType)},listen:function e(o){var i=t.querySelector("#input_"+n);i&&t_form__conditionals_listenToEventOrEnterPress(i,"blur",o)}},cb:{verify:function e(n){var o=n.condition,i,r;return t_form__conditionals_compareCheckbox(t.querySelector('input[type="checkbox"]').checked,o.comparisonType)},listen:function e(n){var o=t.querySelector('input[type="checkbox"]');o&&o.addEventListener("change",n)}},uw:{verify:function e(n){var o=n.condition,i=t.querySelector(".t-upwidget-container__data"),r,a;return i?t_form__conditionals_compareFiles(i.querySelector('input[type="hidden"]'),o.comparisonType):"not_uploaded"===t_form__conditionals_prepareComparisonType(o.comparisonType).type},listen:function e(n){var o=document.querySelector(".t-records"),i;(o?o.getAttribute("data-tilda-mode"):null)||t_onFuncLoad("t_upwidget__init",(function(){setTimeout((function(){var e=t.querySelector(".t-upwidget-container");e&&(e.addEventListener("uwFileUploaded",n),e.addEventListener("uwFileRemoved",n))}),500)}))}},uc:{verify:function e(n){var o=n.condition,i;return t_form__conditionals_compareFiles(t.querySelector('input[role="uploadcare-uploader"]'),o.comparisonType)},listen:function t(e){var o=document.querySelector(".t-records"),i;(o?o.getAttribute("data-tilda-mode"):null)||t_onFuncLoad("uploadcare",(function(){var t=window.uploadcare,o;t&&t.Widget('[data-input-lid="'+n+'"] [role="uploadcare-uploader"]').onUploadComplete.add(e)}))}},rs:{verify:function e(n){var o=n.condition,i=t.querySelectorAll('input[type="radio"]'),r;return Array.from(i).filter((function(t){return t.checked})).some((function(t){return t_form__conditionals_compareNumbers(t.value,o.value,o.comparisonType)}))},listen:function e(n){var o;t.querySelectorAll('input[type="radio"]').forEach((function(t){t.addEventListener("change",n)}))}},dl:{verify:function e(n){var o=n.condition,i=t.querySelectorAll('input[type="radio"]'),r;return Array.from(i).filter((function(t){return t.checked})).some((function(t){return t.value===o.value}))},listen:function e(n){var o;t.querySelectorAll('input[type="radio"]').forEach((function(t){t.addEventListener("change",n)}))}},contact_method:{verify:function e(n){var o=n.condition;return t_form__conditionals_verifyCheckboxOrRadio(t,o)},listen:function e(n){var o;t.querySelectorAll('input[type="radio"]').forEach((function(t){t.addEventListener("change",n)}))}}};return e in o?o[e]:{verify:function t(){},listen:function t(){}}}function t_form__conditionals_compareNumbers(t,e,n){var o=t_form__conditionals_prepareComparisonType(n),i=o.group,r=o.type;if(-1!==i.indexOf("btwn")&&!Array.isArray(e))return console.warn("Condition value must of type [number, number] when comparison type is range. Condition value is:"+e),!1;if(!e)return console.warn("Please, set the condition value, otherwise the condition wont work. Condition value is:"+e),!1;if(""===t)return!1;var a=Number(t),c=Array.isArray(e)?e.map(Number):Number(e);switch(r){case"equals":return a===c;case"not_equals":return a!==c;case"greater":return a>c;case"less":return a<c;case"greater_equal":return a>=c;case"less_equal":return a<=c;case"fits":return c[0]<a&&a<c[1];case"fits_include_start":return c[0]<=a&&a<c[1];case"fits_include_end":return c[0]<a&&a<=c[1];case"fits_include_both":return c[0]<=a&&a<=c[1];default:throw new Error("Unknown comparison type when comparing two numbers:"+n)}}function t_form__conditionals_compareStrings(t,e,n){var o,i=t_form__conditionals_prepareComparisonType(n).type,r=t.trim().toLowerCase(),a=e.trim().toLowerCase();switch(i){case"equals":return r===a;case"not_equals":return Boolean(r)&&r!==a;case"includes":return-1!==r.indexOf(a);case"excludes":return Boolean(r)&&-1===r.indexOf(a);case"filled_in":return Boolean(r);case"not_filled_in":return!r;default:throw new Error("Unknown comparison type when comparing two strings:"+n)}}function t_form__conditionals_compareDates(t,e,n){var o=t_form__conditionals_prepareComparisonType(n),i=o.group,r=o.type;if(-1!==i.indexOf("btwn")&&!Array.isArray(e))return console.warn("Condition value must of type [string, string] when comparison type is range. Condition value is: "+e),!1;function a(t){return t?new Date(t).getTime():NaN}var c=a(t),u=Array.isArray(e)?e.map(a):a(e);switch(r){case"equals":return c===u;case"not_equals":return Boolean(c)&&c!==u;case"greater":return c>u;case"less":return c<u;case"fits":return u[0]<c&&c<u[1];default:throw new Error("Unknown comparison type when comparing dates: "+n)}}function t_form__conditionals_prepareDateFromDatePicker(t){var e=t_form__conditionals_getDateDivider(t),n=t.value.split(e),o=t.getAttribute("data-tilda-dateformat");if(""!=n){if("DD-MM-YYYY"===o)return n[2]+"-"+n[1]+"-"+n[0];if("MM-DD-YYYY"===o)return n[2]+"-"+n[0]+"-"+n[1];if("YYYY-MM-DD"===o)return n[0]+"-"+n[1]+"-"+n[2]}}function t_form__conditionals_getDateDivider(t){if(t){var e=t.getAttribute("data-tilda-datediv");return"dash"!==e&&e?"slash"===e?"/":"dot"===e?".":void 0:"-"}}function t_form__conditionals_compareTime(t,e,n){var o=t_form__conditionals_prepareComparisonType(n),i=o.group,r=o.type;if(-1!==i.indexOf("btwn")&&!Array.isArray(e))return console.warn("Condition value must of type [string, string] when comparison type is range. Condition value is: "+e),!1;switch(r){case"equals":return t===e;case"not_equals":return Boolean(t)&&t!==e;case"greater":return Boolean(t)&&t>e;case"less":return Boolean(t)&&t<e;case"fits":return e[0]<t&&t<e[1];default:throw new Error("Unknown comparison type when comparing time: "+n)}}function t_form__conditionals_compareCheckbox(t,e){var n;switch(t_form__conditionals_prepareComparisonType(e).type){case"filled_in":return Boolean(t);case"not_filled_in":return!t;default:throw new Error("Unknown comparison type when comparing checkbox: "+e)}}function t_form__conditionals_getCurrentPhone(t){var e=t.querySelector('input[type="tel"]');if(!e)return"";var n=e.getAttribute("data-phonemask-code"),o=e.value||"";return n?n+" "+o:o}function t_form__conditionals_maskToRegex(t,e){var n={a:"[A-Za-z]","а":"[А-Яа-яЁё]","*":"[A-Za-zА-Яа-яЁё0-9]"};"data-phonemask-without-code"===e?n[0]="[0-9]":n[9]="[0-9]";var o=t.replace(/([[\]{}()^$.+?|])/g,"\\$1");return new RegExp("^"+o.split("").map((function(t){return n[t]||t})).join("")+"$")}function t_form__conditionals_valueMatchesMask(t,e,n){return!!t&&t_form__conditionals_maskToRegex(e,n).test(t);var o}function t_form__conditionals_inputMatchesMask(t,e){if(!t)return!1;var n=e.filter((function(e){return t.hasAttribute(e)}));return 0===n.length||n.some((function(e){return t_form__conditionals_valueMatchesMask(t.value,t.getAttribute(e),e)}))}function t_form__conditionals_isConditionEmpty(t){var e=t.condition.value,n;return-1===t_form__conditionals_prepareComparisonType(t.condition.comparisonType).group.indexOf("st")&&!e}function t_form__conditionals_prepareComparisonType(t){var e=t.split("-"),n,o;return{group:e[0],type:e[1]}}function t_form__conditionals_compareFiles(t,e){var n=t_form__conditionals_prepareComparisonType(e).type;if("uploaded"===n)return Boolean(t&&t.value);if("not_uploaded"===n)return Boolean(!t||!t.value);throw new Error("Unknown comparison type when comparing files: "+e)}function t_form__conditionals_canApplyCondition(t){return"valid"===t.status&&Boolean(t.value)}function t_form__conditionals_filterOut(t,e){return t.filter((function(t){return!t.matches(e.join(","))}))}function t_form__conditionals_listenToEventOrEnterPress(t,e,n){if(t){var o=!1;t.addEventListener(e,(function(){o||n(),o=!1})),t.addEventListener("keydown",(function(t){"Enter"===t.key&&(n(),o=!0)}))}}function t_form__conditionals_prepareCalcValue(t){var e=t.value;if(!e)return e;var n=t.getAttribute("data-calc-value"),o=t.getAttribute("data-own-variant-title");return o?[o,n].join("="):[e,n].join("=")}function t_form__conditionals_verifyCheckboxOrRadio(t,e){var n,o="cb"===t.getAttribute("data-field-radcb")?t.querySelectorAll('input[type="checkbox"]'):t.querySelectorAll('input[type="radio"]'),i;return Array.from(o).filter((function(t){return t.checked})).some((function(t){var n=t_form__conditionals_decodeHTMLEntities(e.value.trim()),o,i,o;return t.hasAttribute("data-calc-value")?(o=t_form__conditionals_prepareCalcValue(t).trim())===n:(o=(o=e._meta&&"li_ownvariant"in e._meta?t.getAttribute("data-own-variant-title"):t.value)?o.trim():"")===n}))}function t_form__conditionals_notifyAboutInit(t){var e="conditional-form-init",n=document.getElementById("rec"+t),o=new CustomEvent(e);n.dispatchEvent(o)}function t_form__conditionals_initSyncListeners(t){var e=document.getElementById("rec"+t);e&&e.addEventListener("sync-conditionals",(function(e){var n=e.detail,o;t_form__conditionals_syncFields(t,void 0===n?{}:n)}))}function t_form__conditionals_notifyAboutStateChange(t,e){var n,o=new CustomEvent("conditional-state-change",{detail:e});t.dispatchEvent(o)}function t_form__conditionals__initStepForm(t){var e=t.ignoredSteps||[],n=t.ignoredInputGroups||[],o=t.recId,i=t.onConditionalFieldChange,r=Array.prototype.slice.call(t.steps),a=t.activeStepIndex,c=r[a],u,l,d,_,s=t_form__conditionals_initFields(o,n);function f(){return{nextStepIndex:d,prevStepIndex:_,activePossibleStepIndex:l,totalActiveStepsCount:u.length}}function p(t){c=r[a=t],l=u.indexOf(c),d=y(),_=h()}function m(){r.forEach((function(t){v(t)||(t_form__conditionals_isStepEmpty(t)?t.classList.add("t-form__hidden-by-condition"):t.classList.contains("t-form__hidden-by-condition")&&t.classList.remove("t-form__hidden-by-condition"))})),u=r.filter((function(t){return!t.classList.contains("t-form__hidden-by-condition")})),l=u.indexOf(c),d=y(),_=h()}function v(t){return!(!e||!e.length)&&t.matches(e.join(","))}function y(){var t=Math.min(l+1,r.length-1),e=u[t];return r.indexOf(e)}function h(){var t=Math.max(l-1,0),e=u[t];return r.indexOf(e)}return m(),s.addListeners((function(){m(),i(f())})),{getState:f,onStepChange:p}}function t_form__conditionals_isStepEmpty(t){var e=t.querySelectorAll('.t-conditional:not([data-hidden-by-condition="true"])'),n=t.querySelectorAll('.t-input-group:not([data-hidden-by-condition="true"]):not(.t-form__hidden)');return 0===e.length&&0===n.length}