UNPKG

@syncfusion/ej2-splitbuttons

Version:

A package of feature-rich Essential JS 2 components such as DropDownButton, SplitButton, ProgressButton and ButtonGroup.

12 lines (11 loc) 40.9 kB
/*! * filename: ej2-splitbuttons.umd.min.js * version : 29.1.33 * Copyright Syncfusion Inc. 2001 - 2024. All rights reserved. * Use of this code is subject to the terms of our license. * A copy of the current license can be obtained at any time by e-mailing * licensing@syncfusion.com. Any infringement will be prosecuted under * applicable laws. */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@syncfusion/ej2-base"),require("@syncfusion/ej2-buttons"),require("@syncfusion/ej2-popups")):"function"==typeof define&&define.amd?define(["exports","@syncfusion/ej2-base","@syncfusion/ej2-buttons","@syncfusion/ej2-popups"],t):t((e=e||self).ej={},e.ej2Base,e.ej2Buttons,e.ej2Popups)}(this,function(e,d,h,r){"use strict";s=function(e,t){return(s=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])}))(e,t)};var s,t=function(e,t){function i(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)},i=function(e,t,i,s){var n,o=arguments.length,r=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;0<=a;a--)(n=e[a])&&(r=(o<3?n(r):3<o?n(t,i,r):n(t,i))||r);return 3<o&&r&&Object.defineProperty(t,i,r),r};function a(e,t){for(var i=d.extend({},e),s=0,n=Object.keys(i);s<n.length;s++){var o=n[s];t.indexOf(o)<0&&d.deleteObject(i,o)}return i}function R(e,t){var i=40===t?0:e.childElementCount-1,s=i,n=e.querySelector(".e-selected");n&&n.classList.remove("e-selected");for(var o=0,r=e.children.length;o<r;o++)e.children[o].classList.contains("e-focused")&&(s=o,e.children[o].classList.remove("e-focused"),40===t?s++:s--,s===(40===t?e.childElementCount:-1))&&(s=i);-1!==(s=function e(t,i,s,n,o){void 0===o&&(o=0);(i.classList.contains("e-separator")||i.classList.contains("e-disabled"))&&(s===(40===n?t.childElementCount-1:0)?s=40===n?0:t.childElementCount-1:40===n?s++:s--);i=t.children[s];if(i.classList.contains("e-separator")||i.classList.contains("e-disabled")){if(++o===t.childElementCount)return s=-1;s=e(t,i,s,n,o)}return s}(e,e.children[s],s,t))&&(d.addClass([e.children[s]],"e-focused"),e.children[s].focus())}function T(e,t){var i,s,n,o=[].slice.call(e.getElementsByClassName("e-blank-icon"));t&&[].slice.call(e.getElementsByClassName("e-item")).forEach(function(e){(e.style.paddingLeft||e.style.paddingRight)&&e.removeAttribute("style")}),o.length&&(t=e.querySelector(".e-item:not(.e-blank-icon):not(.e-separator)"),d.isNullOrUndefined(t)||(i=(t=t.classList.contains("e-url")?t.querySelector(".e-menu-url"):t).querySelector(".e-menu-icon"),e=e.classList.contains("e-rtl"),s=e?{padding:"paddingRight",margin:"marginLeft"}:{padding:"paddingLeft",margin:"marginRight"},n=parseInt(getComputedStyle(i).fontSize,10)+parseInt(getComputedStyle(i)[s.margin],10)+parseInt(getComputedStyle(t).paddingLeft,10)+"px",o.forEach(function(e){e.classList.contains("e-url")&&e.querySelector(".e-menu-url")?e.querySelector(".e-menu-url").style[s.padding]=n:e.style[s.padding]=n})))}n=d.ChildProperty,t(o,n),i([d.Property("")],o.prototype,"iconCss",void 0),i([d.Property("")],o.prototype,"id",void 0),i([d.Property(!1)],o.prototype,"separator",void 0),i([d.Property("")],o.prototype,"text",void 0),i([d.Property("")],o.prototype,"url",void 0),i([d.Property(!1)],o.prototype,"disabled",void 0);var n,p=o;function o(){return null!==n&&n.apply(this,arguments)||this}l=function(e,t){return(l=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])}))(e,t)};var l,c,t=function(e,t){function i(){this.constructor=e}l(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)},i=function(e,t,i,s){var n,o=arguments.length,r=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;0<=a;a--)(n=e[a])&&(r=(o<3?n(r):3<o?n(t,i,r):n(t,i))||r);return 3<o&&r&&Object.defineProperty(t,i,r),r},I="e-menu-icon",u="e-item",M="e-dropdown-popup",_="e-separator",m="e-vertical",q="e-dropdown-popup-width",W=(c=d.ChildProperty,t(y,c),i([d.Property("SlideDown")],y.prototype,"effect",void 0),i([d.Property(400)],y.prototype,"duration",void 0),i([d.Property("ease")],y.prototype,"easing",void 0),y);function y(){return null!==c&&c.apply(this,arguments)||this}f=d.Component,t(v,f),v.prototype.preRender=function(){},v.prototype.getPersistData=function(){return this.addOnPersist([])},v.prototype.toggle=function(){this.canOpen()?this.openPopUp():this.createPopupOnClick&&!this.isPopupCreated?(this.createPopup(),this.openPopUp()):this.closePopup()},v.prototype.render=function(){this.initialize(),this.disabled||this.wireEvents(),this.renderComplete()},v.prototype.addItems=function(e,t){for(var i,s=this.items.length,n=0,o=this.items.length;n<o;n++)if(t===this.items[n].text){s=n;break}for(var r=e.length-1;0<=r;r--)i=new p(this,"items",e[r],!0),this.items.splice(s,0,i);this.canOpen()||this.createItems()},v.prototype.removeItems=function(e,t){for(var i=!1,s=0,n=e.length;s<n;s++)for(var o=0,r=this.items.length;o<r;o++)if(e[s]===(t?this.items[o].id:this.items[o].text)){this.items.splice(o,1),i=!0;break}i&&this.getULElement()&&this.createItems()},v.prototype.createPopup=function(){var e,t=this.createElement("div",{className:"auto"!==this.popupWidth?M+" "+q:M,id:this.element.id+"-popup"});document.body.appendChild(t),this.dropDown=new r.Popup(t,{width:this.popupWidth,relateTo:this.element,collision:{X:"fit",Y:"flip"},position:{X:"left",Y:"bottom"},targetType:"relative",content:this.target?this.getTargetElement():"",enableRtl:this.enableRtl}),this.dropDown.element.setAttribute("role","dialog"),this.dropDown.element.setAttribute("aria-label","dropdown menu"),d.isNullOrUndefined(this.popupContent)||(this.popupContent.style.display=""),"fixed"===this.dropDown.element.style.position&&this.dropDown.refreshPosition(this.element),this.dropDown.hide(),d.attributes(this.element,((e={})["aria-haspopup"]=this.items.length||this.target?"true":"false",e["aria-expanded"]="false",e.type="button",e)),this.cssClass&&d.addClass([t],this.cssClass.replace(/\s+/g," ").trim().split(" ")),this.isPopupCreated=!0,this.createPopupOnClick&&(e=d.getComponent(this.activeElem[0],"split-btn"))&&(e.isPopupCreated=!0)},v.prototype.getTargetElement=function(){return!this.createPopupOnClick||this.isColorPicker()||d.isNullOrUndefined(this.popupContent)?"string"==typeof this.target?d.select(this.target):this.target:this.popupContent},v.prototype.createItems=function(e){var t,s=this,i=this.items,n=this.hasIcon(this.items,"iconCss"),o=this.getULElement();if(o?o.innerHTML="":o=this.createElement("ul",{attrs:{role:"menu",tabindex:"0"}}),this.itemTemplate){var r=this.compiletemplate(this.itemTemplate);i.forEach(function(e){var t=s.createElement("li",{className:e.separator?u+" "+_:u,attrs:e.separator?{role:"separator",tabindex:"-1","aria-label":"separator","aria-hidden":"true"}:{role:"menuitem",tabindex:"-1","aria-label":e.text},id:e.id||d.getUniqueID("e-"+s.getModuleName()+"-item")}),i=r(e,s,"template",null,!1,null,t),i=(i&&d.append(i,t),e.disabled&&t.classList.add("e-disabled"),{item:e,element:t});s.trigger("beforeItemRender",i),i.item.disabled!==e.disabled&&t.classList[i.item.disabled?"add":"remove"]("e-disabled"),o.appendChild(t)}),this.isReact&&this.renderReactTemplates()}else for(var a=0;a<i.length;a++){t=i[a],this.enableHtmlSanitizer&&(t.text=d.SanitizeHtmlHelper.sanitize(t.text));var p=t.text,l=this.createElement("li",{innerHTML:t.url?"":p,className:t.separator?u+" "+_:u,attrs:t.separator?{role:"separator",tabindex:"-1","aria-label":"separator","aria-hidden":"true"}:{role:"menuitem",tabindex:"-1","aria-label":p},id:t.id||d.getUniqueID("e-"+this.getModuleName()+"-item")}),p=(this.enableHtmlSanitizer?l.textContent=t.url?"":p:l.innerHTML=t.url?"":p,t.url&&(l.appendChild(this.createAnchor(t)),l.classList.add("e-url")),t.iconCss?(p=this.createElement("span",{className:I+" "+t.iconCss}),t.url?l.childNodes[0].appendChild(p):l.insertBefore(p,l.childNodes[0])):n&&!t.separator&&l.classList.add("e-blank-icon"),t.disabled);t.disabled&&l.classList.add("e-disabled"),this.trigger("beforeItemRender",t={item:t,element:l}),p!==t.item.disabled&&(t.item.disabled?l.classList.add("e-disabled"):l.classList.remove("e-disabled")),o.appendChild(l)}e&&this.getPopUpElement().appendChild(o),n&&T(this.getPopUpElement())},v.prototype.compiletemplate=function(t){if(this.itemTemplate)try{if("function"!=typeof this.itemTemplate){var e=document.querySelector(this.itemTemplate);if(e)return d.compile(e.innerHTML.trim())}return d.compile(t)}catch(e){return d.compile(t)}},v.prototype.hasIcon=function(e,t){for(var i=0,s=e.length;i<s;i++)if(e[i][""+t])return!0;return!1},v.prototype.createAnchor=function(e){var t=e.text,e=this.createElement("a",{className:"e-menu-text e-menu-url",attrs:{href:e.url}});return this.enableHtmlSanitizer?e.textContent=t:e.innerHTML=t,e},v.prototype.initialize=function(){this.button=new h.Button({iconCss:this.iconCss,iconPosition:this.iconPosition,cssClass:this.cssClass,content:this.content,disabled:this.disabled,enableRtl:this.enableRtl,enablePersistence:this.enablePersistence}),this.button.createElement=this.createElement,this.button.appendTo(this.element),this.element.id||(this.element.id=d.getUniqueID("e-"+this.getModuleName())),this.appendArrowSpan(),this.setActiveElem([this.element]),this.element.setAttribute("tabindex","0"),this.element.setAttribute("aria-label",this.element.textContent||"dropdownbutton"),this.target&&!this.isColorPicker()&&!this.createPopupOnClick||!this.createPopupOnClick?this.createPopup():(this.isPopupCreated=!1,this.target&&!this.isColorPicker()&&this.createPopupOnClick&&(this.popupContent=this.getTargetElement(),this.popupContent.style.display="none"))},v.prototype.isColorPicker=function(){var e;return!!this.element&&!!((e=this.element.previousSibling)&&e.classList&&e.classList.contains("e-split-colorpicker"))},v.prototype.appendArrowSpan=function(){this.cssClass=d.isNullOrUndefined(this.cssClass)?"":this.cssClass,this.element.appendChild(this.createElement("span",{className:"e-btn-icon e-icons e-icon-"+(-1<this.cssClass.indexOf(m)?"bottom":"right")+" e-caret"}))},v.prototype.setActiveElem=function(e){this.activeElem=e},v.prototype.getModuleName=function(){return"dropdown-btn"},v.prototype.canOpen=function(){var e=!1;return e=this.isPopupCreated?this.getPopUpElement().classList.contains("e-popup-close"):e},v.prototype.destroy=function(){var e,t=this;f.prototype.destroy.call(this),"dropdown-btn"===this.getModuleName()&&(this.element.querySelector("span.e-caret")&&d.detach(this.element.querySelector("span.e-caret")),this.cssClass&&(e=this.cssClass.split(" ")),this.button.destroy(),e&&d.removeClass([this.element],e),d.removeClass(this.activeElem,["e-active"]),(this.element.getAttribute("class")?["aria-haspopup","aria-expanded","aria-owns","type"]:["aria-haspopup","aria-expanded","aria-owns","type","class"]).forEach(function(e){t.element.removeAttribute(e)}),this.popupUnWireEvents(),this.destroyPopup(),this.isPopupCreated=!1,this.disabled||this.unWireEvents())},v.prototype.destroyPopup=function(){this.isPopupCreated&&(this.dropDown.destroy(),this.getPopUpElement()&&(e=document.getElementById(this.getPopUpElement().id))&&(d.removeClass([e],["e-popup-open","e-popup-close"]),d.detach(e)),d.EventHandler.remove(this.getPopUpElement(),"click",this.clickHandler),d.EventHandler.remove(this.getPopUpElement(),"keydown",this.keyBoardHandler),this.isPopupCreated)&&this.dropDown&&(this.dropDown.element=null,this.dropDown=void 0),this.isPopupCreated=!1;var e=d.getComponent(this.activeElem[0],"split-btn");this.createPopupOnClick&&e&&(e=d.getComponent(this.activeElem[1],"dropdown-btn"))&&(e.isPopupCreated=!1)},v.prototype.getPopUpElement=function(){var e,t=null;return!this.dropDown&&this.activeElem[0].classList.contains("e-split-btn")&&(e=d.getComponent(this.activeElem[1],"dropdown-btn"))&&(this.dropDown=e.dropDown),t=this.dropDown?this.dropDown.element:t},v.prototype.getULElement=function(){var e=null;return e=this.getPopUpElement()?this.getPopUpElement().children[0]:e},v.prototype.wireEvents=function(){this.delegateMousedownHandler=this.mousedownHandler.bind(this),this.createPopupOnClick||d.EventHandler.add(document,"mousedown touchstart",this.delegateMousedownHandler,this),d.EventHandler.add(this.element,"click",this.clickHandler,this),d.EventHandler.add(this.element,"keydown",this.keyBoardHandler,this),d.EventHandler.add(window,"resize",this.windowResize,this)},v.prototype.windowResize=function(){!this.canOpen()&&this.dropDown&&this.dropDown.refreshPosition(this.element)},v.prototype.popupWireEvents=function(){this.delegateMousedownHandler||(this.delegateMousedownHandler=this.mousedownHandler.bind(this));var e=this.getPopUpElement();this.createPopupOnClick&&d.EventHandler.add(document,"mousedown touchstart",this.delegateMousedownHandler,this),e&&(d.EventHandler.add(e,"click",this.clickHandler,this),d.EventHandler.add(e,"keydown",this.keyBoardHandler,this),this.closeActionEvents)&&d.EventHandler.add(e,this.closeActionEvents,this.focusoutHandler,this),this.rippleFn=d.rippleEffect(e,{selector:"."+u})},v.prototype.popupUnWireEvents=function(){var e=this.getPopUpElement();this.createPopupOnClick&&d.EventHandler.remove(document,"mousedown touchstart",this.delegateMousedownHandler),e&&e.parentElement&&(d.EventHandler.remove(e,"click",this.clickHandler),d.EventHandler.remove(e,"keydown",this.keyBoardHandler),this.closeActionEvents)&&d.EventHandler.remove(e,this.closeActionEvents,this.focusoutHandler),d.isRippleEnabled&&this.rippleFn&&this.rippleFn()},v.prototype.keyBoardHandler=function(e){if(e.target!==this.element||9!==e.keyCode&&(e.altKey||40!==e.keyCode)&&38!==e.keyCode)switch(e.target&&(e.target.classList.contains("e-item")||e.target.parentElement&&e.target.parentElement.classList.contains("e-split-btn-wrapper"))&&13===e.keyCode&&e.preventDefault(),e.keyCode){case 38:case 40:!e.altKey||38!==e.keyCode&&40!==e.keyCode?this.upDownKeyHandler(e):this.keyEventHandler(e);break;case 9:case 13:case 27:case 32:this.keyEventHandler(e)}},v.prototype.isSafari=function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)},v.prototype.upDownKeyHandler=function(e){this.target&&(38===e.keyCode||40===e.keyCode)||(e.preventDefault(),R(this.getULElement(),e.keyCode))},v.prototype.keyEventHandler=function(e){this.target&&(13===e.keyCode||9===e.keyCode)||(13===e.keyCode&&this.activeElem[0].classList.contains("e-split-btn")?(this.triggerSelect(e),this.activeElem[0].focus()):e.target&&-1<e.target.className.indexOf("e-edit-template")&&32===e.keyCode||(9!==e.keyCode&&e.preventDefault(),27===e.keyCode||38===e.keyCode||9===e.keyCode?this.canOpen()||this.closePopup(e,this.element):this.clickHandler(e)))},v.prototype.getLI=function(e){return"LI"===e.tagName?e:d.closest(e,"li")},v.prototype.mousedownHandler=function(e){var t=e.target;!this.dropDown||this.canOpen()||!this.getPopUpElement()||d.closest(t,'[id="'+this.getPopUpElement().id+'"]')||d.closest(t,'[id="'+this.element.id+'"]')||this.closePopup(e)},v.prototype.focusoutHandler=function(e){var t,i;this.isPopupCreated&&!this.canOpen()&&((t=e.relatedTarget||e.target)&&-1<t.className.indexOf("e-item")&&(t=this.getLI(t))&&(i=Array.prototype.indexOf.call(this.getULElement().children,t),i=this.items[i])&&this.trigger("select",{element:t,item:i,event:e}),this.closePopup(e))},v.prototype.clickHandler=function(e){var t=e.target;d.closest(t,'[id="'+this.element.id+'"]')?!this.createPopupOnClick||this.target&&""!==this.target&&!this.isColorPicker()&&!this.createPopupOnClick?this.getPopUpElement().classList.contains("e-popup-close")?this.openPopUp(e):this.closePopup(e):this.isPopupCreated?this.closePopup(e,this.activeElem[0]):(this.createPopup(),this.openPopUp(e)):d.closest(t,'[id="'+this.getPopUpElement().id+'"]')&&this.getLI(e.target)&&(this.triggerSelect(e),this.closePopup(e,this.activeElem[0]))},v.prototype.triggerSelect=function(e){var t,i=this.getLI(e.target);i&&(t=Array.prototype.indexOf.call(this.getULElement().children,i),t=this.items[t])&&this.trigger("select",{element:i,item:t,event:e})},v.prototype.openPopUp=function(e){var i=this,t=(void 0===e&&(e=null),this.getPopUpElement()),s=(this.activeElem[0]&&this.activeElem[0].classList.contains("e-dropdown-btn")&&t.style.width&&"auto"!==t.style.width&&this.setWidth(t),this.target?1<this.activeElem.length?(s=d.getComponent(this.activeElem[0],"split-btn")).isReact&&t.childNodes.length<1&&(s.appendReactElement&&s.appendReactElement(this.getTargetElement(),this.getPopUpElement()),this.renderReactTemplates()):this.isReact&&t.childNodes.length<1&&(this.appendReactElement&&this.appendReactElement(this.getTargetElement(),this.getPopUpElement()),this.renderReactTemplates()):this.createItems(!0),this.getULElement()),t=(this.popupWireEvents(),{element:s,items:this.items,event:e,cancel:!1});this.trigger("beforeOpen",t,function(e){var t;e.cancel||(e=i.getULElement(),(t="None"!==i.animationSettings.effect?{name:i.animationSettings.effect,duration:i.animationSettings.duration,timingFunction:i.animationSettings.easing}:null)&&i.animatePopup(t,e),i.dropDown.show(null,i.element),d.addClass([i.element],"e-active"),i.element.setAttribute("aria-expanded","true"),i.element.setAttribute("aria-owns",i.getPopUpElement().id),e&&!i.isSafari()&&e.focus(),i.enableRtl&&"0px"!==e.parentElement.style.left&&(t=void 0,t=(i.element.parentElement&&i.element.parentElement.classList.contains("e-split-btn-wrapper")?i.element.parentElement:i.element).offsetWidth,t=e.parentElement.offsetWidth-t,t=parseFloat(e.parentElement.style.left)-t,e.parentElement.style.left=(t=t<0?0:t)+"px"),t={element:e,items:i.items},i.trigger("open",t),e&&i.isSafari()&&e.focus())})},v.prototype.animatePopup=function(e,t){new d.Animation(e).animate(t,{begin:function(e){e.element.parentElement.style.height=e.element.parentElement.offsetHeight+"px"}})},v.prototype.setWidth=function(e){var t=d.formatUnit(e.style.width);-1<t.indexOf("%")&&(t=this.element.offsetWidth*parseFloat(t)/100,e.style.width=t+"px")},v.prototype.closePopup=function(e,i){var s=this,n=(void 0===e&&(e=null),this.getULElement()),e={element:n,items:this.items,event:e,cancel:!1};this.trigger("beforeClose",e,function(e){var t;e.cancel?n&&n.focus():((e=s.getPopUpElement())&&d.EventHandler.remove(e,"keydown",s.keyBoardHandler),s.popupUnWireEvents(),e=void 0,(e=(t=s.getULElement())?t.querySelector(".e-selected"):e)&&e.classList.remove("e-selected"),s.dropDown&&s.dropDown.hide(),d.removeClass(s.activeElem,"e-active"),s.element.setAttribute("aria-expanded","false"),s.element.removeAttribute("aria-owns"),i&&(s.isSafari()?i.focus({preventScroll:!0}):i.focus()),e={element:t,items:s.items},s.trigger("close",e),!s.target&&t&&d.detach(t),(!s.target||s.isColorPicker()||s.target&&!s.isColorPicker())&&s.createPopupOnClick&&s.destroyPopup())})},v.prototype.unWireEvents=function(){this.createPopupOnClick||d.EventHandler.remove(document,"mousedown touchstart",this.delegateMousedownHandler),d.EventHandler.remove(this.element,"click",this.clickHandler),d.EventHandler.remove(this.element,"keydown",this.keyBoardHandler),this.isPopupCreated&&(d.EventHandler.remove(this.getPopUpElement(),"click",this.clickHandler),d.EventHandler.remove(this.getPopUpElement(),"keydown",this.keyBoardHandler)),d.EventHandler.remove(window,"resize",this.windowResize)},v.prototype.onPropertyChanged=function(e,t){var i;this.button.setProperties(a(e,["content","cssClass","iconCss","iconPosition","disabled","enableRtl"])),this.isPopupCreated&&(i=this.getPopUpElement(),this.dropDown.setProperties(a(e,["enableRtl"])));for(var s,n=0,o=Object.keys(e);n<o.length;n++)switch(o[n]){case"content":this.element.querySelector("span.e-caret")||this.appendArrowSpan();break;case"disabled":e.disabled?(this.unWireEvents(),this.isPopupCreated&&!this.canOpen()&&this.closePopup()):this.wireEvents();break;case"cssClass":t.cssClass=d.isNullOrUndefined(t.cssClass)?"":t.cssClass,(-1<e.cssClass.indexOf(m)||-1<t.cssClass.indexOf(m))&&(this.element.querySelector("span.e-caret")||this.appendArrowSpan(),s=this.element.querySelector("span.e-caret"),-1<e.cssClass.indexOf(m)?d.classList(s,["e-icon-bottom"],["e-icon-right"]):d.classList(s,["e-icon-right"],["e-icon-bottom"])),this.isPopupCreated&&(t.cssClass&&d.removeClass([i],t.cssClass.split(" ")),e.cssClass)&&d.addClass([i],e.cssClass.replace(/\s+/g," ").trim().split(" "));break;case"target":this.dropDown.content=this.getTargetElement(),this.dropDown.dataBind();break;case"items":this.isPopupCreated&&this.getULElement()&&this.createItems();break;case"createPopupOnClick":e.createPopupOnClick?this.destroyPopup():this.createPopup()}},v.prototype.focusIn=function(){this.element.focus()},i([d.Property("")],v.prototype,"content",void 0),i([d.Property("")],v.prototype,"cssClass",void 0),i([d.Property(!1)],v.prototype,"disabled",void 0),i([d.Property("")],v.prototype,"iconCss",void 0),i([d.Property("Left")],v.prototype,"iconPosition",void 0),i([d.Property(!0)],v.prototype,"enableHtmlSanitizer",void 0),i([d.Collection([],p)],v.prototype,"items",void 0),i([d.Property(!1)],v.prototype,"createPopupOnClick",void 0),i([d.Property("")],v.prototype,"target",void 0),i([d.Property("")],v.prototype,"closeActionEvents",void 0),i([d.Property(null)],v.prototype,"itemTemplate",void 0),i([d.Property("auto")],v.prototype,"popupWidth",void 0),i([d.Complex({effect:"None"},W)],v.prototype,"animationSettings",void 0),i([d.Event()],v.prototype,"beforeItemRender",void 0),i([d.Event()],v.prototype,"beforeOpen",void 0),i([d.Event()],v.prototype,"beforeClose",void 0),i([d.Event()],v.prototype,"close",void 0),i([d.Event()],v.prototype,"open",void 0),i([d.Event()],v.prototype,"select",void 0),i([d.Event()],v.prototype,"created",void 0);var f,g=i([d.NotifyPropertyChanges],v);function v(e,t){e=f.call(this,e,t)||this;return e.isPopupCreated=!0,e}b=function(e,t){return(b=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])}))(e,t)};var b,C,t=function(e,t,i,s){var n,o=arguments.length,r=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;0<=a;a--)(n=e[a])&&(r=(o<3?n(r):3<o?n(t,i,r):n(t,i))||r);return 3<o&&r&&Object.defineProperty(t,i,r),r},P="e-rtl",E="EJS-SPLITBUTTON",i=(function(e,t){function i(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}(w,C=g),w.prototype.preRender=function(){var e=this.element;if(e.tagName===E){for(var t=d.getValue("ej2_instances",e),i=this.createElement("button",{attrs:{type:"button"}}),s=this.createElement(E,{className:"e-"+this.getModuleName()+"-wrapper"}),n=0,o=e.attributes.length;n<o;n++)i.setAttribute(e.attributes[n].nodeName,e.attributes[n].nodeValue);e.parentNode.insertBefore(s,e),d.detach(e),s.appendChild(e=i),d.setValue("ej2_instances",t,e),this.wrapper=s,this.element=e}this.element.id||(this.element.id=d.getUniqueID("e-"+this.getModuleName()))},w.prototype.render=function(){this.initWrapper(),this.createPrimaryButton(),this.renderControl()},w.prototype.renderControl=function(){this.createSecondaryButton(),this.setActiveElem([this.element,this.secondaryBtnObj.element]),this.setAria(),this.wireEvents(),this.renderComplete()},w.prototype.addItems=function(e,t){C.prototype.addItems.call(this,e,t),this.secondaryBtnObj.items=this.items},w.prototype.removeItems=function(e,t){C.prototype.removeItems.call(this,e,t),this.secondaryBtnObj.items=this.items},w.prototype.initWrapper=function(){this.wrapper||(this.wrapper=this.createElement("div",{className:"e-"+this.getModuleName()+"-wrapper"}),this.element.parentNode.insertBefore(this.wrapper,this.element)),this.element.classList.remove("e-"+this.getModuleName()),this.enableRtl&&this.wrapper.classList.add(P),this.cssClass&&d.addClass([this.wrapper],this.cssClass.replace(/\s+/g," ").trim().split(" "))},w.prototype.createPrimaryButton=function(){var e={cssClass:this.cssClass,enableRtl:this.enableRtl,iconCss:this.iconCss,iconPosition:this.iconPosition,content:this.content,disabled:this.disabled};this.primaryBtnObj=new h.Button(e),this.primaryBtnObj.createElement=this.createElement,this.primaryBtnObj.appendTo(this.element),this.element.classList.add("e-"+this.getModuleName()),this.element.type="button",this.wrapper.appendChild(this.element)},w.prototype.createSecondaryButton=function(){var i=this,e=this.createElement("button",{className:"e-icon-btn",attrs:{tabindex:"-1"},id:this.element.id+"_dropdownbtn"}),t=(this.wrapper.appendChild(e),{cssClass:this.cssClass,disabled:this.disabled,enableRtl:this.enableRtl,items:this.items,target:this.target,createPopupOnClick:this.createPopupOnClick});t.beforeItemRender=function(e){i.createPopupOnClick&&(i.secondaryBtnObj.dropDown.relateTo=i.wrapper,i.dropDown=i.secondaryBtnObj.dropDown),i.trigger("beforeItemRender",e)},t.open=function(e){i.trigger("open",e)},t.close=function(e){i.trigger("close",e)},t.select=function(e){i.trigger("select",e)},t.beforeOpen=function(e){i.createPopupOnClick&&0===i.items.length&&(i.secondaryBtnObj.dropDown.relateTo=i.wrapper,i.dropDown=i.secondaryBtnObj.dropDown);var t=new k;return i.trigger("beforeOpen",e,function(e){t.resolve(e)}),t},t.beforeClose=function(e){var t=new k;return i.trigger("beforeClose",e,function(e){t.resolve(e)}),t},this.secondaryBtnObj=new g(t),this.secondaryBtnObj.createElement=this.createElement,this.secondaryBtnObj.appendTo(e),this.createPopupOnClick||(this.secondaryBtnObj.dropDown.relateTo=this.wrapper,this.dropDown=this.secondaryBtnObj.dropDown),this.isPopupCreated=this.secondaryBtnObj.isPopupCreated,this.secondaryBtnObj.activeElem=[this.element,this.secondaryBtnObj.element],this.secondaryBtnObj.element.querySelector(".e-btn-icon").classList.remove("e-icon-right"),this.disabled&&this.wrapper.classList.add("e-splitbtn-disabled")},w.prototype.setAria=function(){d.attributes(this.element,{"aria-expanded":"false","aria-haspopup":"true","aria-label":this.element.textContent?this.element.textContent+" splitbutton":"splitbutton","aria-owns":this.element.id+"_dropdownbtn-popup"})},w.prototype.getModuleName=function(){return"split-btn"},w.prototype.toggle=function(){this.secondaryBtnObj.toggle()},w.prototype.destroy=function(){var e,t=this,i=[P];this.cssClass&&(i=i.concat(this.cssClass.split(" "))),this.element&&(e=document.getElementById(this.element.id))&&e.parentElement===this.wrapper&&(this.wrapper.tagName===E?(this.wrapper.innerHTML="",d.removeClass([this.wrapper],["e-rtl","e-"+this.getModuleName()+"-wrapper"]),d.removeClass([this.wrapper],this.cssClass.split(" "))):(d.removeClass([this.element],i),["aria-label","aria-haspopup","aria-expanded","aria-owns","type"].forEach(function(e){t.element.removeAttribute(e)}),this.wrapper.parentNode.insertBefore(this.element,this.wrapper),d.remove(this.wrapper)),this.unWireEvents()),this.primaryBtnObj.destroy(),this.secondaryBtnObj.destroy(),C.prototype.destroy.call(this),this.element&&!this.element.getAttribute("class")&&this.element.removeAttribute("class"),this.refreshing&&this.isAngular&&(this.element=this.wrapper,["e-control","e-split-btn","e-lib"].forEach(function(e){t.element.classList.add(e)}),d.setValue("ej2_instances",[this],this.element)),this.wrapper=null},w.prototype.wireEvents=function(){d.EventHandler.add(this.element,"click",this.primaryBtnClickHandler,this),new d.KeyboardEvents(this.element,{keyAction:this.btnKeyBoardHandler.bind(this),keyConfigs:{altdownarrow:"alt+downarrow",enter:"enter"}})},w.prototype.unWireEvents=function(){d.EventHandler.remove(this.element,"click",this.primaryBtnClickHandler),d.getInstance(this.element,d.KeyboardEvents).destroy()},w.prototype.primaryBtnClickHandler=function(){this.trigger("click",{element:this.element})},w.prototype.btnKeyBoardHandler=function(e){switch(e.action){case"altdownarrow":this.clickHandler(e);break;case"enter":this.clickHandler(e),this.getPopUpElement()&&!this.getPopUpElement().classList.contains("e-popup-close")?(this.element.classList.remove("e-active"),this.secondaryBtnObj.element.classList.add("e-active")):this.secondaryBtnObj.element.classList.remove("e-active")}},w.prototype.onPropertyChanged=function(e,t){var i;this.primaryBtnObj.setProperties(a(e,["content","iconCss","iconPosition","cssClass","disabled","enableRtl"])),i=["beforeOpen","beforeItemRender","select","open","close","cssClass","disabled","enableRtl","createPopupOnClick"],-1<Object.keys(e).indexOf("items")&&(this.secondaryBtnObj.items=e.items,this.secondaryBtnObj.dataBind()),this.secondaryBtnObj.setProperties(a(e,i));for(var s=0,n=Object.keys(e);s<n.length;s++)switch(n[s]){case"cssClass":t.cssClass&&d.removeClass([this.wrapper],t.cssClass.split(" ")),d.addClass([this.wrapper],e.cssClass.replace(/\s+/g," ").trim().split(" "));break;case"enableRtl":e.enableRtl?d.addClass([this.wrapper],P):d.removeClass([this.wrapper],P);break;case"disabled":e.disabled?d.addClass([this.wrapper],"e-splitbtn-disabled"):d.removeClass([this.wrapper],"e-splitbtn-disabled")}},w.prototype.focusIn=function(){this.element.focus()},t([d.Property("")],w.prototype,"content",void 0),t([d.Property("")],w.prototype,"cssClass",void 0),t([d.Property(!1)],w.prototype,"disabled",void 0),t([d.Property("")],w.prototype,"iconCss",void 0),t([d.Property("Left")],w.prototype,"iconPosition",void 0),t([d.Property(!1)],w.prototype,"createPopupOnClick",void 0),t([d.Collection([],p)],w.prototype,"items",void 0),t([d.Property("")],w.prototype,"target",void 0),t([d.Event()],w.prototype,"beforeItemRender",void 0),t([d.Event()],w.prototype,"beforeOpen",void 0),t([d.Event()],w.prototype,"beforeClose",void 0),t([d.Event()],w.prototype,"click",void 0),t([d.Event()],w.prototype,"close",void 0),t([d.Event()],w.prototype,"open",void 0),t([d.Event()],w.prototype,"select",void 0),t([d.Event()],w.prototype,"created",void 0),t([d.NotifyPropertyChanges],w));function w(e,t){return C.call(this,e,t)||this}var k=function(){var i=this;this.promise=new Promise(function(e,t){i.resolve=e,i.reject=t}),this.catch=this.promise.catch.bind(this.promise),this.then=this.promise.then.bind(this.promise)};O=function(e,t){return(O=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])}))(e,t)};var O,S,t=function(e,t){function i(){this.constructor=e}O(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)},L=function(e,t,i,s){var n,o=arguments.length,r=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;0<=a;a--)(n=e[a])&&(r=(o<3?n(r):3<o?n(t,i,r):n(t,i))||r);return 3<o&&r&&Object.defineProperty(t,i,r),r},H="e-hide-spinner",z="e-progress",B="e-progress-active",j="e-btn-content",F=(S=d.ChildProperty,t(N,S),L([d.Property(null)],N.prototype,"template",void 0),L([d.Property(16)],N.prototype,"width",void 0),L([d.Property("Left")],N.prototype,"position",void 0),N);function N(){return null!==S&&S.apply(this,arguments)||this}A=d.ChildProperty,t(x,A),L([d.Property(400)],x.prototype,"duration",void 0),L([d.Property("None")],x.prototype,"effect",void 0),L([d.Property("ease")],x.prototype,"easing",void 0);var A,K=x;function x(){return null!==A&&A.apply(this,arguments)||this}D=h.Button,t(U,D),U.prototype.preRender=function(){D.prototype.preRender.call(this)},U.prototype.render=function(){D.prototype.render.call(this),this.init(),this.wireEvents(),this.setAria(),this.renderComplete()},U.prototype.start=function(e){this.isPaused=!1,this.startProgress(e||this.percent,this.progressTime)},U.prototype.stop=function(){this.isPaused=!0,cancelAnimationFrame(this.timerId)},U.prototype.progressComplete=function(){this.isPaused=!1,this.finishProgress()},U.prototype.getModuleName=function(){return"progress-btn"},U.prototype.destroy=function(){var t=this,e=[H,B,"e-round-corner","e-"+D.prototype.getModuleName.call(this)];this.spinSettings.position&&e.push("e-spin-"+this.spinSettings.position.toLowerCase()),D.prototype.destroy.call(this),this.unWireEvents(),this.element.innerHTML="",this.cssClass&&(e=e.concat(this.cssClass.split(" "))),d.removeClass([this.element],e),(this.element.getAttribute("class")?["aria-label","aria-valuemin","aria-valuemax","aria-valuenow"]:["aria-label","aria-valuemin","aria-valuemax","aria-valuenow","class"]).forEach(function(e){t.element.removeAttribute(e)}),this.disabled&&this.element.removeAttribute("disabled")},U.prototype.init=function(){this.element.classList.add("e-"+D.prototype.getModuleName.call(this)),this.setContent(),this.createSpinner(),this.enableProgress&&this.createProgress()},U.prototype.createSpinner=function(){var e=this.createElement("span",{className:"e-spinner"});this.setSpinPosition(e),r.createSpinner({target:e,width:this.spinSettings.width||16,template:this.spinSettings.template},this.createElement)},U.prototype.getSpinner=function(){return this.element.getElementsByClassName("e-spinner")[0]},U.prototype.getProgress=function(){return this.element.getElementsByClassName(z)[0]},U.prototype.setSpinPosition=function(e){var t=this.spinSettings.position||"Left";"Left"===t||"Top"===t?this.element.insertBefore(e,this.element.getElementsByClassName(j)[0]):this.element.appendChild(e),this.element.classList.add("e-spin-"+t.toLowerCase())},U.prototype.createProgress=function(){this.element.appendChild(this.createElement("span",{className:z}))},U.prototype.setContent=function(){var e=this.element.innerHTML;this.enableHtmlSanitizer&&(e=d.SanitizeHtmlHelper.sanitize(this.element.innerHTML)),this.element.innerHTML="",this.element.appendChild(this.createElement("span",{className:j,innerHTML:e}))},U.prototype.clickHandler=function(){this.element.classList.contains(B)||this.startProgress()},U.prototype.startProgress=function(e,t){var i=this.element.classList,s=i.contains("e-vertical");i.add(B),i.contains(H)||r.showSpinner(this.element.querySelector(".e-spinner")),this.startAnimate(Date.now(),t||0,t?Date.now()-+this.duration/100:Date.now(),e||0,0,this.step,0,s),this.startContAnimate()},U.prototype.startAnimate=function(e,t,i,s,n,o,r,a){var p=this;try{var l=e-i,c=this.duration*o/100,d=l?l<c?l-c:l%c:0,h=(this.progressTime=t=t+l-d,i=e-d,s+=(l-d)/this.duration*100,{percent:n=(t-r)%c==0||100===s?s:n,currentDuration:t,step:o});this.eIsVertical=a,0===s?this.trigger("begin",h,function(e){p.successCallback(e,s,n,t,r,d,i)}):100===s||t===this.duration?this.trigger("end",h,function(e){p.successCallback(e,s,n,t,r,d,i)}):this.trigger("progress",h,function(e){p.successCallback(e,s,n,t,r,d,i)})}catch(e){cancelAnimationFrame(this.timerId),this.trigger("fail",e)}},U.prototype.successCallback=function(e,t,i,s,n,o,r){var a=this,p=t,l=i,t=o,c=s,d=n,h=r,u=this.eIsVertical;p!==e.percent&&e.percent!==l&&(p=e.percent),this.percent=p,this.step=e.step,(c-d)%(this.duration*e.step/100)!=0&&100!==p||(this.timerId=requestAnimationFrame(function(){a.enableProgress&&a.getProgress()&&(a.getProgress().style[u?"height":"width"]=p+"%"),a.element.setAttribute("aria-valuenow",p.toString())}),l=p,d=c),this.isPaused||(c<this.duration&&p<100?this.interval=window.setTimeout(function(){a.startAnimate(Date.now(),c,h,p,l,e.step,d,u)},this.duration/100-t):this.interval=window.setTimeout(function(){a.progressTime=a.percent=0,a.enableProgress&&a.getProgress()&&(a.getProgress().style[u?"height":"width"]="0%"),a.element.setAttribute("aria-valuenow","0"),a.hideSpin()},100))},U.prototype.startContAnimate=function(){var e=this,t=this.element.getElementsByClassName(j)[0];"None"!==this.animationSettings.effect?new d.Animation({}).animate(t,{duration:0===this.animationSettings.duration&&"Enable"===d.animationMode?400:this.animationSettings.duration,name:"Progress"+this.animationSettings.effect,timingFunction:this.animationSettings.easing,begin:function(){"Center"===e.spinSettings.position&&e.setSpinnerSize()},end:function(){t.classList.add("e-animate-end")}}):"Center"===this.spinSettings.position&&this.setSpinnerSize()},U.prototype.finishProgress=function(){for(var e=this.element.classList,t=e.contains("e-vertical"),i=(e.add(B),this.percent);i<100;i++)100<(i+=10)&&(i=100),this.enableProgress&&this.getProgress()&&(this.getProgress().style[t?"height":"width"]=this.percent<100?i+"%":"100%");this.element.setAttribute("aria-valuenow","0"),this.hideSpin();e={step:this.step,currentDuration:this.progressTime,percent:100};clearTimeout(this.interval),this.trigger("end",e),this.progressTime=this.percent=0},U.prototype.setSpinnerSize=function(){var e=this.element.getElementsByClassName(j)[0],t=this.getSpinner();t.style.width=Math.max(t.offsetWidth,e.offsetWidth)+"px",t.style.height=Math.max(t.offsetHeight,e.offsetHeight)+"px",e.classList.add("e-cont-animate")},U.prototype.hideSpin=function(){var e,t=this.element.getElementsByClassName(j)[0];this.element.classList.contains(H)||r.hideSpinner(this.element.querySelector(".e-spinner")),this.element.classList.remove(B),"None"!==this.animationSettings.effect&&t.classList.remove("e-animate-end"),"Center"===this.spinSettings.position&&(e=this.getSpinner(),t.classList.remove("e-cont-animate"),e.style.width="auto",e.style.height="auto")},U.prototype.setIconSpan=function(){var e=this.element.getElementsByClassName(j)[0],t=this.element.getElementsByClassName("e-btn-icon")[0];!e.childNodes[0]||"Left"!==this.iconPosition&&"Top"!==this.iconPosition?e.appendChild(t):e.insertBefore(t,e.childNodes[0])},U.prototype.setAria=function(){d.attributes(this.element,{"aria-label":this.element.textContent+" progress"})},U.prototype.wireEvents=function(){d.EventHandler.add(this.element,"click",this.clickHandler,this)},U.prototype.unWireEvents=function(){d.EventHandler.remove(this.element,"click",this.clickHandler)},U.prototype.onPropertyChanged=function(e,t){var i=this.element,s=!1;this.element.querySelector(".e-spinner-pane").classList.contains("e-spin-show")&&(s=!0),D.prototype.onPropertyChanged.call(this,e,t);for(var n=0,o=Object.keys(e);n<o.length;n++)switch(o[n]){case"content":this.setContent(),this.createSpinner(),s&&(r.showSpinner(this.element.querySelector(".e-spinner")),s=!1),this.enableProgress&&this.createProgress(),i.setAttribute("aria-label",i.textContent+" progress");break;case"iconCss":t.iconCss||this.setIconSpan();break;case"iconPosition":this.setIconSpan();break;case"enableProgress":e.enableProgress?this.createProgress():d.remove(this.getProgress());break;case"spinSettings":e.spinSettings.position&&(i.classList.remove("e-spin-"+t.spinSettings.position.toLowerCase()),this.setSpinPosition(this.getSpinner())),(e.spinSettings.template||e.spinSettings.width)&&(i.removeChild(this.getSpinner()),this.createSpinner())}},L([d.Property(!(U.prototype.focusIn=function(){this.element.focus()}))],U.prototype,"enableProgress",void 0),L([d.Property(2e3)],U.prototype,"duration",void 0),L([d.Property("Left")],U.prototype,"iconPosition",void 0),L([d.Property("")],U.prototype,"iconCss",void 0),L([d.Property(!1)],U.prototype,"disabled",void 0),L([d.Property(!1)],U.prototype,"isPrimary",void 0),L([d.Property("")],U.prototype,"cssClass",void 0),L([d.Property("")],U.prototype,"content",void 0),L([d.Property(!1)],U.prototype,"isToggle",void 0),L([d.Property(!0)],U.prototype,"enableHtmlSanitizer",void 0),L([d.Complex({},F)],U.prototype,"spinSettings",void 0),L([d.Complex({},K)],U.prototype,"animationSettings",void 0),L([d.Event()],U.prototype,"created",void 0),L([d.Event()],U.prototype,"begin",void 0),L([d.Event()],U.prototype,"progress",void 0),L([d.Event()],U.prototype,"end",void 0),L([d.Event()],U.prototype,"fail",void 0);var D,t=L([d.NotifyPropertyChanges],U);function U(e,t){e=D.call(this,e,t)||this;return e.step=1,e}e.AnimationSettings=K,e.Deferred=k,e.DropDownButton=g,e.DropDownMenuAnimationSettings=W,e.Item=p,e.ProgressButton=t,e.SpinSettings=F,e.SplitButton=i,e.createButtonGroup=function(e,t,i){void 0===t&&(t={}),d.isNullOrUndefined(i)&&(i=d.createElement);var s,n,o,r,a=document.querySelector(e),p=(d.addClass([a],["e-btn-group","e-css"]),a.setAttribute("role","group"),a.children);t.buttons=t.buttons||[];for(var l=0,c=0;c<p.length;l++,c++)s=p[c],null!==(r=t.buttons[l])&&("BUTTON"===s.tagName?n=s:(n=i("label"),(o=p[c+1])?a.insertBefore(n,o):a.appendChild(n),s.id&&n.setAttribute("for",s.id),r&&r.disabled&&(s.disabled=!0),c++),t.cssClass&&r&&!r.cssClass&&(r.cssClass=t.cssClass),new h.Button(r||{},n));return a},e.getModel=a,e.setBlankIconStyle=T,e.upDownKeyHandler=R,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=ej2-splitbuttons.umd.min.js.map