fomantic-ui 2.9.0-beta.216 → 2.9.0-beta.217
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion.css +1 -1
- package/dist/components/accordion.js +1 -1
- package/dist/components/accordion.min.css +1 -1
- package/dist/components/accordion.min.js +1 -1
- package/dist/components/ad.css +1 -1
- package/dist/components/ad.min.css +1 -1
- package/dist/components/api.js +1 -1
- package/dist/components/api.min.js +1 -1
- package/dist/components/breadcrumb.css +1 -1
- package/dist/components/breadcrumb.min.css +1 -1
- package/dist/components/button.css +1 -1
- package/dist/components/button.min.css +1 -1
- package/dist/components/calendar.css +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/calendar.min.css +1 -1
- package/dist/components/calendar.min.js +1 -1
- package/dist/components/card.css +1 -1
- package/dist/components/card.min.css +1 -1
- package/dist/components/checkbox.css +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkbox.min.css +1 -1
- package/dist/components/checkbox.min.js +1 -1
- package/dist/components/comment.css +1 -1
- package/dist/components/comment.min.css +1 -1
- package/dist/components/container.css +1 -1
- package/dist/components/container.min.css +1 -1
- package/dist/components/dimmer.css +1 -1
- package/dist/components/dimmer.js +1 -1
- package/dist/components/dimmer.min.css +1 -1
- package/dist/components/dimmer.min.js +1 -1
- package/dist/components/divider.css +1 -1
- package/dist/components/divider.min.css +1 -1
- package/dist/components/dropdown.css +20 -7
- package/dist/components/dropdown.js +1 -1
- package/dist/components/dropdown.min.css +2 -2
- package/dist/components/dropdown.min.js +1 -1
- package/dist/components/embed.css +1 -1
- package/dist/components/embed.js +1 -1
- package/dist/components/embed.min.css +1 -1
- package/dist/components/embed.min.js +1 -1
- package/dist/components/feed.css +1 -1
- package/dist/components/feed.min.css +1 -1
- package/dist/components/flag.css +1 -1
- package/dist/components/flag.min.css +1 -1
- package/dist/components/form.css +1 -1
- package/dist/components/form.js +6 -6
- package/dist/components/form.min.css +1 -1
- package/dist/components/form.min.js +2 -2
- package/dist/components/grid.css +1 -1
- package/dist/components/grid.min.css +1 -1
- package/dist/components/header.css +1 -1
- package/dist/components/header.min.css +1 -1
- package/dist/components/icon.css +1 -1
- package/dist/components/icon.min.css +1 -1
- package/dist/components/image.css +1 -1
- package/dist/components/image.min.css +1 -1
- package/dist/components/input.css +1 -1
- package/dist/components/input.min.css +1 -1
- package/dist/components/item.css +1 -1
- package/dist/components/item.min.css +1 -1
- package/dist/components/label.css +1 -1
- package/dist/components/label.min.css +1 -1
- package/dist/components/list.css +1 -1
- package/dist/components/list.min.css +1 -1
- package/dist/components/loader.css +1 -1
- package/dist/components/loader.min.css +1 -1
- package/dist/components/message.css +1 -1
- package/dist/components/message.min.css +1 -1
- package/dist/components/modal.css +1 -1
- package/dist/components/modal.js +1 -1
- package/dist/components/modal.min.css +1 -1
- package/dist/components/modal.min.js +1 -1
- package/dist/components/nag.css +1 -1
- package/dist/components/nag.js +1 -1
- package/dist/components/nag.min.css +1 -1
- package/dist/components/nag.min.js +1 -1
- package/dist/components/placeholder.css +1 -1
- package/dist/components/placeholder.min.css +1 -1
- package/dist/components/popup.css +1 -1
- package/dist/components/popup.js +1 -1
- package/dist/components/popup.min.css +1 -1
- package/dist/components/popup.min.js +1 -1
- package/dist/components/progress.css +1 -1
- package/dist/components/progress.js +1 -1
- package/dist/components/progress.min.css +1 -1
- package/dist/components/progress.min.js +1 -1
- package/dist/components/rail.css +1 -1
- package/dist/components/rail.min.css +1 -1
- package/dist/components/rating.css +1 -1
- package/dist/components/rating.js +1 -1
- package/dist/components/rating.min.css +1 -1
- package/dist/components/rating.min.js +1 -1
- package/dist/components/reset.css +1 -1
- package/dist/components/reset.min.css +1 -1
- package/dist/components/reveal.css +1 -1
- package/dist/components/reveal.min.css +1 -1
- package/dist/components/search.css +1 -1
- package/dist/components/search.js +1 -1
- package/dist/components/search.min.css +1 -1
- package/dist/components/search.min.js +1 -1
- package/dist/components/segment.css +1 -1
- package/dist/components/segment.min.css +1 -1
- package/dist/components/shape.css +1 -1
- package/dist/components/shape.js +1 -1
- package/dist/components/shape.min.css +1 -1
- package/dist/components/shape.min.js +1 -1
- package/dist/components/sidebar.css +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.min.css +1 -1
- package/dist/components/sidebar.min.js +1 -1
- package/dist/components/site.css +1 -1
- package/dist/components/site.js +1 -1
- package/dist/components/site.min.css +1 -1
- package/dist/components/site.min.js +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/slider.min.js +1 -1
- package/dist/components/state.js +1 -1
- package/dist/components/state.min.js +1 -1
- package/dist/components/statistic.css +1 -1
- package/dist/components/statistic.min.css +1 -1
- package/dist/components/step.css +1 -1
- package/dist/components/step.min.css +1 -1
- package/dist/components/sticky.css +1 -1
- package/dist/components/sticky.js +1 -1
- package/dist/components/sticky.min.css +1 -1
- package/dist/components/sticky.min.js +1 -1
- package/dist/components/tab.css +1 -1
- package/dist/components/tab.js +1 -1
- package/dist/components/tab.min.css +1 -1
- package/dist/components/tab.min.js +1 -1
- package/dist/components/table.css +1 -1
- package/dist/components/table.min.css +1 -1
- package/dist/components/text.css +1 -1
- package/dist/components/text.min.css +1 -1
- package/dist/components/toast.css +1 -1
- package/dist/components/toast.js +1 -1
- package/dist/components/toast.min.css +1 -1
- package/dist/components/toast.min.js +1 -1
- package/dist/components/transition.css +1 -1
- package/dist/components/transition.js +1 -1
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +1 -1
- package/dist/components/visibility.js +1 -1
- package/dist/components/visibility.min.js +1 -1
- package/dist/semantic.css +71 -55
- package/dist/semantic.js +30 -30
- package/dist/semantic.min.css +2 -2
- package/dist/semantic.min.js +2 -2
- package/package.json +1 -1
- package/src/definitions/behaviors/form.js +5 -5
- package/src/definitions/modules/dropdown.less +46 -27
- package/src/themes/default/modules/dropdown.variables +3 -9
package/dist/components/form.css
CHANGED
package/dist/components/form.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* # Fomantic-UI 2.9.0-beta.
|
2
|
+
* # Fomantic-UI 2.9.0-beta.217 - Form Validation
|
3
3
|
* http://github.com/fomantic/Fomantic-UI/
|
4
4
|
*
|
5
5
|
*
|
@@ -586,7 +586,7 @@ $.fn.form = function(parameters) {
|
|
586
586
|
if(isLegacySettings) {
|
587
587
|
// 1.x (ducktyped)
|
588
588
|
settings = $.extend(true, {}, $.fn.form.settings, legacyParameters);
|
589
|
-
validation = $.extend({}, $.fn.form.settings.defaults, parameters);
|
589
|
+
validation = $.extend(true, {}, $.fn.form.settings.defaults, parameters);
|
590
590
|
module.error(settings.error.oldSyntax, element);
|
591
591
|
module.verbose('Extending settings from legacy parameters', validation, settings);
|
592
592
|
}
|
@@ -596,13 +596,13 @@ $.fn.form = function(parameters) {
|
|
596
596
|
parameters.fields = module.get.fieldsFromShorthand(parameters.fields);
|
597
597
|
}
|
598
598
|
settings = $.extend(true, {}, $.fn.form.settings, parameters);
|
599
|
-
validation = $.extend({}, $.fn.form.settings.defaults, settings.fields);
|
599
|
+
validation = $.extend(true, {}, $.fn.form.settings.defaults, settings.fields);
|
600
600
|
module.verbose('Extending settings', validation, settings);
|
601
601
|
}
|
602
602
|
}
|
603
603
|
else {
|
604
|
-
settings = $.fn.form.settings;
|
605
|
-
validation = $.fn.form.settings.defaults;
|
604
|
+
settings = $.extend(true, {}, $.fn.form.settings);
|
605
|
+
validation = $.extend(true, {}, $.fn.form.settings.defaults);
|
606
606
|
module.verbose('Using default form validation', validation, settings);
|
607
607
|
}
|
608
608
|
|
@@ -866,7 +866,7 @@ $.fn.form = function(parameters) {
|
|
866
866
|
module.debug('Adding rules', newValidation.rules, validation);
|
867
867
|
},
|
868
868
|
fields: function(fields) {
|
869
|
-
validation = $.extend({}, validation, module.get.fieldsFromShorthand(fields));
|
869
|
+
validation = $.extend(true, {}, validation, module.get.fieldsFromShorthand(fields));
|
870
870
|
},
|
871
871
|
prompt: function(identifier, errors, internal) {
|
872
872
|
var
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
* # Fomantic UI - 2.9.0-beta.
|
2
|
+
* # Fomantic UI - 2.9.0-beta.217
|
3
3
|
* https://github.com/fomantic/Fomantic-UI
|
4
4
|
* http://fomantic-ui.com/
|
5
5
|
*
|
@@ -8,4 +8,4 @@
|
|
8
8
|
* http://opensource.org/licenses/MIT
|
9
9
|
*
|
10
10
|
*/
|
11
|
-
!function(O,$,I,L){"use strict";O.isFunction=O.isFunction||function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},$=void 0!==$&&$.Math==Math?$:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),O.fn.form=function(C){var w,V=O(this),A=V.selector||"",D=(new Date).getTime(),F=[],R=C,S=arguments[1],T="string"==typeof R,j=[].slice.call(arguments,1);return V.each(function(){var n,f,t,e,p,s,m,g,h,r,c,i,a,l,u,v,d=O(this),b=this,y=[],x=!1,o=!1,k=!1,E=["clean","clean"];(v={initialize:function(){v.get.settings(),T?(u===L&&v.instantiate(),v.invoke(R)):(u!==L&&(u.invoke("destroy"),v.refresh()),v.verbose("Initializing form validation",d,p),v.bindEvents(),v.set.defaults(),p.autoCheckRequired&&v.set.autoCheck(),v.instantiate())},instantiate:function(){v.verbose("Storing instance of module",v),u=v,d.data(a,v)},destroy:function(){v.verbose("Destroying previous module",u),v.removeEvents(),d.removeData(a)},refresh:function(){v.verbose("Refreshing selector cache"),n=d.find(g.field),f=d.find(g.group),t=d.find(g.message),d.find(g.prompt),e=d.find(g.submit),d.find(g.clear),d.find(g.reset)},submit:function(){v.verbose("Submitting form",d),o=!0,d.submit()},attachEvents:function(e,t){t=t||"submit",O(e).on("click"+l,function(e){v[t](),e.preventDefault()})},bindEvents:function(){v.verbose("Attaching form events"),d.on("submit"+l,v.validate.form).on("blur"+l,g.field,v.event.field.blur).on("click"+l,g.submit,v.submit).on("click"+l,g.reset,v.reset).on("click"+l,g.clear,v.clear),p.keyboardShortcuts&&d.on("keydown"+l,g.field,v.event.field.keydown),n.each(function(e,t){var n=O(t),r=n.prop("type"),i=v.get.changeEvent(r,n);n.on(i+l,v.event.field.change)}),p.preventLeaving&&O($).on("beforeunload"+l,v.event.beforeUnload),n.on("change click keyup keydown blur",function(e){v.determine.isDirty()}),d.on("dirty"+l,function(e){p.onDirty.call()}),d.on("clean"+l,function(e){p.onClean.call()})},clear:function(){n.each(function(e,t){var n=O(t),r=n.parent(),i=n.closest(f),a=i.find(g.prompt),o=n.closest(g.uiCalendar),l=n.data(m.defaultValue)||"",s=r.is(g.uiCheckbox),u=r.is(g.uiDropdown)&&v.can.useElement("dropdown"),c=0<o.length&&v.can.useElement("calendar");i.hasClass(h.error)&&(v.verbose("Resetting error on field",i),i.removeClass(h.error),a.remove()),u?(v.verbose("Resetting dropdown value",r,l),r.dropdown("clear",!0)):s?n.prop("checked",!1):c?o.calendar("clear"):(v.verbose("Resetting field value",n,l),n.val(""))}),v.remove.states()},reset:function(){n.each(function(e,t){var n=O(t),r=n.parent(),i=n.closest(f),a=n.closest(g.uiCalendar),o=i.find(g.prompt),l=n.data(m.defaultValue),s=r.is(g.uiCheckbox),u=r.is(g.uiDropdown)&&v.can.useElement("dropdown"),c=0<a.length&&v.can.useElement("calendar"),d=i.hasClass(h.error);l!==L&&(d&&(v.verbose("Resetting error on field",i),i.removeClass(h.error),o.remove()),u?(v.verbose("Resetting dropdown value",r,l),r.dropdown("restore defaults",!0)):s?(v.verbose("Resetting checkbox value",r,l),n.prop("checked",l)):c?a.calendar("set date",l):(v.verbose("Resetting field value",n,l),n.val(l)))}),v.remove.states()},determine:{isValid:function(){var n=!0;return O.each(s,function(e,t){v.validate.field(t,e,!0)||(n=!1)}),n},isDirty:function(e){var i=!1;n.each(function(e,t){var n,r=O(t);n=0<r.filter(g.checkbox).length?v.is.checkboxDirty(r):v.is.fieldDirty(r),r.data(p.metadata.isDirty,n),i|=n}),i?v.set.dirty():v.set.clean()}},is:{bracketedRule:function(e){return e.type&&e.type.match(p.regExp.bracket)},shorthandRules:function(e){return"string"==typeof e||Array.isArray(e)},empty:function(e){return!e||0===e.length||(e.is(g.checkbox)?!e.is(":checked"):v.is.blank(e))},blank:function(e){return""===String(e.val()).trim()},valid:function(e,n){var r=!0;return e?(v.verbose("Checking if field is valid",e),v.validate.field(s[e],e,!!n)):(v.verbose("Checking if form is valid"),O.each(s,function(e,t){v.is.valid(e,n)||(r=!1)}),r)},dirty:function(){return k},clean:function(){return!k},fieldDirty:function(e){var t=e.data(m.defaultValue);null==t?t="":Array.isArray(t)&&(t=t.toString());var n=e.val();null==n?n="":Array.isArray(n)&&(n=n.toString());var r=/^(true|false)$/i;return r.test(t)&&r.test(n)?!new RegExp("^"+t+"$","i").test(n):n!==t},checkboxDirty:function(e){return e.data(m.defaultValue)!==e.is(":checked")},justDirty:function(){return"dirty"===E[0]},justClean:function(){return"clean"===E[0]}},removeEvents:function(){d.off(l),n.off(l),e.off(l),n.off(l)},event:{field:{keydown:function(e){var t=O(this),n=e.which,r=t.is(g.input),i=t.is(g.checkbox),a=0<t.closest(g.uiDropdown).length,o=13;n==27&&(v.verbose("Escape key pressed blurring field"),t[0].blur()),e.ctrlKey||n!=o||!r||a||i||(x||(t.one("keyup"+l,v.event.field.keyup),v.submit(),v.debug("Enter pressed on input submitting form"),e.preventDefault()),x=!0)},keyup:function(){x=!1},blur:function(e){var t=O(this),n=t.closest(f),r=v.get.validation(t);r&&("blur"==p.on||n.hasClass(h.error)&&p.revalidate)&&(v.debug("Revalidating field",t,r),v.validate.field(r),p.inline||v.validate.form(!1,!0))},change:function(e){var t=O(this),n=t.closest(f),r=v.get.validation(t);r&&("change"==p.on||n.hasClass(h.error)&&p.revalidate)&&(clearTimeout(v.timer),v.timer=setTimeout(function(){v.debug("Revalidating field",t,r),v.validate.field(r),p.inline||v.validate.form(!1,!0)},p.delay))}},beforeUnload:function(e){if(v.is.dirty()&&!o)return(e=e||$.event)&&(e.returnValue=p.text.leavingMessage),p.text.leavingMessage}},get:{ancillaryValue:function(e){return!(!e.type||!e.value&&!v.is.bracketedRule(e))&&(e.value!==L?e.value:e.type.match(p.regExp.bracket)[1]+"")},ruleName:function(e){return v.is.bracketedRule(e)?e.type.replace(e.type.match(p.regExp.bracket)[0],""):e.type},changeEvent:function(e,t){return"checkbox"==e||"radio"==e||"hidden"==e||t.is("select")?"change":v.get.inputEvent()},inputEvent:function(){return I.createElement("input").oninput!==L?"input":I.createElement("input").onpropertychange!==L?"propertychange":"keyup"},fieldsFromShorthand:function(e){var r={};return O.each(e,function(n,e){Array.isArray(e)||"object"!=typeof e?("string"==typeof e&&(e=[e]),r[n]={rules:[]},O.each(e,function(e,t){r[n].rules.push({type:t})})):r[n]=e}),r},prompt:function(e,t){var n,r,i,a=v.get.ruleName(e),o=v.get.ancillaryValue(e),l=v.get.field(t.identifier),s=l.val(),u=O.isFunction(e.prompt)?e.prompt(s):e.prompt||p.prompt[a]||p.text.unspecifiedRule,c=-1!==u.search("{value}"),d=-1!==u.search("{name}");return o&&0<=["integer","decimal","number"].indexOf(a)&&0<=o.indexOf("..")&&(i=o.split("..",2),e.prompt||(u+=(""===i[0]?p.prompt.maxValue.replace(/\{ruleValue\}/g,"{max}"):""===i[1]?p.prompt.minValue.replace(/\{ruleValue\}/g,"{min}"):p.prompt.range).replace(/\{name\}/g," "+p.text.and)),u=(u=u.replace(/\{min\}/g,i[0])).replace(/\{max\}/g,i[1])),c&&(u=u.replace(/\{value\}/g,l.val())),d&&(r=1==(n=l.closest(g.group).find("label").eq(0)).length?n.text():l.prop("placeholder")||p.text.unspecifiedField,u=u.replace(/\{name\}/g,r)),u=(u=u.replace(/\{identifier\}/g,t.identifier)).replace(/\{ruleValue\}/g,o),e.prompt||v.verbose("Using default validation prompt for type",u,a),u},settings:function(){if(O.isPlainObject(C)){var e=Object.keys(C);0<e.length&&(C[e[0]].identifier!==L&&C[e[0]].rules!==L)?(p=O.extend(!0,{},O.fn.form.settings,S),s=O.extend({},O.fn.form.settings.defaults,C),v.error(p.error.oldSyntax,b),v.verbose("Extending settings from legacy parameters",s,p)):(C.fields&&(C.fields=v.get.fieldsFromShorthand(C.fields)),p=O.extend(!0,{},O.fn.form.settings,C),s=O.extend({},O.fn.form.settings.defaults,p.fields),v.verbose("Extending settings",s,p))}else p=O.fn.form.settings,s=O.fn.form.settings.defaults,v.verbose("Using default form validation",s,p);i=p.namespace,m=p.metadata,g=p.selector,h=p.className,r=p.regExp,c=p.error,a="module-"+i,l="."+i,((u=d.data(a))||v).refresh()},field:function(e){var t;return v.verbose("Finding field with identifier",e),e=v.escape.string(e),0<(t=n.filter("#"+e)).length?t:0<(t=n.filter('[name="'+e+'"]')).length?t:0<(t=n.filter('[name="'+e+'[]"]')).length?t:0<(t=n.filter("[data-"+m.validate+'="'+e+'"]')).length?t:O("<input/>")},fields:function(e){var n=O();return O.each(e,function(e,t){n=n.add(v.get.field(t))}),n},validation:function(r){var i,a;return!!s&&(O.each(s,function(e,n){a=n.identifier||e,O.each(v.get.field(a),function(e,t){if(t==r[0])return n.identifier=a,i=n,!1})}),i||!1)},value:function(e){var t=[];return t.push(e),v.get.values.call(b,t)[e]},values:function(e){var t=Array.isArray(e)?v.get.fields(e):n,m={};return t.each(function(e,t){var n=O(t),r=n.closest(g.uiCalendar),i=n.prop("name"),a=n.val(),o=n.is(g.checkbox),l=n.is(g.radio),s=-1!==i.indexOf("[]"),u=0<r.length&&v.can.useElement("calendar"),c=!!o&&n.is(":checked");if(i)if(s)i=i.replace("[]",""),m[i]||(m[i]=[]),o?c?m[i].push(a||!0):m[i].push(!1):m[i].push(a);else if(l)m[i]!==L&&!1!==m[i]||(m[i]=!!c&&(a||!0));else if(o)m[i]=!!c&&(a||!0);else if(u){var d=r.calendar("get date");if(null!==d){if("date"==p.dateHandling)m[i]=d;else if("input"==p.dateHandling)m[i]=r.calendar("get input date");else if("formatter"==p.dateHandling){var f=r.calendar("setting","type");switch(f){case"date":m[i]=p.formatter.date(d);break;case"datetime":m[i]=p.formatter.datetime(d);break;case"time":m[i]=p.formatter.time(d);break;case"month":m[i]=p.formatter.month(d);break;case"year":m[i]=p.formatter.year(d);break;default:v.debug("Wrong calendar mode",r,f),m[i]=""}}}else m[i]=""}else m[i]=a}),m},dirtyFields:function(){return n.filter(function(e,t){return O(t).data(m.isDirty)})}},has:{field:function(e){return v.verbose("Checking for existence of a field with identifier",e),"string"!=typeof(e=v.escape.string(e))&&v.error(c.identifier,e),0<n.filter("#"+e).length||(0<n.filter('[name="'+e+'"]').length||0<n.filter("[data-"+m.validate+'="'+e+'"]').length)}},can:{useElement:function(e){return O.fn[e]!==L||(v.error(c.noElement.replace("{element}",e)),!1)}},escape:{string:function(e){return(e=String(e)).replace(r.escape,"\\$&")}},add:{rule:function(e,t){v.add.field(e,t)},field:function(n,e){s[n]!==L&&s[n].rules!==L||(s[n]={rules:[]});var r={rules:[]};v.is.shorthandRules(e)?(e=Array.isArray(e)?e:[e],O.each(e,function(e,t){r.rules.push({type:t})})):r.rules=e.rules,O.each(r.rules,function(e,t){0==O.grep(s[n].rules,function(e){return e.type==t.type}).length&&s[n].rules.push(t)}),v.debug("Adding rules",r.rules,s)},fields:function(e){s=O.extend({},s,v.get.fieldsFromShorthand(e))},prompt:function(e,t,n){var r=v.get.field(e).closest(f),i=r.children(g.prompt),a=0!==i.length;t="string"==typeof t?[t]:t,v.verbose("Adding field error state",e),n||r.addClass(h.error),p.inline&&(a||(i=O("<div/>").addClass(h.label)).appendTo(r),i.html(p.templates.prompt(t)),a?v.verbose("Inline errors are disabled, no inline error added",e):p.transition&&v.can.useElement("transition")&&d.transition("is supported")?(v.verbose("Displaying error with css transition",p.transition),i.transition(p.transition+" in",p.duration)):(v.verbose("Displaying error with fallback javascript animation"),i.fadeIn(p.duration)))},errors:function(e){v.debug("Adding form error messages",e),v.set.error(),t.html(p.templates.error(e))}},remove:{errors:function(){v.debug("Removing form error messages"),t.empty()},states:function(){d.removeClass(h.error).removeClass(h.success),p.inline||v.remove.errors(),v.determine.isDirty()},rule:function(n,e){var r=Array.isArray(e)?e:[e];if(s[n]!==L&&Array.isArray(s[n].rules))return e===L?(v.debug("Removed all rules"),void(s[n].rules=[])):void O.each(s[n].rules,function(e,t){t&&-1!==r.indexOf(t.type)&&(v.debug("Removed rule",t.type),s[n].rules.splice(e,1))})},field:function(e){var t=Array.isArray(e)?e:[e];O.each(t,function(e,t){v.remove.rule(t)})},rules:function(e,n){Array.isArray(e)?O.each(e,function(e,t){v.remove.rule(t,n)}):v.remove.rule(e,n)},fields:function(e){v.remove.field(e)},prompt:function(e){var t=v.get.field(e).closest(f),n=t.children(g.prompt);t.removeClass(h.error),p.inline&&n.is(":visible")&&(v.verbose("Removing prompt for field",e),p.transition&&v.can.useElement("transition")&&d.transition("is supported")?n.transition(p.transition+" out",p.duration,function(){n.remove()}):n.fadeOut(p.duration,function(){n.remove()}))}},set:{success:function(){d.removeClass(h.error).addClass(h.success)},defaults:function(){n.each(function(e,t){var n=O(t),r=n.parent(),i=0<n.filter(g.checkbox).length,a=r.is(g.uiDropdown)&&v.can.useElement("dropdown"),o=n.closest(g.uiCalendar),l=0<o.length&&v.can.useElement("calendar"),s=i?n.is(":checked"):n.val();a?r.dropdown("save defaults"):l&&o.calendar("refresh"),n.data(m.defaultValue,s),n.data(m.isDirty,!1)})},error:function(){d.removeClass(h.success).addClass(h.error)},value:function(e,t){var n={};return n[e]=t,v.set.values.call(b,n)},values:function(e){O.isEmptyObject(e)||O.each(e,function(e,t){var n,r=v.get.field(e),i=r.parent(),a=r.closest(g.uiCalendar),o=Array.isArray(t),l=i.is(g.uiCheckbox)&&v.can.useElement("checkbox"),s=i.is(g.uiDropdown)&&v.can.useElement("dropdown"),u=r.is(g.radio)&&l,c=0<a.length&&v.can.useElement("calendar");0<r.length&&(o&&l?(v.verbose("Selecting multiple",t,r),i.checkbox("uncheck"),O.each(t,function(e,t){n=r.filter('[value="'+t+'"]'),i=n.parent(),0<n.length&&i.checkbox("check")})):u?(v.verbose("Selecting radio value",t,r),r.filter('[value="'+t+'"]').parent(g.uiCheckbox).checkbox("check")):l?(v.verbose("Setting checkbox value",t,i),!0===t||1===t||"on"===t?i.checkbox("check"):i.checkbox("uncheck"),"string"==typeof t&&r.val(t)):s?(v.verbose("Setting dropdown value",t,i),i.dropdown("set selected",t)):c?a.calendar("set date",t):(v.verbose("Setting field value",t,r),r.val(t)))})},dirty:function(){v.verbose("Setting state dirty"),k=!0,E[0]=E[1],E[1]="dirty",v.is.justClean()&&d.trigger("dirty")},clean:function(){v.verbose("Setting state clean"),k=!1,E[0]=E[1],E[1]="clean",v.is.justDirty()&&d.trigger("clean")},asClean:function(){v.set.defaults(),v.set.clean()},asDirty:function(){v.set.defaults(),v.set.dirty()},autoCheck:function(){v.debug("Enabling auto check on required fields"),n.each(function(e,t){var n=O(t),r=O(t).closest(f),i=0<n.filter(g.checkbox).length,a=n.prop("required")||r.hasClass(h.required)||r.parent().hasClass(h.required),o=n.is(":disabled")||r.hasClass(h.disabled)||r.parent().hasClass(h.disabled),l=v.get.validation(n),s=!!l&&0!==O.grep(l.rules,function(e){return"empty"==e.type}),u=l.identifier||n.attr("id")||n.attr("name")||n.data(m.validate);!a||o||s||u===L||(i?(v.verbose("Adding 'checked' rule on field",u),v.add.rule(u,"checked")):(v.verbose("Adding 'empty' rule on field",u),v.add.rule(u,"empty")))})},optional:function(n,r){r=!1!==r,O.each(s,function(e,t){n!=e&&n!=t.identifier||(t.optional=r)})}},validate:{form:function(e,t){var n=v.get.values();if(x)return!1;if(y=[],v.determine.isValid()){if(v.debug("Form has no validation errors, submitting"),v.set.success(),p.inline||v.remove.errors(),!0!==t)return p.onSuccess.call(b,e,n)}else{if(v.debug("Form has errors"),o=!1,v.set.error(),p.inline||v.add.errors(y),e&&d.data("moduleApi")!==L&&e.stopImmediatePropagation(),p.errorFocus&&!0!==t){var r,i=!0;"string"==typeof p.errorFocus?(i=(r=O(p.errorFocus)).is("[tabindex]"))||r.attr("tabindex",-1):r=f.filter("."+h.error).first().find(g.field),r.focus(),i||r.removeAttr("tabindex")}if(!0!==t)return p.onFailure.call(b,y,n)}},field:function(r,e,i){i=i===L||i,"string"==typeof r&&(v.verbose("Validating field",r),r=s[e=r]);var a=r.identifier||e,t=v.get.field(a),n=!!r.depends&&v.get.field(r.depends),o=!0,l=[];return r.identifier||(v.debug("Using field name as identifier",a),r.identifier=a),!t.filter(":not(:disabled)").length?v.debug("Field is disabled. Skipping",a):r.optional&&v.is.blank(t)?v.debug("Field is optional and blank. Skipping",a):r.depends&&v.is.empty(n)?v.debug("Field depends on another value that is not present or empty. Skipping",n):r.rules!==L&&(i&&t.closest(f).removeClass(h.error),O.each(r.rules,function(e,t){if(v.has.field(a)){var n=v.validate.rule(r,t,!0)||[];0<n.length&&(v.debug("Field is invalid",a,t.type),l.push(v.get.prompt(t,r)),o=!1,i&&O(n).closest(f).addClass(h.error))}})),o?(i&&(v.remove.prompt(a,l),p.onValid.call(t)),!0):(i&&(y=y.concat(l),v.add.prompt(a,l,!0),p.onInvalid.call(t,l)),!1)},rule:function(e,n,t){function r(e){var t=u?O(e).filter(":checked").val():O(e).val();return t=t===L||""===t||null===t?"":p.shouldTrim&&!1!==n.shouldTrim||n.shouldTrim?String(t+"").trim():String(t+""),l.call(e,t,a,d)}var i=v.get.field(e.identifier),a=v.get.ancillaryValue(n),o=v.get.ruleName(n),l=p.rules[o],s=[],u=i.is(g.checkbox);if(O.isFunction(l))return u?r(i)||(s=i):O.each(i,function(e,t){r(t)||s.push(t)}),t?s:!(0<s.length);v.error(c.noRule,o)}},setting:function(e,t){if(O.isPlainObject(e))O.extend(!0,p,e);else{if(t===L)return p[e];p[e]=t}},internal:function(e,t){if(O.isPlainObject(e))O.extend(!0,v,e);else{if(t===L)return v[e];v[e]=t}},debug:function(){!p.silent&&p.debug&&(p.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,p.name+":"),v.debug.apply(console,arguments)))},verbose:function(){!p.silent&&p.verbose&&p.debug&&(p.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,p.name+":"),v.verbose.apply(console,arguments)))},error:function(){p.silent||(v.error=Function.prototype.bind.call(console.error,console,p.name+":"),v.error.apply(console,arguments))},performance:{log:function(e){var t,n;p.performance&&(n=(t=(new Date).getTime())-(D||t),D=t,F.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:b,"Execution Time":n})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,500)},display:function(){var e=p.name+":",n=0;D=!1,clearTimeout(v.performance.timer),O.each(F,function(e,t){n+=t["Execution Time"]}),e+=" "+n+"ms",A&&(e+=" '"+A+"'"),1<V.length&&(e+=" ("+V.length+")"),(console.group!==L||console.table!==L)&&0<F.length&&(console.groupCollapsed(e),console.table?console.table(F):O.each(F,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),F=[]}},invoke:function(r,e,t){var i,a,n,o=u;return e=e||j,t=b||t,"string"==typeof r&&o!==L&&(r=r.split(/[\. ]/),i=r.length-1,O.each(r,function(e,t){var n=e!=i?t+r[e+1].charAt(0).toUpperCase()+r[e+1].slice(1):r;if(O.isPlainObject(o[n])&&e!=i)o=o[n];else{if(o[n]!==L)return a=o[n],!1;if(!O.isPlainObject(o[t])||e==i)return o[t]!==L&&(a=o[t]),!1;o=o[t]}})),O.isFunction(a)?n=a.apply(t,e):a!==L&&(n=a),Array.isArray(w)?w.push(n):w!==L?w=[w,n]:n!==L&&(w=n),a}}).initialize()}),w!==L?w:this},O.fn.form.settings={name:"Form",namespace:"form",debug:!1,verbose:!1,performance:!0,fields:!1,keyboardShortcuts:!0,on:"submit",inline:!1,delay:200,revalidate:!0,shouldTrim:!0,transition:"scale",duration:200,autoCheckRequired:!1,preventLeaving:!1,errorFocus:!0,dateHandling:"date",onValid:function(){},onInvalid:function(){},onSuccess:function(){return!0},onFailure:function(){return!1},onDirty:function(){},onClean:function(){},metadata:{defaultValue:"default",validate:"validate",isDirty:"isDirty"},regExp:{htmlID:/^[a-zA-Z][\w:.-]*$/g,bracket:/\[(.*)\]/i,decimal:/^\d+\.?\d*$/,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,escape:/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|:,=@]/g,flags:/^\/(.*)\/(.*)?/,integer:/^\-?\d+$/,number:/^\-?\d*(\.\d+)?$/,url:/(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/i},text:{and:"and",unspecifiedRule:"Please enter a valid value",unspecifiedField:"This field",leavingMessage:"There are unsaved changes on this page which will be discarded if you continue."},prompt:{range:"{name} must be in a range from {min} to {max}",maxValue:"{name} must have a maximum value of {ruleValue}",minValue:"{name} must have a minimum value of {ruleValue}",empty:"{name} must have a value",checked:"{name} must be checked",email:"{name} must be a valid e-mail",url:"{name} must be a valid url",regExp:"{name} is not formatted correctly",integer:"{name} must be an integer",decimal:"{name} must be a decimal number",number:"{name} must be set to a number",is:'{name} must be "{ruleValue}"',isExactly:'{name} must be exactly "{ruleValue}"',not:'{name} cannot be set to "{ruleValue}"',notExactly:'{name} cannot be set to exactly "{ruleValue}"',contain:'{name} must contain "{ruleValue}"',containExactly:'{name} must contain exactly "{ruleValue}"',doesntContain:'{name} cannot contain "{ruleValue}"',doesntContainExactly:'{name} cannot contain exactly "{ruleValue}"',minLength:"{name} must be at least {ruleValue} characters",exactLength:"{name} must be exactly {ruleValue} characters",maxLength:"{name} cannot be longer than {ruleValue} characters",match:"{name} must match {ruleValue} field",different:"{name} must have a different value than {ruleValue} field",creditCard:"{name} must be a valid credit card number",minCount:"{name} must have at least {ruleValue} choices",exactCount:"{name} must have exactly {ruleValue} choices",maxCount:"{name} must have {ruleValue} or less choices"},selector:{checkbox:'input[type="checkbox"], input[type="radio"]',clear:".clear",field:'input:not(.search):not([type="file"]):not([type="reset"]):not([type="button"]):not([type="submit"]), textarea, select',group:".field",input:'input:not([type="file"])',message:".error.message",prompt:".prompt.label",radio:'input[type="radio"]',reset:'.reset:not([type="reset"])',submit:'.submit:not([type="submit"])',uiCheckbox:".ui.checkbox",uiDropdown:".ui.dropdown",uiCalendar:".ui.calendar"},className:{error:"error",label:"ui basic red pointing prompt label",pressed:"down",success:"success",required:"required",disabled:"disabled"},error:{identifier:"You must specify a string identifier for each field",method:"The method you called is not defined.",noRule:"There is no rule matching the one you specified",oldSyntax:"Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically.",noElement:"This module requires ui {element}"},templates:{error:function(e){var n='<ul class="list">';return O.each(e,function(e,t){n+="<li>"+t+"</li>"}),n+="</ul>"},prompt:function(e){if(1===e.length)return e[0];var n='<ul class="ui list">';return O.each(e,function(e,t){n+="<li>"+t+"</li>"}),n+="</ul>"}},formatter:{date:function(e){return Intl.DateTimeFormat("en-GB").format(e)},datetime:function(e){return Intl.DateTimeFormat("en-GB",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(e)},time:function(e){return Intl.DateTimeFormat("en-GB",{hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(e)},month:function(e){return Intl.DateTimeFormat("en-GB",{month:"2-digit",year:"numeric"}).format(e)},year:function(e){return Intl.DateTimeFormat("en-GB",{year:"numeric"}).format(e)}},rules:{empty:function(e){return!(e===L||""===e||Array.isArray(e)&&0===e.length)},checked:function(){return 0<O(this).filter(":checked").length},email:function(e){return O.fn.form.settings.regExp.email.test(e)},url:function(e){return O.fn.form.settings.regExp.url.test(e)},regExp:function(e,t){if(t instanceof RegExp)return e.match(t);var n,r=t.match(O.fn.form.settings.regExp.flags);return r&&(t=2<=r.length?r[1]:t,n=3<=r.length?r[2]:""),e.match(new RegExp(t,n))},minValue:function(e,t){return O.fn.form.settings.rules.range(e,t+"..","number")},maxValue:function(e,t){return O.fn.form.settings.rules.range(e,".."+t,"number")},integer:function(e,t){return O.fn.form.settings.rules.range(e,t,"integer")},range:function(e,t,n){var r,i,a;return"string"==typeof n&&(n=O.fn.form.settings.regExp[n]),n instanceof RegExp||(n=O.fn.form.settings.regExp.integer),t&&-1===["",".."].indexOf(t)&&(-1==t.indexOf("..")?n.test(t)&&(r=i=t-0):(a=t.split("..",2),n.test(a[0])&&(r=a[0]-0),n.test(a[1])&&(i=a[1]-0))),n.test(e)&&(r===L||r<=e)&&(i===L||e<=i)},decimal:function(e,t){return O.fn.form.settings.rules.range(e,t,"decimal")},number:function(e,t){return O.fn.form.settings.rules.range(e,t,"number")},is:function(e,t){return t="string"==typeof t?t.toLowerCase():t,(e="string"==typeof e?e.toLowerCase():e)==t},isExactly:function(e,t){return e==t},not:function(e,t){return(e="string"==typeof e?e.toLowerCase():e)!=(t="string"==typeof t?t.toLowerCase():t)},notExactly:function(e,t){return e!=t},contains:function(e,t){return t=t.replace(O.fn.form.settings.regExp.escape,"\\$&"),-1!==e.search(new RegExp(t,"i"))},containsExactly:function(e,t){return t=t.replace(O.fn.form.settings.regExp.escape,"\\$&"),-1!==e.search(new RegExp(t))},doesntContain:function(e,t){return t=t.replace(O.fn.form.settings.regExp.escape,"\\$&"),-1===e.search(new RegExp(t,"i"))},doesntContainExactly:function(e,t){return t=t.replace(O.fn.form.settings.regExp.escape,"\\$&"),-1===e.search(new RegExp(t))},minLength:function(e,t){return e!==L&&e.length>=t},exactLength:function(e,t){return e!==L&&e.length==t},maxLength:function(e,t){return e!==L&&e.length<=t},match:function(e,t,n){var r,i;return 0<(i=n.find('[data-validate="'+t+'"]')).length?r=i.val():0<(i=n.find("#"+t)).length?r=i.val():0<(i=n.find('[name="'+t+'"]')).length?r=i.val():0<(i=n.find('[name="'+t+'[]"]')).length&&(r=i),r!==L&&e.toString()==r.toString()},different:function(e,t,n){var r,i;return 0<(i=n.find('[data-validate="'+t+'"]')).length?r=i.val():0<(i=n.find("#"+t)).length?r=i.val():0<(i=n.find('[name="'+t+'"]')).length?r=i.val():0<(i=n.find('[name="'+t+'[]"]')).length&&(r=i),r!==L&&e.toString()!==r.toString()},creditCard:function(n,e){var t,r,i={visa:{pattern:/^4/,length:[16]},amex:{pattern:/^3[47]/,length:[15]},mastercard:{pattern:/^5[1-5]/,length:[16]},discover:{pattern:/^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)/,length:[16]},unionPay:{pattern:/^(62|88)/,length:[16,17,18,19]},jcb:{pattern:/^35(2[89]|[3-8][0-9])/,length:[16]},maestro:{pattern:/^(5018|5020|5038|6304|6759|676[1-3])/,length:[12,13,14,15,16,17,18,19]},dinersClub:{pattern:/^(30[0-5]|^36)/,length:[14]},laser:{pattern:/^(6304|670[69]|6771)/,length:[16,17,18,19]},visaElectron:{pattern:/^(4026|417500|4508|4844|491(3|7))/,length:[16]}},a={},o=!1,l="string"==typeof e&&e.split(",");if("string"==typeof n&&0!==n.length){if(n=n.replace(/[\s\-]/g,""),l&&(O.each(l,function(e,t){(r=i[t])&&(a={length:-1!==O.inArray(n.length,r.length),pattern:-1!==n.search(r.pattern)}).length&&a.pattern&&(o=!0)}),!o))return!1;if((t={number:-1!==O.inArray(n.length,i.unionPay.length),pattern:-1!==n.search(i.unionPay.pattern)}).number&&t.pattern)return!0;for(var s=n.length,u=0,c=[[0,1,2,3,4,5,6,7,8,9],[0,2,4,6,8,1,3,5,7,9]],d=0;s--;)d+=c[u][parseInt(n.charAt(s),10)],u^=1;return d%10==0&&0<d}},minCount:function(e,t){return 0==t||(1==t?""!==e:e.split(",").length>=t)},exactCount:function(e,t){return 0==t?""===e:1==t?""!==e&&-1===e.search(","):e.split(",").length==t},maxCount:function(e,t){return 0!=t&&(1==t?-1===e.search(","):e.split(",").length<=t)}}}}(jQuery,window,document);
|
11
|
+
!function(O,$,I,L){"use strict";O.isFunction=O.isFunction||function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},$=void 0!==$&&$.Math==Math?$:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),O.fn.form=function(C){var w,V=O(this),A=V.selector||"",D=(new Date).getTime(),F=[],R=C,S=arguments[1],T="string"==typeof R,j=[].slice.call(arguments,1);return V.each(function(){var n,f,t,e,p,s,m,g,h,r,c,i,a,l,u,v,d=O(this),b=this,y=[],x=!1,o=!1,k=!1,E=["clean","clean"];(v={initialize:function(){v.get.settings(),T?(u===L&&v.instantiate(),v.invoke(R)):(u!==L&&(u.invoke("destroy"),v.refresh()),v.verbose("Initializing form validation",d,p),v.bindEvents(),v.set.defaults(),p.autoCheckRequired&&v.set.autoCheck(),v.instantiate())},instantiate:function(){v.verbose("Storing instance of module",v),u=v,d.data(a,v)},destroy:function(){v.verbose("Destroying previous module",u),v.removeEvents(),d.removeData(a)},refresh:function(){v.verbose("Refreshing selector cache"),n=d.find(g.field),f=d.find(g.group),t=d.find(g.message),d.find(g.prompt),e=d.find(g.submit),d.find(g.clear),d.find(g.reset)},submit:function(){v.verbose("Submitting form",d),o=!0,d.submit()},attachEvents:function(e,t){t=t||"submit",O(e).on("click"+l,function(e){v[t](),e.preventDefault()})},bindEvents:function(){v.verbose("Attaching form events"),d.on("submit"+l,v.validate.form).on("blur"+l,g.field,v.event.field.blur).on("click"+l,g.submit,v.submit).on("click"+l,g.reset,v.reset).on("click"+l,g.clear,v.clear),p.keyboardShortcuts&&d.on("keydown"+l,g.field,v.event.field.keydown),n.each(function(e,t){var n=O(t),r=n.prop("type"),i=v.get.changeEvent(r,n);n.on(i+l,v.event.field.change)}),p.preventLeaving&&O($).on("beforeunload"+l,v.event.beforeUnload),n.on("change click keyup keydown blur",function(e){v.determine.isDirty()}),d.on("dirty"+l,function(e){p.onDirty.call()}),d.on("clean"+l,function(e){p.onClean.call()})},clear:function(){n.each(function(e,t){var n=O(t),r=n.parent(),i=n.closest(f),a=i.find(g.prompt),o=n.closest(g.uiCalendar),l=n.data(m.defaultValue)||"",s=r.is(g.uiCheckbox),u=r.is(g.uiDropdown)&&v.can.useElement("dropdown"),c=0<o.length&&v.can.useElement("calendar");i.hasClass(h.error)&&(v.verbose("Resetting error on field",i),i.removeClass(h.error),a.remove()),u?(v.verbose("Resetting dropdown value",r,l),r.dropdown("clear",!0)):s?n.prop("checked",!1):c?o.calendar("clear"):(v.verbose("Resetting field value",n,l),n.val(""))}),v.remove.states()},reset:function(){n.each(function(e,t){var n=O(t),r=n.parent(),i=n.closest(f),a=n.closest(g.uiCalendar),o=i.find(g.prompt),l=n.data(m.defaultValue),s=r.is(g.uiCheckbox),u=r.is(g.uiDropdown)&&v.can.useElement("dropdown"),c=0<a.length&&v.can.useElement("calendar"),d=i.hasClass(h.error);l!==L&&(d&&(v.verbose("Resetting error on field",i),i.removeClass(h.error),o.remove()),u?(v.verbose("Resetting dropdown value",r,l),r.dropdown("restore defaults",!0)):s?(v.verbose("Resetting checkbox value",r,l),n.prop("checked",l)):c?a.calendar("set date",l):(v.verbose("Resetting field value",n,l),n.val(l)))}),v.remove.states()},determine:{isValid:function(){var n=!0;return O.each(s,function(e,t){v.validate.field(t,e,!0)||(n=!1)}),n},isDirty:function(e){var i=!1;n.each(function(e,t){var n,r=O(t);n=0<r.filter(g.checkbox).length?v.is.checkboxDirty(r):v.is.fieldDirty(r),r.data(p.metadata.isDirty,n),i|=n}),i?v.set.dirty():v.set.clean()}},is:{bracketedRule:function(e){return e.type&&e.type.match(p.regExp.bracket)},shorthandRules:function(e){return"string"==typeof e||Array.isArray(e)},empty:function(e){return!e||0===e.length||(e.is(g.checkbox)?!e.is(":checked"):v.is.blank(e))},blank:function(e){return""===String(e.val()).trim()},valid:function(e,n){var r=!0;return e?(v.verbose("Checking if field is valid",e),v.validate.field(s[e],e,!!n)):(v.verbose("Checking if form is valid"),O.each(s,function(e,t){v.is.valid(e,n)||(r=!1)}),r)},dirty:function(){return k},clean:function(){return!k},fieldDirty:function(e){var t=e.data(m.defaultValue);null==t?t="":Array.isArray(t)&&(t=t.toString());var n=e.val();null==n?n="":Array.isArray(n)&&(n=n.toString());var r=/^(true|false)$/i;return r.test(t)&&r.test(n)?!new RegExp("^"+t+"$","i").test(n):n!==t},checkboxDirty:function(e){return e.data(m.defaultValue)!==e.is(":checked")},justDirty:function(){return"dirty"===E[0]},justClean:function(){return"clean"===E[0]}},removeEvents:function(){d.off(l),n.off(l),e.off(l),n.off(l)},event:{field:{keydown:function(e){var t=O(this),n=e.which,r=t.is(g.input),i=t.is(g.checkbox),a=0<t.closest(g.uiDropdown).length,o=13;n==27&&(v.verbose("Escape key pressed blurring field"),t[0].blur()),e.ctrlKey||n!=o||!r||a||i||(x||(t.one("keyup"+l,v.event.field.keyup),v.submit(),v.debug("Enter pressed on input submitting form"),e.preventDefault()),x=!0)},keyup:function(){x=!1},blur:function(e){var t=O(this),n=t.closest(f),r=v.get.validation(t);r&&("blur"==p.on||n.hasClass(h.error)&&p.revalidate)&&(v.debug("Revalidating field",t,r),v.validate.field(r),p.inline||v.validate.form(!1,!0))},change:function(e){var t=O(this),n=t.closest(f),r=v.get.validation(t);r&&("change"==p.on||n.hasClass(h.error)&&p.revalidate)&&(clearTimeout(v.timer),v.timer=setTimeout(function(){v.debug("Revalidating field",t,r),v.validate.field(r),p.inline||v.validate.form(!1,!0)},p.delay))}},beforeUnload:function(e){if(v.is.dirty()&&!o)return(e=e||$.event)&&(e.returnValue=p.text.leavingMessage),p.text.leavingMessage}},get:{ancillaryValue:function(e){return!(!e.type||!e.value&&!v.is.bracketedRule(e))&&(e.value!==L?e.value:e.type.match(p.regExp.bracket)[1]+"")},ruleName:function(e){return v.is.bracketedRule(e)?e.type.replace(e.type.match(p.regExp.bracket)[0],""):e.type},changeEvent:function(e,t){return"checkbox"==e||"radio"==e||"hidden"==e||t.is("select")?"change":v.get.inputEvent()},inputEvent:function(){return I.createElement("input").oninput!==L?"input":I.createElement("input").onpropertychange!==L?"propertychange":"keyup"},fieldsFromShorthand:function(e){var r={};return O.each(e,function(n,e){Array.isArray(e)||"object"!=typeof e?("string"==typeof e&&(e=[e]),r[n]={rules:[]},O.each(e,function(e,t){r[n].rules.push({type:t})})):r[n]=e}),r},prompt:function(e,t){var n,r,i,a=v.get.ruleName(e),o=v.get.ancillaryValue(e),l=v.get.field(t.identifier),s=l.val(),u=O.isFunction(e.prompt)?e.prompt(s):e.prompt||p.prompt[a]||p.text.unspecifiedRule,c=-1!==u.search("{value}"),d=-1!==u.search("{name}");return o&&0<=["integer","decimal","number"].indexOf(a)&&0<=o.indexOf("..")&&(i=o.split("..",2),e.prompt||(u+=(""===i[0]?p.prompt.maxValue.replace(/\{ruleValue\}/g,"{max}"):""===i[1]?p.prompt.minValue.replace(/\{ruleValue\}/g,"{min}"):p.prompt.range).replace(/\{name\}/g," "+p.text.and)),u=(u=u.replace(/\{min\}/g,i[0])).replace(/\{max\}/g,i[1])),c&&(u=u.replace(/\{value\}/g,l.val())),d&&(r=1==(n=l.closest(g.group).find("label").eq(0)).length?n.text():l.prop("placeholder")||p.text.unspecifiedField,u=u.replace(/\{name\}/g,r)),u=(u=u.replace(/\{identifier\}/g,t.identifier)).replace(/\{ruleValue\}/g,o),e.prompt||v.verbose("Using default validation prompt for type",u,a),u},settings:function(){if(O.isPlainObject(C)){var e=Object.keys(C);0<e.length&&(C[e[0]].identifier!==L&&C[e[0]].rules!==L)?(p=O.extend(!0,{},O.fn.form.settings,S),s=O.extend(!0,{},O.fn.form.settings.defaults,C),v.error(p.error.oldSyntax,b),v.verbose("Extending settings from legacy parameters",s,p)):(C.fields&&(C.fields=v.get.fieldsFromShorthand(C.fields)),p=O.extend(!0,{},O.fn.form.settings,C),s=O.extend(!0,{},O.fn.form.settings.defaults,p.fields),v.verbose("Extending settings",s,p))}else p=O.extend(!0,{},O.fn.form.settings),s=O.extend(!0,{},O.fn.form.settings.defaults),v.verbose("Using default form validation",s,p);i=p.namespace,m=p.metadata,g=p.selector,h=p.className,r=p.regExp,c=p.error,a="module-"+i,l="."+i,((u=d.data(a))||v).refresh()},field:function(e){var t;return v.verbose("Finding field with identifier",e),e=v.escape.string(e),0<(t=n.filter("#"+e)).length?t:0<(t=n.filter('[name="'+e+'"]')).length?t:0<(t=n.filter('[name="'+e+'[]"]')).length?t:0<(t=n.filter("[data-"+m.validate+'="'+e+'"]')).length?t:O("<input/>")},fields:function(e){var n=O();return O.each(e,function(e,t){n=n.add(v.get.field(t))}),n},validation:function(r){var i,a;return!!s&&(O.each(s,function(e,n){a=n.identifier||e,O.each(v.get.field(a),function(e,t){if(t==r[0])return n.identifier=a,i=n,!1})}),i||!1)},value:function(e){var t=[];return t.push(e),v.get.values.call(b,t)[e]},values:function(e){var t=Array.isArray(e)?v.get.fields(e):n,m={};return t.each(function(e,t){var n=O(t),r=n.closest(g.uiCalendar),i=n.prop("name"),a=n.val(),o=n.is(g.checkbox),l=n.is(g.radio),s=-1!==i.indexOf("[]"),u=0<r.length&&v.can.useElement("calendar"),c=!!o&&n.is(":checked");if(i)if(s)i=i.replace("[]",""),m[i]||(m[i]=[]),o?c?m[i].push(a||!0):m[i].push(!1):m[i].push(a);else if(l)m[i]!==L&&!1!==m[i]||(m[i]=!!c&&(a||!0));else if(o)m[i]=!!c&&(a||!0);else if(u){var d=r.calendar("get date");if(null!==d){if("date"==p.dateHandling)m[i]=d;else if("input"==p.dateHandling)m[i]=r.calendar("get input date");else if("formatter"==p.dateHandling){var f=r.calendar("setting","type");switch(f){case"date":m[i]=p.formatter.date(d);break;case"datetime":m[i]=p.formatter.datetime(d);break;case"time":m[i]=p.formatter.time(d);break;case"month":m[i]=p.formatter.month(d);break;case"year":m[i]=p.formatter.year(d);break;default:v.debug("Wrong calendar mode",r,f),m[i]=""}}}else m[i]=""}else m[i]=a}),m},dirtyFields:function(){return n.filter(function(e,t){return O(t).data(m.isDirty)})}},has:{field:function(e){return v.verbose("Checking for existence of a field with identifier",e),"string"!=typeof(e=v.escape.string(e))&&v.error(c.identifier,e),0<n.filter("#"+e).length||(0<n.filter('[name="'+e+'"]').length||0<n.filter("[data-"+m.validate+'="'+e+'"]').length)}},can:{useElement:function(e){return O.fn[e]!==L||(v.error(c.noElement.replace("{element}",e)),!1)}},escape:{string:function(e){return(e=String(e)).replace(r.escape,"\\$&")}},add:{rule:function(e,t){v.add.field(e,t)},field:function(n,e){s[n]!==L&&s[n].rules!==L||(s[n]={rules:[]});var r={rules:[]};v.is.shorthandRules(e)?(e=Array.isArray(e)?e:[e],O.each(e,function(e,t){r.rules.push({type:t})})):r.rules=e.rules,O.each(r.rules,function(e,t){0==O.grep(s[n].rules,function(e){return e.type==t.type}).length&&s[n].rules.push(t)}),v.debug("Adding rules",r.rules,s)},fields:function(e){s=O.extend(!0,{},s,v.get.fieldsFromShorthand(e))},prompt:function(e,t,n){var r=v.get.field(e).closest(f),i=r.children(g.prompt),a=0!==i.length;t="string"==typeof t?[t]:t,v.verbose("Adding field error state",e),n||r.addClass(h.error),p.inline&&(a||(i=O("<div/>").addClass(h.label)).appendTo(r),i.html(p.templates.prompt(t)),a?v.verbose("Inline errors are disabled, no inline error added",e):p.transition&&v.can.useElement("transition")&&d.transition("is supported")?(v.verbose("Displaying error with css transition",p.transition),i.transition(p.transition+" in",p.duration)):(v.verbose("Displaying error with fallback javascript animation"),i.fadeIn(p.duration)))},errors:function(e){v.debug("Adding form error messages",e),v.set.error(),t.html(p.templates.error(e))}},remove:{errors:function(){v.debug("Removing form error messages"),t.empty()},states:function(){d.removeClass(h.error).removeClass(h.success),p.inline||v.remove.errors(),v.determine.isDirty()},rule:function(n,e){var r=Array.isArray(e)?e:[e];if(s[n]!==L&&Array.isArray(s[n].rules))return e===L?(v.debug("Removed all rules"),void(s[n].rules=[])):void O.each(s[n].rules,function(e,t){t&&-1!==r.indexOf(t.type)&&(v.debug("Removed rule",t.type),s[n].rules.splice(e,1))})},field:function(e){var t=Array.isArray(e)?e:[e];O.each(t,function(e,t){v.remove.rule(t)})},rules:function(e,n){Array.isArray(e)?O.each(e,function(e,t){v.remove.rule(t,n)}):v.remove.rule(e,n)},fields:function(e){v.remove.field(e)},prompt:function(e){var t=v.get.field(e).closest(f),n=t.children(g.prompt);t.removeClass(h.error),p.inline&&n.is(":visible")&&(v.verbose("Removing prompt for field",e),p.transition&&v.can.useElement("transition")&&d.transition("is supported")?n.transition(p.transition+" out",p.duration,function(){n.remove()}):n.fadeOut(p.duration,function(){n.remove()}))}},set:{success:function(){d.removeClass(h.error).addClass(h.success)},defaults:function(){n.each(function(e,t){var n=O(t),r=n.parent(),i=0<n.filter(g.checkbox).length,a=r.is(g.uiDropdown)&&v.can.useElement("dropdown"),o=n.closest(g.uiCalendar),l=0<o.length&&v.can.useElement("calendar"),s=i?n.is(":checked"):n.val();a?r.dropdown("save defaults"):l&&o.calendar("refresh"),n.data(m.defaultValue,s),n.data(m.isDirty,!1)})},error:function(){d.removeClass(h.success).addClass(h.error)},value:function(e,t){var n={};return n[e]=t,v.set.values.call(b,n)},values:function(e){O.isEmptyObject(e)||O.each(e,function(e,t){var n,r=v.get.field(e),i=r.parent(),a=r.closest(g.uiCalendar),o=Array.isArray(t),l=i.is(g.uiCheckbox)&&v.can.useElement("checkbox"),s=i.is(g.uiDropdown)&&v.can.useElement("dropdown"),u=r.is(g.radio)&&l,c=0<a.length&&v.can.useElement("calendar");0<r.length&&(o&&l?(v.verbose("Selecting multiple",t,r),i.checkbox("uncheck"),O.each(t,function(e,t){n=r.filter('[value="'+t+'"]'),i=n.parent(),0<n.length&&i.checkbox("check")})):u?(v.verbose("Selecting radio value",t,r),r.filter('[value="'+t+'"]').parent(g.uiCheckbox).checkbox("check")):l?(v.verbose("Setting checkbox value",t,i),!0===t||1===t||"on"===t?i.checkbox("check"):i.checkbox("uncheck"),"string"==typeof t&&r.val(t)):s?(v.verbose("Setting dropdown value",t,i),i.dropdown("set selected",t)):c?a.calendar("set date",t):(v.verbose("Setting field value",t,r),r.val(t)))})},dirty:function(){v.verbose("Setting state dirty"),k=!0,E[0]=E[1],E[1]="dirty",v.is.justClean()&&d.trigger("dirty")},clean:function(){v.verbose("Setting state clean"),k=!1,E[0]=E[1],E[1]="clean",v.is.justDirty()&&d.trigger("clean")},asClean:function(){v.set.defaults(),v.set.clean()},asDirty:function(){v.set.defaults(),v.set.dirty()},autoCheck:function(){v.debug("Enabling auto check on required fields"),n.each(function(e,t){var n=O(t),r=O(t).closest(f),i=0<n.filter(g.checkbox).length,a=n.prop("required")||r.hasClass(h.required)||r.parent().hasClass(h.required),o=n.is(":disabled")||r.hasClass(h.disabled)||r.parent().hasClass(h.disabled),l=v.get.validation(n),s=!!l&&0!==O.grep(l.rules,function(e){return"empty"==e.type}),u=l.identifier||n.attr("id")||n.attr("name")||n.data(m.validate);!a||o||s||u===L||(i?(v.verbose("Adding 'checked' rule on field",u),v.add.rule(u,"checked")):(v.verbose("Adding 'empty' rule on field",u),v.add.rule(u,"empty")))})},optional:function(n,r){r=!1!==r,O.each(s,function(e,t){n!=e&&n!=t.identifier||(t.optional=r)})}},validate:{form:function(e,t){var n=v.get.values();if(x)return!1;if(y=[],v.determine.isValid()){if(v.debug("Form has no validation errors, submitting"),v.set.success(),p.inline||v.remove.errors(),!0!==t)return p.onSuccess.call(b,e,n)}else{if(v.debug("Form has errors"),o=!1,v.set.error(),p.inline||v.add.errors(y),e&&d.data("moduleApi")!==L&&e.stopImmediatePropagation(),p.errorFocus&&!0!==t){var r,i=!0;"string"==typeof p.errorFocus?(i=(r=O(p.errorFocus)).is("[tabindex]"))||r.attr("tabindex",-1):r=f.filter("."+h.error).first().find(g.field),r.focus(),i||r.removeAttr("tabindex")}if(!0!==t)return p.onFailure.call(b,y,n)}},field:function(r,e,i){i=i===L||i,"string"==typeof r&&(v.verbose("Validating field",r),r=s[e=r]);var a=r.identifier||e,t=v.get.field(a),n=!!r.depends&&v.get.field(r.depends),o=!0,l=[];return r.identifier||(v.debug("Using field name as identifier",a),r.identifier=a),!t.filter(":not(:disabled)").length?v.debug("Field is disabled. Skipping",a):r.optional&&v.is.blank(t)?v.debug("Field is optional and blank. Skipping",a):r.depends&&v.is.empty(n)?v.debug("Field depends on another value that is not present or empty. Skipping",n):r.rules!==L&&(i&&t.closest(f).removeClass(h.error),O.each(r.rules,function(e,t){if(v.has.field(a)){var n=v.validate.rule(r,t,!0)||[];0<n.length&&(v.debug("Field is invalid",a,t.type),l.push(v.get.prompt(t,r)),o=!1,i&&O(n).closest(f).addClass(h.error))}})),o?(i&&(v.remove.prompt(a,l),p.onValid.call(t)),!0):(i&&(y=y.concat(l),v.add.prompt(a,l,!0),p.onInvalid.call(t,l)),!1)},rule:function(e,n,t){function r(e){var t=u?O(e).filter(":checked").val():O(e).val();return t=t===L||""===t||null===t?"":p.shouldTrim&&!1!==n.shouldTrim||n.shouldTrim?String(t+"").trim():String(t+""),l.call(e,t,a,d)}var i=v.get.field(e.identifier),a=v.get.ancillaryValue(n),o=v.get.ruleName(n),l=p.rules[o],s=[],u=i.is(g.checkbox);if(O.isFunction(l))return u?r(i)||(s=i):O.each(i,function(e,t){r(t)||s.push(t)}),t?s:!(0<s.length);v.error(c.noRule,o)}},setting:function(e,t){if(O.isPlainObject(e))O.extend(!0,p,e);else{if(t===L)return p[e];p[e]=t}},internal:function(e,t){if(O.isPlainObject(e))O.extend(!0,v,e);else{if(t===L)return v[e];v[e]=t}},debug:function(){!p.silent&&p.debug&&(p.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,p.name+":"),v.debug.apply(console,arguments)))},verbose:function(){!p.silent&&p.verbose&&p.debug&&(p.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,p.name+":"),v.verbose.apply(console,arguments)))},error:function(){p.silent||(v.error=Function.prototype.bind.call(console.error,console,p.name+":"),v.error.apply(console,arguments))},performance:{log:function(e){var t,n;p.performance&&(n=(t=(new Date).getTime())-(D||t),D=t,F.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:b,"Execution Time":n})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,500)},display:function(){var e=p.name+":",n=0;D=!1,clearTimeout(v.performance.timer),O.each(F,function(e,t){n+=t["Execution Time"]}),e+=" "+n+"ms",A&&(e+=" '"+A+"'"),1<V.length&&(e+=" ("+V.length+")"),(console.group!==L||console.table!==L)&&0<F.length&&(console.groupCollapsed(e),console.table?console.table(F):O.each(F,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),F=[]}},invoke:function(r,e,t){var i,a,n,o=u;return e=e||j,t=b||t,"string"==typeof r&&o!==L&&(r=r.split(/[\. ]/),i=r.length-1,O.each(r,function(e,t){var n=e!=i?t+r[e+1].charAt(0).toUpperCase()+r[e+1].slice(1):r;if(O.isPlainObject(o[n])&&e!=i)o=o[n];else{if(o[n]!==L)return a=o[n],!1;if(!O.isPlainObject(o[t])||e==i)return o[t]!==L&&(a=o[t]),!1;o=o[t]}})),O.isFunction(a)?n=a.apply(t,e):a!==L&&(n=a),Array.isArray(w)?w.push(n):w!==L?w=[w,n]:n!==L&&(w=n),a}}).initialize()}),w!==L?w:this},O.fn.form.settings={name:"Form",namespace:"form",debug:!1,verbose:!1,performance:!0,fields:!1,keyboardShortcuts:!0,on:"submit",inline:!1,delay:200,revalidate:!0,shouldTrim:!0,transition:"scale",duration:200,autoCheckRequired:!1,preventLeaving:!1,errorFocus:!0,dateHandling:"date",onValid:function(){},onInvalid:function(){},onSuccess:function(){return!0},onFailure:function(){return!1},onDirty:function(){},onClean:function(){},metadata:{defaultValue:"default",validate:"validate",isDirty:"isDirty"},regExp:{htmlID:/^[a-zA-Z][\w:.-]*$/g,bracket:/\[(.*)\]/i,decimal:/^\d+\.?\d*$/,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,escape:/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|:,=@]/g,flags:/^\/(.*)\/(.*)?/,integer:/^\-?\d+$/,number:/^\-?\d*(\.\d+)?$/,url:/(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/i},text:{and:"and",unspecifiedRule:"Please enter a valid value",unspecifiedField:"This field",leavingMessage:"There are unsaved changes on this page which will be discarded if you continue."},prompt:{range:"{name} must be in a range from {min} to {max}",maxValue:"{name} must have a maximum value of {ruleValue}",minValue:"{name} must have a minimum value of {ruleValue}",empty:"{name} must have a value",checked:"{name} must be checked",email:"{name} must be a valid e-mail",url:"{name} must be a valid url",regExp:"{name} is not formatted correctly",integer:"{name} must be an integer",decimal:"{name} must be a decimal number",number:"{name} must be set to a number",is:'{name} must be "{ruleValue}"',isExactly:'{name} must be exactly "{ruleValue}"',not:'{name} cannot be set to "{ruleValue}"',notExactly:'{name} cannot be set to exactly "{ruleValue}"',contain:'{name} must contain "{ruleValue}"',containExactly:'{name} must contain exactly "{ruleValue}"',doesntContain:'{name} cannot contain "{ruleValue}"',doesntContainExactly:'{name} cannot contain exactly "{ruleValue}"',minLength:"{name} must be at least {ruleValue} characters",exactLength:"{name} must be exactly {ruleValue} characters",maxLength:"{name} cannot be longer than {ruleValue} characters",match:"{name} must match {ruleValue} field",different:"{name} must have a different value than {ruleValue} field",creditCard:"{name} must be a valid credit card number",minCount:"{name} must have at least {ruleValue} choices",exactCount:"{name} must have exactly {ruleValue} choices",maxCount:"{name} must have {ruleValue} or less choices"},selector:{checkbox:'input[type="checkbox"], input[type="radio"]',clear:".clear",field:'input:not(.search):not([type="file"]):not([type="reset"]):not([type="button"]):not([type="submit"]), textarea, select',group:".field",input:'input:not([type="file"])',message:".error.message",prompt:".prompt.label",radio:'input[type="radio"]',reset:'.reset:not([type="reset"])',submit:'.submit:not([type="submit"])',uiCheckbox:".ui.checkbox",uiDropdown:".ui.dropdown",uiCalendar:".ui.calendar"},className:{error:"error",label:"ui basic red pointing prompt label",pressed:"down",success:"success",required:"required",disabled:"disabled"},error:{identifier:"You must specify a string identifier for each field",method:"The method you called is not defined.",noRule:"There is no rule matching the one you specified",oldSyntax:"Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically.",noElement:"This module requires ui {element}"},templates:{error:function(e){var n='<ul class="list">';return O.each(e,function(e,t){n+="<li>"+t+"</li>"}),n+="</ul>"},prompt:function(e){if(1===e.length)return e[0];var n='<ul class="ui list">';return O.each(e,function(e,t){n+="<li>"+t+"</li>"}),n+="</ul>"}},formatter:{date:function(e){return Intl.DateTimeFormat("en-GB").format(e)},datetime:function(e){return Intl.DateTimeFormat("en-GB",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(e)},time:function(e){return Intl.DateTimeFormat("en-GB",{hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(e)},month:function(e){return Intl.DateTimeFormat("en-GB",{month:"2-digit",year:"numeric"}).format(e)},year:function(e){return Intl.DateTimeFormat("en-GB",{year:"numeric"}).format(e)}},rules:{empty:function(e){return!(e===L||""===e||Array.isArray(e)&&0===e.length)},checked:function(){return 0<O(this).filter(":checked").length},email:function(e){return O.fn.form.settings.regExp.email.test(e)},url:function(e){return O.fn.form.settings.regExp.url.test(e)},regExp:function(e,t){if(t instanceof RegExp)return e.match(t);var n,r=t.match(O.fn.form.settings.regExp.flags);return r&&(t=2<=r.length?r[1]:t,n=3<=r.length?r[2]:""),e.match(new RegExp(t,n))},minValue:function(e,t){return O.fn.form.settings.rules.range(e,t+"..","number")},maxValue:function(e,t){return O.fn.form.settings.rules.range(e,".."+t,"number")},integer:function(e,t){return O.fn.form.settings.rules.range(e,t,"integer")},range:function(e,t,n){var r,i,a;return"string"==typeof n&&(n=O.fn.form.settings.regExp[n]),n instanceof RegExp||(n=O.fn.form.settings.regExp.integer),t&&-1===["",".."].indexOf(t)&&(-1==t.indexOf("..")?n.test(t)&&(r=i=t-0):(a=t.split("..",2),n.test(a[0])&&(r=a[0]-0),n.test(a[1])&&(i=a[1]-0))),n.test(e)&&(r===L||r<=e)&&(i===L||e<=i)},decimal:function(e,t){return O.fn.form.settings.rules.range(e,t,"decimal")},number:function(e,t){return O.fn.form.settings.rules.range(e,t,"number")},is:function(e,t){return t="string"==typeof t?t.toLowerCase():t,(e="string"==typeof e?e.toLowerCase():e)==t},isExactly:function(e,t){return e==t},not:function(e,t){return(e="string"==typeof e?e.toLowerCase():e)!=(t="string"==typeof t?t.toLowerCase():t)},notExactly:function(e,t){return e!=t},contains:function(e,t){return t=t.replace(O.fn.form.settings.regExp.escape,"\\$&"),-1!==e.search(new RegExp(t,"i"))},containsExactly:function(e,t){return t=t.replace(O.fn.form.settings.regExp.escape,"\\$&"),-1!==e.search(new RegExp(t))},doesntContain:function(e,t){return t=t.replace(O.fn.form.settings.regExp.escape,"\\$&"),-1===e.search(new RegExp(t,"i"))},doesntContainExactly:function(e,t){return t=t.replace(O.fn.form.settings.regExp.escape,"\\$&"),-1===e.search(new RegExp(t))},minLength:function(e,t){return e!==L&&e.length>=t},exactLength:function(e,t){return e!==L&&e.length==t},maxLength:function(e,t){return e!==L&&e.length<=t},match:function(e,t,n){var r,i;return 0<(i=n.find('[data-validate="'+t+'"]')).length?r=i.val():0<(i=n.find("#"+t)).length?r=i.val():0<(i=n.find('[name="'+t+'"]')).length?r=i.val():0<(i=n.find('[name="'+t+'[]"]')).length&&(r=i),r!==L&&e.toString()==r.toString()},different:function(e,t,n){var r,i;return 0<(i=n.find('[data-validate="'+t+'"]')).length?r=i.val():0<(i=n.find("#"+t)).length?r=i.val():0<(i=n.find('[name="'+t+'"]')).length?r=i.val():0<(i=n.find('[name="'+t+'[]"]')).length&&(r=i),r!==L&&e.toString()!==r.toString()},creditCard:function(n,e){var t,r,i={visa:{pattern:/^4/,length:[16]},amex:{pattern:/^3[47]/,length:[15]},mastercard:{pattern:/^5[1-5]/,length:[16]},discover:{pattern:/^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)/,length:[16]},unionPay:{pattern:/^(62|88)/,length:[16,17,18,19]},jcb:{pattern:/^35(2[89]|[3-8][0-9])/,length:[16]},maestro:{pattern:/^(5018|5020|5038|6304|6759|676[1-3])/,length:[12,13,14,15,16,17,18,19]},dinersClub:{pattern:/^(30[0-5]|^36)/,length:[14]},laser:{pattern:/^(6304|670[69]|6771)/,length:[16,17,18,19]},visaElectron:{pattern:/^(4026|417500|4508|4844|491(3|7))/,length:[16]}},a={},o=!1,l="string"==typeof e&&e.split(",");if("string"==typeof n&&0!==n.length){if(n=n.replace(/[\s\-]/g,""),l&&(O.each(l,function(e,t){(r=i[t])&&(a={length:-1!==O.inArray(n.length,r.length),pattern:-1!==n.search(r.pattern)}).length&&a.pattern&&(o=!0)}),!o))return!1;if((t={number:-1!==O.inArray(n.length,i.unionPay.length),pattern:-1!==n.search(i.unionPay.pattern)}).number&&t.pattern)return!0;for(var s=n.length,u=0,c=[[0,1,2,3,4,5,6,7,8,9],[0,2,4,6,8,1,3,5,7,9]],d=0;s--;)d+=c[u][parseInt(n.charAt(s),10)],u^=1;return d%10==0&&0<d}},minCount:function(e,t){return 0==t||(1==t?""!==e:e.split(",").length>=t)},exactCount:function(e,t){return 0==t?""===e:1==t?""!==e&&-1===e.search(","):e.split(",").length==t},maxCount:function(e,t){return 0!=t&&(1==t?-1===e.search(","):e.split(",").length<=t)}}}}(jQuery,window,document);
|
package/dist/components/grid.css
CHANGED
package/dist/components/icon.css
CHANGED
package/dist/components/item.css
CHANGED
package/dist/components/list.css
CHANGED
package/dist/components/modal.js
CHANGED
package/dist/components/nag.css
CHANGED
package/dist/components/nag.js
CHANGED
package/dist/components/popup.js
CHANGED
package/dist/components/rail.css
CHANGED