UNPKG

@progress/kendo-ui

Version:

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

3 lines 11.7 kB
/* @license */ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.core.min.js`),require(`kendo.dom.min.js`),require(`kendo.icons.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.core.min`,`kendo.dom.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.Rating={}),e.kendo._globals.Core,e.kendo._globals.Dom,e.kendo._globals.Icons))})(this,function(e,t,n,r){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let i={id:`rating`,name:`Rating`,category:`web`,description:`The Rating component.`,depends:[`core`,`icons`]};(function(e,t){var n=window.kendo,r=n.ui,i=n.htmlEncode,a=`.kendoRating`,o=r.Widget,s=e.extend,c=n.keys,l=n.parseFloat,u=`change`,d=`select`,f=`selected`,p=`hovered`,m=`disabled`,h=`readonly`,g=`keydown`+a,_=`click`+a,v=`mouseenter`+a,y=`mouseleave`+a,b=`mousemove`+a,x=`mousedown`+a,S=`focus`+a,C=`blur`+a,w=`aria-label`,T=`aria-labelledby`,E=`aria-valuemin`,D=`aria-valuemax`,O=`aria-valuenow`,k=`aria-disabled`,A=`aria-readonly`,j=`k-rating-precision-part`,M=`k-rating-precision-complement`,N=.5,P=`_label`,F=`k-rating-item`,I=`k-focus`,L=`tabindex`,R=`.`,z=`role`,B=`min`,V=`max`,H={single:`single`,continuous:`continuous`},U={item:`item`,half:`half`},W={item:`itemTemplate`,hovered:`hoveredTemplate`,selected:`selectedTemplate`},G={selected:`k-selected`,hovered:`k-hover`,hoveredPrecise:`k-hover-precise`},K={partValue:`part-value`,dataValue:`data-value`,value:`value`,title:`title`},q={widget:`k-rating`,container:`k-rating-container`,item:`k-rating-item`,icon:`star-outline`,iconSelected:`star`,label:`k-rating-label`,disabled:`k-disabled`,readonly:`k-state-readonly`,active:`k-active`,hidden:`k-hidden`},J=({styles:e})=>`<span class="${i(e.widget)}"></span>`,Y=({styles:e})=>`<span class="${i(e.container)}"></span>`,X=({styles:e})=>`<span class="${i(e.label)}"></span>`,Z=({value:e,maxValue:t})=>`<span>${i(e)} / ${i(t)}</span>`,ee=({styles:e,value:t})=>`<span class="${i(e.item)}" data-value="${i(t)}"></span>`,Q=({icon:e})=>n.ui.icon({icon:e,size:`xlarge`}),$=o.extend({init:function(e,t){var r=this;o.fn.init.call(r,e,t),r.options=s({},r.options,t),r._element(),r._wrapper(),r._aria(),r._initSettings(),r._renderItems(),r._renderTooltip(),r._renderLabel(),r._selectInitial(),r._attachEvents(),n.notify(this)},events:[d,u],options:{name:`Rating`,messages:{},min:1,max:5,selection:H.continuous,precision:U.item,tooltip:!0,label:!0,readonly:!1,enabled:!0,selectValueOnFocus:null,itemTemplate:null,selectedTemplate:null,hoveredTemplate:null},_element:function(){this.element.addClass(q.hidden)},_wrapper:function(){var t=this;t.wrapper=e(J({styles:q})),t.wrapper=t.element.wrap(t.wrapper).parent(),t.wrapper.addClass(t.element[0].className.replace(q.hidden,``)).append(e(Y({styles:q}))),t.wrapper[0].style.cssText=t.element[0].style.cssText,t.container=t.wrapper.find(R+q.container)},_aria:function(){var t=this,r=t.wrapper,i=t.element,a=i.attr(`id`),o=e(`label[for="`+a+`"]`),s=i.attr(w),c=i.attr(T),u=l(t.element.attr(B))||t.options.min,d=l(t.element.attr(V))||t.options.max;if(t.wrapper.attr(L,0).attr(z,`slider`).attr(E,u).attr(D,d).attr(O,t.options.value||(u+d)/2),s)r.attr(w,s);else if(c)r.attr(T,c);else if(o.length){var f=o.attr(`id`);f||(f=(a||n.guid())+P,o.attr(`id`,f)),r.attr(T,f)}},_initSettings:function(){var e=this,t=e.options.precision!=U.item,n=e.options;n.value=l(n.value),n.value===null&&(n.value=l(e.element.val())),n.min=l(e.element.attr(B))||e.options.min,n.max=l(e.element.attr(V))||e.options.max,e._valueMin=t?e.options.min-N:e.options.min,n.enabled=n.enabled&&!e.element.attr(m),n.readonly=n.readonly||!!e.element.attr(h),e._setState()},_renderItems:function(){for(var t=this,r=t.container,i=t.options.min,a=t.options.max,o=t.options.itemTemplate?n.template(t.options.itemTemplate):Q,s=i;s<=a;s+=1){var c=e(ee({styles:q,value:s}));c.append(o({icon:q.icon,index:s})),r.append(c)}},_renderTooltip:function(){var t=this,n=t.container.find(R+F);if(t.options.tooltip!==!0){n.removeAttr(K.title);return}for(var r=0;r<n.length;r+=1)e(n[r]).attr(K.title,e(n[r]).data(K.value))},_renderLabel:function(){var r=this,i=r.wrapper.find(R+q.label),a=r.options.label===!0||r.options.label.template!==t,o=r.options.label&&r.options.label.template?n.template(r.options.label.template):Z;if(!a||r.value()===null){i.remove(),r.label=null;return}i.length||(r.label=i=e(X({styles:q})),r.wrapper.append(i)),i.html(o({styles:q,value:r.value()%1==0?r.value():r._format(r.value()),maxValue:r.options.max}))},_selectInitial:function(){var e=this;isNaN(e.options.value)||e.value(e.options.value)},_attachEvents:function(){var e=this,t=e.options.precision==U.half;e.wrapper.on(S,e._focus.bind(e)).on(C,e._blur.bind(e)).on(g,e._keydown.bind(e)),e.container.on(_,R+F,e._click.bind(e)).on(v,R+F,e._mouseenter.bind(e)).on(y,R+F,e._mouseleave.bind(e)).on(x,e._mousedown.bind(e)),t&&e.container.on(b,R+F,e._mousemove.bind(e))},_focus:function(){var e=this,t=e.container,n=e.wrapper,r=e.container.find(R+I),i=e.options.selectValueOnFocus,a=t.children().first(),o,s,c;if(!e.options.enabled||e.options.readonly||e.preventFocus){e.options.readonly&&e.wrapper.addClass(I);return}n.addClass(I),r.removeClass(I),e.value()===null&&i!==null&&e.value(i),o=t.find(R+G.selected).last(),s=t.find(R+G.hovered).last(),c=o.length?o:s,c=c.length?c:a,c.addClass(I)},_blur:function(){var e=this;e.preventFocus=!1,e.wrapper.removeClass(I),e.container.find(R+I).removeClass(I),e.element.trigger(`blur`)},_mousedown:function(){var e=this;e.preventFocus=!0},_keydown:function(t){var r=this,i=r.container,a=r.parsedValue,o=r.options.precision==U.item?1:N,s=i.find(R+F),l=i.find(R+I),u=s.index(l),d=n.support.isRtl(r.wrapper),f=isNaN(a),p=t.keyCode,m,h,g,_;!r.options.enabled||r.options.readonly||(m=p===c.RIGHT&&d||p===c.LEFT&&!d,h=p===c.LEFT&&d||p===c.RIGHT&&!d,m||p===c.DOWN?(g=f?s.eq(0):e(s[u-1]),_=f?r._valueMin:a-o,r._select(g,_),t.preventDefault()):h||p===c.UP?(g=f?s.eq(0):e(s[u+1]),_=f?r._valueMin:a+o,r._select(g,_),t.preventDefault()):p===c.HOME?(g=s.eq(0),r._select(g,r._valueMin),t.preventDefault()):p===c.END&&(g=s.eq(s.length-1),r._select(g),t.preventDefault()))},_getTemplateType:function(e){var t=this;return t.options[e]?n.template(t.options[e]):Q},_renderTemplate:function(t,n){var r=this._getTemplateType(n),i=q.icon;(n==W.selected||n==W.hovered)&&(i=q.iconSelected);for(var a=0;a<t.length;a+=1)e(t[a]).html(r({icon:i,index:e(t[a]).index()}))},_updateItemTemplates:function(e,t){var n=this,r=H.single==n.options.selection,i=n.options.precision==U.half,a=n.container.find(R+G.selected),o=r?t:t.prevAll().addBack(),s=r?a:t.nextAll(),c=W[e],l=G[e];s.removeClass(l),o.addClass(l),n._renderTemplate(o,c),(!r||r&&e==f&&o.get(0)!=a.get(0))&&n._renderTemplate(s,W.item),i&&n._renderTemplate(t,W.item)},_change:function(e,t){var n=this,r=n.value();n.value(t),n.trigger(u,{target:e,oldValue:r,newValue:n.value()})},_click:function(t){var n=this,r=e(t.target).closest(R+F),i=r.attr(K.dataValue);!n.options.enabled||n.options.readonly||(r.data(K.partValue)&&(i=r.data(K.partValue)),n._select(r,i))},_select:function(e,t){var n=this,r=isNaN(t)?e.attr(K.dataValue):t;r==n.value()||r<n._valueMin||r>n.options.max||(n.trigger(d,{target:e}),n._change(e,r),n._focus())},_mouseenter:function(t){var n=this,r=e(t.target),i=r.closest(R+F);!n.options.enabled||n.options.readonly||(n.enableMove=!0,r.is(R+F)&&n._updateItemTemplates(p,i))},_mouseleave:function(t){var n=this,r=n.options.selection,i=n.options.precision==U.half,a=r==H.single,o=e(t.target).closest(R+F),s=n.container.find(R+F),c,l;n.enableMove=!1;var u=function(e){c=n.parsedValue%1!=0&&e.is(n.container.find(`[data-value=`+Math.ceil(n.parsedValue)+`]`)),l=(e.hasClass(G.selected)||e.hasClass(G.hovered))&&!c?W.selected:W.item,n._renderTemplate(e,l),i&&c&&e.hasClass(G.selected)&&n._togglePrecisionElements(e,f)};if(s.removeClass(G.hovered),a)u(o);else for(var d=0;d<s.length;d+=1)u(e(s[d]))},_mousemove:function(t){var n=this,r=e(t.target).closest(R+F),i,a,o;n.enableMove&&(r.length&&(i=t.clientX,a=r.offset().left,o=Math.abs(i-a),n._togglePrecisionElements(r,p),n._updatePrecisionElements(r,o)),t.preventDefault())},_insetCss:function(){var e=this;return n.support.isRtl(e.wrapper)?`inset(0 0 0 50%)`:`inset(0 50% 0 0)`},_togglePrecisionElements:function(t,n){var r=this,i=t.find(R+j),a=r._getTemplateType(W[n]),o,s;i.length?i.html(a({icon:q.iconSelected})):(o=r.parsedValue%1!=0,s=r._getItemWidth(t),i=e(`<span></span>`).addClass(j),i.append(a({icon:q.iconSelected})),i.css(`clip-path`,o?r._insetCss():``),t.append(i),t.append(e(`<span></span>`).css({width:s,height:s,display:`block`})),r._createUpdatePrecisionComplement(t,o))},_updatePrecisionElements:function(e,t){var r=this,i=e.find(R+j),a=n.parseFloat(e.data(K.value)),o=n.support.isRtl(this.wrapper),s=l(e.outerWidth()/2),c=o?t>s:t<s;e.length&&i.length&&(i.css(`clip-path`,c?r._insetCss():``),this.options.tooltip&&e.attr(K.title,c?r._format(a-N):a),e.data(K.partValue,c?a-N:a),r._createUpdatePrecisionComplement(e,c))},_createUpdatePrecisionComplement:function(t,n){var r=t.find(R+M),i=t.children().first();r.length||(r=i.wrap(e(`<span></span>`).addClass(M)).parent())},_calculateItemWidthFromStyles:function(e){if(e)return l(e.find(`.k-icon,.k-svg-icon`).css(`font-size`))},_getItemWidth:function(e){if(e)return e.width()||this._calculateItemWidthFromStyles(e)||0},_updateElement:function(e){var t=this,n=e===null?``:e,r=l(t.element.attr(B))||t.options.min,i=l(t.element.attr(V))||t.options.max;t.element.val(t._format(n)),t.wrapper.attr(O,t._format(e)||(r+i)/2)},_updateItemsRendering:function(e){var t=this,n=t.options.precision==U.half,r=e===null?`item`:f,i=e===null?t.container.find(R+G.selected).last():t.container.find(R+F+`[data-value='`+Math.ceil(e)+`']`);e===null&&t.container.find(R+F).removeClass(G.selected),t._updateItemTemplates(r,i),n&&e!==null&&t._togglePrecisionElements(i,f),t._renderLabel()},_setState:function(){var e=this,t=e.element,n=e.wrapper,r=e.options.readonly,i=e.options.enabled;r&&i?(t.attr(h,h),n.attr(A,!0)):(t.prop(h,!1),n.removeAttr(A)),i?(t.prop(m,!1),n.removeAttr(k),n.attr(L,0)):(t.attr(m,m),n.attr(k,!0),n.removeAttr(L)),n.toggleClass(q.disabled,!i),n.toggleClass(q.readonly,r&&i)},_format:function(e){return n.toString(e,`n1`,n.getCulture().name)},value:function(e){var t=this,n=t.options.precision==U.half;if(e===null){t._updateElement(e),t._updateItemsRendering(e);return}if(e=l(e),e===null)return e=l(t.element.val()),e;e=Math.max(t._valueMin,Math.min(e,t.options.max)),n?t.parsedValue=l(t._format(Math.ceil(e*2)/2)):t.parsedValue=Math.round(e),t._updateElement(e),t._updateItemsRendering(e)},reset:function(){this.value(null)},enable:function(e){var t=this;e===void 0&&(e=!0),t.options.enabled=e,t.options.readonly=!1,t._setState()},readonly:function(e){var t=this;e===void 0&&(e=!0),t.options.readonly=e,t.options.enabled=!0,t._setState()},setOptions:function(n){var r=this;r.options=e.extend(r.options,n),n.enabled!==t&&r.enable(n.enabled),n.readonly!==t&&r.readonly(n.readonly),n.label!==t&&r._renderLabel(),n.tooltip!==t&&r._renderTooltip(),n.value!==t&&r.value(n.value),(n.min||n.max!==t||n.itemTemplate!==t||n.selectedTemplate!==t||n.hoveredTemplate!==t)&&(r.container.empty(),r._renderItems(),r._renderLabel(),r._renderTooltip(),r._selectInitial(),r._precisionStrategyMemo=$.prototype._precisionStrategyMemo)},destroy:function(){var e=this;e.wrapper.off(a),e.container.off(a),o.fn.destroy.call(e)}});r.plugin($)})(window.kendo.jQuery);var a=kendo;e.__meta__=i,e.default=a}); //# sourceMappingURL=kendo.rating.min.js.map