%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/js/landing/ui/form/
Upload File :
Create Path :
Current File : /home/bitrix/www/bitrix/js/landing/ui/form/cards_form.min.js

(function(){"use strict";BX.namespace("BX.Landing.UI.Form");var e=BX.Landing.Utils.throttle;var n=BX.Landing.Utils.append;var t=BX.Landing.Utils.create;var i=BX.Landing.Utils.bind;var o=BX.Landing.Utils.unbind;var r=BX.Landing.Utils.proxy;var a=BX.Landing.Utils.addClass;var s=BX.Landing.Utils.removeClass;var l=BX.Landing.Utils.hasClass;var d=BX.Landing.Utils.style;var p=BX.Landing.Utils.slice;var c=BX.Landing.Utils.findParent;var u=BX.Landing.Utils.offsetTop;var h=BX.Landing.Utils.offsetLeft;var m=BX.Landing.Utils.rect;var f=BX.Landing.Utils.remove;var g=BX.Landing.Utils.onTransitionEnd;var v=BX.Landing.Utils.random;var B=BX.Landing.Utils.clone;var y=BX.Landing.Utils.isString;var L=BX.Landing.Utils.isArray;var E=BX.Landing.Utils.isEmpty;var C=BX.Landing.Utils.isPlainObject;var I=BX.Landing.Utils.join;var F=BX.Landing.Utils.onCustomEvent;var b=BX.Landing.UI.Collection.FormCollection;var x=BX.Landing.UI.Button.BaseButton;BX.Landing.UI.Form.CardsForm=function(t){BX.Landing.UI.Form.BaseForm.apply(this,arguments);this.layout.classList.add("landing-ui-form-cards");this.type="cards";this.code=t.code;this.presets=t.presets;this.childForms=new b;this.presetForm=new b;this.sync=t.sync;this.forms=t.forms;this.onItemClick=e(this.onItemClick,200,this);this.onRemoveItemClick=r(this.onRemoveItemClick,this);this.onRemoveItemMouseenter=r(this.onRemoveItemMouseenter,this);this.onRemoveItemMouseleave=r(this.onRemoveItemMouseleave,this);this.onAddCardClick=r(this.onAddCardClick,this);this.addButton=this.createAddButton();this.wheelEventName=this.getWheelEventName();setTimeout(function(){this.value=this.serialize()}.bind(this));this.adjustLastFormState();n(this.addButton.layout,this.footer)};function X(e,n){return t("div",{props:{className:"landing-ui-form-cards-item"},children:[t("div",{children:[t("div",{props:{className:"landing-ui-form-card-item-header"},events:{click:n.onItemClick},children:[t("div",{props:{className:"landing-ui-form-card-item-header-left"},children:[t("div",{props:{className:"landing-ui-form-card-item-header-left-inner"},children:[t("span",{props:{className:"landing-ui-form-card-item-header-drag landing-ui-drag"}}),t("span",{props:{className:"landing-ui-form-card-item-header-title"},children:[e.label]})]}),t("span",{props:{className:"landing-ui-form-card-item-header-edit"},children:[t("span",{props:{className:"fa fa-pencil"}})]})]}),t("div",{children:[t("span",{props:{className:"landing-ui-form-card-item-header-remove"},children:[t("span",{props:{className:"fa fa-remove"}})],events:{click:n.onRemoveItemClick,mouseenter:n.onRemoveItemMouseenter,mouseleave:n.onRemoveItemMouseleave}})]})]}),e.layout]})]})}function w(e,n){var t=e.querySelector(".landing-ui-form-card-item-header-drag");t.onbxdragstart=F.bind(this);t.onbxdrag=b.bind(this);t.onbxdragstop=x.bind(this);jsDD.registerObject(t);i(t,"mousedown",w);i(t,"mouseup",U);i(t,"click",X);var o=c(e,{className:"landing-ui-panel-content-body-content"});jsDD.setScrollWindow(o);var r;var l;var h;var f;var g;var v;var B;var E;var C;function F(){o=c(e,{className:"landing-ui-panel-content-body-content"});r=m(e);l=Math.max(Math.abs(jsDD.start_y-r.top),0);h=o.scrollTop;f=[].indexOf.call(p(e.parentElement.children),e);B=c(jsDD.current_node,{className:"landing-ui-form-cards-item"});var n=getComputedStyle(e);var t=parseInt(n.getPropertyValue("margin-top"));t=t===t?t:0;var i=parseInt(n.getPropertyValue("margin-bottom"));i=i===i?i:0;g=r.height+(t+i)/2;E=-u(B,B.parentElement);var a=m(B.parentElement);C=a.height-u(B,B.parentElement)-r.height}function b(n,t){var i=h-o.scrollTop;var a=t-r.top-l-i;a=Math.min(Math.max(a,E),C);void d(e,{zIndex:999,transform:"translateY("+a+"px)"});p(e.parentElement.children).forEach(function(n,i){if(n!==e){var o=n.getBoundingClientRect();var r=o.top+BX.scrollTop(window)+o.height/2;if(i>f&&t>r&&n.style.transform!=="translate3d(0px, "+-g+"px, 0px)"&&n.style.transform!==""){v=n;void d(n,{transform:"translate3d(0px, "+-g+"px, 0px)",transition:"300ms"})}if(i<f&&t<r&&n.style.transform!=="translate3d(0px, "+g+"px, 0px)"&&n.style.transform!==""){v=n;void d(n,{transform:"translate3d(0px, "+g+"px, 0px)",transition:"300ms"})}if((i<f&&t>r||i>f&&t<r)&&n.style.transform!=="translate3d(0px, 0px, 0px)"){if(r>t){v=n.previousElementSibling}else{v=n.nextElementSibling}void d(n,{transform:"translate3d(0px, 0px, 0px)",transition:"300ms"})}}})}function x(){p(e.parentElement.children).forEach(function(e){void d(e,{zIndex:null,transform:null,transition:null});setTimeout(function(){s(e,"landing-ui-form-card-item-draggable")},50)});if(B&&v&&B!==v&&B.parentNode===v.parentNode){var t=[].indexOf.call(v.parentElement.children,B);var i=[].indexOf.call(v.parentElement.children,v);if(v.parentElement.children.length===i){v.parentElement.appendChild(target)}if(t>i){v.parentElement.insertBefore(B,v)}if(t<i&&v.parentElement.children.length!==i){v.parentElement.insertBefore(B,v.nextElementSibling)}if(n.sync){var o=n.sync;if(y(n.sync)){o=[n.sync]}if(L(o)){o.forEach(function(e){var o=n.forms.find(function(n){return n.code===e});if(o){var r=o.body.children[t];var a=o.body.children[i];if(a.parentElement.children.length===i){a.parentElement.appendChild(target)}if(t>i){a.parentElement.insertBefore(r,a)}if(t<i&&a.parentElement.children.length!==i){a.parentElement.insertBefore(r,a.nextElementSibling)}}o.childForms.forEach(function(e){var n=[].indexOf.call(e.layout.parentElement.parentElement.parentElement.children,e.layout.parentElement.parentElement);e.oldIndex=M(e.selector);e.selector=I(e.selector.split("@")[0],"@",n)});o.childForms.sort(function(e,n){return parseInt(e.selector.split("@")[1])<parseInt(n.selector.split("@")[1])?-1:1})})}}}n.childForms.forEach(function(e){var n=[].indexOf.call(e.layout.parentElement.parentElement.parentElement.children,e.layout.parentElement.parentElement);e.oldIndex=M(e.selector);e.selector=I(e.selector.split("@")[0],"@",n)});n.childForms.sort(function(e,n){return parseInt(e.selector.split("@")[1])<parseInt(n.selector.split("@")[1])?-1:1})}function X(e){e.preventDefault();e.stopPropagation()}function w(){a(e,"landing-ui-form-card-item-draggable")}function U(){s(e,"landing-ui-form-card-item-draggable")}}function U(e){var n=[];if(y(e.labelBindings)){n.push(e.labelBindings)}else if(L(e.labelBindings)){n=n.concat(e.labelBindings)}e.fields.forEach(function(e){e.layout.hidden=true;e.reset();e.layout.hidden=false});var i=-1;n.forEach(function(n){var o=e.fields.find(function(e){return e.selector.split("@")[0]===n});if(o){var r=c(e.layout,{className:"landing-ui-form-cards-item"});var a;if(o instanceof BX.Landing.UI.Field.Link){a=r.querySelector(".landing-card-title-link");a.innerHTML=BX.message("LANDING_CARDS_FORM_ITEM_PLACEHOLDER_TEXT");F(o,"BX.Landing.UI.Field:change",function(e){a.innerHTML=e.text});return}if(o instanceof BX.Landing.UI.Field.Icon){a=r.querySelector(".landing-card-title-icon").firstElementChild;a.className="landing-card-title-icon";F(o,"BX.Landing.UI.Field:change",function(e){a.className="landing-card-title-icon "+e.classList.join(" ")});return}if(o instanceof BX.Landing.UI.Field.Image){a=r.querySelector(".landing-card-title-img");a.style.backgroundColor="#fafafa";a.innerHTML="";F(o,"BX.Landing.UI.Field:change",function(e){a.innerHTML="";a.appendChild(t("img",{props:{src:e.src}}))});return}if(o instanceof BX.Landing.UI.Field.Text){i+=1;var s=r.querySelectorAll(".landing-card-title-text");a=s[i];F(o,"BX.Landing.UI.Field:change",function(e){a.innerHTML=t("div",{html:e}).innerText});if(a===s[0]){a.innerHTML=BX.message("LANDING_CARDS_FORM_ITEM_PLACEHOLDER_TEXT");o.setValue(BX.message("LANDING_CARDS_FORM_ITEM_PLACEHOLDER_TEXT"))}else{a.innerHTML=""}}}})}function N(e){return y(e)?e.split("@")[0]:""}function M(e){return y(e)?e.split("@")[1]:""}function T(e,n){return I(e.split("@")[0],"@",n)}BX.Landing.UI.Form.CardsForm.prototype={constructor:BX.Landing.UI.Form.CardsForm,__proto__:BX.Landing.UI.Form.BaseForm.prototype,getWheelEventName:function(){return!!window.onwheel?"wheel":"mousewheel"},createAddButton:function(){return new x("add-card-"+v(),{className:"landing-ui-card-add-button",text:BX.message("LANDING_CARDS_FORM_ADD_BUTTON"),onClick:this.onAddCardClick})},onItemClick:function(e){e.preventDefault();var n=c(e.currentTarget,{className:"landing-ui-form-cards-item"});if(!!n&&!l(n,"landing-ui-form-card-item-draggable")){if(!l(n,"landing-ui-form-cards-item-expand")){a(n,"landing-ui-form-cards-item-expand");g(n).then(function(){void d(n,{overflow:"visible"})});void d(n,{height:"auto"})}else{s(n,"landing-ui-form-cards-item-expand");void d(n,null)}}},onRemoveItemClick:function(e,n){e.stopPropagation();if(this.body.children.length>1){var t=c(e.currentTarget,{className:"landing-ui-form-cards-item"});f(t);var i=t.querySelector(".landing-ui-form-card");var o=this.childForms.find(function(e){return e.layout===i});this.childForms.remove(o);if(n!==true){if(this.sync){var r=this.sync;if(y(this.sync)){r=[this.sync]}if(L(r)){r.forEach(function(e){var n=this.forms.find(function(n){return n.code===e});if(n){var t=n.childForms.find(function(e){return e.selector.split("@")[1]===o.selector.split("@")[1]});n.onRemoveItemClick({currentTarget:t.layout,stopPropagation:function(){}},true)}},this)}}}}this.adjustLastFormState()},onRemoveItemMouseenter:function(e){e.stopPropagation();e.preventDefault();var n=c(e.currentTarget,{className:"landing-ui-form-card-item-header"});a(n,"landing-ui-form-card-item-header-onremove")},onRemoveItemMouseleave:function(e){var n=c(e.currentTarget,{className:"landing-ui-form-card-item-header"});s(n,"landing-ui-form-card-item-header-onremove")},addChildForm:function(e){this.childForms.add(e);var t=X(e,this);n(t,this.body);w(t,this);this.adjustLastFormState()},addPresetForm:function(e){this.presetForm.add(e);var t=X(e,this);t.hidden=true;n(t,this.body);w(t,this);this.adjustLastFormState()},onAddCardClick:function(e){if(C(this.presets)&&!E(this.presets)){this.showPresetsPopup()}else{this.addEmptyCard();if(e!==true){if(this.sync){var n=this.sync;if(y(this.sync)){n=[this.sync]}if(L(n)){n.forEach(function(e){var n=this.forms.find(function(n){return n.code===e});if(n){n.onAddCardClick(true)}},this)}}}}},onPresetItemClick:function(e){var n=this.presets[e];var t=this.presetForm.find(function(n){return n.preset.id===e}).clone();t.selector=I(t.selector.split("@")[0],"@",this.childForms.length);t.oldIndex=this.childForms.length;t.preset=B(n);t.preset.id=e;this.addChildForm(t);U(t);this.adjustLastFormState();this.popup.close();if(C(n.values)){t.fields.forEach(function(e){var t=e.selector.split("@")[0];if(t in n.values){e.setValue(n.values[t]);if(e instanceof BX.Landing.UI.Field.Text){BX.fireEvent(e.input,"input")}}if(L(n.disallow)){var i=!!n.disallow.find(function(e){return t===e});if(i){e.layout.hidden=true}}})}},showPresetsPopup:function(){if(!this.popup){this.popup=new BX.Landing.UI.Tool.Menu({id:"catalog_blocks_list",bindElement:this.addButton.layout,items:Object.keys(this.presets).map(function(e){return{text:this.presets[e].name,className:"landing-ui-form-cards-preset-popup-item menu-popup-no-icon",onclick:this.onPresetItemClick.bind(this,e)}},this),autoHide:true,maxHeight:176,minHeight:87});i(this.popup.popupWindow.popupContainer,"mouseover",this.onMouseOver.bind(this));i(this.popup.popupWindow.popupContainer,"mouseleave",this.onMouseLeave.bind(this));i(top.document,"click",this.onDocumentClick.bind(this));n(this.popup.popupWindow.popupContainer,c(this.addButton.layout,{className:"landing-ui-panel-content-body-content"}))}if(this.popup.popupWindow.isShown()){this.popup.popupWindow.close()}else{this.popup.popupWindow.show()}this.adjustPopupPosition()},onMouseOver:function(){i(this.popup.popupWindow.popupContainer,this.wheelEventName,this.onMouseWheel.bind(this));i(this.popup.popupWindow.popupContainer,"touchmove",this.onMouseWheel.bind(this))},onMouseLeave:function(){o(this.popup.popupWindow.popupContainer,this.wheelEventName,this.onMouseWheel.bind(this));o(this.popup.popupWindow.popupContainer,"touchmove",this.onMouseWheel.bind(this))},onMouseWheel:function(e){e.stopPropagation();e.preventDefault();var n=BX.Landing.UI.Panel.Content.getDeltaFromEvent(e);var t=this.popup.popupWindow.contentContainer.scrollTop;requestAnimationFrame(function(){this.popup.popupWindow.contentContainer.scrollTop=t-n.y}.bind(this))},onDocumentClick:function(){if(this.popup.popupWindow){this.popup.popupWindow.close()}},adjustPopupPosition:function(){if(this.popup.popupWindow){requestAnimationFrame(function(){var e=c(this.addButton.layout,{className:"landing-ui-panel-content-body-content"});var n=u(this.addButton.layout,e);var t=h(this.addButton.layout,e);var i=this.addButton.layout.getBoundingClientRect();var o=this.popup.popupWindow.popupContainer.getBoundingClientRect();var r=14;this.popup.popupWindow.popupContainer.style.top=n+i.height+r+"px";this.popup.popupWindow.popupContainer.style.left=t-o.width/2+i.width/2+"px";this.popup.popupWindow.setAngle({offset:83,position:"top"})}.bind(this))}},addEmptyCard:function(){var e=B(this.childForms[0].data);var n=I(e.selector.split("@")[0],"@",this.childForms.length);e.selector=n;var t=this.childForms[0].clone(e);t.oldIndex=this.childForms.length;t.selector=n;this.addChildForm(t);U(t);this.adjustLastFormState()},adjustLastFormState:function(){if(this.body.children.length===1){a(this.body.firstElementChild,"landing-ui-disallow-remove");return}p(this.body.children).forEach(function(e){s(e,"landing-ui-disallow-remove")})},serialize:function(){return this.childForms.map(function(e){return e.serialize()})},getIndexesMap:function(){return this.childForms.reduce(function(e,n,t){return e[t]=n.oldIndex,e},{})},getUsedPresets:function(){return this.childForms.reduce(function(e,n){if(C(n.preset)){e[M(n.selector)]=n.preset.id}return e},{})},isChanged:function(){return JSON.stringify(this.value)!==JSON.stringify(this.serialize())}}})();

Zerion Mini Shell 1.0