UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines 10.2 kB
/* @license */ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("kendo.core.min.js"),require("kendo.popup.min.js"),require("kendo.fx.min.js"),require("kendo.icons.min.js")):typeof define==`function`&&define.amd?define([`exports`,`kendo.core.min`,`kendo.popup.min`,`kendo.fx.min`,`kendo.icons.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Floatingactionbutton={}),e.kendo._globals.Core,e.kendo._globals.Popup,e.kendo._globals.Fx,e.kendo._globals.Icons))})(this,function(e,t,n,r,i){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let a={id:`floatingactionbutton`,name:`Floating Action Button`,category:`web`,description:`The Floating Action Button represents the primary action of a screen and provides the ability to display related actions.`,depends:[`core`,`icons`]};(function(e,t){var n=window.kendo,r=n.ui.Widget,i=`.kendoFloatingActionButton`,a=n.ui,o=n.keys,s=n.support,c=e.extend,l=n.htmlEncode,u=`.`,d=`id`,f=`k-hidden`,p=`left`,m=`right`,h=`top`,g=`bottom`,_=`center`,v=`start`,y=`auto`,b=`aria-disabled`,x=`aria-haspopup`,S=`aria-controls`,C=`aria-expanded`,w=`aria-label`,T=`role`,E=`menu`,D=`menuitem`,O=`tabindex`,k=`click`,A=`expand`,j=`collapse`,M=`keydown`,N=`kendoKeydown`,P=`mouseenter`+i+` mouseleave`+i,F={widget:`k-fab`,text:`k-fab-text`,icon:`k-fab-icon`,list:`k-fab-items`,listTop:`k-fab-items-top`,listBottom:`k-fab-items-bottom`,listTextLeft:`k-text-left`,listTextRight:`k-text-right`,item:`k-fab-item`,itemIcon:`k-fab-item-icon`,itemText:`k-fab-item-text`,popup:`k-fab-popup`,popupTransparent:`k-popup-transparent`,disabled:`k-disabled`,hover:`k-hover`,focus:`k-focus`},I={icon:({icon:e})=>n.ui.icon({icon:l(e),iconClass:`k-fab-icon`}),text:({text:e})=>`<span class="k-fab-text">${l(e)}</span>`,item:({text:e,icon:t})=>(e?`<span class="k-fab-item-text" aria-hidden="true">${l(e)}</span>`:``)+(t?n.ui.icon({icon:l(t),iconClass:`k-fab-item-icon`}):``)},L=r.extend({init:function(e,t){var i=this;r.fn.init.call(i,e,t),i._wrapper(),i._content(),i._appearance(),i._renderList(),i._initPopup(),i._aria(),i._attachEvents(),n.notify(i),r.fn.endInit.call(i)},options:{name:`FloatingActionButton`,icon:``,text:``,items:[],themeColor:t,fillMode:t,size:t,rounded:t,align:`bottom end`,alignOffset:{x:16,y:16},positionMode:`fixed`,visible:!0,enable:!0,enabled:!0,_classNames:[]},events:[k,A,j,N],_offsetMap:{start:p,end:m,top:h,bottom:g},_reversedOffsetMap:{start:m,end:p},_getAlignment:function(){var e=this.options.align.split(` `);return{vertical:e[0],horizontal:e[1]}},_getOffset:function(){var e=this,t=e.options,n=s.isRtl(e.element),r=e._getAlignment(),i=t.alignOffset,a=n?e._reversedOffsetMap:e._offsetMap,o=n?e._offsetMap:e._reversedOffsetMap,c={};return c[e._offsetMap[r.vertical]]=i.y,c[a[r.horizontal]]=i.x,c[o[r.horizontal]]=y,c},_wrapper:function(){var e=this;e.wrapper=e.element.addClass(F.widget),e.wrapper.css(e._getOffset())},_content:function(){var e=this,t=e.options,n=t.text,r=t.icon;e.icon(r),e.text(n===``?e.element.text():n)},_appearance:function(){var e=this,t=e.options;e._align=t.align,e._visible=t.visible,e._enabled=t.enabled,e._updateClassNames()},_updateClassNames:function(){var t=this,n=[F.widget],r=t.options._classNames,i=t._align,a=t._visible,o=t._enabled;e(t.element[0].classList).each(function(){var e=this+``;e.indexOf(`k-`)===0&&r.indexOf(e)===-1&&t.element.removeClass(e)}),typeof i==`string`&&i.split(` `).length==2&&n.push(`k-`+i.replace(` `,`-`)),a===!1&&n.push(f),o===!1&&n.push(F.disabled),t.element.addClass(n.join(` `)),t._applyCssClasses()},_aria:function(){var e=this,t=e.element,n=e._list,r=e._enabled;t.attr(b,!r),t.attr(x,n?!0:null),t.attr(C,!n&&null),t.attr(S,n?n.attr(d):null),n&&(n.attr(T,E),n.find(u+F.item).attr(T,D).attr(O,-1))},_renderList:function(){var t=this,n=t.options.items,r=document.body,i=e(`<ul>`).addClass(F.list);n.length&&(t._list=i.appendTo(r),t._renderWithIconContext(function(){n.forEach(t._renderListItem.bind(t))}),i.addClass(t._getListOrientation()))},_renderListItem:function(t){var r=this,i=n.template(I.item),a=t.template?n.template(t.template):i,o=e(`<li>`).addClass(F.item);o.addClass(r._getListItemsAlignment()),o.addClass(t.cssClass),o.attr(w,t.title||t.label||``),r._enableListItem(o,t.enabled),o.append(a({icon:t.icon,text:t.label})),r._list.append(o)},_enableListItem:function(e,n){!e||n===t||(e.toggleClass(F.disabled,!n),n?e.removeAttr(b):e.attr(b,!0))},_getListOrientation:function(){return this._getAlignment().vertical===g?F.listTop:F.listBottom},_getListItemsAlignment:function(){var e=this,t=s.isRtl(e.element),n=e._getAlignment();return n.horizontal===v||n.horizontal===_?t?F.listTextRight:F.listTextLeft:t?F.listTextLeft:F.listTextRight},_getListItemOffset:function(){var e=this,t=e.element,n=e._list.find(u+F.itemIcon),r=0;return t.length&&n.length&&!e.options.text&&(r=t.outerWidth()/2-n.first().outerWidth()/2),r},_initPopup:function(){var e=this,t=e.element,r=e.options,i=e._list,o,s;i&&(s=i.wrap(`<div>`).parent(),o=e._getPopupPosition(),e._popup=new a.Popup(s,c({},r.popup,{anchor:t,appendTo:s.parent(),copyAnchorStyles:!1,autosize:!1,collision:``,position:o.position,origin:o.origin,animation:{open:{effects:n.parseEffects(a.Popup.fn.options.animation.open.effects,o.flipped)}},open:e._popupOpenHandler.bind(e),close:e._popupCloseHandler.bind(e),activate:e._popupExpandHandler.bind(e),deactivate:e._popupCollapseHandler.bind(e)})),e._popup.element.addClass([F.popup,F.popupTransparent].join(` `)),e._setPopupListId())},_setPopupListId:function(){var e=this,t=e.element.attr(d);t||=n.guid(),e._list.attr(d,t+`-list`)},_getPopupPosition:function(){var e=this,t=e.options.align,n=s.isRtl(e.element),r=n?m:p,i=n?p:m,a,o,c=!1;switch(t){case`top end`:case`middle end`:a=`bottom `+i,o=`top `+i;break;case`bottom start`:case`bottom center`:a=`top `+r,o=`bottom `+r,c=!0;break;case`bottom end`:a=`top `+i,o=`bottom `+i,c=!0;break;default:a=`bottom `+r,o=`top `+r}return{origin:a,position:o,flipped:c}},_popupOpenHandler:function(){var e=this._popup,t=this._getListItemOffset();this.element.attr(C,!0),e.element.css({paddingLeft:t}),e.element.css({paddingRight:t})},_popupCloseHandler:function(){this.element.attr(C,!1)},_popupExpandHandler:function(e){this.trigger(A)&&e.preventDefault(),this._adjustPopupPosition(),this._popup.element.find(u+F.item).first().trigger(`focus`)},_adjustPopupPosition:function(){let e=this,t=e._popup.wrapper,n=e._list,r=e._getAlignment().vertical===g,i=e.element[0].getBoundingClientRect(),a=n.children(u+F.item),o=parseFloat(t.css(`top`))||0;if(!a.length)return;let s=t[0].getBoundingClientRect(),c=r?s.bottom:s.top,l=r?i.top:i.bottom;c>l&&(r?t.css(`top`,o-(c-l)):t.css(`top`,o+(l-c)))},_popupCollapseHandler:function(e){this.trigger(j)&&e.preventDefault()},_attachEvents:function(){var e=this,t=e._list;e.element.on(k+i,e._click.bind(e)),t&&t.on(k+i,u+F.item,e._itemClick.bind(e)).on(M+i,u+F.item,e,e._itemKeydown.bind(e)).on(P,u+F.item,e._itemHover.bind(e))},_click:function(e){var t=this,n=t.options,r=t._popup;if(t.trigger(k,{event:e})){e.preventDefault();return}!r&&!n.items.length||(r.visible()?r.close():r.open())},_itemClick:function(t){var r=this,i=e(t.target),a,o,s,c;i&&(a=i.closest(u+F.item),a.length&&(o=r.options.items[a.index()],s=o.click&&n.isFunction(o.click)?o.click:null,c={sender:r,target:a,item:o},s&&(r.element.trigger(`focus`),r._popup.close(),s.call(r,c))))},_itemKeydown:function(t){var r=this,i=e(t.target),a=t.keyCode,s=r.element,c=r._popup,l=r._getAlignment().vertical===g,d=i.hasClass(F.disabled),f=r._list.children(),p=f.index(t.target);if(n.keyDownHandler(t,r)&&i.is(u+F.item)){if(t.preventDefault(),(a===o.ENTER||a===o.SPACEBAR)&&!d&&r._itemClick(t),!l&&a===o.DOWN||l&&a===o.UP){if(p===f.length-1){f.first().trigger(`focus`);return}e(f[p+1]).trigger(`focus`)}if(!l&&a===o.UP||l&&a===o.DOWN){if(p===0){f.last().trigger(`focus`);return}e(f[p-1]).trigger(`focus`)}(a===o.ESC||a===o.TAB)&&(c.close(),s.trigger(`focus`)),a===o.HOME&&f.first().trigger(`focus`),a===o.END&&f.last().trigger(`focus`)}},_itemHover:function(t){var r=e(n.eventTarget(t)||t.target).closest(u+F.item);r.hasClass(F.item)&&(r.siblings().removeClass(F.hover),r.toggleClass(F.hover))},text:function(r){var i=this,a=i.element,o=a.find(u+F.text),s=n.template(I.text);if(arguments.length===0||r===t)return i._text;if(i.options.text=i._text=n.htmlEncode(r),a.contents().filter(function(){return this.nodeType===3}).remove(),r===!1||r===null||r===``){i._text=``,o.remove();return}if(!o.length){o=e(s({text:r})).appendTo(a);return}o.text(r)},icon:function(e){var r=this,i=r.element,a=i.find(u+F.icon),o=n.template(I.icon);if(arguments.length===0||e===t)return r._icon;if(r.options.icon=r._icon=n.htmlEncode(e),e===!1||e===null||e===``){r._icon=``,a.remove();return}a.remove(),i.prepend(o({icon:e}))},themeColor:function(e){var n=this;if(e===t)return n.options.themeColor;n.setOptions({themeColor:e})},hide:function(){var e=this;e.options.visible=e._visible=!1,e._updateClassNames()},show:function(){var e=this;e.options.visible=e._visible=!0,e._updateClassNames()},enable:function(e){var n=this;e===t&&(e=!0),n.options.enabled=n._enabled=e,n._updateClassNames(),n.element.attr(b,!e)},setOptions:function(e){var t=this;r.fn.setOptions.call(t,e),t.element.removeAttr(`style`),t.element.css(t._getOffset()),t._content(),t._appearance(),(e.align||e.items)&&(t.element.off(i),t.destroyPopup(),t._renderList(),t._initPopup(),t._attachEvents()),t._aria()},destroyPopup:function(){var e=this;e._popup&&=(e._list.off(i),e._list.remove(),e._list=null,e._popup.destroy(),null)},destroy:function(){var e=this;e.destroyPopup(),e.element.off(i),r.fn.destroy.call(e)}});n.cssProperties.registerPrefix(`FloatingActionButton`,`k-fab-`),n.cssProperties.registerValues(`FloatingActionButton`,[{prop:`fillMode`,values:[`solid`]},{prop:`themeColor`,values:[`base`,`primary`,`secondary`,`tertiary`]},{prop:`rounded`,values:n.cssProperties.roundedValues.concat([[`full`,`full`]])}]),a.plugin(L)})(window.kendo.jQuery);var o=kendo;e.__meta__=a,e.default=o}); //# sourceMappingURL=kendo.floatingactionbutton.min.js.map