fomantic-ui 2.10.0-beta.62 → 2.10.0-beta.64
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/.eslintrc.js +0 -1
- package/changelog-setup.js +10 -10
- package/dist/components/accordion.css +1 -1
- package/dist/components/accordion.js +40 -41
- package/dist/components/accordion.min.css +1 -1
- package/dist/components/accordion.min.js +2 -2
- package/dist/components/ad.css +1 -1
- package/dist/components/ad.min.css +1 -1
- package/dist/components/api.js +57 -61
- package/dist/components/api.min.js +2 -2
- 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 +186 -187
- package/dist/components/calendar.min.css +1 -1
- package/dist/components/calendar.min.js +2 -2
- 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 +29 -30
- package/dist/components/checkbox.min.css +1 -1
- package/dist/components/checkbox.min.js +2 -2
- 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 +22 -23
- package/dist/components/dimmer.min.css +1 -1
- package/dist/components/dimmer.min.js +2 -2
- package/dist/components/divider.css +1 -1
- package/dist/components/divider.min.css +1 -1
- package/dist/components/dropdown.css +1 -1
- package/dist/components/dropdown.js +293 -337
- package/dist/components/dropdown.min.css +1 -1
- package/dist/components/dropdown.min.js +2 -2
- package/dist/components/embed.css +1 -1
- package/dist/components/embed.js +33 -35
- package/dist/components/embed.min.css +1 -1
- package/dist/components/embed.min.js +2 -2
- package/dist/components/emoji.css +1 -1
- package/dist/components/emoji.min.css +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/flyout.css +1 -1
- package/dist/components/flyout.js +74 -81
- package/dist/components/flyout.min.css +1 -1
- package/dist/components/flyout.min.js +2 -2
- package/dist/components/form.css +1 -1
- package/dist/components/form.js +141 -146
- 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/menu.css +1 -1
- package/dist/components/menu.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 +80 -81
- package/dist/components/modal.min.css +1 -1
- package/dist/components/modal.min.js +2 -2
- package/dist/components/nag.css +1 -1
- package/dist/components/nag.js +27 -28
- package/dist/components/nag.min.css +1 -1
- package/dist/components/nag.min.js +2 -2
- 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 +62 -72
- package/dist/components/popup.min.css +1 -1
- package/dist/components/popup.min.js +2 -2
- package/dist/components/progress.css +1 -1
- package/dist/components/progress.js +51 -55
- package/dist/components/progress.min.css +1 -1
- package/dist/components/progress.min.js +2 -2
- 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 +33 -34
- package/dist/components/rating.min.css +1 -1
- package/dist/components/rating.min.js +2 -2
- 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 +96 -109
- package/dist/components/search.min.css +1 -1
- package/dist/components/search.min.js +2 -2
- 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 +44 -45
- package/dist/components/shape.min.css +1 -1
- package/dist/components/shape.min.js +2 -2
- package/dist/components/sidebar.css +1 -1
- package/dist/components/sidebar.js +56 -64
- package/dist/components/sidebar.min.css +1 -1
- package/dist/components/sidebar.min.js +2 -2
- package/dist/components/site.css +1 -1
- package/dist/components/site.js +16 -17
- package/dist/components/site.min.css +1 -1
- package/dist/components/site.min.js +2 -2
- package/dist/components/slider.css +1 -1
- package/dist/components/slider.js +143 -148
- package/dist/components/slider.min.css +1 -1
- package/dist/components/slider.min.js +2 -2
- package/dist/components/state.js +24 -25
- package/dist/components/state.min.js +2 -2
- 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 +42 -43
- package/dist/components/sticky.min.css +1 -1
- package/dist/components/sticky.min.js +2 -2
- package/dist/components/tab.css +1 -1
- package/dist/components/tab.js +57 -66
- package/dist/components/tab.min.css +1 -1
- package/dist/components/tab.min.js +2 -2
- 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 +32 -33
- package/dist/components/toast.min.css +1 -1
- package/dist/components/toast.min.js +2 -2
- package/dist/components/transition.css +1 -1
- package/dist/components/transition.js +38 -45
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +2 -2
- package/dist/components/visibility.js +76 -77
- package/dist/components/visibility.min.js +2 -2
- package/dist/semantic.css +53 -53
- package/dist/semantic.js +1753 -1884
- package/dist/semantic.min.css +1 -1
- package/dist/semantic.min.js +2 -2
- package/package.json +1 -1
- package/scripts/nightly-version.js +3 -3
- package/src/definitions/behaviors/api.js +56 -60
- package/src/definitions/behaviors/form.js +140 -145
- package/src/definitions/behaviors/state.js +23 -24
- package/src/definitions/behaviors/visibility.js +75 -76
- package/src/definitions/globals/site.js +15 -16
- package/src/definitions/modules/accordion.js +39 -40
- package/src/definitions/modules/calendar.js +185 -186
- package/src/definitions/modules/checkbox.js +28 -29
- package/src/definitions/modules/dimmer.js +21 -22
- package/src/definitions/modules/dropdown.js +292 -336
- package/src/definitions/modules/embed.js +32 -34
- package/src/definitions/modules/flyout.js +73 -80
- package/src/definitions/modules/modal.js +79 -80
- package/src/definitions/modules/nag.js +26 -27
- package/src/definitions/modules/popup.js +61 -71
- package/src/definitions/modules/progress.js +50 -54
- package/src/definitions/modules/rating.js +32 -33
- package/src/definitions/modules/search.js +95 -108
- package/src/definitions/modules/shape.js +43 -44
- package/src/definitions/modules/sidebar.js +55 -63
- package/src/definitions/modules/slider.js +142 -147
- package/src/definitions/modules/sticky.js +41 -42
- package/src/definitions/modules/tab.js +56 -65
- package/src/definitions/modules/toast.js +31 -32
- package/src/definitions/modules/transition.js +37 -44
- package/tasks/admin/components/create.js +11 -11
- package/tasks/admin/components/init.js +11 -12
- package/tasks/admin/components/update.js +19 -20
- package/tasks/admin/distributions/create.js +24 -36
- package/tasks/admin/distributions/init.js +11 -12
- package/tasks/admin/distributions/update.js +18 -19
- package/tasks/admin/register.js +7 -7
- package/tasks/build/assets.js +1 -1
- package/tasks/build/css.js +1 -1
- package/tasks/build/javascript.js +1 -1
- package/tasks/config/admin/github.js +1 -1
- package/tasks/config/admin/templates/css-package.js +1 -1
- package/tasks/config/admin/templates/less-package.js +1 -1
- package/tasks/config/project/config.js +6 -6
- package/tasks/config/project/install.js +12 -12
- package/tasks/config/project/release.js +5 -11
- package/tasks/config/tasks.js +5 -5
- package/tasks/config/user.js +1 -4
- package/tasks/docs/metadata.js +11 -12
- package/tasks/install.js +9 -9
- package/test/meteor/assets.js +1 -1
- package/test/modules/module.spec.js +18 -18
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* # Fomantic UI - 2.10.0-beta.
|
|
2
|
+
* # Fomantic UI - 2.10.0-beta.64+bcb9c73
|
|
3
3
|
* https://github.com/fomantic/Fomantic-UI
|
|
4
4
|
* https://fomantic-ui.com/
|
|
5
5
|
*
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
* https://opensource.org/licenses/MIT
|
|
9
9
|
*
|
|
10
10
|
*/
|
|
11
|
-
!function($,P,q){"use strict";function O(e){return"function"==typeof e&&"number"!=typeof e.nodeType}P=void 0!==P&&P.Math===Math?P:globalThis,$.fn.form=function(...e){let F=$(this),R=$(P),T=Date.now(),L=[],j=e[0],z="string"==typeof j,I=e.slice(1),N;return F.each(function(){let f=$(this),o=this,m=[],p={},s=!1,i,g,e,t,n,r,a,h,v,b,y,x,l,u,c,d,k,E,C,w=!1,A=!1,V=["clean","clean"],S,D;(D={initialize:function(){D.get.settings(),f.addClass(x.initial),z?(void 0===S&&D.instantiate(),D.invoke(j)):(void 0!==S&&(S.invoke("destroy"),D.refresh()),D.verbose("Initializing form validation",f,h),D.bindEvents(),D.set.defaults(),h.autoCheckRequired&&D.set.autoCheck(),D.instantiate())},instantiate:function(){D.verbose("Storing instance of module",D),S=D,f.data(d,D)},destroy:function(){D.verbose("Destroying previous module",S),D.removeEvents(),f.removeData(d)},refresh:function(){D.verbose("Refreshing selector cache"),i=f.find(y.field),g=f.find(y.group),e=f.find(y.message),t=f.find(y.prompt),n=f.find(y.submit),r=f.find(y.clear),a=f.find(y.reset)},refreshEvents:function(){D.removeEvents(),D.bindEvents()},submit:function(e){D.verbose("Submitting form",f),w=!0,f.trigger("submit"),e&&e.preventDefault()},attachEvents:function(e,t){t=t||"submit",$(e).on("click"+k,function(e){D[t](),e.preventDefault()}),E=e,C=t},bindEvents:function(){D.verbose("Attaching form events"),f.on("submit"+k,D.validate.form).on("blur"+k,y.field,D.event.field.blur).on("click"+k,y.submit,D.submit).on("click"+k,y.reset,D.reset).on("click"+k,y.clear,D.clear),i.on("invalid"+k,D.event.field.invalid),h.keyboardShortcuts&&f.on("keydown"+k,y.field,D.event.field.keydown),i.each(function(e,t){let n=$(t);t=n.prop("type"),t=D.get.changeEvent(t,n);n.on(t+k,D.event.field.change)}),h.preventLeaving&&R.on("beforeunload"+k,D.event.beforeUnload),i.on("change"+k+" click"+k+" keyup"+k+" keydown"+k+" blur"+k,function(e){D.determine.isDirty(e)}),f.on("dirty"+k,function(e){h.onDirty.call(o,e)}),f.on("clean"+k,function(e){h.onClean.call(o,e)}),E&&D.attachEvents(E,C)},clear:function(){i.each(function(e,t){let n=$(t),r=n.parent(),i=n.closest(g),a=i.find(y.prompt),l=n.closest(y.uiCalendar);var t=n.data(b.defaultValue)||"",o=n.is(y.checkbox),s=r.is(y.uiDropdown)&&D.can.useElement("dropdown"),u=0<l.length&&D.can.useElement("calendar");i.hasClass(x.error)&&(D.verbose("Resetting error on field",i),i.removeClass(x.error),a.remove()),s?(D.verbose("Resetting dropdown value",r,t),r.dropdown("clear",!0)):o?n.prop("checked",!1):u?l.calendar("clear"):(D.verbose("Resetting field value",n,t),n.val(""))}),D.remove.states()},reset:function(){i.each(function(e,t){let n=$(t),r=n.parent(),i=n.closest(g),a=n.closest(y.uiCalendar),l=i.find(y.prompt);var t=n.data(b.defaultValue),o=n.is(y.checkbox),s=r.is(y.uiDropdown)&&D.can.useElement("dropdown"),u=0<a.length&&D.can.useElement("calendar"),c=n.is(y.file),d=i.hasClass(x.error);void 0!==t&&(d&&(D.verbose("Resetting error on field",i),i.removeClass(x.error),l.remove()),s?(D.verbose("Resetting dropdown value",r,t),r.dropdown("restore defaults",!0)):o?(D.verbose("Resetting checkbox value",n,t),n.prop("checked",t)):u?a.calendar("set date",t):(D.verbose("Resetting field value",n,t),n.val(c?"":t)))}),D.remove.states()},determine:{isValid:function(){let r=!0;return i.each(function(e,t){var t=$(t),n=D.get.validation(t)||{},t=D.get.identifier(n,t);D.validate.field(n,t,!0)||(r=!1)}),r},isDirty:function(e){let r=!1;i.each(function(e,t){let n=$(t);t=0<n.filter(y.checkbox).length?D.is.checkboxDirty(n):D.is.fieldDirty(n);n.data(h.metadata.isDirty,t),r=r||t}),r?D.set.dirty():D.set.clean()}},is:{bracketedRule:function(e){return e.type&&e.type.match(h.regExp.bracket)},shorthandRules:function(e){return"string"==typeof e||Array.isArray(e)},empty:function(e){return!e||0===e.length||(e.is(y.checkbox)?!e.is(":checked"):D.is.blank(e))},blank:function(e){return""===String(e.val()).trim()},valid:function(e,n){let r=!0;return e?(D.verbose("Checking if field is valid",e),D.validate.field(v[e],e,!!n)):(D.verbose("Checking if form is valid"),$.each(v,function(e,t){D.is.valid(e,n)||(r=!1)}),r)},dirty:function(){return A},clean:function(){return!A},fieldDirty:function(e){let t=e.data(b.defaultValue),n=(void 0===t||null===t?t="":Array.isArray(t)&&(t=t.toString()),e.val()),r=(void 0===n||null===n?n="":Array.isArray(n)&&(n=n.toString()),/^(true|false)$/i);if(r.test(t)&&r.test(n)){let e=new RegExp("^"+t+"$","i");return!e.test(n)}return n!==t},checkboxDirty:function(e){return e.data(b.defaultValue)!==e.is(":checked")},justDirty:function(){return"dirty"===V[0]},justClean:function(){return"clean"===V[0]}},removeEvents:function(){f.off(k),i.off(k),n.off(k),h.preventLeaving&&R.off(k),E&&($(E).off(k),E=void 0)},event:{field:{keydown:function(e){let t=$(this);var n=e.which,r=t.is(y.input),i=t.is(y.checkbox),a=0<t.closest(y.uiDropdown).length;let l=13,o=27;n===o&&(D.verbose("Escape key pressed blurring field"),t[0].blur()),e.ctrlKey||n!==l||!r||a||i||(s||(t.one("keyup"+k,D.event.field.keyup),D.submit(e),D.debug("Enter pressed on input submitting form")),s=!0)},keyup:function(){s=!1},invalid:function(e){e.preventDefault()},blur:function(e){var t=$(this),n=D.get.validation(t)||{},r=D.get.identifier(n,t);("blur"===h.on||!f.hasClass(x.initial)&&h.revalidate)&&(D.debug("Revalidating field",t,n),D.validate.field(n,r),h.inline||D.validate.form(!1,!0))},change:function(e){let t=$(this),n=D.get.validation(t)||{},r=D.get.identifier(n,t);("change"===h.on||!f.hasClass(x.initial)&&h.revalidate)&&(clearTimeout(D.timer),D.timer=setTimeout(function(){D.debug("Revalidating field",t,n),D.validate.field(n,r),h.inline||D.validate.form(!1,!0)},h.delay))}},beforeUnload:function(e){if(D.is.dirty()&&!w)return(e=e||P.event)&&(e.returnValue=h.text.leavingMessage),h.text.leavingMessage}},get:{ancillaryValue:function(e){return!(!e.type||!e.value&&!D.is.bracketedRule(e))&&(void 0!==e.value?e.value:e.type.match(h.regExp.bracket)[1]+"")},ruleName:function(e){return D.is.bracketedRule(e)?e.type.replace(e.type.match(h.regExp.bracket)[0],""):e.type},changeEvent:function(e,t){return["file","checkbox","radio","hidden"].includes(e)||t.is("select")?"change":"input"},fieldsFromShorthand:function(e){let r={};return $.each(e,function(n,e){Array.isArray(e)||"object"!=typeof e?("string"==typeof e&&(e=[e]),r[n]={rules:[]},$.each(e,function(e,t){r[n].rules.push({type:t})})):r[n]=e}),r},identifier:function(e,t){return e.identifier||t.attr("id")||t.attr("name")||t.data(b.validate)},prompt:function(e,t){var n=D.get.ruleName(e);let r=D.get.ancillaryValue(e),i=D.get.field(t.identifier);var a=i.val();let l=e.prompt||h.prompt[n]||h.text.unspecifiedRule,o=String(O(l)?l.call(i[0],a):l);var s,a=-1!==o.search("{value}"),u=-1!==o.search("{name}");let c;return r&&["integer","decimal","number","size"].includes(n)&&r.includes("..")&&(s=r.split("..",2),e.prompt||"size"===n||(c=""===s[0]?h.prompt.maxValue.replaceAll("{ruleValue}","{max}"):""===s[1]?h.prompt.minValue.replaceAll("{ruleValue}","{min}"):h.prompt.range,o+=c.replaceAll("{name}"," "+h.text.and)),o=(o=o.replaceAll("{min}",s[0])).replaceAll("{max}",s[1])),r&&["match","different"].includes(n)&&(o=o.replaceAll("{ruleValue}",D.get.fieldLabel(r,!0))),a&&(o=o.replaceAll("{value}",i.val())),o=(o=(o=u?o.replaceAll("{name}",D.get.fieldLabel(i)):o).replaceAll("{identifier}",t.identifier)).replaceAll("{ruleValue}",r),e.prompt||D.verbose("Using default validation prompt for type",o,n),o},settings:function(){$.isPlainObject(j)?((h=$.extend(!0,{},$.fn.form.settings,j)).fields&&(h.fields=D.get.fieldsFromShorthand(h.fields)),v=$.extend(!0,{},$.fn.form.settings.defaults,h.fields),D.verbose("Extending settings",v,h)):(h=$.extend(!0,{},$.fn.form.settings),v=$.extend(!0,{},$.fn.form.settings.defaults),D.verbose("Using default form validation",v,h)),c=h.namespace,b=h.metadata,y=h.selector,x=h.className,l=h.regExp,u=h.error,d="module-"+c,k="."+c,((S=f.data(d))||D).refresh()},field:function(e,t,n){D.verbose("Finding field with identifier",e);let r;return 0<(r=i.filter("#"+CSS.escape(e))).length||0<(r=i.filter('[name="'+CSS.escape(e)+'"]')).length||0<(r=i.filter('[name="'+CSS.escape(e)+'[]"]')).length||0<(r=i.filter("[data-"+b.validate+'="'+CSS.escape(e)+'"]')).length?r:(n||D.error(u.noField.replace("{identifier}",e)),t?$():$("<input/>"))},fields:function(e,n){let r=$();return $.each(e,function(e,t){r=r.add(D.get.field(t,n))}),r},fieldLabel:function(e,t){let n="string"==typeof e?D.get.field(e):e,r=n.closest(y.group).find("label:not(:empty)").eq(0);return 1===r.length?r.text():n.prop("placeholder")||(t?e:h.text.unspecifiedField)},validation:function(r){let i,a;return!!v&&($.each(v,function(e,n){a=n.identifier||e,$.each(D.get.field(a),function(e,t){if(t==r[0])return n.identifier=a,i=n,!1})}),i||!1)},value:function(e,t){let n=[];return n.push(e),e=D.get.values.call(o,n,t),0<(t=Object.keys(e)).length?e[t[0]]:void 0},values:function(e,t){let n=Array.isArray(e)&&0<e.length?D.get.fields(e,t):i,f={};return n.each(function(e,t){let n=$(t),r=n.closest(y.uiCalendar),i=n.prop("name")||n.prop("id");var t=n.val(),a=n.is(y.checkbox),l=n.is(y.radio),o=i.includes("[]"),s=0<r.length&&D.can.useElement("calendar"),u=!!a&&n.is(":checked");if(i)if(o)i=i.replace("[]",""),f[i]||(f[i]=[]),a?u?f[i].push(t||!0):f[i].push(!1):f[i].push(t);else if(l)void 0!==f[i]&&!1!==f[i]||(f[i]=!!u&&(t||!0));else if(a)f[i]=!!u&&(t||!0);else if(s){var c=r.calendar("get date");if(null!==c)switch(h.dateHandling){case"date":f[i]=c;break;case"input":f[i]=r.calendar("get input date");break;case"formatter":var d=r.calendar("setting","type");switch(d){case"date":f[i]=h.formatter.date(c);break;case"datetime":f[i]=h.formatter.datetime(c);break;case"time":f[i]=h.formatter.time(c);break;case"month":f[i]=h.formatter.month(c);break;case"year":f[i]=h.formatter.year(c);break;default:D.debug("Wrong calendar mode",r,d),f[i]=""}}else f[i]=""}else f[i]=t}),f},dirtyFields:function(){return i.filter(function(e,t){return $(t).data(b.isDirty)})}},has:{field:function(e,t){return D.verbose("Checking for existence of a field with identifier",e),0<D.get.field(e,!0,t).length}},can:{useElement:function(e){return void 0!==$.fn[e]||(D.error(u.noElement.replace("{element}",e)),!1)}},checkErrors:function(e,t){return e&&0!==e.length?!t&&"string"==typeof e?[e]:e:(t||D.error(h.error.noErrorMessage),!1)},add:{rule:function(e,t){D.add.field(e,t)},field:function(n,e){void 0!==v[n]&&void 0!==v[n].rules||(v[n]={rules:[]});let r={rules:[]};D.is.shorthandRules(e)?(e=Array.isArray(e)?e:[e],$.each(e,function(e,t){r.rules.push({type:t})})):r.rules=e.rules,$.each(r.rules,function(e,t){0===$.grep(v[n].rules,function(e){return e.type===t.type}).length&&v[n].rules.push(t)}),D.debug("Adding rules",r.rules,v),D.refreshEvents()},fields:function(e){v=$.extend(!0,{},v,D.get.fieldsFromShorthand(e)),D.refreshEvents()},prompt:function(i,a,l){if(!1!==(a=D.checkErrors(a))){let e=D.get.field(i),t=e.closest(g),n=t.children(y.prompt),r=0<n.length;var o=h.transition&&D.can.useElement("transition");D.verbose("Adding field error state",i),l||t.addClass(x.error),h.inline?(r&&(o?n.transition("is animating")&&n.transition("stop all"):n.is(":animated")&&n.stop(!0,!0),n=t.children(y.prompt),r=0<n.length),r||(n=$("<div/>").addClass(x.label),o||n.css("display","none"),n.appendTo(t.filter("."+x.error))),n.html(h.templates.prompt(a)),r||(o?(D.verbose("Displaying error with css transition",h.transition),n.transition(h.transition+" in",h.duration)):(D.verbose("Displaying error with fallback javascript animation"),n.fadeIn(h.duration)))):D.verbose("Inline errors are disabled, no inline error added",i)}},errors:function(i){if(!1!==(i=D.checkErrors(i))){D.debug("Adding form error messages",i),D.set.error();let r=[],t;$.isPlainObject(i)?$.each(Object.keys(i),function(e,n){!1!==D.checkErrors(i[n],!0)&&(h.inline?D.add.prompt(n,i[n]):!1!==(t=D.checkErrors(i[n]))&&$.each(t,function(e,t){r.push(h.prompt.addErrors.replaceAll("{name}",D.get.fieldLabel(n)).replaceAll("{error}",t))}))}):r=i,0<r.length&&e.html(h.templates.error(r))}}},remove:{errors:function(){D.debug("Removing form error messages"),e.empty()},states:function(){f.removeClass(x.error).removeClass(x.success).addClass(x.initial),h.inline||D.remove.errors(),D.determine.isDirty()},rule:function(n,e){let r=Array.isArray(e)?e:[e];if(void 0!==v[n]&&Array.isArray(v[n].rules))return void 0===e?(D.debug("Removed all rules"),void(D.has.field(n,!0)?v[n].rules=[]:delete v[n])):void $.each(v[n].rules,function(e,t){t&&r.includes(t.type)&&(D.debug("Removed rule",t.type),v[n].rules.splice(e,1))})},field:function(e){e=Array.isArray(e)?e:[e];$.each(e,function(e,t){D.remove.rule(t)}),D.refreshEvents()},rules:function(e,n){Array.isArray(e)?$.each(e,function(e,t){D.remove.rule(t,n)}):D.remove.rule(e,n)},fields:function(e){D.remove.field(e)},prompt:function(e){let t=D.get.field(e),n=t.closest(g),r=n.children(y.prompt);n.removeClass(x.error),h.inline&&r.is(":visible")&&(D.verbose("Removing prompt for field",e),h.transition&&D.can.useElement("transition")?r.transition(h.transition+" out",h.duration,function(){r.remove()}):r.fadeOut(h.duration,function(){r.remove()}))}},set:{success:function(){f.removeClass(x.error).addClass(x.success)},defaults:function(){i.each(function(e,t){let n=$(t),r=n.parent();var t=0<n.filter(y.checkbox).length,i=(r.is(y.uiDropdown)||n.is(y.uiDropdown))&&D.can.useElement("dropdown");let a=n.closest(y.uiCalendar);var l=0<a.length&&D.can.useElement("calendar"),t=t?n.is(":checked"):n.val();i?(r.is(y.uiDropdown)?r:n).dropdown("save defaults"):l&&a.calendar("refresh"),n.data(b.defaultValue,t),n.data(b.isDirty,!1)})},error:function(){f.removeClass(x.success).addClass(x.error)},value:function(e,t){let n={};return n[e]=t,D.set.values.call(o,n)},values:function(e){$.isEmptyObject(e)||$.each(e,function(e,t){let n=D.get.field(e),r=n.parent(),i=n.closest(y.uiCalendar);var e=n.is(y.file),a=Array.isArray(t),l=r.is(y.uiCheckbox)&&D.can.useElement("checkbox"),o=r.is(y.uiDropdown)&&D.can.useElement("dropdown"),s=n.is(y.radio)&&l,u=0<i.length&&D.can.useElement("calendar"),c=0<n.length;let d;c&&(a&&l?(D.verbose("Selecting multiple",t,n),r.checkbox("uncheck"),$.each(t,function(e,t){d=n.filter('[value="'+CSS.escape(t)+'"]'),r=d.parent(),0<d.length&&r.checkbox("check")})):s?(D.verbose("Selecting radio value",t,n),n.filter('[value="'+CSS.escape(t)+'"]').parent(y.uiCheckbox).checkbox("check")):l?(D.verbose("Setting checkbox value",t,r),!0===t||1===t||"on"===t?r.checkbox("check"):r.checkbox("uncheck"),"string"==typeof t&&n.val(t)):o?(D.verbose("Setting dropdown value",t,r),r.dropdown("set selected",t)):u?i.calendar("set date",t):(D.verbose("Setting field value",t,n),n.val(e?"":t)))})},dirty:function(){D.verbose("Setting state dirty"),A=!0,V[0]=V[1],V[1]="dirty",D.is.justClean()&&f.trigger("dirty")},clean:function(){D.verbose("Setting state clean"),A=!1,V[0]=V[1],V[1]="clean",D.is.justDirty()&&f.trigger("clean")},asClean:function(){D.set.defaults(),D.set.clean()},asDirty:function(){D.set.defaults(),D.set.dirty()},autoCheck:function(){D.debug("Enabling auto check on required fields"),v&&$.each(v,function(e){D.has.field(e,!0)||(D.verbose("Field not found, removing from validation",e),D.remove.field(e))}),i.each(function(e,t){let n=$(t),r=n.closest(g);var t=0<n.filter(y.checkbox).length,i=n.prop("required")||r.hasClass(x.required)||r.parent().hasClass(x.required),a=n.is(":disabled")||r.hasClass(x.disabled)||r.parent().hasClass(x.disabled),l=D.get.validation(n),o=!!l&&0<$.grep(l.rules,function(e){return["notEmpty","checked"].includes(e.type)}).length,l=D.get.identifier(l,n);!i||a||o||void 0===l||(t?(D.verbose("Adding 'checked' rule on field",l),D.add.rule(l,"checked")):(D.verbose("Adding 'notEmpty' rule on field",l),D.add.rule(l,"notEmpty")))})},optional:function(n,r){r=!1!==r,$.each(v,function(e,t){n!==e&&n!==t.identifier||(t.optional=r)})}},validate:{form:function(e,t){var n=D.get.values();if(s)return!1;if(f.removeClass(x.initial),m=[],p={},D.determine.isValid()){if(D.debug("Form has no validation errors, submitting"),D.set.success(),h.inline||D.remove.errors(),!0!==t)return h.onSuccess.call(o,e,n)}else{if(D.debug("Form has errors"),w=!1,D.set.error(),h.inline||D.add.errors(m),e&&void 0!==f.data("moduleApi")&&e.stopImmediatePropagation(),h.errorFocus&&!0!==t){let e,t=!0;"string"==typeof h.errorFocus?(e=$(q).find(h.errorFocus),(t=e.is("[tabindex]"))||e.attr("tabindex",-1)):e=g.filter("."+x.error).first().find(y.field),e.trigger("focus"),t||e.removeAttr("tabindex")}if(!0!==t)return h.onFailure.call(o,m,n)}},field:function(r,e,i=!0){if("string"==typeof r&&(D.verbose("Validating field",r),e=r,r=v[r]),!r)return D.debug("Unable to find field validation. Skipping",e),!0;let a=r.identifier||e,t=D.get.field(a),n=t.closest(g);e=!!r.depends&&D.get.field(r.depends);let l=!0,o=[];var s=0===t.filter(":not(:disabled)").length||n.hasClass(x.disabled)||n.parent().hasClass(x.disabled),u=t[0].validationMessage,c=r.noNativeValidation||h.noNativeValidation||0<t.filter("[formnovalidate],[novalidate]").length||0<f.filter("[novalidate]").length;let d;return r.identifier||(D.debug("Using field name as identifier",a),r.identifier=a),!u||c||s?i&&n.removeClass(x.error):(D.debug("Field is natively invalid",a),o.push(u),l=!1,i&&n.addClass(x.error)),s?D.debug("Field is disabled. Skipping",a):r.optional&&D.is.blank(t)?D.debug("Field is optional and blank. Skipping",a):r.depends&&D.is.empty(e)?D.debug("Field depends on another value that is not present or empty. Skipping",e):void 0!==r.rules&&(d=r.errorLimit||h.errorLimit,$.each(r.rules,function(e,t){var n;D.has.field(a)&&(!d||o.length<d)&&0<(n=D.validate.rule(r,t,!0)||[]).length&&(D.debug("Field is invalid",a,t.type),t=D.get.prompt(t,r),h.inline?o.push(t):a in p&&p[a].includes(t)||d&&!((p[a]||[]).length<d)||(o.push(t),(p[a]=p[a]||[]).push(t)),l=!1,i&&$(n).closest(g).addClass(x.error))})),l?(i&&(D.remove.prompt(a),h.onValid.call(t)),!0):(i&&0<o.length&&(m=[...m,...o],D.add.prompt(a,o,!0),h.onInvalid.call(t,o)),!1)},rule:function(e,n,t){let r=D.get.field(e.identifier),i=D.get.ancillaryValue(n);e=D.get.ruleName(n);function a(e){let t=(s?$(e).filter(":checked"):$(e)).val();return t=void 0===t||""===t||null===t?"":h.shouldTrim&&!1!==n.shouldTrim||n.shouldTrim?String(t+"").trim():String(t+""),l.call(e,t,i,D)}let l=h.rules[e],o=[],s=r.is(y.checkbox);if(O(l))return s?a(r)||(o=r):$.each(r,function(e,t){a(t)||o.push(t)}),t?o:0===o.length;D.error(u.noRule,e)}},setting:function(e,t){if($.isPlainObject(e))$.extend(!0,h,e);else{if(void 0===t)return h[e];h[e]=t}},internal:function(e,t){if($.isPlainObject(e))$.extend(!0,D,e);else{if(void 0===t)return D[e];D[e]=t}},debug:function(...e){!h.silent&&h.debug&&(h.performance?D.performance.log(e):(D.debug=Function.prototype.bind.call(console.info,console,h.name+":"),D.debug.apply(console,e)))},verbose:function(...e){!h.silent&&h.verbose&&h.debug&&(h.performance?D.performance.log(e):(D.verbose=Function.prototype.bind.call(console.info,console,h.name+":"),D.verbose.apply(console,e)))},error:function(...e){h.silent||(D.error=Function.prototype.bind.call(console.error,console,h.name+":"),D.error.apply(console,e))},warn:function(...e){h.silent||(D.warn=Function.prototype.bind.call(console.warn,console,h.name+":"),D.warn.apply(console,e))},performance:{log:function(e){var t,n;h.performance&&(n=(t=Date.now())-(T||t),T=t,L.push({Name:e[0],Arguments:e.slice(1),Element:o,"Execution Time":n})),clearTimeout(D.performance.timer),D.performance.timer=setTimeout(function(){D.performance.display()},500)},display:function(){let e=h.name+":",n=0;T=!1,clearTimeout(D.performance.timer),$.each(L,function(e,t){n+=t["Execution Time"]}),e+=" "+n+"ms",1<F.length&&(e+=" ("+F.length+")"),0<L.length&&(console.groupCollapsed(e),console.table(L),console.groupEnd()),L=[]}},invoke:function(r,e=I,t=o){let i=S,a,l,n;return"string"==typeof r&&void 0!==i&&(r=r.split(/[ .]/),a=r.length-1,$.each(r,function(e,t){var n=e!==a?t+r[e+1].charAt(0).toUpperCase()+r[e+1].slice(1):r;if($.isPlainObject(i[n])&&e!==a)i=i[n];else{if(void 0!==i[n])return l=i[n],!1;{if(!$.isPlainObject(i[t])||e===a)return void 0!==i[t]?l=i[t]:D.error(u.method,r),!1;i=i[t]}}})),O(l)?n=l.apply(t,e):void 0!==l&&(n=l),Array.isArray(N)?N.push(n):void 0!==N?N=[N,n]:void 0!==n&&(N=n),l}}).initialize()}),void 0!==N?N:this},$.fn.form.settings={name:"Form",namespace:"form",silent:!1,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",errorLimit:0,noNativeValidation:!1,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:/^[\w!#$%&'*+./=?^`{|}~-]+@[\da-z]([\da-z-]*[\da-z])?(\.[\da-z]([\da-z-]*[\da-z])?)*$/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}",notEmpty:"{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}"',contains:'{name} must contain "{ruleValue}"',containsExactly:'{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",size:"{name} must have a length between {min} and {max} 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",addErrors:"{name}: {error}"},selector:{checkbox:'input[type="checkbox"], input[type="radio"]',clear:".clear",field:'input:not(.search, [type="reset"], [type="button"], [type="submit"]), textarea, select',file:'input[type="file"]',group:".field",input:"input",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:{initial:"initial",error:"error",label:"ui basic red pointing prompt label",pressed:"down",success:"success",required:"required",disabled:"disabled"},error:{method:"The method you called is not defined.",noRule:"There is no rule matching the one you specified",noField:"Field identifier {identifier} not found",noElement:"This module requires ui {element}",noErrorMessage:"No error message provided"},templates:{error:function(e){let n='<ul class="list">';return $.each(e,function(e,t){n+="<li>"+t+"</li>"}),n+="</ul>"},prompt:function(e){if(1===e.length)return e[0];let n='<ul class="ui list">';return $.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:{notEmpty:function(e){return!(void 0===e||""===e||Array.isArray(e)&&0===e.length)},checked:function(){return 0<$(this).filter(":checked").length},email:function(e){return $.fn.form.settings.regExp.email.test(e)},url:function(e){return $.fn.form.settings.regExp.url.test(e)},regExp:function(e,t){if(t instanceof RegExp)return e.match(t);var n=t.match($.fn.form.settings.regExp.flags);let r;return n&&(t=2<=n.length?n[1]:t,r=3<=n.length?n[2]:""),e.match(new RegExp(t,r))},minValue:function(e,t){return $.fn.form.settings.rules.range(e,t+"..","number")},maxValue:function(e,t){return $.fn.form.settings.rules.range(e,".."+t,"number")},integer:function(e,t){return $.fn.form.settings.rules.range(e,t,"integer")},range:function(e,t,n,r){(n="string"==typeof n?$.fn.form.settings.regExp[n]:n)instanceof RegExp||(n=$.fn.form.settings.regExp.integer);let i,a;var l;return t&&!["",".."].includes(t)&&(t.includes("..")?(l=t.split("..",2),n.test(l[0])&&(i=+l[0]),n.test(l[1])&&(a=+l[1])):n.test(t)&&(i=+t,a=i)),r&&(e=e.length),n.test(e)&&(void 0===i||e>=i)&&(void 0===a||e<=a)},decimal:function(e,t){return $.fn.form.settings.rules.range(e,t,"decimal")},number:function(e,t){return $.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($.fn.form.settings.regExp.escape,"\\$&"),-1!==e.search(new RegExp(t,"i"))},containsExactly:function(e,t){return t=t.replace($.fn.form.settings.regExp.escape,"\\$&"),-1!==e.search(new RegExp(t))},doesntContain:function(e,t){return t=t.replace($.fn.form.settings.regExp.escape,"\\$&"),-1===e.search(new RegExp(t,"i"))},doesntContainExactly:function(e,t){return t=t.replace($.fn.form.settings.regExp.escape,"\\$&"),-1===e.search(new RegExp(t))},minLength:function(e,t){return $.fn.form.settings.rules.range(e,t+"..","integer",!0)},exactLength:function(e,t){return $.fn.form.settings.rules.range(e,t+".."+t,"integer",!0)},maxLength:function(e,t){return $.fn.form.settings.rules.range(e,".."+t,"integer",!0)},size:function(e,t){return $.fn.form.settings.rules.range(e,t,"integer",!0)},match:function(e,t,n){let r=n.get.value(t,!0);return void 0!==r&&e.toString()===r.toString()},different:function(e,t,n){let r=n.get.value(t,!0);return void 0!==r&&e.toString()!==r.toString()},creditCard:function(r,i){let a={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]\d|[2-8]\d{2}|9[01]\d|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]\d)/,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]}},l,o=!1;var i="string"==typeof i&&i.split(",");let s;if("string"==typeof r&&0!==r.length){if(r=r.replace(/[\s-]/g,""),i&&($.each(i,function(e,t){(s=a[t])&&0<(l={length:s.length.includes(r.length),pattern:-1!==r.search(s.pattern)}).length&&l.pattern&&(o=!0)}),!o))return!1;if((i={number:a.unionPay.length.includes(r.length),pattern:-1!==r.search(a.unionPay.pattern)}).number&&i.pattern)return!0;let e=r.length,t=0;var u=[[0,1,2,3,4,5,6,7,8,9],[0,2,4,6,8,1,3,5,7,9]];let n=0;for(;e--;)n+=u[t][parseInt(r.charAt(e),10)],t^=1;return n%10==0&&0<n}},minCount:function(e,t){return 0===(t=Number(t))||(1===t?""!==e:e.split(",").length>=t)},exactCount:function(e,t){return 0===(t=Number(t))?""===e:1===t?""!==e&&-1===e.search(","):e.split(",").length===t},maxCount:function(e,t){return 0!==(t=Number(t))&&(1===t?-1===e.search(","):e.split(",").length<=t)}}}}(jQuery,window,document);
|
|
11
|
+
!function($,P,q){"use strict";function O(e){return"function"==typeof e&&"number"!=typeof e.nodeType}P=void 0!==P&&P.Math===Math?P:globalThis,$.fn.form=function(...e){const F=$(this),R=$(P);let T=Date.now(),L=[];const j=e[0],z="string"==typeof j,I=e.slice(1);let N;return F.each(function(){const f=$(this),l=this;let m=[],p={},s=!1,i,g,e,t,n,r,a,h,v,b,y,x,o,u,c,d,k,E,C,w=!1,A=!1;const V=["clean","clean"];let S;const D={initialize:function(){D.get.settings(),f.addClass(x.initial),z?(void 0===S&&D.instantiate(),D.invoke(j)):(void 0!==S&&(S.invoke("destroy"),D.refresh()),D.verbose("Initializing form validation",f,h),D.bindEvents(),D.set.defaults(),h.autoCheckRequired&&D.set.autoCheck(),D.instantiate())},instantiate:function(){D.verbose("Storing instance of module",D),S=D,f.data(d,D)},destroy:function(){D.verbose("Destroying previous module",S),D.removeEvents(),f.removeData(d)},refresh:function(){D.verbose("Refreshing selector cache"),i=f.find(y.field),g=f.find(y.group),e=f.find(y.message),t=f.find(y.prompt),n=f.find(y.submit),r=f.find(y.clear),a=f.find(y.reset)},refreshEvents:function(){D.removeEvents(),D.bindEvents()},submit:function(e){D.verbose("Submitting form",f),w=!0,f.trigger("submit"),e&&e.preventDefault()},attachEvents:function(e,t){t=t||"submit",$(e).on("click"+k,function(e){D[t](),e.preventDefault()}),E=e,C=t},bindEvents:function(){D.verbose("Attaching form events"),f.on("submit"+k,D.validate.form).on("blur"+k,y.field,D.event.field.blur).on("click"+k,y.submit,D.submit).on("click"+k,y.reset,D.reset).on("click"+k,y.clear,D.clear),i.on("invalid"+k,D.event.field.invalid),h.keyboardShortcuts&&f.on("keydown"+k,y.field,D.event.field.keydown),i.each(function(e,t){const n=$(t);t=n.prop("type"),t=D.get.changeEvent(t,n);n.on(t+k,D.event.field.change)}),h.preventLeaving&&R.on("beforeunload"+k,D.event.beforeUnload),i.on("change"+k+" click"+k+" keyup"+k+" keydown"+k+" blur"+k,function(e){D.determine.isDirty(e)}),f.on("dirty"+k,function(e){h.onDirty.call(l,e)}),f.on("clean"+k,function(e){h.onClean.call(l,e)}),E&&D.attachEvents(E,C)},clear:function(){i.each(function(e,t){const n=$(t),r=n.parent(),i=n.closest(g),a=i.find(y.prompt),o=n.closest(y.uiCalendar);var t=n.data(b.defaultValue)||"",l=n.is(y.checkbox),s=r.is(y.uiDropdown)&&D.can.useElement("dropdown"),u=0<o.length&&D.can.useElement("calendar");i.hasClass(x.error)&&(D.verbose("Resetting error on field",i),i.removeClass(x.error),a.remove()),s?(D.verbose("Resetting dropdown value",r,t),r.dropdown("clear",!0)):l?n.prop("checked",!1):u?o.calendar("clear"):(D.verbose("Resetting field value",n,t),n.val(""))}),D.remove.states()},reset:function(){i.each(function(e,t){const n=$(t),r=n.parent(),i=n.closest(g),a=n.closest(y.uiCalendar),o=i.find(y.prompt);var t=n.data(b.defaultValue),l=n.is(y.checkbox),s=r.is(y.uiDropdown)&&D.can.useElement("dropdown"),u=0<a.length&&D.can.useElement("calendar"),c=n.is(y.file),d=i.hasClass(x.error);void 0!==t&&(d&&(D.verbose("Resetting error on field",i),i.removeClass(x.error),o.remove()),s?(D.verbose("Resetting dropdown value",r,t),r.dropdown("restore defaults",!0)):l?(D.verbose("Resetting checkbox value",n,t),n.prop("checked",t)):u?a.calendar("set date",t):(D.verbose("Resetting field value",n,t),n.val(c?"":t)))}),D.remove.states()},determine:{isValid:function(){let r=!0;return i.each(function(e,t){var t=$(t),n=D.get.validation(t)||{},t=D.get.identifier(n,t);D.validate.field(n,t,!0)||(r=!1)}),r},isDirty:function(e){let r=!1;i.each(function(e,t){const n=$(t);t=0<n.filter(y.checkbox).length?D.is.checkboxDirty(n):D.is.fieldDirty(n);n.data(h.metadata.isDirty,t),r=r||t}),r?D.set.dirty():D.set.clean()}},is:{bracketedRule:function(e){return e.type&&e.type.match(h.regExp.bracket)},shorthandRules:function(e){return"string"==typeof e||Array.isArray(e)},empty:function(e){return!e||0===e.length||(e.is(y.checkbox)?!e.is(":checked"):D.is.blank(e))},blank:function(e){return""===String(e.val()).trim()},valid:function(e,n){let r=!0;return e?(D.verbose("Checking if field is valid",e),D.validate.field(v[e],e,!!n)):(D.verbose("Checking if form is valid"),$.each(v,function(e,t){D.is.valid(e,n)||(r=!1)}),r)},dirty:function(){return A},clean:function(){return!A},fieldDirty:function(e){let t=e.data(b.defaultValue),n=(void 0===t||null===t?t="":Array.isArray(t)&&(t=t.toString()),e.val());void 0===n||null===n?n="":Array.isArray(n)&&(n=n.toString());const r=/^(true|false)$/i;if(r.test(t)&&r.test(n)){const i=new RegExp("^"+t+"$","i");return!i.test(n)}return n!==t},checkboxDirty:function(e){return e.data(b.defaultValue)!==e.is(":checked")},justDirty:function(){return"dirty"===V[0]},justClean:function(){return"clean"===V[0]}},removeEvents:function(){f.off(k),i.off(k),n.off(k),h.preventLeaving&&R.off(k),E&&($(E).off(k),E=void 0)},event:{field:{keydown:function(e){const t=$(this);var n=e.which,r=t.is(y.input),i=t.is(y.checkbox),a=0<t.closest(y.uiDropdown).length;const o=13,l=27;n===l&&(D.verbose("Escape key pressed blurring field"),t[0].blur()),e.ctrlKey||n!==o||!r||a||i||(s||(t.one("keyup"+k,D.event.field.keyup),D.submit(e),D.debug("Enter pressed on input submitting form")),s=!0)},keyup:function(){s=!1},invalid:function(e){e.preventDefault()},blur:function(e){var t=$(this),n=D.get.validation(t)||{},r=D.get.identifier(n,t);("blur"===h.on||!f.hasClass(x.initial)&&h.revalidate)&&(D.debug("Revalidating field",t,n),D.validate.field(n,r),h.inline||D.validate.form(!1,!0))},change:function(e){const t=$(this),n=D.get.validation(t)||{},r=D.get.identifier(n,t);("change"===h.on||!f.hasClass(x.initial)&&h.revalidate)&&(clearTimeout(D.timer),D.timer=setTimeout(function(){D.debug("Revalidating field",t,n),D.validate.field(n,r),h.inline||D.validate.form(!1,!0)},h.delay))}},beforeUnload:function(e){if(D.is.dirty()&&!w)return(e=e||P.event)&&(e.returnValue=h.text.leavingMessage),h.text.leavingMessage}},get:{ancillaryValue:function(e){return!(!e.type||!e.value&&!D.is.bracketedRule(e))&&(void 0!==e.value?e.value:e.type.match(h.regExp.bracket)[1]+"")},ruleName:function(e){return D.is.bracketedRule(e)?e.type.replace(e.type.match(h.regExp.bracket)[0],""):e.type},changeEvent:function(e,t){return["file","checkbox","radio","hidden"].includes(e)||t.is("select")?"change":"input"},fieldsFromShorthand:function(e){const r={};return $.each(e,function(n,e){Array.isArray(e)||"object"!=typeof e?("string"==typeof e&&(e=[e]),r[n]={rules:[]},$.each(e,function(e,t){r[n].rules.push({type:t})})):r[n]=e}),r},identifier:function(e,t){return e.identifier||t.attr("id")||t.attr("name")||t.data(b.validate)},prompt:function(e,t){var n=D.get.ruleName(e);const r=D.get.ancillaryValue(e),i=D.get.field(t.identifier);var a=i.val();const o=e.prompt||h.prompt[n]||h.text.unspecifiedRule;let l=String(O(o)?o.call(i[0],a):o);var s,a=-1!==l.search("{value}"),u=-1!==l.search("{name}");let c;return r&&["integer","decimal","number","size"].includes(n)&&r.includes("..")&&(s=r.split("..",2),e.prompt||"size"===n||(c=""===s[0]?h.prompt.maxValue.replaceAll("{ruleValue}","{max}"):""===s[1]?h.prompt.minValue.replaceAll("{ruleValue}","{min}"):h.prompt.range,l+=c.replaceAll("{name}"," "+h.text.and)),l=(l=l.replaceAll("{min}",s[0])).replaceAll("{max}",s[1])),r&&["match","different"].includes(n)&&(l=l.replaceAll("{ruleValue}",D.get.fieldLabel(r,!0))),a&&(l=l.replaceAll("{value}",i.val())),l=(l=(l=u?l.replaceAll("{name}",D.get.fieldLabel(i)):l).replaceAll("{identifier}",t.identifier)).replaceAll("{ruleValue}",r),e.prompt||D.verbose("Using default validation prompt for type",l,n),l},settings:function(){$.isPlainObject(j)?((h=$.extend(!0,{},$.fn.form.settings,j)).fields&&(h.fields=D.get.fieldsFromShorthand(h.fields)),v=$.extend(!0,{},$.fn.form.settings.defaults,h.fields),D.verbose("Extending settings",v,h)):(h=$.extend(!0,{},$.fn.form.settings),v=$.extend(!0,{},$.fn.form.settings.defaults),D.verbose("Using default form validation",v,h)),c=h.namespace,b=h.metadata,y=h.selector,x=h.className,o=h.regExp,u=h.error,d="module-"+c,k="."+c,((S=f.data(d))||D).refresh()},field:function(e,t,n){D.verbose("Finding field with identifier",e);let r;return 0<(r=i.filter("#"+CSS.escape(e))).length||0<(r=i.filter('[name="'+CSS.escape(e)+'"]')).length||0<(r=i.filter('[name="'+CSS.escape(e)+'[]"]')).length||0<(r=i.filter("[data-"+b.validate+'="'+CSS.escape(e)+'"]')).length?r:(n||D.error(u.noField.replace("{identifier}",e)),t?$():$("<input/>"))},fields:function(e,n){let r=$();return $.each(e,function(e,t){r=r.add(D.get.field(t,n))}),r},fieldLabel:function(e,t){const n="string"==typeof e?D.get.field(e):e,r=n.closest(y.group).find("label:not(:empty)").eq(0);return 1===r.length?r.text():n.prop("placeholder")||(t?e:h.text.unspecifiedField)},validation:function(r){let i,a;return!!v&&($.each(v,function(e,n){a=n.identifier||e,$.each(D.get.field(a),function(e,t){if(t==r[0])return n.identifier=a,i=n,!1})}),i||!1)},value:function(e,t){const n=[];n.push(e);e=D.get.values.call(l,n,t),t=Object.keys(e);return 0<t.length?e[t[0]]:void 0},values:function(e,t){const n=Array.isArray(e)&&0<e.length?D.get.fields(e,t):i,f={};return n.each(function(e,t){const n=$(t),r=n.closest(y.uiCalendar);let i=n.prop("name")||n.prop("id");var t=n.val(),a=n.is(y.checkbox),o=n.is(y.radio),l=i.includes("[]"),s=0<r.length&&D.can.useElement("calendar"),u=!!a&&n.is(":checked");if(i)if(l)i=i.replace("[]",""),f[i]||(f[i]=[]),a?u?f[i].push(t||!0):f[i].push(!1):f[i].push(t);else if(o)void 0!==f[i]&&!1!==f[i]||(f[i]=!!u&&(t||!0));else if(a)f[i]=!!u&&(t||!0);else if(s){var c=r.calendar("get date");if(null!==c)switch(h.dateHandling){case"date":f[i]=c;break;case"input":f[i]=r.calendar("get input date");break;case"formatter":var d=r.calendar("setting","type");switch(d){case"date":f[i]=h.formatter.date(c);break;case"datetime":f[i]=h.formatter.datetime(c);break;case"time":f[i]=h.formatter.time(c);break;case"month":f[i]=h.formatter.month(c);break;case"year":f[i]=h.formatter.year(c);break;default:D.debug("Wrong calendar mode",r,d),f[i]=""}}else f[i]=""}else f[i]=t}),f},dirtyFields:function(){return i.filter(function(e,t){return $(t).data(b.isDirty)})}},has:{field:function(e,t){return D.verbose("Checking for existence of a field with identifier",e),0<D.get.field(e,!0,t).length}},can:{useElement:function(e){return void 0!==$.fn[e]||(D.error(u.noElement.replace("{element}",e)),!1)}},checkErrors:function(e,t){return e&&0!==e.length?!t&&"string"==typeof e?[e]:e:(t||D.error(h.error.noErrorMessage),!1)},add:{rule:function(e,t){D.add.field(e,t)},field:function(n,e){void 0!==v[n]&&void 0!==v[n].rules||(v[n]={rules:[]});const r={rules:[]};D.is.shorthandRules(e)?(e=Array.isArray(e)?e:[e],$.each(e,function(e,t){r.rules.push({type:t})})):r.rules=e.rules,$.each(r.rules,function(e,t){0===$.grep(v[n].rules,function(e){return e.type===t.type}).length&&v[n].rules.push(t)}),D.debug("Adding rules",r.rules,v),D.refreshEvents()},fields:function(e){v=$.extend(!0,{},v,D.get.fieldsFromShorthand(e)),D.refreshEvents()},prompt:function(n,r,i){if(!1!==(r=D.checkErrors(r))){const o=D.get.field(n),l=o.closest(g);let e=l.children(y.prompt),t=0<e.length;var a=h.transition&&D.can.useElement("transition");D.verbose("Adding field error state",n),i||l.addClass(x.error),h.inline?(t&&(a?e.transition("is animating")&&e.transition("stop all"):e.is(":animated")&&e.stop(!0,!0),e=l.children(y.prompt),t=0<e.length),t||(e=$("<div/>").addClass(x.label),a||e.css("display","none"),e.appendTo(l.filter("."+x.error))),e.html(h.templates.prompt(r)),t||(a?(D.verbose("Displaying error with css transition",h.transition),e.transition(h.transition+" in",h.duration)):(D.verbose("Displaying error with fallback javascript animation"),e.fadeIn(h.duration)))):D.verbose("Inline errors are disabled, no inline error added",n)}},errors:function(i){if(!1!==(i=D.checkErrors(i))){D.debug("Adding form error messages",i),D.set.error();let r=[],t;$.isPlainObject(i)?$.each(Object.keys(i),function(e,n){!1!==D.checkErrors(i[n],!0)&&(h.inline?D.add.prompt(n,i[n]):!1!==(t=D.checkErrors(i[n]))&&$.each(t,function(e,t){r.push(h.prompt.addErrors.replaceAll("{name}",D.get.fieldLabel(n)).replaceAll("{error}",t))}))}):r=i,0<r.length&&e.html(h.templates.error(r))}}},remove:{errors:function(){D.debug("Removing form error messages"),e.empty()},states:function(){f.removeClass(x.error).removeClass(x.success).addClass(x.initial),h.inline||D.remove.errors(),D.determine.isDirty()},rule:function(n,e){const r=Array.isArray(e)?e:[e];if(void 0!==v[n]&&Array.isArray(v[n].rules))return void 0===e?(D.debug("Removed all rules"),void(D.has.field(n,!0)?v[n].rules=[]:delete v[n])):void $.each(v[n].rules,function(e,t){t&&r.includes(t.type)&&(D.debug("Removed rule",t.type),v[n].rules.splice(e,1))})},field:function(e){e=Array.isArray(e)?e:[e];$.each(e,function(e,t){D.remove.rule(t)}),D.refreshEvents()},rules:function(e,n){Array.isArray(e)?$.each(e,function(e,t){D.remove.rule(t,n)}):D.remove.rule(e,n)},fields:function(e){D.remove.field(e)},prompt:function(e){const t=D.get.field(e),n=t.closest(g),r=n.children(y.prompt);n.removeClass(x.error),h.inline&&r.is(":visible")&&(D.verbose("Removing prompt for field",e),h.transition&&D.can.useElement("transition")?r.transition(h.transition+" out",h.duration,function(){r.remove()}):r.fadeOut(h.duration,function(){r.remove()}))}},set:{success:function(){f.removeClass(x.error).addClass(x.success)},defaults:function(){i.each(function(e,t){const n=$(t),r=n.parent();var t=0<n.filter(y.checkbox).length,i=(r.is(y.uiDropdown)||n.is(y.uiDropdown))&&D.can.useElement("dropdown");const a=n.closest(y.uiCalendar);var o=0<a.length&&D.can.useElement("calendar"),t=t?n.is(":checked"):n.val();i?(r.is(y.uiDropdown)?r:n).dropdown("save defaults"):o&&a.calendar("refresh"),n.data(b.defaultValue,t),n.data(b.isDirty,!1)})},error:function(){f.removeClass(x.success).addClass(x.error)},value:function(e,t){const n={};return n[e]=t,D.set.values.call(l,n)},values:function(e){$.isEmptyObject(e)||$.each(e,function(e,t){const n=D.get.field(e);let r=n.parent();const i=n.closest(y.uiCalendar);var e=n.is(y.file),a=Array.isArray(t),o=r.is(y.uiCheckbox)&&D.can.useElement("checkbox"),l=r.is(y.uiDropdown)&&D.can.useElement("dropdown"),s=n.is(y.radio)&&o,u=0<i.length&&D.can.useElement("calendar"),c=0<n.length;let d;c&&(a&&o?(D.verbose("Selecting multiple",t,n),r.checkbox("uncheck"),$.each(t,function(e,t){d=n.filter('[value="'+CSS.escape(t)+'"]'),r=d.parent(),0<d.length&&r.checkbox("check")})):s?(D.verbose("Selecting radio value",t,n),n.filter('[value="'+CSS.escape(t)+'"]').parent(y.uiCheckbox).checkbox("check")):o?(D.verbose("Setting checkbox value",t,r),!0===t||1===t||"on"===t?r.checkbox("check"):r.checkbox("uncheck"),"string"==typeof t&&n.val(t)):l?(D.verbose("Setting dropdown value",t,r),r.dropdown("set selected",t)):u?i.calendar("set date",t):(D.verbose("Setting field value",t,n),n.val(e?"":t)))})},dirty:function(){D.verbose("Setting state dirty"),A=!0,V[0]=V[1],V[1]="dirty",D.is.justClean()&&f.trigger("dirty")},clean:function(){D.verbose("Setting state clean"),A=!1,V[0]=V[1],V[1]="clean",D.is.justDirty()&&f.trigger("clean")},asClean:function(){D.set.defaults(),D.set.clean()},asDirty:function(){D.set.defaults(),D.set.dirty()},autoCheck:function(){D.debug("Enabling auto check on required fields"),v&&$.each(v,function(e){D.has.field(e,!0)||(D.verbose("Field not found, removing from validation",e),D.remove.field(e))}),i.each(function(e,t){const n=$(t),r=n.closest(g);var t=0<n.filter(y.checkbox).length,i=n.prop("required")||r.hasClass(x.required)||r.parent().hasClass(x.required),a=n.is(":disabled")||r.hasClass(x.disabled)||r.parent().hasClass(x.disabled),o=D.get.validation(n),l=!!o&&0<$.grep(o.rules,function(e){return["notEmpty","checked"].includes(e.type)}).length,o=D.get.identifier(o,n);!i||a||l||void 0===o||(t?(D.verbose("Adding 'checked' rule on field",o),D.add.rule(o,"checked")):(D.verbose("Adding 'notEmpty' rule on field",o),D.add.rule(o,"notEmpty")))})},optional:function(n,r){r=!1!==r,$.each(v,function(e,t){n!==e&&n!==t.identifier||(t.optional=r)})}},validate:{form:function(e,t){var n=D.get.values();if(s)return!1;if(f.removeClass(x.initial),m=[],p={},D.determine.isValid()){if(D.debug("Form has no validation errors, submitting"),D.set.success(),h.inline||D.remove.errors(),!0!==t)return h.onSuccess.call(l,e,n)}else{if(D.debug("Form has errors"),w=!1,D.set.error(),h.inline||D.add.errors(m),e&&void 0!==f.data("moduleApi")&&e.stopImmediatePropagation(),h.errorFocus&&!0!==t){let e,t=!0;"string"==typeof h.errorFocus?(e=$(q).find(h.errorFocus),(t=e.is("[tabindex]"))||e.attr("tabindex",-1)):e=g.filter("."+x.error).first().find(y.field),e.trigger("focus"),t||e.removeAttr("tabindex")}if(!0!==t)return h.onFailure.call(l,m,n)}},field:function(r,e,i=!0){if("string"==typeof r&&(D.verbose("Validating field",r),e=r,r=v[r]),!r)return D.debug("Unable to find field validation. Skipping",e),!0;const a=r.identifier||e,t=D.get.field(a),n=t.closest(g);e=!!r.depends&&D.get.field(r.depends);let o=!0;const l=[];var s=0===t.filter(":not(:disabled)").length||n.hasClass(x.disabled)||n.parent().hasClass(x.disabled),u=t[0].validationMessage,c=r.noNativeValidation||h.noNativeValidation||0<t.filter("[formnovalidate],[novalidate]").length||0<f.filter("[novalidate]").length;let d;return r.identifier||(D.debug("Using field name as identifier",a),r.identifier=a),!u||c||s?i&&n.removeClass(x.error):(D.debug("Field is natively invalid",a),l.push(u),o=!1,i&&n.addClass(x.error)),s?D.debug("Field is disabled. Skipping",a):r.optional&&D.is.blank(t)?D.debug("Field is optional and blank. Skipping",a):r.depends&&D.is.empty(e)?D.debug("Field depends on another value that is not present or empty. Skipping",e):void 0!==r.rules&&(d=r.errorLimit||h.errorLimit,$.each(r.rules,function(e,t){var n;D.has.field(a)&&(!d||l.length<d)&&0<(n=D.validate.rule(r,t,!0)||[]).length&&(D.debug("Field is invalid",a,t.type),t=D.get.prompt(t,r),h.inline?l.push(t):a in p&&p[a].includes(t)||d&&!((p[a]||[]).length<d)||(l.push(t),(p[a]=p[a]||[]).push(t)),o=!1,i&&$(n).closest(g).addClass(x.error))})),o?(i&&(D.remove.prompt(a),h.onValid.call(t)),!0):(i&&0<l.length&&(m=[...m,...l],D.add.prompt(a,l,!0),h.onInvalid.call(t,l)),!1)},rule:function(e,n,t){const r=D.get.field(e.identifier),i=D.get.ancillaryValue(n);e=D.get.ruleName(n);const a=h.rules[e];let o=[];function l(e){let t=(s?$(e).filter(":checked"):$(e)).val();return t=void 0===t||""===t||null===t?"":h.shouldTrim&&!1!==n.shouldTrim||n.shouldTrim?String(t+"").trim():String(t+""),a.call(e,t,i,D)}const s=r.is(y.checkbox);if(O(a))return s?l(r)||(o=r):$.each(r,function(e,t){l(t)||o.push(t)}),t?o:0===o.length;D.error(u.noRule,e)}},setting:function(e,t){if($.isPlainObject(e))$.extend(!0,h,e);else{if(void 0===t)return h[e];h[e]=t}},internal:function(e,t){if($.isPlainObject(e))$.extend(!0,D,e);else{if(void 0===t)return D[e];D[e]=t}},debug:function(...e){!h.silent&&h.debug&&(h.performance?D.performance.log(e):(D.debug=Function.prototype.bind.call(console.info,console,h.name+":"),D.debug.apply(console,e)))},verbose:function(...e){!h.silent&&h.verbose&&h.debug&&(h.performance?D.performance.log(e):(D.verbose=Function.prototype.bind.call(console.info,console,h.name+":"),D.verbose.apply(console,e)))},error:function(...e){h.silent||(D.error=Function.prototype.bind.call(console.error,console,h.name+":"),D.error.apply(console,e))},warn:function(...e){h.silent||(D.warn=Function.prototype.bind.call(console.warn,console,h.name+":"),D.warn.apply(console,e))},performance:{log:function(e){var t,n;h.performance&&(n=(t=Date.now())-(T||t),T=t,L.push({Name:e[0],Arguments:e.slice(1),Element:l,"Execution Time":n})),clearTimeout(D.performance.timer),D.performance.timer=setTimeout(function(){D.performance.display()},500)},display:function(){let e=h.name+":",n=0;T=!1,clearTimeout(D.performance.timer),$.each(L,function(e,t){n+=t["Execution Time"]}),e+=" "+n+"ms",1<F.length&&(e+=" ("+F.length+")"),0<L.length&&(console.groupCollapsed(e),console.table(L),console.groupEnd()),L=[]}},invoke:function(r,e=I,t=l){let i=S,a,o,n;return"string"==typeof r&&void 0!==i&&(r=r.split(/[ .]/),a=r.length-1,$.each(r,function(e,t){var n=e!==a?t+r[e+1].charAt(0).toUpperCase()+r[e+1].slice(1):r;if($.isPlainObject(i[n])&&e!==a)i=i[n];else{if(void 0!==i[n])return o=i[n],!1;{if(!$.isPlainObject(i[t])||e===a)return void 0!==i[t]?o=i[t]:D.error(u.method,r),!1;i=i[t]}}})),O(o)?n=o.apply(t,e):void 0!==o&&(n=o),Array.isArray(N)?N.push(n):void 0!==N?N=[N,n]:void 0!==n&&(N=n),o}};D.initialize()}),void 0!==N?N:this},$.fn.form.settings={name:"Form",namespace:"form",silent:!1,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",errorLimit:0,noNativeValidation:!1,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:/^[\w!#$%&'*+./=?^`{|}~-]+@[\da-z]([\da-z-]*[\da-z])?(\.[\da-z]([\da-z-]*[\da-z])?)*$/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}",notEmpty:"{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}"',contains:'{name} must contain "{ruleValue}"',containsExactly:'{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",size:"{name} must have a length between {min} and {max} 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",addErrors:"{name}: {error}"},selector:{checkbox:'input[type="checkbox"], input[type="radio"]',clear:".clear",field:'input:not(.search, [type="reset"], [type="button"], [type="submit"]), textarea, select',file:'input[type="file"]',group:".field",input:"input",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:{initial:"initial",error:"error",label:"ui basic red pointing prompt label",pressed:"down",success:"success",required:"required",disabled:"disabled"},error:{method:"The method you called is not defined.",noRule:"There is no rule matching the one you specified",noField:"Field identifier {identifier} not found",noElement:"This module requires ui {element}",noErrorMessage:"No error message provided"},templates:{error:function(e){let n='<ul class="list">';return $.each(e,function(e,t){n+="<li>"+t+"</li>"}),n+="</ul>"},prompt:function(e){if(1===e.length)return e[0];let n='<ul class="ui list">';return $.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:{notEmpty:function(e){return!(void 0===e||""===e||Array.isArray(e)&&0===e.length)},checked:function(){return 0<$(this).filter(":checked").length},email:function(e){return $.fn.form.settings.regExp.email.test(e)},url:function(e){return $.fn.form.settings.regExp.url.test(e)},regExp:function(e,t){if(t instanceof RegExp)return e.match(t);var n=t.match($.fn.form.settings.regExp.flags);let r;return n&&(t=2<=n.length?n[1]:t,r=3<=n.length?n[2]:""),e.match(new RegExp(t,r))},minValue:function(e,t){return $.fn.form.settings.rules.range(e,t+"..","number")},maxValue:function(e,t){return $.fn.form.settings.rules.range(e,".."+t,"number")},integer:function(e,t){return $.fn.form.settings.rules.range(e,t,"integer")},range:function(e,t,n,r){(n="string"==typeof n?$.fn.form.settings.regExp[n]:n)instanceof RegExp||(n=$.fn.form.settings.regExp.integer);let i,a;var o;return t&&!["",".."].includes(t)&&(t.includes("..")?(o=t.split("..",2),n.test(o[0])&&(i=+o[0]),n.test(o[1])&&(a=+o[1])):n.test(t)&&(i=+t,a=i)),r&&(e=e.length),n.test(e)&&(void 0===i||e>=i)&&(void 0===a||e<=a)},decimal:function(e,t){return $.fn.form.settings.rules.range(e,t,"decimal")},number:function(e,t){return $.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($.fn.form.settings.regExp.escape,"\\$&"),-1!==e.search(new RegExp(t,"i"))},containsExactly:function(e,t){return t=t.replace($.fn.form.settings.regExp.escape,"\\$&"),-1!==e.search(new RegExp(t))},doesntContain:function(e,t){return t=t.replace($.fn.form.settings.regExp.escape,"\\$&"),-1===e.search(new RegExp(t,"i"))},doesntContainExactly:function(e,t){return t=t.replace($.fn.form.settings.regExp.escape,"\\$&"),-1===e.search(new RegExp(t))},minLength:function(e,t){return $.fn.form.settings.rules.range(e,t+"..","integer",!0)},exactLength:function(e,t){return $.fn.form.settings.rules.range(e,t+".."+t,"integer",!0)},maxLength:function(e,t){return $.fn.form.settings.rules.range(e,".."+t,"integer",!0)},size:function(e,t){return $.fn.form.settings.rules.range(e,t,"integer",!0)},match:function(e,t,n){const r=n.get.value(t,!0);return void 0!==r&&e.toString()===r.toString()},different:function(e,t,n){const r=n.get.value(t,!0);return void 0!==r&&e.toString()!==r.toString()},creditCard:function(r,i){const a={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]\d|[2-8]\d{2}|9[01]\d|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]\d)/,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]}};let o,l=!1;i="string"==typeof i&&i.split(",");let s;if("string"==typeof r&&0!==r.length){if(r=r.replace(/[\s-]/g,""),i&&($.each(i,function(e,t){(s=a[t])&&0<(o={length:s.length.includes(r.length),pattern:-1!==r.search(s.pattern)}).length&&o.pattern&&(l=!0)}),!l))return!1;const c=a.unionPay.length.includes(r.length),d=-1!==r.search(a.unionPay.pattern);if(c&&d)return!0;let e=r.length,t=0;var u=[[0,1,2,3,4,5,6,7,8,9],[0,2,4,6,8,1,3,5,7,9]];let n=0;for(;e--;)n+=u[t][parseInt(r.charAt(e),10)],t^=1;return n%10==0&&0<n}},minCount:function(e,t){return 0===(t=Number(t))||(1===t?""!==e:e.split(",").length>=t)},exactCount:function(e,t){return 0===(t=Number(t))?""===e:1===t?""!==e&&-1===e.search(","):e.split(",").length===t},maxCount:function(e,t){return 0!==(t=Number(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/menu.css
CHANGED