@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 9.68 kB
JavaScript
module.exports=function(e){function t(a){if(i[a])return i[a].exports;var r=i[a]={exports:{},id:a,loaded:!1};return e[a].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}({0:function(e,t,i){e.exports=i(1268)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1268:function(e,t,i){var a,r,l;!function(n,define){r=[i(1269)],a=n,l="function"==typeof a?a.apply(t,r):a,!(void 0!==l&&(e.exports=l))}(function(){return function(e,t){var i=window.kendo,a=i.ui,r=".kendoForm",l=a.Widget,n=e.extend,o=e.proxy,d="validate",s="validateField",f="validateInput",p="change",u="click"+r,m="submit",c="clear",b="max-width",v="set",g="equalSet",_="group",h="aria-describedby",y="data-stop",k="data-role",w="editable",F="form",C=".",T="[data-role='radiogroup']",x="[data-role='checkboxgroup']",E={form:"k-widget k-form",horizontal:"k-form-horizontal",vertical:"",field:"k-form-field",fieldsContainer:"k-form-fields-container",fieldWrap:"k-form-field-wrap",fieldError:"k-form-field-error",fieldHint:"k-form-hint",fieldset:"k-form-fieldset",layout:"k-form-layout",legend:"k-form-legend",label:"k-label k-form-label",optional:"k-label-optional",buttonsContainer:"k-form-buttons",buttonsEnd:"k-buttons-end",submit:"k-form-submit",clear:"k-form-clear",invalid:"k-invalid",hidden:"k-hidden"},S={horizontal:"horizontal",vertical:"vertical"},H=l.extend({init:function(e,t){var a=this;l.fn.init.call(a,e,t),a.options=i.deepExtend({},a.options,t),t&&t.formData&&(a.options.formData=t.formData),a._wrapper(),a._setFields(),a._setModel(),a._renderContainers(),a._renderButtons(),a._editable(),a._renderFieldsHints(),a._setEvents()},events:[s,d,p,m,c],options:{name:"Form",orientation:S.vertical,validatable:{validateOnBlur:!0,validationSummary:!1,errorTemplate:null},buttonsTemplate:null,messages:{submit:"Submit",clear:"Clear",optional:"(Optional)"},layout:"",grid:{},formData:{},items:[],formatLabel:null,focusFirst:!1},_fieldTemplate:"<div class='#:styles.field# #if (colSpan) { # k-colspan-#:colSpan# # } # #if (hidden) { ##:styles.hidden## } #'># if (label && !hidden) { # <label class='#:styles.label#' for='#:id#' id='#:id#-form-label'># if (typeof label.encoded != 'undefined' && label.encoded === false) {##= label.text || label ## } else { ##: label.text || label ## } ## if (label.optional) { # <span class='#:styles.optional#'>#:optional#</span> #}#</label># } #<div class='k-form-field-wrap' data-container-for='#:field#'></div></div>",_groupTemplate:"<fieldset class='#:styles.fieldset# #if (colSpan) { # k-colspan-#:colSpan# # }#'><legend class='#:styles.legend#'>#:label.text || label #</legend></fieldset>",_buttonsTemplate:"<button class='k-button k-primary #:styles.submit#' type='submit'>#:messages.submit#</button><button class='k-button #:styles.clear#'>#:messages.clear#</button>",_errorTemplate:"<span class='k-form-error' id='#=field#-form-error'><div>#=message#</div></span>",_hintTemplate:"<div class='k-form-hint' id='#=id#-form-hint'><span>#=message#</span></div>",_wrapper:function(){var e=this,t=e.options,i=H.styles,a=t.width,r=t.height;e.wrapper=e.element.addClass(i.form).addClass(i[t.orientation]),r&&e.wrapper.height(r),a&&e.wrapper.css(b,a),e.layoutWrapper=e._setupLayoutContainer(e.wrapper,{grid:t.grid,layout:t.layout})},_flattenFields:function(e){for(var t=[].concat(e),i=t.shift(),a=[],r=[].push;i;)i.items?r.apply(t,i.items):r.call(a,i),i=t.shift();return a},_defaultLabel:function(e){var t=this,a=t.options.formatLabel;if(e.length)return i.isFunction(a)?a(e):e.split(/(.*[a-z])(?=[A-Z])/).join(" ").trim()+":"},_formatLabel:function(i,a){var r=this,l=e.isPlainObject(a)?a.text:a;return l!==t?a:r._defaultLabel(i)},_defaultFields:function(){var e,t,i=this,a=i.options,r=Object.keys(a.formData||{}),l=a.items||{},n=[];if(l.length)return l;for(t=0;t<r.length;t+=1)e=r[t],n.push({field:e,id:e});return n},_setFields:function(){var e,t,r,l,o,d,s=this,f=s._flattenFields(s._defaultFields()),p=s.options.formData||{};s._fields=[];for(d in f)e=f[d],t=p[e.field],r="string"==typeof e.editor?e.editor:i.type(t?i.parseDate(""+t)||t:t),l=i.isFunction(e.editor)?e.editor:a.Editable.fn.options.editors[r]?"":e.editor,s._isHidden(e.editor)||(o={"aria-labelledby":e.id||e.field+"-form-label"}),e=n(!0,{},e,{id:e.id||e.field,name:e.name||e.field,type:r,editor:l,attributes:o,isHidden:s._isHidden(e.editor)||s._isAntiForgeryToken(e.name||e.field)}),s._fields[d]=e},_setModel:function(){var e,a=this,r=a.options,l=r.formData||{};return r.formData instanceof i.data.ObservableObject?(a._model=l,t):(e=i.data.Model.define({fields:a._fields}),a._model=new e(l),t)},_editable:function(){var e=this,t=e.options,i=e.options.validatable;e._addEditableMvvmAttributes(),e.editable=e.wrapper.kendoEditable({model:e._model,fields:e._fields||[],validateOnBlur:i.validateOnBlur,validationSummary:i.validationSummary,errorTemplate:i.errorTemplate||e._errorTemplate,clearContainer:!1,skipFocus:!t.focusFirst,target:e}).getKendoEditable(),e.validator=e.editable.validatable,e._removeEditableMvvmAttributes()},_addEditableMvvmAttributes:function(){this.wrapper.attr(k,w)},_removeEditableMvvmAttributes:function(){this.wrapper.attr(y,!0).attr(k,F)},_getItemTemplate:function(e){var t,i=this;return t=e===_?i._groupTemplate:i._fieldTemplate},_isHidden:function(e){return"string"==typeof e&&"hidden"===e},_isAntiForgeryToken:function(e){return e===a.Editable.antiForgeryTokenName},_renderField:function(e){var t,a=this,r=H.styles;return t=i.template(a._fieldTemplate)({styles:r,id:e.id||e.field||"",field:e.field||"",label:a._formatLabel(e.field,e.label),colSpan:e.colSpan||"",optional:a.options.messages.optional,hidden:a._isHidden(e.editor)||a._isAntiForgeryToken(e.field)})},_toggleFieldErrorState:function(e,t){var i=e.closest(C+E.field);i.length&&i.toggleClass(E.fieldError,t)},_renderFieldsHints:function(){var t,a,r,l,n,o=this,d=o._fields;for(n=0;n<d.length;n+=1)t=d[n],r=o.wrapper.find("[name='"+t.name+"']"),r&&t.hint&&!t.isHidden&&(l=e(i.template(o._hintTemplate)({message:t.hint||"",id:t.id})),o._associateHintContainer(r,l.attr("id")),a=i.widgetInstance(r),a&&(r=a.wrapper),o.validator._errorsByName(t.name).length&&(l.toggleClass(E.hidden),i.removeAttribute(r,h,l.attr("id"))),l.insertAfter(r))},_associateHintContainer:function(e,t){var a=i.getWidgetFocusableElement(e);a&&t&&i.toggleAttribute(a,h,t)},_toggleHint:function(e,t){var i,a=this,r=e.closest(C+E.field);r.length&&(i=r.find(C+E.fieldHint),i.length&&(i.toggleClass(E.hidden,t),a._associateHintContainer(e,i.attr("id"))))},_renderGroup:function(t){var a,r,l,n=this,o=t.type,d=r=e(i.template(n._getItemTemplate(o))({styles:E,label:t.label||"",colSpan:t.colSpan}));for(d=n._setupLayoutContainer(r,{grid:t.grid,layout:t.layout})||r,l=0;l<t.items.length;l+=1)a=t.items[l],d.append(n._renderField(a));return r},_renderContainers:function(){var e,t,i,a,r=this,l=r._defaultFields(),n="grid"===r.options.layout,o=n?r.layoutWrapper:r.wrapper;for(a=0;a<l.length;a+=1)e=l[a],t=e.type,i=t===_?r._renderGroup(e):r._renderField(e),o.append(i)},_renderButtons:function(){var t,a=this,r=a.wrapper,l=a.options,n=l.messages,o=H.styles,d=l.orientation===S.horizontal,s=r.find(C+o.buttonsContainer);s.length||(s=e("<div />").addClass(o.buttonsContainer).addClass(d?o.buttonsEnd:"")),t=null!==l.buttonsTemplate?l.buttonsTemplate:a._buttonsTemplate,s.append(i.template(t)({styles:o,messages:n})),a.element.append(s)},_setupLayoutContainer:function(t,i){var a,r=i.layout,l=i.grid,n=[];return"string"==typeof r&&""!==r&&(a=e("<div></div>").appendTo(t).addClass(E.layout),n.push("k-d-"+r)),"grid"===r&&"object"==typeof l&&("number"==typeof l.cols?n.push("k-grid-cols-"+l.cols):"string"==typeof l.cols&&a.css("grid-template-columns",l.cols),"number"!=typeof l.gutter&&"string"!=typeof l.gutter||a.css("grid-gap",l.gutter)),a&&a.addClass(n.join(" ")),a},_setEvents:function(){var e=this,t=e.validator;t.bind(f,o(e._validateField,e)).bind(d,o(e._validate,e)),e.wrapper.on(m+r,o(e._submit,e)).on(c+r,o(e._clear,e)).on(u+r,C+E.clear,o(e._clear,e)),e._model.bind(p,o(e._change,e))},_validateField:function(e){var t=this,i={model:t._model.toJSON(),valid:e.valid,field:e.field,error:e.error,input:e.input};t._toggleFieldErrorState(i.input,!i.valid),t._toggleHint(i.input,!i.valid),t.trigger(s,i)&&e.preventDefault()},_validate:function(e){var t=this,i={model:t._model.toJSON(),valid:e.valid,errors:e.errors};t.trigger(d,i)},_change:function(e){var t=this,i=e.field,a={field:i,value:t._model[i]};t.trigger(p,a)},_submit:function(e){var t=this,i=t._model.toJSON();t.trigger(m,{model:i})&&e.preventDefault()},_clear:function(e){var t=this;e.preventDefault(),t.clear(),t.trigger(c)},validate:function(){var e=this,t=e.validator;if(t)return t.validate()},clear:function(){var e,t,a,r,l,n=this,o=n._fields,d=n._model,s=n.editable,f=n.validator.options.validateOnBlur;for(n.validator.reset(),f&&d.unbind(v).unbind(g),e=0;e<o.length;e+=1)t=o[e].field,a=n.wrapper.find("[name='"+t+"']"),r=i.widgetInstance(a),l=a.is("input[type=hidden]"),a.is(x)||a.is(T)||l||a.val(""),r&&r.value(null),n._toggleHint(a,!1),"boolean"==typeof d[t]?(a.val("false"),d.set(t,!1)):l||d.set(t,null);n.wrapper.find(C+E.fieldError).removeClass(E.fieldError),f&&d.bind(v,s._validateProxy).bind(g,s._validateProxy)},setOptions:function(e){var t=this;t.destroy(),t.wrapper.removeClass(E.horizontal).removeAttr(y).empty(),t.init(t.element,e)},destroy:function(){var e=this;e.wrapper.off(r),l.fn.destroy.call(e.editable),l.fn.destroy.call(e),e.editable&&(e.editable.destroy(),e.editable=null)}});a.plugin(H),n(!0,H,{styles:E})}(window.kendo.jQuery),window.kendo},i(3))},1269:function(e,t){e.exports=require("./kendo.editable")}});