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 kB
!function(e){"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.dom.min","kendo.icons.min"],e):e()}((function(){var e,t,n,a,i,o,l,s,r,d,p,c,u,m,v,f,h,_,g,b,y,k,w,T,x,C,M,I,R,E,S,F,P,V,N,D,L,W,A,O,q,U,H,z;e=window.kendo.jQuery,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",h="aria-label",_="aria-labelledby",g="aria-valuenow",b="aria-disabled",y="aria-readonly",k="k-rating-precision-part",w="k-rating-precision-complement",T=.5,x="k-rating-item",C="k-focus",M="tabindex",I=".",R="min",E="max",S="single",F="continuous",P="item",V="half",N={item:"itemTemplate",hovered:"hoveredTemplate",selected:"selectedTemplate"},D={selected:"k-selected",hovered:"k-hover",hoveredPrecise:"k-hover-precise"},L="part-value",W="data-value",A="value",O="title",q={widget:"k-rating k-widget",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"},U=function(e){var t=e.value,n=e.maxValue;return"<span>"+i(t)+" / "+i(n)+"</span>"},H=function(e){var t=e.icon;return n.ui.icon({icon:t,size:"xlarge"})},z=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:F,precision:P,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('<span class="'+i(q.widget)+'"></span>'),t.wrapper=t.element.wrap(t.wrapper).parent(),t.wrapper.addClass(t.element[0].className.replace(q.hidden,"")).append(e(function(e){var t=e.styles;return'<span class="'+i(t.container)+'"></span>'}({styles:q}))),t.wrapper[0].style.cssText=t.element[0].style.cssText,t.container=t.wrapper.find(I+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(h),r=i.attr(_),p=d(t.element.attr(R))||t.options.min,c=d(t.element.attr(E))||t.options.max;if(t.wrapper.attr(M,0).attr("role","slider").attr("aria-valuemin",p).attr("aria-valuemax",c).attr(g,t.options.value||(p+c)/2),s)a.attr(h,s);else if(r)a.attr(_,r);else if(l.length){var u=l.attr("id");u||(u=(o||n.guid())+"_label",l.attr("id",u)),a.attr(_,u)}},_initSettings:function(){var e=this,t=e.options.precision!=P,n=e.options;n.value=d(n.value),null===n.value&&(n.value=d(e.element.val())),n.min=d(e.element.attr(R))||e.options.min,n.max=d(e.element.attr(E))||e.options.max,e._valueMin=t?e.options.min-T: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,a,o,l=this,s=l.container,r=l.options.min,d=l.options.max,p=l.options.itemTemplate?n.template(l.options.itemTemplate):H,c=r;c<=d;c+=1){var u=e((a=void 0,o=void 0,a=(t={styles:q,value:c}).styles,o=t.value,'<span class="'+i(a.item)+'" data-value="'+i(o)+'"></span>'));u.append(p({icon:q.icon,index:c})),s.append(u)}},_renderTooltip:function(){var t=this.container.find(I+x);if(!0===this.options.tooltip)for(var n=0;n<t.length;n+=1)e(t[n]).attr(O,e(t[n]).data(A));else t.removeAttr(O)},_renderLabel:function(){var a=this,o=a.wrapper.find(I+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):U;if(!l||null===a.value())return o.remove(),void(a.label=null);o.length||(a.label=o=e('<span class="'+i(q.label)+'"></span>'),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==V;e.wrapper.on("focus.kendoRating",e._focus.bind(e)).on("blur.kendoRating",e._blur.bind(e)).on("keydown.kendoRating",e._keydown.bind(e)),e.container.on("click.kendoRating",I+x,e._click.bind(e)).on("mouseenter.kendoRating",I+x,e._mouseenter.bind(e)).on("mouseleave.kendoRating",I+x,e._mouseleave.bind(e)).on("mousedown.kendoRating",e._mousedown.bind(e)),t&&e.container.on("mousemove.kendoRating",I+x,e._mousemove.bind(e))},_focus:function(){var e,t,n,a=this,i=a.container,o=a.wrapper,l=a.container.find(".k-focus"),s=a.options.selectValueOnFocus,r=i.children().first();!a.options.enabled||a.options.readonly||a.preventFocus?a.options.readonly&&a.wrapper.addClass(C):(o.addClass(C),l.removeClass(C),null===a.value()&&null!==s&&a.value(s),e=i.find(I+D.selected).last(),t=i.find(I+D.hovered).last(),(n=(n=e.length?e:t).length?n:r).addClass(C))},_blur:function(){var e=this;e.preventFocus=!1,e.wrapper.removeClass(C),e.container.find(".k-focus").removeClass(C),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!=P?T:1,u=d.find(I+x),m=d.find(".k-focus"),v=u.index(m),f=n.support.isRtl(s.wrapper),h=isNaN(p),_=t.keyCode;s.options.enabled&&!s.options.readonly&&(a=_===r.RIGHT&&f||_===r.LEFT&&!f,i=_===r.LEFT&&f||_===r.RIGHT&&!f,a||_===r.DOWN?(o=h?u.eq(0):e(u[v-1]),l=h?s._valueMin:p-c,s._select(o,l),t.preventDefault()):i||_===r.UP?(o=h?u.eq(0):e(u[v+1]),l=h?s._valueMin:p+c,s._select(o,l),t.preventDefault()):_===r.HOME?(o=u.eq(0),s._select(o,s._valueMin),t.preventDefault()):_===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]):H},_renderTemplate:function(t,n){var a=this._getTemplateType(n),i=q.icon;n!=N.selected&&n!=N.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=S==n.options.selection,i=n.options.precision==V,o=n.container.find(I+D.selected),l=a?t:t.prevAll().addBack(),s=a?o:t.nextAll(),r=N[e],d=D[e];s.removeClass(d),l.addClass(d),n._renderTemplate(l,r),(!a||a&&e==u&&l.get(0)!=o.get(0))&&n._renderTemplate(s,N.item),i&&n._renderTemplate(t,N.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(I+x),i=a.attr(W);n.options.enabled&&!n.options.readonly&&(a.data(L)&&(i=a.data(L)),n._select(a,i))},_select:function(e,t){var n=this,a=isNaN(t)?e.attr(W):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(I+x);n.options.enabled&&!n.options.readonly&&(n.enableMove=!0,a.is(I+x)&&n._updateItemTemplates(m,i))},_mouseleave:function(t){var n,a,i=this,o=i.options.selection,l=i.options.precision==V,s=o==S,r=e(t.target).closest(I+x),d=i.container.find(I+x);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(D.selected)&&!e.hasClass(D.hovered)||n?N.item:N.selected,i._renderTemplate(e,a),l&&n&&e.hasClass(D.selected)&&i._togglePrecisionElements(e,u)};if(d.removeClass(D.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(I+x);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(I+k),s=o._getTemplateType(N[n]);l.length?l.html(s({icon:q.iconSelected})):(a=o.parsedValue%1!=0,i=o._getItemWidth(t),(l=e("<span></span>").addClass(k)).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(I+k),o=n.parseFloat(e.data(A)),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(O,r?a._format(o-T):o),e.data(L,r?o-T:o),a._createUpdatePrecisionComplement(e,r))},_createUpdatePrecisionComplement:function(t,n){var a=t.find(I+w),i=t.children().first();a.length||(a=i.wrap(e("<span></span>").addClass(w)).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(R))||t.options.min,i=d(t.element.attr(E))||t.options.max;t.element.val(t._format(n)),t.wrapper.attr(g,t._format(e)||(a+i)/2)},_updateItemsRendering:function(e){var t=this,n=t.options.precision==V,a=null===e?"item":u,i=null===e?t.container.find(I+D.selected).last():t.container.find(I+x+"[data-value='"+Math.ceil(e)+"']");null===e&&t.container.find(I+x).removeClass(D.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(y,!0)):(t.prop(f,!1),n.removeAttr(y)),i?(t.prop(v,!1),n.removeAttr(b),n.attr(M,0)):(t.attr(v,v),n.attr(b,!0),n.removeAttr(M)),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==V;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=z.prototype._precisionStrategyMemo)},destroy:function(){var e=this;e.wrapper.off(o),e.container.off(o),l.fn.destroy.call(e)}}),a.plugin(z)})); //# sourceMappingURL=kendo.rating.min.js.map