UNPKG

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