@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
6 lines • 9.13 kB
JavaScript
/* @license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.core.min.js`),require(`kendo.icons.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.core.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.Breadcrumb={}),e.kendo._globals.Core,e.kendo._globals.Icons))})(this,function(e,t,n){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let r={id:`breadcrumb`,name:`Breadcrumb`,category:`web`,description:`The Breadcrumb widget displays navigation breadcrumb.`,depends:[`core`,`icons`]};(function(e,t){var n=window.kendo,r=n.ui.Widget,i=e.extend;n.mediaQuery;var a=e.isPlainObject;n.support;var o=n.htmlEncode,s=n.sanitizeLink,c=`.kendoBreadcrumb`,l=`aria-hidden`,u=`aria-label`,d=`click`,f=`focus`,p=`blur`,m=`keydown`,h=`change`,g=`.`,_={widget:`k-breadcrumb`,overlay:`k-breadcrumb-container`,textbox:`k-input-inner`,textboxWrapper:`k-textbox k-input`,link:`k-breadcrumb-link`,item:`k-breadcrumb-item`,delimiter:`k-breadcrumb-delimiter-icon`,rootItem:`k-breadcrumb-root-item`,rootLink:`k-breadcrumb-root-link`,overflowIcon:`k-breadcrumb-overflow-icon`,focused:`k-focus`,hidden:`k-hidden`,inputWrapper:`k-breadcrumb-input-container`},v=r.extend({init:function(e,t){var i=this;t||={},r.fn.init.call(i,e,t),i._wrapper(),t.editable&&(i._editable(),i._tabindex()),i.wrapper.on(d+c,`a:not(.k-disabled)`,i._click.bind(i)),t.value||t.bindToLocation||!t.items?i._value():t.items&&i.items(t.items),i._applyCssClasses(),i._resizeHandler=n.onResize(function(){i.resize(!0)})},options:{editable:!1,navigational:!1,bindToLocation:!1,items:null,name:`Breadcrumb`,size:t,gap:0,rootIcon:`home`,delimiterIcon:`chevron-right`,messages:{rootTitle:`Go to root`}},events:[h,d],destroy:function(){var e=this;r.fn.destroy.call(e),n.unbindResize(e._resizeHandler),e.wrapper.add(e.wrapper.find(`input`)).add(e.wrapper.find(`a`)).off(c)},items:function(e){var n=this;if(e===t)return n.options.items;n.options.items=e,n._segments=e,n.refresh()},_update:function(e){var t=this;e!==t.value()&&(t._generateSegments(e),t.refresh(),t.trigger(h,{sender:this,value:e}))},_generateSegments:function(e){var t=this,n=t.options.items,r,i=t._split(e);if(!n){t.options.items=t._segments=i;return}t._segments=[];for(var a=0;a<i.length;a++)r=t._path(n.slice(0,a+1)),r!==``&&e.indexOf(r)>-1&&n[a]&&n[a].text===i[a]?t._segments.push(n[a]):t._segments.push(i[a])},_click:function(t){var n=this,r=n.options,i=e(t.target).closest(g+_.item),a=i.prevAll().addBack(),o=n._getItems(a),s=n._path(o),c=n._segments[i.index()];r.navigational||t.preventDefault(),n.trigger(d,{sender:n,originalEvent:t,isRoot:c.type===`rootitem`,item:c})||n._update(s)},_getItems:function(t){var n=this;return e.map(t,function(t){return n._segments[e(t).index()]||t.innerText})},_edit:function(){var e=this,t=e.input;e.oldValue=e.value(),e.inputWrapper.css(`height`,e.wrapper.height()),e.overlay.hide(),e.input.val(e.value()),e.input.attr(l,!1),e.inputWrapper.show(),setTimeout(function(){t.select()})},_blur:function(e){var t=this,n=t.input,r=t.inputWrapper,i=t.wrapper,a=t.overlay,o=n.val().replace(/\/{2,}/g,`/`);a.is(`:visible`)||(e&&(o=t.oldValue),n.attr(l,!0),r.hide(),a.show(),n.val(``),t._update(o),i.removeClass(_.focused))},_keydown:function(e){var t=this,r=e.keyCode,i=r===n.keys.ENTER,a=r===n.keys.ESC;(i||a)&&(t._blur(a),setTimeout(function(){t.overlay.find(`a`).first().trigger(`focus`)}))},isNavigational:function(e){var t=e.hasClass(_.textbox)||e.closest(g+_.item);return e[0]===this.wrapper[0]?!1:t&&!e.hasClass(`k-breadcrumb-last-item`)},_wrapperKeydown:function(t){var r=this,i=e(t.target),a=r.isNavigational(i);t.keyCode===n.keys.ENTER&&!a&&r._edit()},_wrapperClick:function(t){var n=this,r=e(t.target);n.isNavigational(r)||this._edit()},_wrapperFocus:function(t){e(t.target).addClass(_.focused)},_wrapperBlur:function(t){e(t.target).removeClass(_.focused)},_wrapper:function(){var t=this,n=this.element,r=n.is(`input`),i=e(`<div class="`+_.inputWrapper+`"><span class="`+_.textboxWrapper+`"></span></div>`);t.wrapper=r?n.wrap(e(`<nav />`)).parent():n,r?(t.element.wrap(i).addClass(_.textbox),t.inputWrapper=t.wrapper.find(g+_.inputWrapper).hide()):t.inputWrapper=t.wrapper.append(i).find(g+_.inputWrapper).hide(),t.wrapper.addClass(_.widget),t.wrapper.attr(u,`Breadcrumb`),t.overlay=t.wrapper.append(e(`<ol />`).addClass(_.overlay)).find(g+_.overlay)},_editable:function(){var t=this;t.element.is(`input`)?t.input=t.element:t.input=e(`<input />`),t.inputWrapper.find(g+_.textboxWrapper.split(` `)[0]).append(t.input),t.input.addClass(_.textbox).attr(l,!0),t.input.on(p+c,t._blur.bind(t,!1)).on(m+c,t._keydown.bind(t)),t.wrapper.on(f+c,t._wrapperFocus.bind(t)).on(p+c,t._wrapperBlur.bind(t)).on(m+c,t._wrapperKeydown.bind(t)).on(d+c,t._wrapperClick.bind(t))},_value:function(){var e=this,t=e.options;t.value?e.value(t.value):t.bindToLocation?e.value(window.location.href.replace(/http(s?):\/\//,``).replace(/\/$/,``)):e.value(``)},_split:function(e){return e.split(`/`).filter(function(e,t){return!(t>0&&e===``)})},isRtl:function(){return n.support.isRtl(this.wrapper)},refresh:function(){var r=this,o=r.options,s=o.messages,c=r.options.delimiterIcon,l=``,u=``,d=r.value()===``,f=r._segments,p,m,h,g;for(c==`chevron-right`&&r.isRtl()&&(c=`chevron-left`),m=0,h=f.length;m<h;m++)p=f[m],g=m===f.length-1,p!==t&&(l?u+=p.text||p||``:u=`/`,typeof p==`string`?(p={type:l?`item`:`rootitem`,href:o.navigational?u:`#`,text:p,showIcon:!l,showText:!!l,icon:l?``:o.rootIcon,itemClass:l?``:`k-breadcrumb-root-item`,linkClass:l?``:_.rootLink,delimiterIcon:c,renderDelimiter:!g&&!d,lastSegment:g,iconClass:``},r._segments.splice(m,1,p)):a(p)&&(p=i({},p,{type:p.type?p.type.toLowerCase():`item`}),p=i({},p,{text:p.text||``,title:p.text||``,icon:p.icon||(p.type===`rootitem`?o.rootIcon:``),iconClass:p.iconClass||``,lastSegment:g,renderDelimiter:!g&&f.length>1,href:o.navigational?p.href:`#`,delimiterIcon:c,itemClass:p.itemClass||``,linkClass:p.linkClass||``,showIcon:p.showIcon===t?p.type===`rootitem`&&p.type!==`item`:p.showIcon,showText:p.showText===t?p.type===`item`&&p.type!==`rootitem`:p.showText}),p.type===`rootitem`&&(p.itemClass+=` k-breadcrumb-root-item`,p.linkClass+=` `+_.rootLink)),p.type===`rootitem`&&p.text===``&&(p.title=s.rootTitle),u+=u.match(/\/$/)?``:`/`,l+=n.template(this.itemTemplate)(p));this.overlay.empty().append(e(l)),this.resize(!0)},itemTemplate:t=>{let r=()=>{let e={"k-breadcrumb-link":t.type!==`rootitem`,"k-breadcrumb-icontext-link":t.showText&&t.showIcon,"k-breadcrumb-icon-link":t.showIcon&&!t.showText,"k-disabled":t.lastSegment&&t.type!==`rootitem`};return Object.keys(e).filter(t=>e[t]).join(` `)},i=t.showIcon?n.ui.icon(e(`<span class="${o(t.iconClass)}"></span>`),{icon:o(t.icon)}):``,a=t.renderDelimiter?n.ui.icon(e(`<span class="k-breadcrumb-delimiter-icon" aria-hidden="true"></span>`),{icon:o(t.delimiterIcon),size:`xsmall`}):``,c=t.showText?`<span class="k-breadcrumb-item-text">${t.encoded===!1?t.text:o(t.text)}</span>`:``,l=`<a href="${s(t.href)}" class="${o(t.linkClass)} ${r()}"
${t.lastSegment?`aria-current="page"`:``}
${t.lastSegment&&t.type!==`rootitem`?`aria-disabled="true"`:``}
title="${o(t.text||t.title)}">${i}${c}</a>`;return`<li class="k-breadcrumb-item ${o(t.itemClass)} ${t.lastSegment?`k-breadcrumb-last-item`:``}">${l}${a}</li>`},_displayOverflowIcons:function(e){var t=this.wrapper.find(g+_.rootItem);e?t.find(g+_.delimiter).addClass(_.overflowIcon).removeClass(_.hidden):t.find(g+_.overflowIcon).removeClass(_.overflowIcon).last().addClass(_.hidden)},_shrinkItems:function(){var t=this,r=t.wrapper,i=t.overlay,a=t.overlay.find(g+_.item+`:not(.k-breadcrumb-root-item)`),o=n._outerWidth(t.overlay.find(g+_.delimiter+`:visible`).first()),s=r.width()-t.options.gap-o,c,l;if(a.length!=1){for(var u=0;u<a.length;u+=1)if(l=e(a[u]),n._outerWidth(i)>=s){if(u==a.length-1)break;c=l,l.find(g+_.delimiter).hide(),l.find(g+_.link).hide(),t._displayOverflowIcons(!0)}c&&c.find(g+_.delimiter).show()}},_showItem:function(e,t,r){return e.length&&r>t+n._outerWidth(e,!0)?(e.find(g+_.link).show(),e.prev().find(g+_.delimiter).show(),!0):!1},_stretchItems:function(){var t=this,r=t.wrapper,i=t.overlay,a=t.overlay.find(g+_.item+`:not(.k-breadcrumb-root-item)`),o=n._outerWidth(t.overlay.find(g+_.delimiter+`:visible`).first()),s=r.width()-t.options.gap-o,c,l;a.length||t._displayOverflowIcons(!1);for(var u=a.length-1;u>=0&&(c=e(a[u]),l=n._outerWidth(i),!(l>s||!this._showItem(c,l,s)));u--);},_resize:function(){this._shrinkItems(),this._stretchItems()},getSize:function(){return n.dimensions(this.wrapper)},value:function(e){var n=this;if(e!==t){n._generateSegments(e),n.refresh();return}return n._path(n._segments)},_path:function(t){return e.map(t,function(e){var t=a(e)?e.text:e;return t===`/`?``:t}).join(`/`)}});n.cssProperties.registerPrefix(`Breadcrumb`,`k-breadcrumb-`),n.ui.plugin(v)})(window.kendo.jQuery);var i=kendo;e.__meta__=r,e.default=i});
//# sourceMappingURL=kendo.breadcrumb.min.js.map