From 90ce2f5523f27d01b58e487a12cbc0a22a29ec76 Mon Sep 17 00:00:00 2001 From: Johannes Millan Date: Tue, 16 Feb 2016 00:38:51 +0000 Subject: [PATCH] Release v1.2.17 --- bower.json | 2 +- dist/ng-fab-form.js | 2 +- dist/ng-fab-form.min.js | 2 +- package.json | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/bower.json b/bower.json index b4bb4cb..064861f 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "ng-fab-form", "description": "Fabulous helper to help you with your daily form coding.", - "version": "1.2.16", + "version": "1.2.17", "authors": [ "Johannes Millan " ], diff --git a/dist/ng-fab-form.js b/dist/ng-fab-form.js index 58f5fb2..f3f713b 100644 --- a/dist/ng-fab-form.js +++ b/dist/ng-fab-form.js @@ -617,7 +617,7 @@ angular.module('ngFabForm') return { restrict: 'EAC', scope: false, - require: 'form', + require: '?^form', compile: function (el, attrs) { // create copy of configuration object as it might be modified by ngFabFormOptions diff --git a/dist/ng-fab-form.min.js b/dist/ng-fab-form.min.js index b44b377..130a7a6 100644 --- a/dist/ng-fab-form.min.js +++ b/dist/ng-fab-form.min.js @@ -1 +1 @@ -angular.module("ngFabForm",["ngMessages"]),angular.module("ngFabForm").directive("form",["ngFabFormDirective",function(a){"use strict";return a}]),angular.module("ngFabForm").directive("input",["ngFabFormValidationsDirective",function(a){"use strict";return a}]),angular.module("ngFabForm").directive("textarea",["ngFabFormValidationsDirective",function(a){"use strict";return a}]),angular.module("ngFabForm").directive("select",["ngFabFormValidationsDirective",function(a){"use strict";return a}]),angular.module("ngFabForm").provider("ngFabForm",function(){"use strict";function a(a,b){var d=angular.element(angular.element("
").html(a));return angular.forEach(b,function(a,b){var e=new RegExp(c.validationMsgPrefix);if(b.match(e)){var f=b.replace(c.validationMsgPrefix,"");f=f.charAt(0).toLowerCase()+f.slice(1);var g=d[0].querySelector('[ng-message="'+f+'"]');if(g)angular.element(g).html(a);else if(!g&&c.createMessageElTplFn){var h=d[0].querySelector("[ng-message]");h&&angular.element(h).after(c.createMessageElTplFn(f,a))}}}),d}var b,c={validationsTemplate:"default-validation-msgs.html",preventInvalidSubmit:!0,preventDoubleSubmit:!0,preventDoubleSubmitTimeoutLength:1e3,setFormDirtyOnSubmit:!0,scrollToAndFocusFirstErrorOnSubmit:!0,scrollAnimationTime:500,scrollOffset:-100,disabledForms:!0,globalFabFormDisable:!1,setNovalidate:!0,setNamesByNgModel:!0,setAsteriskForRequiredLabel:!1,asteriskStr:"*",validationMsgPrefix:"validationMsg",emailRegex:/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i,watchForFormCtrl:!1,formChangeEvent:"NG_FAB_FORM_OPTIONS_CHANGED",createMessageElTplFn:function(a,b){return'
  • '+b+"
  • "}},d=function(a,b,c){"checkbox"===c.type||"radio"===c.type?b.parent().after(a):b.after(a)},e=function(){function a(a,b,c,d){return(a/=d/2)<1?c/2*a*a+b:-c/2*(--a*(a-2)-1)+b}function b(a,b){var c=500,d=Math.abs(a),e=b/10;return b*d/c+e}return function(c,d,e){function f(){l+=m;var b=a(l,j,k,i);window.scrollTo(h,b),i>l?setTimeout(f,m):c.focus()}var g=c.getBoundingClientRect().top+parseInt(e),h=c.getBoundingClientRect().left,i=b(g,d),j=window.pageYOffset,k=g,l=0,m=20;return 0===k?void c.focus():void f()}}();return{extendConfig:function(a){c=angular.extend(c,a)},setInsertErrorTplFn:function(a){d=a},setScrollToFn:function(a){e=a},setCustomValidatorsFn:function(a){b=a},$get:function(){return{insertErrorTpl:d,addCustomValidations:a,customValidators:b,scrollTo:e,config:c}}}}),angular.module("ngFabForm").run(["$templateCache",function(a){"use strict";a.put("default-validation-msgs.html",'
    • This field is required
    • Not valid condition
    • Please enter a valid password
    • Please enter a valid e-mail
    • Invalid input format
    • Please enter a valid date
    • Please enter a valid time
    • Please enter a valid date and time
    • Please enter a valid date and time
    • This field must be numeric
    • Please enter a valid color
    • Please enter a valid range
    • Please enter a valid month
    • Please enter a valid URL
    • Invalid file
    • Please use at least {{ attrs.minlength }} characters
    • Please do not exceed {{ attrs.maxlength }} characters
    • The {{ attrs.type ===\'password\'? \'passwords\' : \'values\' }} should match
    • The time provided should after {{ attrs.min |date: \'HH:MM\' }}
    • The time provided should be before {{attrs.max |date: \'HH:MM\'}}
    • The date provided should be after {{attrs.min |date:\'dd.MM.yy\'}}
    • The date provided should be before {{attrs.max |date: \'dd.MM.yy\'}}
    • The number provided should be at least {{attrs.min}}
    • The number provided should be at max {{attrs.max}}
    ')}]),angular.module("ngFabForm").factory("ngFabFormValidationsDirective",["ngFabForm","$compile","$templateRequest",function(a,b,c){"use strict";function d(d){var e=d.el,f=d.cfg,g=d.formCtrl,h=d.ngModelCtrl,i=d.attrs,j=d.scope;d.currentValidationVars.tpl&&0!==Object.keys(d.currentValidationVars.tpl).length&&angular.element(d.currentValidationVars.tpl).remove(),c(f.validationsTemplate).then(function(c){var f=j.$new(!0);d.currentValidationVars.privateScope=f,c=a.addCustomValidations(c,i),f.attrs=i,f.form=g,f.field=h;var k=b(c.children())(f);d.currentValidationVars.tpl=k[0],a.insertErrorTpl(k[0],e,i)})}function e(a,b,c){var d=document.querySelectorAll('label[for="'+b.name+'"]');if(!d||d.length<1){var e=a[0].previousElementSibling;e&&"LABEL"===e.tagName&&(d=[e])}if(d&&d.length>0&&"radio"!==b.type&&"checkbox"!==b.type)for(var f=0;f");var c=a.children();b.$observe("disableForm",function(){"true"===b.disableForm||b.disableForm===!0?c.attr("disabled",!0):c.attr("disabled",!1)})}}function f(a,b,d,e){var f=a[0].querySelector(".ng-invalid");f&&b.$invalid&&c.scrollTo(f,parseInt(d),e)}return{restrict:"EAC",scope:!1,require:"form",compile:function(a,g){var h,i=angular.copy(c.config);if(i.globalFabFormDisable!==!0||!angular.isUndefined(g.ngFabForm))return!g.novalidate&&i.setNovalidate&&(a.attr("novalidate",!0),g.novalidate=!0),{pre:function(a,c,e,g){c.bind("submit",function(e){i.setFormDirtyOnSubmit&&a.$apply(function(){g.$triedSubmit=!0}),i.preventInvalidSubmit&&!g.$valid?d(e):i.preventDoubleSubmit&&(g.$preventDoubleSubmit&&d(e),h&&b.cancel(h),g.$preventDoubleSubmit=!0,h=b(function(){g.$preventDoubleSubmit=!1},i.preventDoubleSubmitTimeoutLength)),i.scrollToAndFocusFirstErrorOnSubmit&&f(c,g,i.scrollAnimationTime,i.scrollOffset)})},post:function(a,d,f,g){g.$triedSubmit=!1,g.$preventDoubleSubmit=!1,g.ngFabFormConfig=i,g.$resetForm=function(a){if(a===!0)for(var b=d.find("input"),c=0;c").html(a));return angular.forEach(b,function(a,b){var e=new RegExp(c.validationMsgPrefix);if(b.match(e)){var f=b.replace(c.validationMsgPrefix,"");f=f.charAt(0).toLowerCase()+f.slice(1);var g=d[0].querySelector('[ng-message="'+f+'"]');if(g)angular.element(g).html(a);else if(!g&&c.createMessageElTplFn){var h=d[0].querySelector("[ng-message]");h&&angular.element(h).after(c.createMessageElTplFn(f,a))}}}),d}var b,c={validationsTemplate:"default-validation-msgs.html",preventInvalidSubmit:!0,preventDoubleSubmit:!0,preventDoubleSubmitTimeoutLength:1e3,setFormDirtyOnSubmit:!0,scrollToAndFocusFirstErrorOnSubmit:!0,scrollAnimationTime:500,scrollOffset:-100,disabledForms:!0,globalFabFormDisable:!1,setNovalidate:!0,setNamesByNgModel:!0,setAsteriskForRequiredLabel:!1,asteriskStr:"*",validationMsgPrefix:"validationMsg",emailRegex:/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i,watchForFormCtrl:!1,formChangeEvent:"NG_FAB_FORM_OPTIONS_CHANGED",createMessageElTplFn:function(a,b){return'
  • '+b+"
  • "}},d=function(a,b,c){"checkbox"===c.type||"radio"===c.type?b.parent().after(a):b.after(a)},e=function(){function a(a,b,c,d){return(a/=d/2)<1?c/2*a*a+b:-c/2*(--a*(a-2)-1)+b}function b(a,b){var c=500,d=Math.abs(a),e=b/10;return b*d/c+e}return function(c,d,e){function f(){l+=m;var b=a(l,j,k,i);window.scrollTo(h,b),i>l?setTimeout(f,m):c.focus()}var g=c.getBoundingClientRect().top+parseInt(e),h=c.getBoundingClientRect().left,i=b(g,d),j=window.pageYOffset,k=g,l=0,m=20;return 0===k?void c.focus():void f()}}();return{extendConfig:function(a){c=angular.extend(c,a)},setInsertErrorTplFn:function(a){d=a},setScrollToFn:function(a){e=a},setCustomValidatorsFn:function(a){b=a},$get:function(){return{insertErrorTpl:d,addCustomValidations:a,customValidators:b,scrollTo:e,config:c}}}}),angular.module("ngFabForm").run(["$templateCache",function(a){"use strict";a.put("default-validation-msgs.html",'
    • This field is required
    • Not valid condition
    • Please enter a valid password
    • Please enter a valid e-mail
    • Invalid input format
    • Please enter a valid date
    • Please enter a valid time
    • Please enter a valid date and time
    • Please enter a valid date and time
    • This field must be numeric
    • Please enter a valid color
    • Please enter a valid range
    • Please enter a valid month
    • Please enter a valid URL
    • Invalid file
    • Please use at least {{ attrs.minlength }} characters
    • Please do not exceed {{ attrs.maxlength }} characters
    • The {{ attrs.type ===\'password\'? \'passwords\' : \'values\' }} should match
    • The time provided should after {{ attrs.min |date: \'HH:MM\' }}
    • The time provided should be before {{attrs.max |date: \'HH:MM\'}}
    • The date provided should be after {{attrs.min |date:\'dd.MM.yy\'}}
    • The date provided should be before {{attrs.max |date: \'dd.MM.yy\'}}
    • The number provided should be at least {{attrs.min}}
    • The number provided should be at max {{attrs.max}}
    ')}]),angular.module("ngFabForm").factory("ngFabFormValidationsDirective",["ngFabForm","$compile","$templateRequest",function(a,b,c){"use strict";function d(d){var e=d.el,f=d.cfg,g=d.formCtrl,h=d.ngModelCtrl,i=d.attrs,j=d.scope;d.currentValidationVars.tpl&&0!==Object.keys(d.currentValidationVars.tpl).length&&angular.element(d.currentValidationVars.tpl).remove(),c(f.validationsTemplate).then(function(c){var f=j.$new(!0);d.currentValidationVars.privateScope=f,c=a.addCustomValidations(c,i),f.attrs=i,f.form=g,f.field=h;var k=b(c.children())(f);d.currentValidationVars.tpl=k[0],a.insertErrorTpl(k[0],e,i)})}function e(a,b,c){var d=document.querySelectorAll('label[for="'+b.name+'"]');if(!d||d.length<1){var e=a[0].previousElementSibling;e&&"LABEL"===e.tagName&&(d=[e])}if(d&&d.length>0&&"radio"!==b.type&&"checkbox"!==b.type)for(var f=0;f");var c=a.children();b.$observe("disableForm",function(){"true"===b.disableForm||b.disableForm===!0?c.attr("disabled",!0):c.attr("disabled",!1)})}}function f(a,b,d,e){var f=a[0].querySelector(".ng-invalid");f&&b.$invalid&&c.scrollTo(f,parseInt(d),e)}return{restrict:"EAC",scope:!1,require:"?^form",compile:function(a,g){var h,i=angular.copy(c.config);if(i.globalFabFormDisable!==!0||!angular.isUndefined(g.ngFabForm))return!g.novalidate&&i.setNovalidate&&(a.attr("novalidate",!0),g.novalidate=!0),{pre:function(a,c,e,g){c.bind("submit",function(e){i.setFormDirtyOnSubmit&&a.$apply(function(){g.$triedSubmit=!0}),i.preventInvalidSubmit&&!g.$valid?d(e):i.preventDoubleSubmit&&(g.$preventDoubleSubmit&&d(e),h&&b.cancel(h),g.$preventDoubleSubmit=!0,h=b(function(){g.$preventDoubleSubmit=!1},i.preventDoubleSubmitTimeoutLength)),i.scrollToAndFocusFirstErrorOnSubmit&&f(c,g,i.scrollAnimationTime,i.scrollOffset)})},post:function(a,d,f,g){g.$triedSubmit=!1,g.$preventDoubleSubmit=!1,g.ngFabFormConfig=i,g.$resetForm=function(a){if(a===!0)for(var b=d.find("input"),c=0;c=1.3.0 <2.0.0", - "angular": ">=1.3.0 <2.0.0" + "angular": ">=1.3.0 <2.0.0" } }