UNPKG

@progress/kendo-ui

Version:

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

1 lines 9.09 kB
module.exports=function(e){function t(a){if(i[a])return i[a].exports;var l=i[a]={exports:{},id:a,loaded:!1};return e[a].call(l.exports,l,l.exports,t),l.loaded=!0,l.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}({0:function(e,t,i){e.exports=i(1254)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1254:function(e,t,i){var a,l,r;!function(n,define){l=[i(1255)],a=n,r="function"==typeof a?a.apply(t,l):a,!(void 0!==r&&(e.exports=r))}(function(){return function(e,t){var i=window.kendo,a=i.ui,l=".kendoForm",r=a.Widget,n=e.extend,o=e.proxy,s="validate",d="validateField",f="validateInput",p="change",u="click"+l,m="submit",c="clear",v="max-width",b="set",g="equalSet",_="group",h="aria-describedby",y="data-stop",k="data-role",w="editable",C="form",F=".",x={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"},E={horizontal:"horizontal",vertical:"vertical"},T=r.extend({init:function(e,t){var a=this;r.fn.init.call(a,e,t),a.options=i.deepExtend({},a.options,t),a._wrapper(),a._setFields(),a._setModel(),a._renderContainers(),a._renderButtons(),a._editable(),a._renderFieldsHints(),a._setEvents()},events:[d,s,p,m,c],options:{name:"Form",orientation:E.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 (label) { # <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=T.styles,a=t.width,l=t.height;e.wrapper=e.element.addClass(i.form).addClass(i[t.orientation]),l&&e.wrapper.height(l),a&&e.wrapper.css(v,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=[],l=[].push;i;)i.items?l.apply(t,i.items):l.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 l=this,r=e.isPlainObject(a)?a.text:a;return r!==t?a:l._defaultLabel(i)},_defaultFields:function(){var e,t,i=this,a=i.options,l=Object.keys(a.formData||{}),r=a.items||{},n=[];if(r.length)return r;for(t=0;t<l.length;t+=1)e=l[t],n.push({field:e,id:e});return n},_setFields:function(){var t,l,r,o,s,d,f=this,p=f._flattenFields(f._defaultFields()),u=f.options.formData||{};f._fields=[];for(d in p)t=p[d],l=u[t.field],r="string"==typeof t.editor?t.editor:e.type(l?i.parseDate(""+l)||l:l),o=i.isFunction(t.editor)?t.editor:a.Editable.fn.options.editors[r]?"":t.editor,s={"aria-labelledby":t.id||t.field+"-form-label"},t=n(!0,{},t,{id:t.id||t.field,name:t.name||t.field,type:r,editor:o,attributes:s}),f._fields[d]=t},_setModel:function(){var e=this,t=e.options,a=t.formData||{},l=i.data.Model.define({fields:e._fields});e._model=new l(a)},_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,C)},_getItemTemplate:function(e){var t,i=this;return t=e===_?i._groupTemplate:i._fieldTemplate},_renderField:function(e){var t,a=this,l=T.styles;return t=i.template(a._fieldTemplate)({styles:l,id:e.id||e.field||"",field:e.field||"",label:a._formatLabel(e.field,e.label),colSpan:e.colSpan||"",optional:a.options.messages.optional})},_toggleFieldErrorState:function(e,t){var i=e.closest(F+x.field);i.length&&i.toggleClass(x.fieldError,t)},_renderFieldsHints:function(){var t,a,l,r,n,o=this,s=o._fields;for(n=0;n<s.length;n+=1)t=s[n],l=o.wrapper.find("[name='"+t.name+"']"),l&&t.hint&&(r=e(i.template(o._hintTemplate)({message:t.hint||"",id:t.id})),o._associateHintContainer(l,r.attr("id")),a=i.widgetInstance(l),a&&(l=a.wrapper),o.validator._errorsByName(t.name).length&&(r.toggleClass(x.hidden),i.removeAttribute(l,h,r.attr("id"))),r.insertAfter(l))},_associateHintContainer:function(e,t){var a=i.getWidgetFocusableElement(e);a&&t&&i.toggleAttribute(a,h,t)},_toggleHint:function(e,t){var i,a=this,l=e.closest(F+x.field);l.length&&(i=l.find(F+x.fieldHint),i.length&&(i.toggleClass(x.hidden,t),a._associateHintContainer(e,i.attr("id"))))},_renderGroup:function(t){var a,l,r,n=this,o=t.type,s=l=e(i.template(n._getItemTemplate(o))({styles:x,label:t.label||"",colSpan:t.colSpan}));for(s=n._setupLayoutContainer(l,{grid:t.grid,layout:t.layout})||l,r=0;r<t.items.length;r+=1)a=t.items[r],s.append(n._renderField(a));return l},_renderContainers:function(){var e,t,i,a,l=this,r=l._defaultFields(),n="grid"===l.options.layout,o=n?l.layoutWrapper:l.wrapper;for(a=0;a<r.length;a+=1)e=r[a],t=e.type,i=t===_?l._renderGroup(e):l._renderField(e),o.append(i)},_renderButtons:function(){var t,a=this,l=a.wrapper,r=a.options,n=r.messages,o=T.styles,s=r.orientation===E.horizontal,d=l.find(F+o.buttonsContainer);d.length||(d=e("<div />").addClass(o.buttonsContainer).addClass(s?o.buttonsEnd:"")),t=null!==r.buttonsTemplate?r.buttonsTemplate:a._buttonsTemplate,d.append(i.template(t)({styles:o,messages:n})),a.element.append(d)},_setupLayoutContainer:function(t,i){var a,l=i.layout,r=i.grid,n=[];return"string"==typeof l&&""!==l&&(a=e("<div></div>").appendTo(t).addClass(x.layout),n.push("k-d-"+l)),"grid"===l&&"object"==typeof r&&("number"==typeof r.cols?n.push("k-grid-cols-"+r.cols):"string"==typeof r.cols&&a.css("grid-template-columns",r.cols),"number"!=typeof r.gutter&&"string"!=typeof r.gutter||a.css("grid-gap",r.gutter)),a&&a.addClass(n.join(" ")),a},_setEvents:function(){var e=this,t=e.validator;t.bind(f,o(e._validateField,e)).bind(s,o(e._validate,e)),e.wrapper.on(m+l,o(e._submit,e)).on(c+l,o(e._clear,e)).on(u+l,F+x.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(d,i)&&e.preventDefault()},_validate:function(e){var t=this,i={model:t._model.toJSON(),valid:e.valid,errors:e.errors};t.trigger(s,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,l,r=this,n=r._fields,o=r._model,s=r.editable,d=r.validator.options.validateOnBlur;for(r.validator.reset(),d&&o.unbind(b).unbind(g),e=0;e<n.length;e+=1)t=n[e].field,a=r.wrapper.find("[name='"+t+"']"),l=i.widgetInstance(a),a.val(""),l&&l.value(null),r._toggleHint(a,!1),"boolean"==typeof o[t]?(a.val("false"),o.set(t,!1)):o.set(t,null);r.wrapper.find(F+x.fieldError).removeClass(x.fieldError),d&&o.bind(b,s._validateProxy).bind(g,s._validateProxy)},setOptions:function(e){var t=this;t.destroy(),t.wrapper.removeClass(x.horizontal).removeAttr(y).empty(),t.init(t.element,e)},destroy:function(){var e=this;e.wrapper.off(l),r.fn.destroy.call(e.editable),r.fn.destroy.call(e),e.editable&&(e.editable.destroy(),e.editable=null)}});a.plugin(T),n(!0,T,{styles:x})}(window.kendo.jQuery),window.kendo},i(3))},1255:function(e,t){e.exports=require("./kendo.editable")}});