@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 11 kB
JavaScript
module.exports=function(e){function t(n){if(a[n])return a[n].exports;var o=a[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var a={};return t.m=e,t.c=a,t.p="",t(0)}({0:function(e,t,a){e.exports=a(1088)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1048:function(e,t){e.exports=require("./kendo.core")},1088:function(e,t,a){var n,o,i;!function(r,define){o=[a(1048),a(1089),a(1090),a(1091)],n=r,i="function"==typeof n?n.apply(t,o):n,!(void 0!==i&&(e.exports=i))}(function(){return function(e,t){var a=window.kendo,n=a.ui.Widget,o=e.proxy,i=e.extend,r=e.ajax,s=a.isFunction,l="string",u=".",d=u+"kendoCaptcha",c="click",p="blur",m="change",h="requestStart",v="requestEnd",g="error",f={wrapper:"k-widget k-captcha",textbox:"k-textbox",button:"k-button",buttonIcon:"k-button-icon",resetIcon:"k-icon k-i-reload",audioIcon:"k-icon k-i-volume-up",disabled:"k-state-disabled",inputWrapper:"k-captcha-input k-vstack",imageWrapper:"k-captcha-image-wrap k-hstack",captchaImage:"k-captcha-image",buttonsWrapper:"k-captcha-image-controls k-vstack",volumeControlWrapper:"k-captcha-volume-control k-vstack k-pos-absolute",hidden:"k-hidden",success:"k-captcha-validation-message k-text-success",loading:"k-captcha-loading"},_=n.extend({init:function(e,t){var o=this;n.fn.init.call(o,e,t),o._captchaField=o.options.dataCaptchaField,o._valueField=o.element.attr("name")||"captcha",o._captchaIdField=o.options.dataCaptchaIdField,o._wrapper(),o._idInput(),o._captchaImage(),(o.options.audioButton||o.options.resetButton)&&o._buttons(),o.options.captcha&&o.options.captchaId||o._resetHandler(),o.options.validateOnBlur&&o.element.on(p+d,function(){o._validationHandler()}),o.element.on(m+d,function(e){delete o._isValid,o.trigger(m,{value:o.element.val(),originalEvent:e})}),a.notify(o)},events:[m,h,v,g],options:{name:"Captcha",dataCaptchaField:"captcha",dataCaptchaIdField:"captchaId",captchaId:"",captcha:null,handler:null,audioHandler:null,validationHandler:null,validateOnBlur:!1,resetButton:!0,audioButton:!0,volumeControl:!0,messages:{reset:"Reset captcha",audio:"Speak captcha",imageAlt:"Type the Captcha code from the image",success:"Verification successful"}},destroy:function(){var e=this;e.textbox.destroy(),e.resetButton&&e.resetButton.off(d),e.audioButton&&e.audioButton.off(d),e.element.off(d),e._audioEnded(),n.fn.destroy.call(e)},_wrapper:function(){var t=this,a=_.styles,n="<div class='"+a.wrapper+"'><div class='"+a.inputWrapper+"'></div></div>",o="<div class='"+a.imageWrapper+"'></div>",i=t.element[0].style.cssText;t.element.css("width","auto"),t.element.css("height","auto"),t.textbox=t.element.kendoTextBox().data("kendoTextBox"),t._inputWrapper=t.textbox._inputWrapper,t.wrapper=t._inputWrapper.wrap(n).parent().parent(),t.wrapper[0].style.cssText=i,t.imageWrapper=e(o),t.wrapper.prepend(t.imageWrapper)},_captchaImage:function(){var t=this,a=t.options,n=a.messages,o=_.styles;t.captchaImage=e('<div class="'+o.captchaImage+'"><img alt="'+n.imageAlt+'" src= "'+(a.captcha||"")+'"/></div>').find("img"),t.imageWrapper.append(t.captchaImage.parent()),t._tabindex(t.captchaImage)},_idInput:function(){var t=this,n=t.options,o=t._captchaIdField;t.idInput=e('<input type="hidden" name="'+o+'" value="'+n.captchaId+'" data-'+a.ns+'stop="true" />'),t._inputWrapper.after(t.idInput)},_buttons:function(){var t=this,a=_.styles;t.buttonsWrapper=e('<div class="'+a.buttonsWrapper+'"></div>'),t.imageWrapper.append(t.buttonsWrapper),t.options.audioButton&&t._audioButton(),t.options.resetButton&&t._resetButton()},_resetButton:function(){var t=this,a=t.options.messages,n=_.styles;t.resetButton=e('<button type="button" title="'+a.reset+'" class="'+n.button+" "+n.buttonIcon+'"><span class="'+n.resetIcon+'"></span></button>'),t.buttonsWrapper.append(t.resetButton),t.resetButton.on(c+d,o(t._resetHandler,t,!0))},_audioButton:function(){var t=this,a=t.options.messages,n=_.styles;t.audioButton=e('<button type="button" title="'+a.audio+'" class="'+n.button+" "+n.buttonIcon+'"><span class="'+n.audioIcon+'"></span></button>'),t.buttonsWrapper.append(t.audioButton),t.audioButton.on(c+d,o(t._audioHandler,t))},_resetHandler:function(t){var a=this,n=a.options.handler,i=e.Deferred(),r=o(a._resetCaptcha,a,i);return delete a._isValid,a._toggleSuccessMessage(!1),a._audioEnded(),a._progress(!0),n?(a._callHandler("reset",n,r).done(function(){t&&a.resetButton.trigger("focus")}).fail(function(e){a._progress(!1),i.reject(e)}),i.promise()):(window.console.error("Captcha's handler option is not defined!"),i.reject({msg:"Captcha's handler option is not defined!",error:"handler_not_defined"}),a._progress(!1),i.promise())},_audioHandler:function(){var t=this,a=t.options.audioHandler,n=e.Deferred(),i=o(t._playAudio,t,n),r={};return r[t._captchaIdField]=t.idInput.val(),a?(t._callHandler("audio",a,i,r).fail(n.reject),n.promise()):(window.console.error("Captcha's audioHandler option is not defined!"),n.reject({msg:"Captcha's audioHandler option is not defined!",error:"handler_not_defined"}),n.promise())},_validationHandler:function(){var t=this,a=t.options.validationHandler,n=e.Deferred(),i=o(t._validate,t,n),r={};return delete t._isValid,r[t._captchaIdField]=t.idInput.val(),r[t._valueField]=t.element.val(),a?(t._callHandler("validation",a,i,r).fail(n.reject),n.promise()):(window.console.error("Captcha's validationHandler option is not defined!"),n.reject({msg:"Captcha's validationHandler option is not defined!",error:"handler_not_defined"}),n.promise())},_callHandler:function(a,n,u,d){var c,p=this,m=o(p._error,p,a),v=o(p._requestEnd,p,a);return s(n)?(n({success:u,data:d}),e.Deferred().promise()):(c=typeof n===l?{url:n,cache:!1}:i({},n),c.success=u,c.data=i({},d,c.data),p.trigger(h,{type:a,data:d})?t:r(c).done(v).fail(m))},_requestEnd:function(e,t){var a=this;a.trigger(v,{type:e,data:t})},_error:function(e,t,a,n){var o=this;o.trigger(g,{type:e,jqXHR:t,textStatus:a,errorThrown:n})},_resetCaptcha:function(e,t){var a=this,n=t[a._captchaIdField],o=t[a._captchaField];a.idInput.val(n),a.captchaImage.attr("src",o||""),a.captchaImage.one("load",function(){a._progress(!1)}),e.resolve(t)},_playAudio:function(a,n){var i=this;if(i._canPlayWav()){if(i.audioElement)return;i.audioElement=new Audio(n),i.audioElement.volume=i._audioVolume||i.audioElement.volume,i.options.volumeControl&&e(i.audioElement).on("loadeddata"+d,function(){i._showVolumeControl(i.audioElement.volume)}),e(i.audioElement).on("ended"+d+" error"+d,o(i._audioEnded,i,a)),i.audioElement.play()}else if(i._canPlayWithPlugin()){if(i.audioElement)return i.audioElement.play(),t;i.audioElement=i._createEmbedElement(n),i.wrapper.append(i.audioElement)}},_createEmbedElement:function(e){var t=this,a=document.createElement("embed");return a.setAttribute("src",e),a.setAttribute("autostart","true"),a.setAttribute("pluginspage",t._audioPlugin),a.setAttribute("enablejavascript","true"),a.setAttribute("type","audio/wav"),a.setAttribute("tabIndex","-1"),a.style.width="0px",a.style.height="0px",a.style.position="absolute",a.style.top=0,a.style.left=0,a},_showVolumeControl:function(t){var a=this,n=_.styles,o=e('<div class="'+n.volumeControlWrapper+'"></div>');a.volumeControl||(a.volumeControlElm=e("<input />"),a.volumeControlWrapper=o.append(a.volumeControlElm),a.imageWrapper.append(o),a.volumeControlWrapper.css(a._isRtl()?"right":"left",a.wrapper.width()),a.volumeControl=a.volumeControlElm.kendoSlider({min:0,max:1,smallStep:.1,largeStep:.5,orientation:"vertical",showButtons:!1,tickPlacement:"none",value:t,tooltip:{enabled:!1},change:function(e){a._audioVolume=a.audioElement.volume=e.value}}).data("kendoSlider"))},_audioEnded:function(t){var a=this;e(document.activeElement).is("a.k-draghandle")&&a.audioButton.trigger("focus"),a.volumeControl&&(a.volumeControl.destroy(),a.volumeControl.wrapper.remove(),delete a.volumeControl,a.volumeControlElm.remove(),a.volumeControlWrapper.remove(),delete a.volumeControlElm,delete a.volumeControlWrapper),a.audioElement&&a.audioElement.pause(),e(a.audioElement).off(d),e(a.audioElement).remove(),delete a.audioElement,t&&t.resolve&&t.resolve()},_canPlayWav:function(){var e,t=this;return t._canPlayAudio?t._canPlayAudio:(e=new Audio,t._canPlayAudio=""!==e.canPlayType("audio/wav").replace(/no/gi,""))},_canPlayWithPlugin:function(){var e=this;return e._audioPlugin?e._audioPlugin:e._audioPlugin=e._getPlugin()},_getPlugin:function(){var e=function(e){var t,a,n=navigator.plugins;for(t=0;t<n.length;t++)if(a=n[t].name,a.indexOf(e)!==-1)return!0;return!1},a=function(e){try{var t=new window.ActiveXObject(e);return!!t}catch(a){return!1}};return a("QuickTime.QuickTime")||a("QuickTimeCheckObject.QuickTimeCheck")||e("QuickTime Plug-in")?"http://www.apple.com/quicktime/download/":a("WMPlayer.OCX")||e("Windows Media")?"http://www.microsoft.com/Windows/MediaPlayer":t},_validate:function(e,t){var a=this;a._isValid=t,a._toggleSuccessMessage(a._isValid),e.resolve(t)},_toggleSuccessMessage:function(t){var a=this,n=(a.element.attr("id")||a.element.attr("name"))+"-success",o=a.options.messages;e(a.successMessage).remove(),a.element.removeAttr("aria-describedby"),t&&(a.successMessage=e('<span id="'+n+'" class="'+_.styles.success+'">'+o.success+"</span>"),a._inputWrapper.after(a.successMessage),a.element.attr("aria-describedby",n))},_toggleButtons:function(e){var t=this;t.resetButton&&t.resetButton.prop("disabled",!e),t.audioButton&&t.audioButton.prop("disabled",!e)},_progress:function(e){var t=this;t.wrapper.toggleClass(_.styles.loading,e),t._inputWrapper.toggleClass(_.styles.disabled,e),t._toggleButtons(!e),t._toggleSkeleton(e)},_toggleSkeleton:function(t){var a=this;a.skeleton&&a.skeleton.remove(),t&&(a.skeleton=e("<span class='k-skeleton k-skeleton-rect k-skeleton-pulse' style=\"width: 100%; height: 100%;\"></span>"),a.captchaImage.before(a.skeleton))},_isRtl:function(){return a.support.isRtl(this.wrapper)},value:function(){return this.element.val()},getCaptchaId:function(){return this.idInput.val()},toJSON:function(){var e=this,t={};return t[e._valueField]=e.value(),t[e._captchaIdField]=e.getCaptchaId(),t},validate:function(){return this._validationHandler()},isValid:function(){return this._isValid},enable:function(e){var t=this;e=e!==!1,t._toggleButtons(e),t.textbox.enable(e),e?(t.captchaImage.removeAttr("tabIndex"),t._tabindex(t.captchaImage)):t.captchaImage.attr("tabIndex","-1"),t.captchaImage.toggleClass(_.styles.disabled,!e),t.wrapper.toggleClass(_.styles.disabled,!e)},readonly:function(e){var t=this;e=e!==!1,t.resetButton&&t.resetButton.prop("disabled",e),t.textbox.readonly(e)},speak:function(){return this._audioHandler()},reset:function(){return this._resetHandler()}});a.ui.plugin(_),i(!0,_,{styles:f})}(window.kendo.jQuery),window.kendo},a(3))},1089:function(e,t){e.exports=require("./kendo.slider")},1090:function(e,t){e.exports=require("./kendo.textbox")},1091:function(e,t){e.exports=require("./kendo.skeletoncontainer")}});