@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 34.4 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("kendo.core.js"),require("kendo.splitbutton.js"),require("kendo.dropdownbutton.js"),require("kendo.buttongroup.js"),require("kendo.menu.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.splitbutton","kendo.dropdownbutton","kendo.buttongroup","kendo.menu","kendo.icons"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).kendo=t.kendo||{},t.kendo._globals=t.kendo._globals||{},t.kendo._globals.Toolbar={}))}(this,(function(t){!function(t,e){var o=window.kendo,n=o.ui.Widget,l=o.isFunction,s=o.keys,i=o._outerWidth,r=".kendoToolBar",a="toolbar",d="k-button",u="k-button-group",c="k-split-button",p="k-menu-button",h="k-toolbar-separator k-separator",f="k-spacer",m="k-selected",v="k-disabled",g="k-hidden",b="k-force-hidden",w="k-group-start",_="k-group-end",k="k-menu-link",C="k-menu-item",B="k-toolbar-overflow-button",T="k-toolbar-item",S="k-menu-link-toggle",I="k-dropdownlist",M="k-input-button",y="k-focus",x="[tabindex=-1]",A="toolbar-tool",O="aria-checked",E="aria-label",D="change",z="click",P="toggle",W="open",N="close",R="focus",j="keydown",F="spacer",q="role",U="ref-",$="separator",G="overflow",L="tabindex",H="input",V="select",K="group",Q="data-uid",J="[data-role]",X="[data-toggle]",Y="[data-role=buttonmenu]",Z="[ref-toolbar-tool]",tt=":kendoFocusable:not([class*='pager'])",et="overflowOpen",ot="overflowClose",nt="never",lt="auto",st="always",it=o.attr("uid"),rt="",at="_",dt=" ",ut=".",ct=",",pt="id",ht="uid",ft="kendoDropDownButton",mt="kendoSplitButton",vt="kendoToggleButton",gt="kendoButtonGroup";o.toolbar={};var bt={button:"Button",splitButton:"SplitButton",dropDownButton:"DropDownButton",buttonGroup:"ButtonGroup",popupButton:"Button",open:"Button"},wt={Button:"k-toolbar-button",ToggleButton:"k-toolbar-toggle-button",SplitButton:"k-toolbar-split-button",DropDownButton:"k-toolbar-menu-button",ButtonGroup:"k-toolbar-button-group",ColorPicker:"k-toolbar-color-picker",Switch:"k-toolbar-switch"},_t=["Button","SplitButton","DropDownButton","ButtonGroup","Switch","ColorPicker"],kt=`<button class="k-popup-button"><span class="k-button-icon k-icon"></span><span class="k-button-text">${o.ui.icon("caret-alt-down")}</span></button>`,Ct='<div role="separator"> </div>',Bt=n.extend({init:function(e,l){if(n.fn.init.call(this,e,l),l=this.options,this._isRtl=o.support.isRtl(e),this.uid=o.guid(),(e=this.wrapper=this.element).attr(it,this.uid),e.addClass("k-toolbar"),e.attr(q,a),l.resizable?(this.hasOverflowButton=["section","menu"].includes(this.options.overflow?.mode),this._resizable()):l.overflow=t.extend({},l.overflow,{mode:"none"}),l.tools&&l.tools.length>0&&(l.items=this._extendToolsOptions()),l.items&&l.items.length&&this._items(),this._scrollable(),this._attachEvents(),this._tabIndex(),this._applyCssClasses(),l.resizable)if(this.hasOverflowButton){let t=this.element.find("> .k-toolbar-items").length>0?this.element.find("> .k-toolbar-items")[0].offsetWidth:this.element.innerWidth();this._shrink(t),this.overflowAnchorSeparator?.appendTo(this.wrapper),this.overflowAnchor?.appendTo(this.wrapper),this._toggleOverflowAnchor()}else this._toggleScrollButtons();o.notify(this)},events:[z,P,W,N,et,ot,D],options:{name:"ToolBar",items:[],resizable:!0,navigateOnTab:!1,evaluateTemplates:!1,size:"medium",fillMode:"solid",overflow:{mode:"menu",scrollButtons:"auto",scrollButtonsPosition:"split",scrollDistance:200}},destroy:function(){var e=this;e.options.resizable&&(o.unbindResize(e._resizeHandler),e.overflowMenu?.destroy?.(),e.overflowSection?.destroy?.()),"scroll"==e.options.overflow?.mode&&(e.element.find("> .k-toolbar-items").unbind("scroll"+r),e._removeScrollableClasses()),e.element.find(".k-popup-button").each(((e,o)=>{var n,l,s,i=t(o).getKendoButton();i&&(s=i.chooser,l=(n=i.popup).wrapper,s.destroy(),n.destroy(),l.remove())})),e.element.off(r),e.element.removeAttr(Q),o.destroy(e.element.children()),n.fn.destroy.call(e)},add:function(t){this._add(t),this.options.resizable&&this.resize(!0)},_scrollableAllowed:function(){const t=this.options;return t.overflow&&"scroll"==t.overflow.mode&&!t.overflow.scrollDistance&&(t.overflow.scrollDistance=200),"scroll"==t.overflow?.mode&&!isNaN(t.overflow.scrollDistance)},_getScrollButtonHtml:function(e,n){return o.html.renderButton(t(`<span class="k-toolbar-${e}"></span>`),{icon:n,type:"",size:this.options.size})},_getChildrenWidth:function(e){let o=0;return e.children().each((function(){o+=i(t(this))})),Math.floor(o)},_removeScrollableClasses:function(){const t=this,e="hidden"===t.options.overflow.scrollButtons;t.element.removeClass("k-toolbar-scrollable"),e&&(t.element.removeClass("k-toolbar-scrollable-overlay"),t.element.removeClass("k-toolbar-scrollable-start"),t.element.removeClass("k-toolbar-scrollable-end"),t.element.removeClass("k-toolbar-items-scroll"))},_scrollable:function(){const t=this,e=t.element,n=t.options,l=n.overflow.scrollButtonsPosition,s="hidden"===n.overflow.scrollButtons;if(t._scrollableAllowed()){let i,a;t.element.addClass("k-toolbar-scrollable");let d=!0;t.element.wrapInner(`<div class="k-toolbar-items ${d?"k-toolbar-items-scroll":""}"></div>`);const u=e.find("> .k-toolbar-items"),c=t.element[0].offsetWidth,p=u[0].scrollWidth,h=t._getChildrenWidth(u)>u.outerWidth(),f=p>c||h;if(f&&!t._scrollableModeActive&&s)t.element.addClass("k-toolbar-items-scroll"),t.element.addClass("k-toolbar-scrollable-overlay"),t._scrollableModeActive=!0,t._toggleScrollButtons();else if(!f&&s||t._scrollableModeActive)t._scrollableModeActive&&!f&&s?(t._scrollableModeActive=!1,t._removeScrollableClasses(),t._scrollPrevButton&&t._scrollPrevButton.off().remove(),t._scrollNextButton&&t._scrollNextButton.off().remove()):!t._scrollableModeActive&&s?t._removeScrollableClasses():t._toggleScrollButtons();else{t._nowScrollingTabs=!1,t._isRtl=o.support.isRtl(t.element);const e=o.support.touch?"touchstart":"mousedown",s=o.support.touch?"touchend":"mouseup",d=o.support.browser,u=t._isRtl&&!d.msie&&!d.edge,c=t._isRtl?"caret-alt-right":"caret-alt-left",p=t._isRtl?"caret-alt-left":"caret-alt-right",h=this._getScrollButtonHtml("prev",c),f=this._getScrollButtonHtml("next",p);switch(l){case"split":t.element.prepend(h),t.element.append(f);break;case"start":t.element.prepend(f),t.element.prepend(h);break;case"end":t.element.append(h),t.element.append(f)}i=t._scrollPrevButton=t.element.children(".k-toolbar-prev"),a=t._scrollNextButton=t.element.children(".k-toolbar-next"),i.on(e+r,(function(){t._nowScrollingTabs=!0,t._scrollTabsByDelta(n.overflow.scrollDistance*(u?1:-1))})),a.on(e+r,(function(){t._nowScrollingTabs=!0,t._scrollTabsByDelta(n.overflow.scrollDistance*(u?-1:1))})),i.add(a).on(s+r,(function(){t._nowScrollingTabs=!1,t._toggleScrollButtons()})),t._scrollableModeActive=!0,t._toggleScrollButtons()}}},_scrollTabsByDelta:function(t){const e=this,n=e.element.find("> .k-toolbar-items");let l=o.scrollLeft(n);const s=o.support.browser;e._isRtl&&(s.mozilla||s.webkit&&s.version>=85)&&(l*=-1);const i={scrollLeft:l+t};n.finish().animate(i,"fast","linear",(function(){e._nowScrollingTabs&&!jQuery.fx.off&&e._scrollTabsByDelta(t)}))},_toggleScrollButtons:function(t){const e=this;if(!e._scrollableAllowed())return;let n=e.element.find("> .k-toolbar-items"),l=Math.floor(o.scrollLeft(n)),s=e.options.overflow.scrollButtons;const i=Math.abs(l-(n[0].scrollWidth-n[0].offsetWidth))<=1,r=0===l;if("hidden"!==s){if(e._scrollPrevButton.toggleClass(v,r),e._scrollNextButton.toggleClass(v,i),"auto"===s){const o=t||n[0].scrollWidth-n[0].offsetWidth<=1;e._scrollPrevButton.toggleClass(g,o),e._scrollNextButton.toggleClass(g,o)}}else e.element.toggleClass("k-toolbar-scrollable-start",r),e.element.toggleClass("k-toolbar-scrollable-end",i)},enable:function(e,n){var l,s,i=this,r=this._getUid(e),a=this._getItem(e,r),d=this._getOverflowItem(e,r),u=a.component;function c(t){t.component?(s=u.wrapper,l=s.hasClass(y)||s.is(":focus"),u.enable(n),s.find("[disabled]").removeAttr("disabled"),s.removeAttr("disabled"),l&&s.addClass(y).trigger(R)):t.buttonsPopupItem.length>0&&o.widgetInstance(t.buttonsPopupItem.closest(".k-menu-popup")).enable(n,t.buttonsPopupItem)}void 0===n&&(n=!0),this.overflowSection&&d&&c(d),a&&(c(a),this.overflowMenu&&(this.overflowMenu.enable(a.menuItem,n),this.overflowMenu.element.find("[data-parentuid="+r+"]").each(((e,o)=>{i.overflowMenu.enable(t(o),n)}))))},getSelectedFromGroup:function(t){return this.element.find("[data-group='"+t+"']").filter(ut+m)},hide:function(e){var o,n,l=this,s=this._getUid(e),i=l._getItem(e,s),r=l._getOverflowItem(e,s);function a(t,e){(o=t.templateEl.add(t.toolbarEl).add(t.buttonsPopupItem).add(t.menuItem)).addClass(g),o.addClass(b),n=t.toolbarEl.parent().closest(ut+u),n.data(gt)&&(0===n.children(":not(.k-hidden)").length?l.hide(n):l._groupVisibleButtons(n)),o.find("[tabindex=0]").addBack("[tabindex=0]").length>0&&l._resetTabIndex(l._getAllItems(e).first())}(i||r)&&(this.overflowSection&&r&&a(r,!0),i&&(a(i),this.overflowMenu&&this.overflowMenu.element.find("[data-parentuid="+s+"]").each(((e,o)=>{t(o).addClass(b),t(o).addClass(g)}))),this.options.resizable&&this.resize(!0))},remove:function(e){var o,n=this,l=this._getUid(e),s=this._getItem(e,l),i=this._getOverflowItem(e,l);function r(e){e.component&&((o=e.toolbarEl.closest('[data-role="buttongroup"]')).length>0&&0===e.toolbarEl.siblings().length?(o.data(gt).destroy(),o.remove(),e.toolbarEl=t(rt)):e.component.destroy()),e.templateEl.length>0?e.templateEl.remove():e.toolbarEl.length>0&&e.toolbarEl.remove(),e.buttonsPopupItem.length>0&&e.buttonsPopupItem.remove()}(s||i)&&(this.overflowSection&&i&&r(i),s&&(r(s),this.overflowMenu&&(this.overflowMenu.remove(s.menuItem),this.overflowMenu.element.find("[data-parentuid="+l+"]").each(((e,o)=>{n.overflowMenu.remove(t(o))})))),this.options.resizable&&this.resize(!0))},show:function(e){var o,n,l=this,s=this._getUid(e),i=this._getItem(e,s),r=this._getOverflowItem(e,s);function a(t){(o=t.templateEl.add(t.toolbarEl).add(t.buttonsPopupItem)).removeClass(b),o.removeClass(g),n=t.toolbarEl.parent().closest(ut+u),n.data(gt)&&(n.hasClass("k-hidden")&&n.children(":not(.k-hidden)").length>0?l.show(n):l._groupVisibleButtons(n))}this.overflowSection&&r&&a(r),i&&(a(i),i.menuItem.removeClass(b),this.overflowMenu&&this.overflowMenu.element.find("[data-parentuid="+s+"]").each(((e,o)=>{t(o).removeClass(b)}))),this.options.resizable&&this.resize(!0)},toggle:function(o,n){var l=this._getItem(o),s=this._getOverflowItem(o),i=l.menuItem;function r(e){const o=e.toolbarEl,l=o.data(vt);if(!e.component&&0===i.find(ut+S).length)return;const s=o.data(K);if(e.component){const e=o.closest(ut+u).data(gt);if(e&&o.hasClass(m)!==n&&e._toggleIndex(o.index()),l.toggle(n),n){o.closest(".k-toolbar,.k-toolbar-popup").find("[data-group="+s+"]").each(((e,n)=>{n!==o[0]&&t(n).data(vt).toggle(!1)}))}}}if(n===e&&(n=!0),this.overflowSection&&s&&r(s),l&&(r(l),i)){const e=l.toolbarEl.data(K);if(i.attr(O,n).find(ut+S).toggleClass(m,n),n&&this.overflowMenu){this.overflowMenu.element.find("[data-group="+e+"]").each(((e,o)=>{o!==i[0]&&t(o).attr(O,!1).find(ut+S).removeClass(m)}))}}},toggleTools:function(e){var n=this,l=n.element.find(X),s=n.element.find(tt).not(x);l.each((function(l,s){var i=t(s),r=null,a=i.data(P),d=e&&e[a];i.is(J)&&(r=o.widgetInstance(i)),r&&r.enable?r.enable(d||!1):n.enable(i,d)})),n.element.find(X+"[disabled]").removeAttr("disabled"),n.element.find(tt).not(x).attr("tabindex",-1),s.attr(L,0)},_generateToolElement:function(t,e,n,l){let s;return t||e?s=this._addTemplate(l):o.ui[l.component]?s=this._addCustomWidget(l):n?s=this._addDefaultTool(n,l):l.type===F?this._addSpacer():l.type===$&&this._addSeparator(l),s},_add:function(t){var e=this._processOptions(t),o=e.template,n=e.overflowTemplate,l=bt[e.type];let s;if(e.overflow===st&&"menu"!=this.options.overflow?.mode||(s=this._generateToolElement(o,n,l,e),s&&e.overflow!==st&&(this.overflowAnchor&&this.overflowAnchorSeparator?s.insertBefore(this.overflowAnchorSeparator):s.appendTo(this.element),s.find("[disabled]").removeAttr("disabled"),s.is("[disabled]")&&s.removeAttr("disabled"))),"section"==this.options.overflow?.mode&&e.overflow!==nt){if(e.type===F)return this._addSpacer(this._overflowSectionContentElement());if(e.type===$)return;let t=this._generateToolElement(o,n,l,e);t&&(this._overflowSectionContentElement().append(t),e.overflow!==st&&t.addClass(g),t.find("[disabled]").removeAttr("disabled"),t.is("[disabled]")&&t.removeAttr("disabled"),t.attr("ref-section-tool",s?.attr("data-uid")||""))}},_addAttributes:function(t,e){var o=t.attributes,n=rt;o||(o={}),t.hidden&&(n=g+dt+b),t.align&&(n=n+" k-align-"+t.align),o&&(o.class&&(n=n+dt+o.class,delete o.class),e.attr(o)),e.addClass(n),e.attr(it,t.uid),t.id&&e.attr(pt,t.id),t.overflow===nt&&e.attr("data-overflow",nt),t.items&&t.items.forEach((t=>{t&&t.groupClass&&!e.hasClass(t.groupClass)&&e.addClass(t.groupClass)}))},_addCustomWidget:function(e){var n,l,s,i=t(e.element||"<input>");return e.overflowComponent&&this._addMenuItem(e.overflowComponent.type,t.extend({},e,e.overflowComponent)),e.attributes&&(s=e.attributes.class,delete e.attributes.class,i.attr(e.attributes),delete e.attributes[E]),e.componentOptions||(e.componentOptions={}),e.componentOptions.size=this.options.size,n=new o.ui[e.component](i,e.componentOptions),_t.indexOf(e.component)>-1?(n.wrapper.addClass(wt[e.component]).attr(U+A,""),l=n.wrapper):l=(n.wrapper||n.element).wrap("<span class='k-toolbar-item' tabindex='0' ref-toolbar-tool >").parent(),e.attributes&&(e.attributes.class=s),this._addAttributes(e,l),l},_addDefaultTool:function(e,o){var n,l;let s=this;return(o.overflow!==st||s.overflowSection&&o.overflow!==nt)&&(n=s._addToolbarTool(e,t.extend(!0,{},o))),s.overflowMenu&&o.overflow!==nt&&(o.overflowComponent?(delete(l=t.extend(!0,{},o,o.overflowComponent))["data-command"],s._addMenuItem("Button",l)):s._addMenuItem(e,t.extend(!0,{},o))),n},_addMenuItem:function(n,l){var s,i=this,r=l.selected;return delete l.selected,l.id&&(l.id=l.id+at+G),l.showIcon===a&&(delete l.imageUrl,delete l.icon),l.showText===a?(l.attributes||(l.attributes={}),l.attributes[E]=l.text,l.text=rt):l.text!==e&&l.text!==rt||(l.text=" ",l.encoded=!1),i.overflowMenu?.append(l),s=i.overflowMenu.element.find(ut+C).last(),l.icon&&s.find(ut+k).prepend(o.ui.icon(l.icon)),"ToggleButton"===n||"Button"===n&&!0===l.togglable?(s.find(ut+k).addClass(S),r&&s.find(ut+k).addClass(m),l.group&&s.attr("data-group",l.group)):l.menuButtons?l.menuButtons.forEach((t=>{t.overflow=l.overflow,i._addMenuItem(null,t)})):l.buttons&&(s.remove(),s=null,l.buttons.forEach((e=>{var o=e.attributes;e.overflow=l.overflow,e.attributes=t.extend(o,l.attributes),i._addMenuItem("Button",e)}))),"DropDownButton"===n&&(s.addClass(v),s.attr("aria-disabled",!0)),s&&(i._addAttributes(l,s),l.overflow===lt&&s.addClass(g),(l.click||l.toggle)&&i.overflowMenu.bind(V,(t=>{t.item===s[0]&&this._onMenuItemSelect(t,l.click,l.toggle)}))),s},_addPopupButton:function(e){var o,n,l=this,s=t(kt),i=e.popupComponent;return s.attr(E,e.text),o=t("<div/>").appendTo(t("<body>")).kendoPopup({anchor:s}).data("kendoPopup"),s.on(z+" touchend",(t=>{o.toggle(),t.preventDefault()})),(n=new i(o.element)).bind(e.commandOn,(t=>{l.trigger(D,{target:s,value:t.value||t}),o.close()})),{widgetElement:s,chooser:n,popup:o}},_addSeparator:function(e){var o=t(Ct),n=t("<li role='separator' class='k-separator k-menu-separator k-hidden'></li>");const l=e.id;if(o.addClass(h),o.attr(q,$),this.overflowAnchor&&this.overflowAnchorSeparator?o.insertBefore(this.overflowAnchorSeparator):o.appendTo(this.element),this._addAttributes(e,o),e.id&&(e.id=e.id+at+G),this._addAttributes(e,n),this.overflowMenu&&this.overflowMenu.element.append(n),this.overflowSection){const o=t(Ct).addClass(h).addClass(g).attr(q,$).attr("ref-section-tool",e.uid);let n=l?t.extend(!0,e,{id:l+at+"section-overflow"}):e;this._addAttributes(n,o),this._overflowSectionContentElement().append(o)}},_addSpacer:function(e){var o=t("<div> </div>");o.addClass(f),this.overflowAnchor&&this.overflowAnchorSeparator?o.insertBefore(this.overflowAnchorSeparator):o.appendTo(e||this.element)},_overflowSectionContentElement:function(){return this.overflowSection?.element.find(".k-toolbar-items-list")},_addTemplate:function(e){var n,s,i=e.template,r=e.overflowTemplate,a=t(rt);return r&&this.overflowMenu&&e.overflow!==nt&&(r=l(r)?r(e)[0]:r,this.overflowMenu.append({}),s=this.overflowMenu.element.find(ut+C).last().find(ut+k).html(r).parent()),i&&e.overflow!==st&&(this.options.evaluateTemplates&&(i=o.template(i)),i=l(i)?i(e):i,(n=t("<div class='k-toolbar-item' aria-keyshortcuts='Enter'></div>")).html(i),s&&s.addClass(g)),n&&(a=n.find(H+ct+V),this._addAttributes(e,n)),s&&(a.add(s.find(H+ct+V)),this._addAttributes(e,s)),!this.options.navigateOnTab&&a.length>0&&(n.attr(L,0),n.attr(U+A,""),a.attr(L,-1)),n},_addToolbarTool:function(e,n){var l,s,i,r=t("<button>"),a=!1;return!0===n.primary&&(n.themeColor="primary"),n.url&&(r=t("<a href='"+o.sanitizeLink(n.url)+"'>")),n.showIcon===G&&(delete n.imageUrl,delete n.icon),n.showText!==G?r.text(n.text):r.attr(E,n.text),"popupButton"===n.type?r=(i=this._addPopupButton(n)).widgetElement:"Button"===e&&!0===n.togglable?e="ToggleButton":n.menuButtons?(n.items=n.menuButtons,delete n.menuButtons,n.attributes&&n.attributes.class&&r.addClass(n.attributes.class),r.attr(Q,n.uid),delete n.uid):n.buttons&&(r=t("<span></span>"),a=!0,n.items=n.buttons,delete n.buttons,n.preventKeyNav=!0,n.items.forEach((t=>{t.showIcon===G&&(delete t.imageUrl,delete t.icon),t.showText===G&&(t.attributes||(t.attributes={}),t.attributes[E]=t.text,delete t.text)}))),n.id&&(r.attr(pt,n.id),delete n.id),n.name&&delete n.name,n.size=this.options.size,(s=(l=new o.ui[e](t(r),n)).wrapper||l.element).addClass(wt[e]),this._addAttributes(n,s),n.url&&r.removeAttr(q),a?(s.find(ut+d).attr(U+A,""),this._groupVisibleButtons(s)):l.element.attr(U+A,""),"popupButton"!==n.type&&"open"!==n.type?this._attachWidgetEvents(l):"open"===n.type?(r.addClass("k-upload-button"),this._resetOpen(r,n.extensions),s=r.parent()):(l.chooser=i.chooser,l.popup=i.popup),s},_attachEvents:function(){var t=this,e=t.options;t.element.on(j+r,t._keydown.bind(t)).on("focusin"+r,t._focusIn.bind(t)).on("focusout"+r,t._focusOut.bind(t)),"section"==e.overflow?.mode&&t.overflowSection&&t._overflowSectionContentElement().on(j+r,t._keydown.bind(t)),"scroll"==e.overflow?.mode&&t.element.find("> .k-toolbar-items").bind("scroll",(function(e){t._nowScrollingTabs||t._toggleScrollButtons()}))},_attachWidgetEvents:function(e){var o=this;e.bind(z,o._onClick.bind(o)),e.bind(P,o._onToggle.bind(o)),e.bind(V,o._onSelect.bind(o)),e.bind(W,o._onOpen.bind(o)),e.bind(N,o._onClose.bind(o)),e.wrapper.find(ut+d).each(((e,n)=>{var l=t(n);l.data("kendoButton")&&l.data("kendoButton").bind(z,(t=>{o.trigger(z,{id:t.id,target:t.target,originalEvent:t.originalEvent||t.event})}))}))},_childrenWidth:function(){var e=parseInt(this.element.css("gap"),10)||0,o=e;return(this.element.find("> .k-toolbar-items").length>0?this.element.find("> .k-toolbar-items"):this.element).children(":visible:not(."+f+")").each((function(){o+=i(t(this),!1)+e})),Math.ceil(o)},_extendToolsOptions:function(){var t=this.options,e=t.tools.flatMap((e=>this._mapTool(e,t.parentMessages,t.defaultTools)));return this.options.items=e,e},_focusIn:function(e){var o=t(e.target).closest(ut+d);o.length>0&&(this._resetTabIndex(o),o.addClass(y))},_focusOut:function(t){this.wrapper.find(ut+d+ut+y).removeClass(y)},_getAllItems:function(t){return(1==t?this._overflowSectionContentElement():this.wrapper).find(Z).filter(":visible").filter(((t,e)=>"hidden"!==e.style.visibility))},_getOverflowItem:function(t,e){return this._getItem(t,e,this._overflowSectionContentElement())},_getItem:function(e,n,l){var s,i,r=n||this._getUid(e),a=t(Y);return r?(s="[data-uid="+r+"]",{toolbarEl:i=(l||this.element).find(s),templateEl:i.closest(ut+T+ct+ut+c),component:o.widgetInstance(i),menuItem:this.overflowMenu?this.overflowMenu.element.find(s):t(rt),buttonsPopupItem:a.find(s)}):{toolbarEl:(l||this.element).find(e),templateEl:t(rt),menuItem:this.overflowMenu?this.overflowMenu.element.find(e):t(rt),buttonsPopupItem:t(rt)}},_getNextElement:function(e,o){const n=t(e).closest(".k-toolbar-popup").length>0;var l=this._getAllItems(n),s=-1===l.index(e)?l.index(e.parentElement):l.index(e),i=l[s+o];return i||(i=-1===o?l.last():l.first()),i},_getUid:function(e){var o;return(o=this.element.find(e)).length||(o=t(Y).find(e)),!o.length&&this.overflowMenu&&(o=this.overflowMenu.element.find(e)),!o.length&&this.overflowSection&&(o=this._overflowSectionContentElement().find(e)),o.length?o.data(ht)||o.closest(Z).data(ht):null},_groupVisibleButtons:function(t){var e,o=t.children();o.removeClass(_).removeClass(w),(e=o.filter(":not('."+g+"')")).first().addClass(w),e.last().addClass(_)},_hideItem:function(e){var o=this;e.addClass(g),this.overflowSection&&this._overflowSectionContentElement().find(`[ref-section-tool=${e.data("uid")}]`).removeClass(g),o.overflowMenu&&(e.hasClass(c)||e.hasClass(p)?((e.hasClass(c)?(e=e.children().eq(0)).data(mt):e.data(ft)).menu.list.children().each(((e,n)=>{o._showMenuItem(t(n))})),o._showMenuItem(e)):e.hasClass(u)?e.children().each(((e,n)=>{o._showMenuItem(t(n))})):o._showMenuItem(e))},_hideMenuItem:function(t){this.overflowMenu.element.find(">li[data-uid='"+t.data(ht)+"']").addClass(g)},_items:function(){let t=this.options;for(var e=0;e<t.items.length;e++)this._add(t.items[e])},_keydown:function(e){var o=t(e.target),n=e.keyCode,l=o.closest(ut+T),i=o.is(ut+B);const r=o.closest(".k-toolbar-popup").length>0;if(!this.options.navigateOnTab&&!o.is(Z)&&n===s.ESC&&l.length>0)return e.stopPropagation(),void this._keyDeactivateTemplate(l);o.is(Z)&&(!this.options.navigateOnTab&&n===s.ENTER&&o.hasClass(T)?this._keyActivateTemplate(o):r&&n===s.ESC?(this.overflowSection.close(),this.element.trigger(R)):i&&(e.altKey&&n===s.DOWN||n===s.SPACEBAR)?this._keyOpenOverflow(e,n):n===s.HOME?this._keyFocusFirst(o,e):n===s.END?this._keyFocusLast(o,e):this.options.navigateOnTab||n!==s.RIGHT&&n!==s.LEFT||this._keyFocusNext(n,e))},_keyActivateTemplate:function(t){var e=t.find(tt+":not('"+ut+M+"')"+ct+ut+I);const o=t.find(".k-pager");o.length>0?o.trigger(R):e.length>0&&(t.attr(L,-1),e.attr(L,0),e.first().trigger(R))},_keyDeactivateTemplate:function(t){var e,n=t.find(J),l=t.find(tt+":not('"+ut+M+"')"+ct+ut+I);if(n.length>0&&(e=o.widgetInstance(n))){if(e.overflowMenu&&e.overflowMenu.visible())return;t.attr(L,0),t.trigger(R),t.find(tt).attr(L,-1)}l.length>0&&(t.attr(L,0),t.trigger(R),l.attr(L,-1))},_keyFocusFirst:function(t,e){const o=t.closest(".k-toolbar-popup").length>0;var n=this._getAllItems(o);t.is(ut+I)||t.is(H)||(this._resetTabIndex(n.first()),n.first().trigger(R),e.preventDefault())},_keyFocusLast:function(t,e){const o=t.closest(".k-toolbar-popup").length>0;var n,l=this._getAllItems(o);t.is(ut+I)||t.is(H)||(0===(n=l.last()).width()&&(n=l.eq(l.length-2)),this._resetTabIndex(n),n.trigger(R),e.preventDefault())},_keyFocusNext:function(e,o){var n,l=this._isRtl?-1:1;e===s.LEFT&&(l*=-1),n=t(this._getNextElement(o.target,l)),this._resetTabIndex(n),n.trigger(R),o.preventDefault()},_keyOpenOverflow:function(t,e){e===s.SPACEBAR&&t.preventDefault(),(this.overflowMenu||this.overflowSection).open()},_mapAttributes:function(t,e){return{"aria-label":e[t.name||t.property],title:e[t.name||t.property],"data-command":t.command,"data-options":t.options,"data-dialog":t.dialog,"data-property":t.property,"data-value":t.value,"data-toggle":t.toggleCondition}},_mapComponent:function(e,o){var n,l=this,s=e.componentOptions,i=s.messages,r=s.placeholder,a=t.extend({},l._mapAttributes(e,o),e.attributes);return e.overflowComponent&&(n=e.options||{},e.componentOptions.dataSource&&(n.options=e.componentOptions.dataSource),e.componentOptions.value&&(n.default=e.componentOptions.value),Object.keys(n).length>0&&(e.overflowComponent.options=JSON.stringify(n)),e.overflowComponent=l._mapTool(e.overflowComponent,o)),i&&Object.keys(i).forEach((t=>{e.componentOptions.messages[t]=o[i[t]]||i[t]})),r&&(e.componentOptions.placeholder=o[r]||r),Object.keys(s).forEach((t=>{"commandOn"===t&&(e.componentOptions[s[t]]=t=>{l.trigger(D,{target:t.target||t.sender.element})})})),s.dataSource&&s.dataSource.length&&(e.componentOptions.dataSource=s.dataSource.map((t=>(t.name&&o[t.name]&&(t.text=o[t.name]),t)))),e.attributes=a,e},_mapTool:function(e,n,l){let s,i,r,a,d=this,u=Array.isArray(e),c=t.isPlainObject(e),p=c&&Object.keys(e).length;return u?{type:"buttonGroup",buttons:e.map((t=>d._mapTool(t,n,l)))}:(s=c&&(1===p||2===p)&&e.name,a=s?e:{},e=s?e.name:e,i=t.isPlainObject(e)?e:t.extend({},l[e]),r=t.extend({},d._mapAttributes(i,n),i.attributes),o.deepExtend(i,{text:a.text||n[i.name||i.property],attributes:r}),"component"===i.type?i.items?i.items.map((t=>d._mapComponent(t,n))):d._mapComponent(i,n):("buttonGroup"===i.type?(delete i.attributes[E],i.buttons=i.buttons.map((t=>d._mapTool(t,n,l)))):"splitButton"===i.type?(delete i.attributes[E],i.menuButtons=i.menuButtons.flatMap((t=>d._mapTool(t,n,l)))):"popupButton"===i.type&&i.overflowComponent&&(i.overflowComponent=d._mapTool(i.overflowComponent,n)),delete i.name,i))},_menuItemSelect:function(e){var o,n,l=t(e.item),s=l.attr(pt),i=l.find(ut+S),r=l.data(K);s&&s.indexOf(at+G)>-1&&(s=s.replace(at+G,rt)),i.length?(r&&this.overflowMenu.element.find("[data-group="+r+"]").each(((e,o)=>{var n=t(o);n.attr(O,!1),n.find(ut+S).removeClass(m)})),o=!!r||!i.hasClass(m),i.toggleClass(m,o),l.attr(O,o),(n=this.element.find("[data-uid="+l.data(ht)+"]")).length&&(n.closest(ut+u).length?n.closest(ut+u).data(gt).select(n):(r&&this.element.find("[data-group="+r+"]").each(((e,o)=>{t(o).data(vt).toggle(!1)})),n.data(vt).toggle(!0))),this.trigger(P,{id:l.attr(pt),target:l,checked:o})):this.trigger(z,{id:s,target:l})},_onClick:function(t){var e=t.target,o=e.hasClass("k-toolbar-toggle-button"),n=e.data(K);o||this.trigger(z,{id:t.id,target:t.target,originalEvent:t.originalEvent||t.event}),n&&this.element.find("[data-group="+n+"]").length>1&&e.hasClass(m)&&t.preventDefault()},_onClose:function(t){this.trigger(N,{widget:t.sender})&&t.preventDefault()},_onMenuItemSelect:function(e,o,n){var l=t(e.item),s=l.find(ut+S).length>0,i=l.attr(pt);i&&i.indexOf(at+G)>-1&&(i=i.replace(at+G,rt)),o&&o.bind(this)({event:e.event,id:i,target:l}),s&&n&&setTimeout((()=>{n.bind(this)({event:e.event,id:i,target:l,checked:l.find(ut+m).length>0})}))},_onOpen:function(t){this.trigger(W,{widget:t.sender})&&t.preventDefault()},_onSelect:function(e){let n=this;var l=this.overflowMenu?this.overflowMenu.element:t(rt);e.sender.element.children().each(((e,s)=>{var i=t(s),r=`[data-uid=${i.data(ht)}]`,a=i.hasClass(m);if(l.find(r).attr(O,a).find(ut+S).toggleClass(m,a),n.overflowSection){let t=n.element.find(r),e=n.overflowSection.element.find(r),l=o.widgetInstance(t[0]==s?e:t);l?.toggle?.(a)}})),this.trigger(P,{id:e.target.attr(pt),target:e.target,checked:e.target.hasClass(m)})},_onToggle:function(e){var n,l=this,s=e.target,i=s.data(K);if(l.overflowMenu&&(n=l.overflowMenu.element.find("[data-uid="+s.attr(Q)+"]"),l.overflowMenu.element.find("[data-group="+i+"]").attr(O,!1).find(ut+S).removeClass(m),n.attr(O,!0).find(ut+S).addClass(m)),l.overflowSection){let t=l.element.find("[data-uid="+s.attr(Q)+"]");n=l.overflowSection.element.find("[data-uid="+s.attr(Q)+"]");let i=o.widgetInstance(t[0]==e.target[0]?n:t);i?.toggle?.(e.checked)}i&&l.element.find("[data-group="+i+"]").each(((e,o)=>{o!==s[0]&&t(o).data(vt).toggle(!1)})),this.trigger(P,{id:e.id,target:e.target,checked:e.checked,originalEvent:e.originalEvent||e.event})},_processInner(t,e){for(var n,l=0;l<t.length;l++)(n=t[l]).attributes||(t[l].attributes={}),t[l].attributes[Q]=o.guid(),t[l].attributes["data-parentuid"]=e,n.id&&(t[l].attributes[pt]=t[l].id),n.hidden&&(t[l].attributes.class||(t[l].attributes.class=rt),t[l].attributes.class+=dt+g+dt+b);return t},_processOptions:function(n){let l,s=n.template,i=n.overflowTemplate,r=o.guid();return t.extend(n,{uid:r,fillMode:n.fillMode?n.fillMode:this.options.fillMode,rootUid:this.uid}),n.menuButtons?n.menuButtons=this._processInner(n.menuButtons,r):n.buttons&&n.buttons.length&&(n.buttons=this._processInner(n.buttons,r),n.buttons.some((t=>t.togglable))?(l=n.buttons[0].group,l&&n.buttons.every((t=>t.group===l))?n.selection="single":n.selection="multiple"):n.selection="none"),s&&!i||n.type===F?n.overflow=nt:n.overflow||(n.overflow=lt),n.enable!==e&&(n.enabled=n.enable),n},_renderOverflow:function(){var e=this,n=e._isRtl?"left":"right";const l=e.options.overflow?.mode;"section"!==l&&"menu"!==l||(e.overflowAnchorSeparator=t(`<div class="k-toolbar-separator k-toolbar-button-separator k-separator" ${q}="${$}"></div>`),e.overflowAnchor=t("<button class='k-toolbar-overflow-button' title='More tools'>"),e.overflowAnchor.attr(U+A,""),e.element.append(e.overflowAnchorSeparator),e.element.append(e.overflowAnchor),e.overflowAnchor.kendoButton({icon:"menu"==l?"more-vertical":"more-horizontal",fillMode:"flat",size:e.options.size,click:function(t){"section"==l&&e.overflowSection.open()}}),e.options.navigateOnTab||e.overflowAnchor.attr(L,-1),"section"==l&&(e.overflowSection=new o.ui.Popup(t(`<div class="k-toolbar-popup"><div class="k-toolbar-items-list ${o.getValidCssClass("k-toolbar-items-list-","fill",e.options.fillMode)} ${o.getValidCssClass("k-toolbar-items-list-","size",e.options.size)}"></div></div>`),{anchor:e.element,origin:"bottom left",position:"top left",open:function(t){if(e.trigger(et))return t.preventDefault();e.overflowSection.element.width(e.element.outerWidth())},activate:function(t){let o=e._getAllItems(!0).first();e._resetTabIndex(o),o.trigger(R)},close:function(t){e.trigger(ot)?t.preventDefault():(e._resetTabIndex(e.overflowAnchor),e.overflowAnchor.trigger(R))}})),"menu"==l&&(e.overflowMenu=new o.ui.ContextMenu(t("<ul>"),{size:e.options.size,showOn:"click tap",origin:"bottom "+n,position:"top "+n,alignToAnchor:!0,target:e.overflowAnchor,open:function(t){e.trigger(et)&&t.preventDefault()},close:function(t){e.trigger(ot)?t.preventDefault():(e._resetTabIndex(e.overflowAnchor),e.overflowAnchor.trigger(R))}}),e.overflowMenu.element.attr(it,this.uid),setTimeout((()=>{e.overflowMenu.bind(V,e._menuItemSelect.bind(e))}))))},_resetOpen:function(e,n){var l,s,i=this;e.closest(".k-upload-button-wrap").find("input").remove(),l=e.wrap("<div class='k-upload-button-wrap'></span>").parent(),s=t("<input type='file' autocomplete='off' accept='"+n+"'/>").attr("aria-hidden",!0).one("change",(t=>{i.trigger(D,{target:e,value:t.target.files[0]}),i._resetOpen(e,n)})).appendTo(l),e.off(j).on(j,(t=>{t.keyCode===o.keys.ENTER&&s.trigger(z)}))},_resetTabIndex:function(t){if(!0!==this.options.navigateOnTab){(t.closest(".k-toolbar-popup").length>0?this._overflowSectionContentElement():this.wrapper).find(tt).attr(L,-1),t.attr(L,0)}},_resizable:function(){var t=this,e=t.element;t._renderOverflow(),e.addClass("k-toolbar-resizable"),t._resizeHandler=o.onResize((function(){t.resize()}))},_resize:function(e){var n=e.width,l=this.element,s=l.find('[data-role="splitbutton"]').add(l.find('[data-role="dropdownbutton"]'));this.options.resizable&&(this.overflowMenu?.close(),this.overflowSection?.close(),s.length>0&&s.each(((e,n)=>{o.widgetInstance(t(n)).close()})),this.hasOverflowButton?(this._shrink(n),this._stretch(n),this._toggleOverflowAnchor()):this._toggleScrollButtons())},_shrink:function(e){var o,n,l;let s=this.element.find("> .k-toolbar-items").length>0?this.element.find("> .k-toolbar-items"):this.element;if(e<this._childrenWidth())for(var i=(n=s.children(":visible:not([data-overflow='never'], ."+B+")")).length-1;i>=0&&(o=n.eq(i),!(e>this._childrenWidth()));i--)(l=o.find("[tabindex=0]")||o.is("[tabindex=0]")?o:t(rt)).length>0&&(l.attr(L,-1),this.element.children(ut+B).attr(L,0)),this._hideItem(o)},_showItem:function(e,o){var n=this,l=parseInt(this.element.css("gap"),10)||0;e.removeClass(g);var s=i(e,!0)+l;return e.addClass(g),!(!e.length||!(e.hasClass(f)||o>this._childrenWidth()+s))&&(e.removeClass(g),!0!==this.options.navigateOnTab?e.find(tt).attr(L,-1):e.is("[tabindex=-1]")&&e.removeAttr(L),this.overflowSection&&this._overflowSectionContentElement().find(`[ref-section-tool=${e.data("uid")}]`).addClass(g),this.overflowMenu&&(e.hasClass(c)||e.hasClass(p)?((e.hasClass(c)?(e=e.children().eq(0)).data(mt):e.data(ft)).menu.list.children().each(((e,o)=>{n._hideMenuItem(t(o))})),n._hideMenuItem(e)):e.hasClass(u)?e.children().each(((e,o)=>{n._hideMenuItem(t(o))})):n._hideMenuItem(e)),!0)},_showMenuItem:function(t){var e=this.overflowMenu.element.find(">li[data-uid='"+t.data(ht)+"']");e.hasClass(b)||e.removeClass(g)},_stretch:function(t){var e,o,n=this.element.children(ut+B);let l=this.element.find("> .k-toolbar-items").length>0?this.element.find("> .k-toolbar-items"):this.element;if(t>this._childrenWidth()){o=l.children(ut+g+":not("+ut+b+")");for(var s=0;s<o.length&&(e=o.eq(s),!(t<this._childrenWidth())&&this._showItem(e,t));s++);}!this.options.navigateOnTab&&n.is("[tabindex=0]")&&(n.attr(L,-1),this._resetTabIndex(this._getAllItems().first()))},_tabIndex:function(){var t=this.wrapper.find(tt+":not('"+x+"')"),e=t.first();!0!==this.options.navigateOnTab?(t.attr(L,-1),e.attr(L,0)):this.wrapper.find(".k-toolbar-item").removeAttr(L)},_toggleOverflowAnchor:function(){this.hasOverflowButton&&((this.overflowMenu?.element||this._overflowSectionContentElement()).children(":not(."+g+", .k-popup)").length>0?(this.overflowAnchor.removeClass(g),this.overflowAnchorSeparator.removeClass(g)):(this.overflowAnchor.addClass(g),this.overflowAnchorSeparator.addClass(g)))}});o.toolbar={Item:o.Class,OverflowButton:o.Class,TemplateItem:o.Class,ToolBarButton:o.Class,registerComponent:()=>null},o.cssProperties.registerPrefix("ToolBar","k-toolbar-"),o.cssProperties.registerValues("ToolBar",[{prop:"fillMode",values:["solid","flat"]}]),o.ui.plugin(Bt)}(window.kendo.jQuery);var e=kendo;t.__meta__={id:"toolbar",name:"ToolBar",category:"web",description:"The ToolBar widget displays one or more command buttons divided into groups.",depends:["core","splitbutton","dropdownbutton","buttongroup","menu","icons"]},t.default=e,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=kendo.toolbar.min.js.map