From df3811a441ece0c559aa339145178f0fee95fab1 Mon Sep 17 00:00:00 2001 From: Edward Xiao Date: Mon, 26 Aug 2019 14:55:34 +0800 Subject: [PATCH] no message --- lib/components/Textarea.js | 2 +- lib/components/Textbox.js | 10 +--------- lib/react-inputs-validation.js | 4 ++-- lib/react-inputs-validation.js.map | 2 +- lib/react-inputs-validation.min.js | 4 ++-- lib/react-inputs-validation.min.js.map | 2 +- package.json | 2 +- src/js/Inputs/Textarea.tsx | 2 +- src/js/Inputs/Textbox.tsx | 9 +-------- 9 files changed, 11 insertions(+), 26 deletions(-) diff --git a/lib/components/Textarea.js b/lib/components/Textarea.js index 3c58d19..8506b42 100644 --- a/lib/components/Textarea.js +++ b/lib/components/Textarea.js @@ -514,7 +514,7 @@ var component = function component(_ref) { setInternalValue(String(value)); }, [value]); useEffect(function () { - if (prevInternalValue && prevInternalValue !== internalValue) { + if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) { if (option.customFunc) { check(); } diff --git a/lib/components/Textbox.js b/lib/components/Textbox.js index 46e72cd..dbea70a 100644 --- a/lib/components/Textbox.js +++ b/lib/components/Textbox.js @@ -661,20 +661,12 @@ var component = function component(_ref) { setInternalValue(String(value)); }, [value]); useEffect(function () { - if (prevInternalValue && prevInternalValue !== internalValue) { + if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) { if (option.customFunc) { check(); } } }, [internalValue]); - useEffect(function () { - /* istanbul ignore if because it won't happen */ - if ($el === null) { - return; - } - - $el.current.removeAttribute('value'); - }); useEffect(function () { if (asyncObj) { if (asyncObj.message) { diff --git a/lib/react-inputs-validation.js b/lib/react-inputs-validation.js index f862639..a5cd690 100644 --- a/lib/react-inputs-validation.js +++ b/lib/react-inputs-validation.js @@ -1,4 +1,4 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["react-inputs-validation"]=t():e["react-inputs-validation"]=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";e.exports=n(8)},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(0)),i=o.useEffect,a=o.useRef;t.LOCALE_OPTION_LIST=["en-US","zh-CN"],t.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE="Invalid window.REACT_INPUTS_VALIDATION['customErrorMessage']. EXAMPLE: window.REACT_INPUTS_VALIDATION={customErrorMessage:{'en-US':{textbox:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}},radiobox:{empty:function empty(name){return'Please choose one '+getEnglishName(name)}},checkbox:{unchecked:function unchecked(name){return getEnglishName(name)+'must be checked'}},select:{empty:function empty(name){return'Please select a '+getEnglishName(name)}},textarea:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}}}}};",t.DEFAULT_LOCALE="en-US",t.WRAPPER_CLASS_IDENTITIFIER="react-inputs-validation__wrapper_identifier",t.CONTAINER_CLASS_IDENTITIFIER="react-inputs-validation__container_identifier",t.OPTION_LIST_ITEM_IDENTITIFIER="react-inputs-validation__option-list-item_identifier",t.MSG_CLASS_IDENTITIFIER="react-inputs-validation__msg_identifier",t.usePrevious=function(e){var t=a();return i(function(){t.current=e}),t.current}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=function(e){var t="";return e&&(t=e+" "),t},i={"zh-CN":{textbox:{empty:function(e){return e+"不能为空"},invalid:function(e){return e+"格式有误"},invalidFormat:function(e){return e+"不是数字"},inBetween:function(e){return function(t){return function(n){return e+"必须在"+t+"-"+n+"之间"}}},lessThan:function(e){return function(t){return e+"不可少于"+t}},greaterThan:function(e){return function(t){return e+"不可大于"+t}},lengthEqual:function(e){return function(t){return e+"长度必须为"+t}},twoInputsNotEqual:function(){return"两次输入不一致"}},radiobox:{empty:function(e){return"必须勾选一个"+e}},checkbox:{unchecked:function(e){return e+"必须勾选"}},select:{empty:function(e){return"请选择一个"+e}},textarea:{empty:function(e){return e+"不能为空"},invalid:function(e){return e+"格式有误"},invalidFormat:function(e){return e+"不是数字"},inBetween:function(e){return function(t){return function(n){return e+"必须在"+t+"-"+n+"之间"}}},lessThan:function(e){return function(t){return e+"不可少于"+t}},greaterThan:function(e){return function(t){return e+"不可大于"+t}},lengthEqual:function(e){return function(t){return e+"长度必须为"+t}},twoInputsNotEqual:function(){return"两次输入不一致"}}},"en-US":{textbox:{empty:function(e){return o(e)+"cannot be empty"},invalid:function(e){return o(e)+"invalid format"},invalidFormat:function(e){return o(e)+"is not a number"},inBetween:function(e){return function(t){return function(n){return o(e)+"must be "+t+"-"+n}}},lessThan:function(e){return function(t){return o(e)+"cannot less than "+t}},greaterThan:function(e){return function(t){return o(e)+"cannot greater than "+t}},lengthEqual:function(e){return function(t){return o(e)+"length must be "+t}},twoInputsNotEqual:function(){return"two inputs are not equal"}},radiobox:{empty:function(e){return"Please choose one "+o(e)}},checkbox:{unchecked:function(e){return o(e)+"must be checked"}},select:{empty:function(e){return"Please select a "+o(e)}},textarea:{empty:function(e){return o(e)+"cannot be empty"},invalid:function(e){return o(e)+"invalid format"},invalidFormat:function(e){return o(e)+"is not a number"},inBetween:function(e){return function(t){return function(n){return o(e)+"must be "+t+"-"+n}}},lessThan:function(e){return function(t){return o(e)+"cannot less than "+t}},greaterThan:function(e){return function(t){return o(e)+"cannot greater than "+t}},lengthEqual:function(e){return function(t){return o(e)+"length must be "+t}},twoInputsNotEqual:function(){return"two inputs are not equal"}}}};t.getCustomErrorMessage=function(e,t){return e&&"object"==typeof e&&e.constructor===Object&&Object.keys(e).length?(Object.keys(e).map(function(n){t[n]?Object.keys(e[n]).length&&Object.keys(e[n]).map(function(r){Object.keys(e[n][r]).length&&Object.keys(e[n][r]).map(function(o){t[n][r][o]=e[n][r][o]})}):t[n]=e[n]}),t):(console.error(r.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),!1)},t.handleCustomErrorMessage=function(e,n){var r;return void 0!==n&&n.REACT_INPUTS_VALIDATION&&n.REACT_INPUTS_VALIDATION.customErrorMessage&&(r=t.getCustomErrorMessage(n.REACT_INPUTS_VALIDATION.customErrorMessage,e)),void 0===r||!1===r?e:r},"undefined"!=typeof window&&(window.REACT_INPUTS_VALIDATION=window.REACT_INPUTS_VALIDATION||{},i=t.handleCustomErrorMessage(i,window)),t.default=i},function(e,t,n){e.exports={ellipsis:"react-inputs-validation__ellipsis___3-Api",textbox__wrapper:"react-inputs-validation__textbox__wrapper___3tnXv",textbox__container:"react-inputs-validation__textbox__container___3KXOM",textbox__input:"react-inputs-validation__textbox__input___20hDL",error:"react-inputs-validation__error___2aXSp",success:"react-inputs-validation__success___3TpwE",disabled:"react-inputs-validation__disabled___1-57g",msg:"react-inputs-validation__msg___pxv8o",textarea__wrapper:"react-inputs-validation__textarea__wrapper___35GhF",textarea__container:"react-inputs-validation__textarea__container___2fbGp",textarea__input:"react-inputs-validation__textarea__input___1CFm_",radiobox__wrapper:"react-inputs-validation__radiobox__wrapper___1zZ30",radiobox__container:"react-inputs-validation__radiobox__container___FD4vb",radiobox__input:"react-inputs-validation__radiobox__input___2uX2-",radiobox__label:"react-inputs-validation__radiobox__label___2tQsB",checked:"react-inputs-validation__checked___2O0Ju",radiobox__item:"react-inputs-validation__radiobox__item___ejuz1",checkbox__wrapper:"react-inputs-validation__checkbox__wrapper___1c1rD",checkbox__input:"react-inputs-validation__checkbox__input___1yF4X",checkbox__container:"react-inputs-validation__checkbox__container___3I1rX",checkbox__box:"react-inputs-validation__checkbox__box___1uj8A",box:"react-inputs-validation__box___3E9nu",select__wrapper:"react-inputs-validation__select__wrapper___1B4OH",select__input:"react-inputs-validation__select__input___3h-P7",select__container:"react-inputs-validation__select__container___3jgUR","select__options-item":"react-inputs-validation__select__options-item___30yY4","select__options-item-show-cursor":"react-inputs-validation__select__options-item-show-cursor___1ZT3b","select__no-mouse":"react-inputs-validation__select__no-mouse___2uRg6","select__hover-active":"react-inputs-validation__select__hover-active___2z1MQ",active:"react-inputs-validation__active___3eZBB","select__options-container-animate":"react-inputs-validation__select__options-container-animate___2Rm--",show:"react-inputs-validation__show___2NI3u","select__options-container":"react-inputs-validation__select__options-container___d54qE",select__dropdown:"react-inputs-validation__select__dropdown___11yDr","select__dropdown-icon":"react-inputs-validation__select__dropdown-icon___1T5r2","select__dropdown-name":"react-inputs-validation__select__dropdown-name___3hghL","select__dropdown-icon-container":"react-inputs-validation__select__dropdown-icon-container___2ild-"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},o={reg:function(e,t){var n=!0;return e.test(t)&&(n=!1),n},empty:function(e){return!e.replace(/\s/g,"").length},number:function(e,t,n){return null===t&&null===n||!!r(e)&&!(en)}};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,function(e,t){return 0==+e?"":0===t?e.toLowerCase():e.toUpperCase()})},o={camelize:r,toCamelCase:function(e){return function(t){void 0===t&&(t=!1);var n=r(e);return t?n.substr(0,1).toUpperCase()+n.substr(1,n.length):n}},getRandomId:function(){return Math.random().toString(36).slice(-8)},getAlphanumeric:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);(n>=48&&n<=57||n>=97&&n<=122)&&(t+=e)}),t},getAlpha:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);n>=97&&n<=122&&(t+=e)}),t},getNumeric:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);n>=48&&n<=57&&(t+=e)}),t}};t.default=o},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(7));t.Textbox=o.default;var i=r(n(10));t.Textarea=i.default;var a=r(n(11));t.Select=a.default;var u=r(n(12));t.Checkbox=u.default;var l=r(n(13));t.Radiobox=l.default,"undefined"!=typeof window&&(window.Textbox=o.default,window.Textarea=i.default,window.Radiobox=l.default,window.Checkbox=u.default,window.Select=a.default)},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function u(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]Number(q))){var n=Te.type,r=Te.numberType;n===y[1]&&(t=String(function(e,t){var n="",r=!1;return String(e).split("").filter(function(e){var o=e.toLowerCase().charCodeAt(0);if(o>=48&&o<=57||46===o&&!r){if(46===o){if(t===E[1])return;r=!0}n+=e}}),t===E[0]&&n.length&&"."===n[0]&&(n="0"+n),n}(t,E.indexOf(r)>=0?r:E[0]))),n===y[2]&&(t=p.default.getAlphanumeric(t)),n===y[3]&&(t=p.default.getAlpha(t)),Ne(t),ie&&ie(t,e),he?ge(!1):Oe("")}}},[he]),De=d(function(){return r(u,void 0,void 0,function(){var e,t,n,r,i,a,u,l,c,s,d,f,v,g,E,S;return o(this,function(o){switch(o.label){case 0:if(e=Te.reg,t=Te.min,n=Te.max,r=Te.type,i=Te.name,a=Te.check,u=Te.length,l=Te.regMsg,c=Te.locale,s=Te.compare,d=Te.required,f=Te.msgOnSuccess,v=Te.customFunc,!a)return[2];if(!r)return[3,5];if(-1===y.indexOf(r))return[3,3];if(!_.default[c]||!_.default[c][b])return console.error(h.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),[2];if(g=_.default[c][b],E=i||"",d&&m.default.empty(xe))return qe(!0,g.empty(E)),[2];if(""!==String(xe)){if(e&&m.default.reg(e,xe))return qe(!0,""!==l?l:g.invalid(E)),[2];if(r===y[0]){if(t||n)if(t&&n){if(String(xe).lengthn)return qe(!0,g.inBetween(E)(t)(n)),[2]}else{if(t&&String(xe).lengthn)return qe(!0,g.greaterThan(E)(n)),[2]}if(u&&String(xe).length!==u)return qe(!0,g.lengthEqual(E)(u)),[2]}if(r===y[1]){if(!m.default[r](xe,null,null))return qe(!0,g.invalid(E)),[2];if(t||n)if(t&&n){if(!m.default[r](xe,t,n))return qe(!0,g.inBetween(E)(t)(n)),[2]}else{if(t&&!m.default[r](xe,t))return qe(!0,g.lessThan(E)(t)),[2];if(n&&!m.default[r](xe,0,n))return qe(!0,g.greaterThan(E)(n)),[2]}if(u&&String(xe).length!==u)return qe(!0,g.lengthEqual(E)(u)),[2]}if(s&&""!==s&&xe!==s)return qe(!0,g.twoInputsNotEqual()),[2]}return v&&"function"==typeof v?[4,v(xe)]:[3,2];case 1:if("object"==typeof(S=o.sent()))return"boolean"==typeof S.error&&"string"==typeof S.message&&(!1===S.error&&!0===S.showOnSuccess&&Oe(S.message),qe(S.error,S.message,!0)),[2];if(!0!==S)return qe(!0,S,!0),[2];o.label=2;case 2:return f&&Oe(f),qe(!1,f),[3,4];case 3:console.error("The valid "+p.default.toCamelCase(b)(!0)+' "type" options in validationOption are ['+y.map(function(e){return e})+"]"),o.label=4;case 4:return[3,6];case 5:console.error('Please provide "type" in validationOption'),o.label=6;case 6:return[2]}})})},[xe]),qe=d(function(e,t,n){void 0===n&&(n=!1);var r=t,o=Te.msgOnError;e&&o&&!n&&(r=o),ge(e),Ee(r),me&&me(e)},[]);s(function(){null!==Me&&(I&&Me.current.setAttribute("id",String(I)),w&&Me.current.setAttribute("tabindex",String(w)))},[]),s(function(){P&&De()},[P]),s(function(){Ne(String(A))},[A]),s(function(){Ce&&Ce!==xe&&Te.customFunc&&De()},[xe]),s(function(){null!==Me&&Me.current.removeAttribute("value")}),s(function(){ke&&ke.message&&(ke.showOnError&&qe(ke.error,ke.message),!ke.error&&ke.showOnSuccess&&Oe(ke.message))},[re]);var Ue,Ve=W+" "+g.default.textbox__wrapper+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),Be=z+" "+g.default.textbox__container+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),$e=$+" "+g.default.textbox__input+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),Ge=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(he&&g.default.error),We=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(!he&&g.default.success),Xe=Te.showMsg;return Xe&&he&&ye&&(Ue=l.createElement("div",{className:Ge},ye)),Xe&&!he&&""!==we&&(Ue=l.createElement("div",{className:We},we)),l.createElement("div",{className:Ve,style:Q},l.createElement("div",{className:Be,style:J},l.createElement("input",{name:N,type:T,value:xe,disabled:L,autoComplete:F,maxLength:Number(q),onBlur:Le,onKeyUp:je,onFocus:Re,onClick:Pe,className:$e,onChange:Fe,style:K,placeholder:V,ref:Ae})),Ue)})},function(e,t,n){"use strict"; +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["react-inputs-validation"]=t():e["react-inputs-validation"]=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";e.exports=n(8)},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(0)),i=o.useEffect,a=o.useRef;t.LOCALE_OPTION_LIST=["en-US","zh-CN"],t.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE="Invalid window.REACT_INPUTS_VALIDATION['customErrorMessage']. EXAMPLE: window.REACT_INPUTS_VALIDATION={customErrorMessage:{'en-US':{textbox:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}},radiobox:{empty:function empty(name){return'Please choose one '+getEnglishName(name)}},checkbox:{unchecked:function unchecked(name){return getEnglishName(name)+'must be checked'}},select:{empty:function empty(name){return'Please select a '+getEnglishName(name)}},textarea:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}}}}};",t.DEFAULT_LOCALE="en-US",t.WRAPPER_CLASS_IDENTITIFIER="react-inputs-validation__wrapper_identifier",t.CONTAINER_CLASS_IDENTITIFIER="react-inputs-validation__container_identifier",t.OPTION_LIST_ITEM_IDENTITIFIER="react-inputs-validation__option-list-item_identifier",t.MSG_CLASS_IDENTITIFIER="react-inputs-validation__msg_identifier",t.usePrevious=function(e){var t=a();return i(function(){t.current=e}),t.current}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=function(e){var t="";return e&&(t=e+" "),t},i={"zh-CN":{textbox:{empty:function(e){return e+"不能为空"},invalid:function(e){return e+"格式有误"},invalidFormat:function(e){return e+"不是数字"},inBetween:function(e){return function(t){return function(n){return e+"必须在"+t+"-"+n+"之间"}}},lessThan:function(e){return function(t){return e+"不可少于"+t}},greaterThan:function(e){return function(t){return e+"不可大于"+t}},lengthEqual:function(e){return function(t){return e+"长度必须为"+t}},twoInputsNotEqual:function(){return"两次输入不一致"}},radiobox:{empty:function(e){return"必须勾选一个"+e}},checkbox:{unchecked:function(e){return e+"必须勾选"}},select:{empty:function(e){return"请选择一个"+e}},textarea:{empty:function(e){return e+"不能为空"},invalid:function(e){return e+"格式有误"},invalidFormat:function(e){return e+"不是数字"},inBetween:function(e){return function(t){return function(n){return e+"必须在"+t+"-"+n+"之间"}}},lessThan:function(e){return function(t){return e+"不可少于"+t}},greaterThan:function(e){return function(t){return e+"不可大于"+t}},lengthEqual:function(e){return function(t){return e+"长度必须为"+t}},twoInputsNotEqual:function(){return"两次输入不一致"}}},"en-US":{textbox:{empty:function(e){return o(e)+"cannot be empty"},invalid:function(e){return o(e)+"invalid format"},invalidFormat:function(e){return o(e)+"is not a number"},inBetween:function(e){return function(t){return function(n){return o(e)+"must be "+t+"-"+n}}},lessThan:function(e){return function(t){return o(e)+"cannot less than "+t}},greaterThan:function(e){return function(t){return o(e)+"cannot greater than "+t}},lengthEqual:function(e){return function(t){return o(e)+"length must be "+t}},twoInputsNotEqual:function(){return"two inputs are not equal"}},radiobox:{empty:function(e){return"Please choose one "+o(e)}},checkbox:{unchecked:function(e){return o(e)+"must be checked"}},select:{empty:function(e){return"Please select a "+o(e)}},textarea:{empty:function(e){return o(e)+"cannot be empty"},invalid:function(e){return o(e)+"invalid format"},invalidFormat:function(e){return o(e)+"is not a number"},inBetween:function(e){return function(t){return function(n){return o(e)+"must be "+t+"-"+n}}},lessThan:function(e){return function(t){return o(e)+"cannot less than "+t}},greaterThan:function(e){return function(t){return o(e)+"cannot greater than "+t}},lengthEqual:function(e){return function(t){return o(e)+"length must be "+t}},twoInputsNotEqual:function(){return"two inputs are not equal"}}}};t.getCustomErrorMessage=function(e,t){return e&&"object"==typeof e&&e.constructor===Object&&Object.keys(e).length?(Object.keys(e).map(function(n){t[n]?Object.keys(e[n]).length&&Object.keys(e[n]).map(function(r){Object.keys(e[n][r]).length&&Object.keys(e[n][r]).map(function(o){t[n][r][o]=e[n][r][o]})}):t[n]=e[n]}),t):(console.error(r.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),!1)},t.handleCustomErrorMessage=function(e,n){var r;return void 0!==n&&n.REACT_INPUTS_VALIDATION&&n.REACT_INPUTS_VALIDATION.customErrorMessage&&(r=t.getCustomErrorMessage(n.REACT_INPUTS_VALIDATION.customErrorMessage,e)),void 0===r||!1===r?e:r},"undefined"!=typeof window&&(window.REACT_INPUTS_VALIDATION=window.REACT_INPUTS_VALIDATION||{},i=t.handleCustomErrorMessage(i,window)),t.default=i},function(e,t,n){e.exports={ellipsis:"react-inputs-validation__ellipsis___3-Api",textbox__wrapper:"react-inputs-validation__textbox__wrapper___3tnXv",textbox__container:"react-inputs-validation__textbox__container___3KXOM",textbox__input:"react-inputs-validation__textbox__input___20hDL",error:"react-inputs-validation__error___2aXSp",success:"react-inputs-validation__success___3TpwE",disabled:"react-inputs-validation__disabled___1-57g",msg:"react-inputs-validation__msg___pxv8o",textarea__wrapper:"react-inputs-validation__textarea__wrapper___35GhF",textarea__container:"react-inputs-validation__textarea__container___2fbGp",textarea__input:"react-inputs-validation__textarea__input___1CFm_",radiobox__wrapper:"react-inputs-validation__radiobox__wrapper___1zZ30",radiobox__container:"react-inputs-validation__radiobox__container___FD4vb",radiobox__input:"react-inputs-validation__radiobox__input___2uX2-",radiobox__label:"react-inputs-validation__radiobox__label___2tQsB",checked:"react-inputs-validation__checked___2O0Ju",radiobox__item:"react-inputs-validation__radiobox__item___ejuz1",checkbox__wrapper:"react-inputs-validation__checkbox__wrapper___1c1rD",checkbox__input:"react-inputs-validation__checkbox__input___1yF4X",checkbox__container:"react-inputs-validation__checkbox__container___3I1rX",checkbox__box:"react-inputs-validation__checkbox__box___1uj8A",box:"react-inputs-validation__box___3E9nu",select__wrapper:"react-inputs-validation__select__wrapper___1B4OH",select__input:"react-inputs-validation__select__input___3h-P7",select__container:"react-inputs-validation__select__container___3jgUR","select__options-item":"react-inputs-validation__select__options-item___30yY4","select__options-item-show-cursor":"react-inputs-validation__select__options-item-show-cursor___1ZT3b","select__no-mouse":"react-inputs-validation__select__no-mouse___2uRg6","select__hover-active":"react-inputs-validation__select__hover-active___2z1MQ",active:"react-inputs-validation__active___3eZBB","select__options-container-animate":"react-inputs-validation__select__options-container-animate___2Rm--",show:"react-inputs-validation__show___2NI3u","select__options-container":"react-inputs-validation__select__options-container___d54qE",select__dropdown:"react-inputs-validation__select__dropdown___11yDr","select__dropdown-icon":"react-inputs-validation__select__dropdown-icon___1T5r2","select__dropdown-name":"react-inputs-validation__select__dropdown-name___3hghL","select__dropdown-icon-container":"react-inputs-validation__select__dropdown-icon-container___2ild-"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},o={reg:function(e,t){var n=!0;return e.test(t)&&(n=!1),n},empty:function(e){return!e.replace(/\s/g,"").length},number:function(e,t,n){return null===t&&null===n||!!r(e)&&!(en)}};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,function(e,t){return 0==+e?"":0===t?e.toLowerCase():e.toUpperCase()})},o={camelize:r,toCamelCase:function(e){return function(t){void 0===t&&(t=!1);var n=r(e);return t?n.substr(0,1).toUpperCase()+n.substr(1,n.length):n}},getRandomId:function(){return Math.random().toString(36).slice(-8)},getAlphanumeric:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);(n>=48&&n<=57||n>=97&&n<=122)&&(t+=e)}),t},getAlpha:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);n>=97&&n<=122&&(t+=e)}),t},getNumeric:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);n>=48&&n<=57&&(t+=e)}),t}};t.default=o},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(7));t.Textbox=o.default;var i=r(n(10));t.Textarea=i.default;var a=r(n(11));t.Select=a.default;var u=r(n(12));t.Checkbox=u.default;var l=r(n(13));t.Radiobox=l.default,"undefined"!=typeof window&&(window.Textbox=o.default,window.Textarea=i.default,window.Radiobox=l.default,window.Checkbox=u.default,window.Select=a.default)},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function u(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]Number(q))){var n=Te.type,r=Te.numberType;n===y[1]&&(t=String(function(e,t){var n="",r=!1;return String(e).split("").filter(function(e){var o=e.toLowerCase().charCodeAt(0);if(o>=48&&o<=57||46===o&&!r){if(46===o){if(t===E[1])return;r=!0}n+=e}}),t===E[0]&&n.length&&"."===n[0]&&(n="0"+n),n}(t,E.indexOf(r)>=0?r:E[0]))),n===y[2]&&(t=p.default.getAlphanumeric(t)),n===y[3]&&(t=p.default.getAlpha(t)),Ne(t),ie&&ie(t,e),he?ge(!1):Oe("")}}},[he]),De=d(function(){return r(u,void 0,void 0,function(){var e,t,n,r,i,a,u,l,c,s,d,f,v,g,E,S;return o(this,function(o){switch(o.label){case 0:if(e=Te.reg,t=Te.min,n=Te.max,r=Te.type,i=Te.name,a=Te.check,u=Te.length,l=Te.regMsg,c=Te.locale,s=Te.compare,d=Te.required,f=Te.msgOnSuccess,v=Te.customFunc,!a)return[2];if(!r)return[3,5];if(-1===y.indexOf(r))return[3,3];if(!_.default[c]||!_.default[c][b])return console.error(h.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),[2];if(g=_.default[c][b],E=i||"",d&&m.default.empty(xe))return qe(!0,g.empty(E)),[2];if(""!==String(xe)){if(e&&m.default.reg(e,xe))return qe(!0,""!==l?l:g.invalid(E)),[2];if(r===y[0]){if(t||n)if(t&&n){if(String(xe).lengthn)return qe(!0,g.inBetween(E)(t)(n)),[2]}else{if(t&&String(xe).lengthn)return qe(!0,g.greaterThan(E)(n)),[2]}if(u&&String(xe).length!==u)return qe(!0,g.lengthEqual(E)(u)),[2]}if(r===y[1]){if(!m.default[r](xe,null,null))return qe(!0,g.invalid(E)),[2];if(t||n)if(t&&n){if(!m.default[r](xe,t,n))return qe(!0,g.inBetween(E)(t)(n)),[2]}else{if(t&&!m.default[r](xe,t))return qe(!0,g.lessThan(E)(t)),[2];if(n&&!m.default[r](xe,0,n))return qe(!0,g.greaterThan(E)(n)),[2]}if(u&&String(xe).length!==u)return qe(!0,g.lengthEqual(E)(u)),[2]}if(s&&""!==s&&xe!==s)return qe(!0,g.twoInputsNotEqual()),[2]}return v&&"function"==typeof v?[4,v(xe)]:[3,2];case 1:if("object"==typeof(S=o.sent()))return"boolean"==typeof S.error&&"string"==typeof S.message&&(!1===S.error&&!0===S.showOnSuccess&&Oe(S.message),qe(S.error,S.message,!0)),[2];if(!0!==S)return qe(!0,S,!0),[2];o.label=2;case 2:return f&&Oe(f),qe(!1,f),[3,4];case 3:console.error("The valid "+p.default.toCamelCase(b)(!0)+' "type" options in validationOption are ['+y.map(function(e){return e})+"]"),o.label=4;case 4:return[3,6];case 5:console.error('Please provide "type" in validationOption'),o.label=6;case 6:return[2]}})})},[xe]),qe=d(function(e,t,n){void 0===n&&(n=!1);var r=t,o=Te.msgOnError;e&&o&&!n&&(r=o),ge(e),Ee(r),me&&me(e)},[]);s(function(){null!==Me&&(I&&Me.current.setAttribute("id",String(I)),w&&Me.current.setAttribute("tabindex",String(w)))},[]),s(function(){P&&De()},[P]),s(function(){Ne(String(A))},[A]),s(function(){void 0!==Ce&&Ce!==xe&&Te.customFunc&&De()},[xe]),s(function(){ke&&ke.message&&(ke.showOnError&&qe(ke.error,ke.message),!ke.error&&ke.showOnSuccess&&Oe(ke.message))},[re]);var Ue,Ve=W+" "+g.default.textbox__wrapper+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),Be=z+" "+g.default.textbox__container+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),$e=$+" "+g.default.textbox__input+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),Ge=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(he&&g.default.error),We=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(!he&&g.default.success),Xe=Te.showMsg;return Xe&&he&&ye&&(Ue=l.createElement("div",{className:Ge},ye)),Xe&&!he&&""!==we&&(Ue=l.createElement("div",{className:We},we)),l.createElement("div",{className:Ve,style:Q},l.createElement("div",{className:Be,style:J},l.createElement("input",{name:N,type:T,value:xe,disabled:L,autoComplete:F,maxLength:Number(q),onBlur:Le,onKeyUp:je,onFocus:Re,onClick:Pe,className:$e,onChange:Fe,style:K,placeholder:V,ref:Ae})),Ue)})},function(e,t,n){"use strict"; /** @license React v16.8.6 * react.production.min.js * @@ -11,5 +11,5 @@ object-assign (c) Sindre Sorhus @license MIT -*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,u=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]Number(D)||(xe(t),oe&&oe(t,e),pe?he(!1):we(""))}},[pe]),Fe=d(function(){return r(u,void 0,void 0,function(){var e,t,n,r,i,a,u,l,c,s,d,f,v,g,E;return o(this,function(o){switch(o.label){case 0:if(e=Ce.reg,t=Ce.min,n=Ce.max,r=Ce.type,i=Ce.name,a=Ce.check,u=Ce.length,l=Ce.regMsg,c=Ce.locale,s=Ce.required,d=Ce.msgOnSuccess,f=Ce.customFunc,!a)return[2];if(!r)return[3,5];if(-1===y.indexOf(r))return[3,3];if(!_.default[c]||!_.default[c][b])return console.error(h.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),[2];if(v=_.default[c][b],g=i||"",s&&m.default.empty(Ie))return De(!0,v.empty(g)),[2];if(""!==String(Ie)){if(e&&m.default.reg(e,Ie))return De(!0,""!==l?l:v.invalid(g)),[2];if(t||n)if(t&&n){if(String(Ie).lengthn)return De(!0,v.inBetween(g)(t)(n)),[2]}else{if(t&&String(Ie).lengthn)return De(!0,v.greaterThan(g)(n)),[2]}if(u&&String(Ie).length!==u)return De(!0,v.lengthEqual(g)(u)),[2]}return f&&"function"==typeof f?[4,f(Ie)]:[3,2];case 1:if("object"==typeof(E=o.sent()))return"boolean"==typeof E.error&&"string"==typeof E.message&&(!1===E.error&&!0===E.showOnSuccess&&we(E.message),De(E.error,E.message,!0)),[2];if(!0!==E)return De(!0,E,!0),[2];o.label=2;case 2:return d&&we(d),De(!1,d),[3,4];case 3:console.error("The valid "+p.default.toCamelCase(b)(!0)+' "type" options in validationOption are ['+y.map(function(e){return e})+"]"),o.label=4;case 4:return[3,6];case 5:console.error('Please provide "type" in validationOption'),o.label=6;case 6:return[2]}})})},[Ie]),De=d(function(e,t,n){void 0===n&&(n=!1);var r=t,o=Ce.msgOnError;e&&o&&!n&&(r=o),he(e),ye(r),_e&&_e(e)},[]);s(function(){null!==Ae&&(O&&Ae.current.setAttribute("id",String(O)),S&&Ae.current.setAttribute("tabindex",String(S)))},[]),s(function(){j&&Fe()},[j]),s(function(){xe(String(C))},[C]),s(function(){Ne&&Ne!==Ie&&Ce.customFunc&&Fe()},[Ie]),s(function(){Te&&Te.message&&(Te.showOnError&&De(Te.error,Te.message),!Te.error&&Te.showOnSuccess&&we(Te.message))},[ne]);var qe,Ue=G+" "+g.default.textarea__wrapper+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),Ve=X+" "+g.default.textarea__container+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),Be=B+" "+g.default.textarea__input+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),$e=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(pe&&g.default.error),Ge=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(!pe&&g.default.success),We=Ce.showMsg;return We&&pe&&be&&(qe=l.createElement("div",{className:$e},be)),We&&!pe&&""!==Se&&(qe=l.createElement("div",{className:Ge},Se)),l.createElement("div",{className:Ue,style:Z},l.createElement("div",{className:Ve,style:Y},l.createElement("textarea",{name:x,value:Ie,disabled:R,onBlur:Me,maxLength:Number(D),onKeyUp:Pe,onFocus:Le,onClick:Re,className:Be,onChange:je,style:H,placeholder:U,cols:Number(k),rows:Number(M),ref:ke})),qe)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="select";String.prototype.startsWith||(String.prototype.startsWith=function(e,t){var n=t||0;return this.indexOf(e,n)===n});t.isValidValue=function(e,t){var n=!1;if(e.length)for(var r=0;r=a){var u=Math.abs(i-a-o);u>=0&&!p?(ze.current.scrollTop=n+o-u,p=!0):ze.current.scrollTop=n+o}}"up"===e&&(p=!1,h*o<=n&&(ze.current.scrollTop=h*o))}else p=!1,ze.current.scrollTop=h*o}}}},[]),at=l(function(e,t){Je(e,t)},[]),ut=l(function(e){h=e,st()},[]),lt=l(function(){De(!1)},[]),ct=l(function(){dt()},[]),st=l(function(){He&&(dt(),null!==h&&(h>=He.length&&(h=0),h<0&&(h=He.length-1),He[h]&&(He[h].current.className+=" "+v.default[_+"__hover-active"])))},[]),dt=l(function(){for(var e=0;eL.length-1&&(h=L.length-1),st();else if(38===r)n="up",(h-=1)<0&&(h=0),st();else if(13===r&&h>-1){if(!He[h])return;He[h].current.click()}}else{ot();var o=Ue.concat([r]),i=String.fromCharCode.apply(String,o).toLowerCase(),a=-1;L.filter(function(e,t){e.name.toLowerCase().startsWith(i)&&-1===a&&(a=t)}),-1!==a&&(h=a,st()),Ve(o)}return it(n),h}},[Re,N,Ue]);u(function(){return Re&&Xe&&Xe.current.addEventListener("keydown",ft),function(){Xe.current.removeEventListener("keydown",ft)}},[Re,N,Ue]),u(function(){A&&et()},[A]),u(function(){t.isValidValue(L,ke)&&""!==ke&&"null"!==ke&&"undefined"!==ke?Se(!1):Ce("")},[ke]),u(function(){Ae(String(N))},[N]),u(function(){void 0!==Me&&Me!==ke&&et()},[Me,ke]),u(function(){$e&&$e.message&&($e.showOnError&&tt($e.error,$e.message),!$e.error&&$e.showOnSuccess&&Ce($e.message))},[ie]);var vt,_t,mt=f.WRAPPER_CLASS_IDENTITIFIER+" "+P+" "+v.default.select__wrapper+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),pt=f.CONTAINER_CLASS_IDENTITIFIER+" "+F+" "+v.default.select__container+" "+(Ee&&v.default.error)+" "+(Re&&v.default.show)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),ht=v.default.select__input+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),gt=q+" "+v.default.ellipsis+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),bt=$+" "+v.default[_+"__options-container"]+" "+(Ee&&v.default.error)+" "+(Re&&v.default.show)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),yt=(!Fe&&v.default[_+"__options-item-show-cursor"])+" "+V+" "+v.default[_+"__options-item"]+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),Et=W+" "+v.default[_+"__dropdown-icon"],St=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(Ee&&v.default.error),wt=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(!Ee&&v.default.success),Ot=Be.showMsg;Ot&&Ee&&Oe&&(vt=i.createElement("div",{className:St},Oe)),Ot&&!Ee&&""!==Ne&&(vt=i.createElement("div",{className:wt},Ne));var It=t.getItem(L,String(N));L.length&&(_t=ce||L.map(function(e,n){return i.createElement(t.Option,{key:n,index:n,id:"react-inputs-validation__select_option-"+e.id,refItem:He[n],className:String(e.id)===String(N)?yt+" "+v.default.active:""+yt,item:e,customStyleOptionListItem:J,onClick:at,onMouseOver:ut,onMouseMove:lt,onMouseOut:ct})}));var xt=ue||i.createElement("div",{className:v.default.select__dropdown},i.createElement("div",{className:v.default[_+"__dropdown-name"]+" "+v.default.ellipsis},It?It.name:""),i.createElement("div",{className:Et}));return i.createElement("div",{ref:Ge,className:mt,style:z,onClick:function(e){Ye(e),!T&&Pe(!Re)},onFocus:Qe,onBlur:Ze},i.createElement("div",{className:pt,style:K},i.createElement("input",{name:I,type:"hidden",value:N,className:ht,onChange:function(){}}),i.createElement("div",{className:gt,style:Q},xt),i.createElement("div",{ref:We,className:bt,style:te},_t)),vt)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="checkbox";t.default=s(function(e){var t,n,r,o,s,m=e.tabIndex,p=void 0===m?null:m,h=e.id,g=void 0===h?null:h,b=e.name,y=void 0===b?"":b,E=e.value,S=void 0===E?"":E,w=e.checked,O=void 0!==w&&w,I=e.disabled,x=void 0!==I&&I,N=e.validate,C=void 0!==N&&N,T=e.labelHtml,k=void 0===T?null:T,A=(e.classNameInput,e.classNameWrapper),M=void 0===A?"":A,L=e.classNameInputBox,R=void 0===L?"":L,P=e.classNameContainer,j=void 0===P?"":P,F=(e.customStyleInput,e.customStyleWrapper),D=void 0===F?{}:F,q=e.customStyleInputBox,U=void 0===q?{}:q,V=e.customStyleContainer,B=void 0===V?{}:V,$=e.validationOption,G=void 0===$?{}:$,W=e.asyncMsgObj,X=void 0===W?{}:W,z=e.onChange,H=void 0===z?function(){}:z,K=e.onBlur,Z=void 0===K?null:K,Q=e.onFocus,Y=void 0===Q?null:Q,J=e.onClick,ee=void 0===J?null:J,te=e.validationCallback,ne=void 0===te?null:te,re=a(!1),oe=re[0],ie=re[1],ae=a(""),ue=ae[0],le=ae[1],ce=a(""),se=ce[0],de=ce[1],fe=a(O),ve=fe[0],_e=fe[1],me=f.usePrevious(ve),pe=function(e){var t=e.name,n=e.check,r=e.required,o=e.showMsg,i=e.locale,a=e.msgOnError,u=e.msgOnSuccess;return{name:t=void 0!==t?t:"",check:n=void 0===n||n,showMsg:o=void 0===o||o,required:r=void 0===r||r,locale:i=void 0!==i?i:f.DEFAULT_LOCALE,msgOnError:a=void 0!==a?a:"",msgOnSuccess:u=void 0!==u?u:""}}(G),he=(n=(t=X).error,r=t.message,o=t.showOnError,s=t.showOnSuccess,{error:n=void 0!==n&&n,message:r=void 0!==r?r:"",showOnError:o=void 0===o||o,showOnSuccess:s=void 0!==s&&s}),ge=c(null),be=ge,ye=l(function(e){Z&&(Oe(),Z(e))},[ve]),Ee=l(function(e){Y&&Y(e)},[ve]),Se=l(function(e){we(e),ee&&ee(e)},[oe,ve]),we=l(function(e){x||null===be||(_e(!ve),H&&H(!ve,e),oe?ie(!1):de(""))},[oe,ve]),Oe=l(function(){var e=pe.name,t=pe.check,n=pe.locale,r=pe.required,o=pe.msgOnSuccess;if(t)if(d.default[n]&&d.default[n][_]){if(r){var i=d.default[n][_],a=e||"";if(!ve)return void Ie(!0,i.unchecked(a))}o&&de(o),Ie(!1,o)}else console.error(f.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE)},[ve]),Ie=l(function(e,t){var n=t,r=pe.msgOnError;e&&r&&(n=r),ie(e),le(n),ne&&ne(e)},[]);u(function(){null!==be&&(g&&be.current.setAttribute("id",String(g)),p&&be.current.setAttribute("tabindex",String(p)))},[]),u(function(){C&&Oe()},[C,ve]),u(function(){_e(O)},[O]),u(function(){void 0!==me&&me!==ve&&Oe()},[me,ve]),u(function(){he&&he.message&&(he.showOnError&&Ie(he.error,he.message),!he.error&&he.showOnSuccess&&de(he.message))},[X]);var xe,Ne=f.WRAPPER_CLASS_IDENTITIFIER+" "+M+" "+v.default.checkbox__wrapper+" "+(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Ce=j+" "+v.default.checkbox__container+" "+(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Te=R+" "+v.default.checkbox__box+" "+(oe&&v.default.error)+" "+(ve&&v.default.checked)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),ke=(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Ae=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(oe&&v.default.error),Me=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(!oe&&v.default.success),Le=pe.showMsg;return Le&&oe&&ue&&(xe=i.createElement("div",{className:Ae},ue)),Le&&!oe&&""!==se&&(xe=i.createElement("div",{className:Me},se)),i.createElement("div",{ref:ge,className:Ne,style:D,onClick:Se,onBlur:ye,onFocus:Ee},i.createElement("div",{className:Ce,style:B},i.createElement("div",{className:Te,style:U},i.createElement("div",{className:v.default.box}),i.createElement("input",{name:y,type:_,className:v.default.checkbox__input,value:String(S),defaultChecked:ve,disabled:x,onChange:we})),i.createElement("label",{className:ke},k)),xe)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="radiobox";t.isValidValue=function(e,t){var n=!1;if(e.length)for(var r=0;r0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]Number(D)||(xe(t),oe&&oe(t,e),pe?he(!1):we(""))}},[pe]),Fe=d(function(){return r(u,void 0,void 0,function(){var e,t,n,r,i,a,u,l,c,s,d,f,v,g,E;return o(this,function(o){switch(o.label){case 0:if(e=Ce.reg,t=Ce.min,n=Ce.max,r=Ce.type,i=Ce.name,a=Ce.check,u=Ce.length,l=Ce.regMsg,c=Ce.locale,s=Ce.required,d=Ce.msgOnSuccess,f=Ce.customFunc,!a)return[2];if(!r)return[3,5];if(-1===y.indexOf(r))return[3,3];if(!_.default[c]||!_.default[c][b])return console.error(h.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),[2];if(v=_.default[c][b],g=i||"",s&&m.default.empty(Ie))return De(!0,v.empty(g)),[2];if(""!==String(Ie)){if(e&&m.default.reg(e,Ie))return De(!0,""!==l?l:v.invalid(g)),[2];if(t||n)if(t&&n){if(String(Ie).lengthn)return De(!0,v.inBetween(g)(t)(n)),[2]}else{if(t&&String(Ie).lengthn)return De(!0,v.greaterThan(g)(n)),[2]}if(u&&String(Ie).length!==u)return De(!0,v.lengthEqual(g)(u)),[2]}return f&&"function"==typeof f?[4,f(Ie)]:[3,2];case 1:if("object"==typeof(E=o.sent()))return"boolean"==typeof E.error&&"string"==typeof E.message&&(!1===E.error&&!0===E.showOnSuccess&&we(E.message),De(E.error,E.message,!0)),[2];if(!0!==E)return De(!0,E,!0),[2];o.label=2;case 2:return d&&we(d),De(!1,d),[3,4];case 3:console.error("The valid "+p.default.toCamelCase(b)(!0)+' "type" options in validationOption are ['+y.map(function(e){return e})+"]"),o.label=4;case 4:return[3,6];case 5:console.error('Please provide "type" in validationOption'),o.label=6;case 6:return[2]}})})},[Ie]),De=d(function(e,t,n){void 0===n&&(n=!1);var r=t,o=Ce.msgOnError;e&&o&&!n&&(r=o),he(e),ye(r),_e&&_e(e)},[]);s(function(){null!==Ae&&(O&&Ae.current.setAttribute("id",String(O)),S&&Ae.current.setAttribute("tabindex",String(S)))},[]),s(function(){j&&Fe()},[j]),s(function(){xe(String(C))},[C]),s(function(){void 0!==Ne&&Ne!==Ie&&Ce.customFunc&&Fe()},[Ie]),s(function(){Te&&Te.message&&(Te.showOnError&&De(Te.error,Te.message),!Te.error&&Te.showOnSuccess&&we(Te.message))},[ne]);var qe,Ue=G+" "+g.default.textarea__wrapper+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),Ve=X+" "+g.default.textarea__container+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),Be=B+" "+g.default.textarea__input+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),$e=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(pe&&g.default.error),Ge=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(!pe&&g.default.success),We=Ce.showMsg;return We&&pe&&be&&(qe=l.createElement("div",{className:$e},be)),We&&!pe&&""!==Se&&(qe=l.createElement("div",{className:Ge},Se)),l.createElement("div",{className:Ue,style:Z},l.createElement("div",{className:Ve,style:Y},l.createElement("textarea",{name:x,value:Ie,disabled:R,onBlur:Me,maxLength:Number(D),onKeyUp:Pe,onFocus:Le,onClick:Re,className:Be,onChange:je,style:H,placeholder:U,cols:Number(k),rows:Number(M),ref:ke})),qe)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="select";String.prototype.startsWith||(String.prototype.startsWith=function(e,t){var n=t||0;return this.indexOf(e,n)===n});t.isValidValue=function(e,t){var n=!1;if(e.length)for(var r=0;r=a){var u=Math.abs(i-a-o);u>=0&&!p?(ze.current.scrollTop=n+o-u,p=!0):ze.current.scrollTop=n+o}}"up"===e&&(p=!1,h*o<=n&&(ze.current.scrollTop=h*o))}else p=!1,ze.current.scrollTop=h*o}}}},[]),at=l(function(e,t){Je(e,t)},[]),ut=l(function(e){h=e,st()},[]),lt=l(function(){De(!1)},[]),ct=l(function(){dt()},[]),st=l(function(){He&&(dt(),null!==h&&(h>=He.length&&(h=0),h<0&&(h=He.length-1),He[h]&&(He[h].current.className+=" "+v.default[_+"__hover-active"])))},[]),dt=l(function(){for(var e=0;eL.length-1&&(h=L.length-1),st();else if(38===r)n="up",(h-=1)<0&&(h=0),st();else if(13===r&&h>-1){if(!He[h])return;He[h].current.click()}}else{ot();var o=Ue.concat([r]),i=String.fromCharCode.apply(String,o).toLowerCase(),a=-1;L.filter(function(e,t){e.name.toLowerCase().startsWith(i)&&-1===a&&(a=t)}),-1!==a&&(h=a,st()),Ve(o)}return it(n),h}},[Re,N,Ue]);u(function(){return Re&&Xe&&Xe.current.addEventListener("keydown",ft),function(){Xe.current.removeEventListener("keydown",ft)}},[Re,N,Ue]),u(function(){A&&et()},[A]),u(function(){t.isValidValue(L,ke)&&""!==ke&&"null"!==ke&&"undefined"!==ke?Se(!1):Ce("")},[ke]),u(function(){Ae(String(N))},[N]),u(function(){void 0!==Me&&Me!==ke&&et()},[Me,ke]),u(function(){$e&&$e.message&&($e.showOnError&&tt($e.error,$e.message),!$e.error&&$e.showOnSuccess&&Ce($e.message))},[ie]);var vt,_t,mt=f.WRAPPER_CLASS_IDENTITIFIER+" "+P+" "+v.default.select__wrapper+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),pt=f.CONTAINER_CLASS_IDENTITIFIER+" "+F+" "+v.default.select__container+" "+(Ee&&v.default.error)+" "+(Re&&v.default.show)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),ht=v.default.select__input+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),gt=q+" "+v.default.ellipsis+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),bt=$+" "+v.default[_+"__options-container"]+" "+(Ee&&v.default.error)+" "+(Re&&v.default.show)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),yt=(!Fe&&v.default[_+"__options-item-show-cursor"])+" "+V+" "+v.default[_+"__options-item"]+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),Et=W+" "+v.default[_+"__dropdown-icon"],St=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(Ee&&v.default.error),wt=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(!Ee&&v.default.success),Ot=Be.showMsg;Ot&&Ee&&Oe&&(vt=i.createElement("div",{className:St},Oe)),Ot&&!Ee&&""!==Ne&&(vt=i.createElement("div",{className:wt},Ne));var It=t.getItem(L,String(N));L.length&&(_t=ce||L.map(function(e,n){return i.createElement(t.Option,{key:n,index:n,id:"react-inputs-validation__select_option-"+e.id,refItem:He[n],className:String(e.id)===String(N)?yt+" "+v.default.active:""+yt,item:e,customStyleOptionListItem:J,onClick:at,onMouseOver:ut,onMouseMove:lt,onMouseOut:ct})}));var xt=ue||i.createElement("div",{className:v.default.select__dropdown},i.createElement("div",{className:v.default[_+"__dropdown-name"]+" "+v.default.ellipsis},It?It.name:""),i.createElement("div",{className:Et}));return i.createElement("div",{ref:Ge,className:mt,style:z,onClick:function(e){Ye(e),!T&&Pe(!Re)},onFocus:Qe,onBlur:Ze},i.createElement("div",{className:pt,style:K},i.createElement("input",{name:I,type:"hidden",value:N,className:ht,onChange:function(){}}),i.createElement("div",{className:gt,style:Q},xt),i.createElement("div",{ref:We,className:bt,style:te},_t)),vt)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="checkbox";t.default=s(function(e){var t,n,r,o,s,m=e.tabIndex,p=void 0===m?null:m,h=e.id,g=void 0===h?null:h,b=e.name,y=void 0===b?"":b,E=e.value,S=void 0===E?"":E,w=e.checked,O=void 0!==w&&w,I=e.disabled,x=void 0!==I&&I,N=e.validate,C=void 0!==N&&N,T=e.labelHtml,k=void 0===T?null:T,A=(e.classNameInput,e.classNameWrapper),M=void 0===A?"":A,L=e.classNameInputBox,R=void 0===L?"":L,P=e.classNameContainer,j=void 0===P?"":P,F=(e.customStyleInput,e.customStyleWrapper),D=void 0===F?{}:F,q=e.customStyleInputBox,U=void 0===q?{}:q,V=e.customStyleContainer,B=void 0===V?{}:V,$=e.validationOption,G=void 0===$?{}:$,W=e.asyncMsgObj,X=void 0===W?{}:W,z=e.onChange,H=void 0===z?function(){}:z,K=e.onBlur,Z=void 0===K?null:K,Q=e.onFocus,Y=void 0===Q?null:Q,J=e.onClick,ee=void 0===J?null:J,te=e.validationCallback,ne=void 0===te?null:te,re=a(!1),oe=re[0],ie=re[1],ae=a(""),ue=ae[0],le=ae[1],ce=a(""),se=ce[0],de=ce[1],fe=a(O),ve=fe[0],_e=fe[1],me=f.usePrevious(ve),pe=function(e){var t=e.name,n=e.check,r=e.required,o=e.showMsg,i=e.locale,a=e.msgOnError,u=e.msgOnSuccess;return{name:t=void 0!==t?t:"",check:n=void 0===n||n,showMsg:o=void 0===o||o,required:r=void 0===r||r,locale:i=void 0!==i?i:f.DEFAULT_LOCALE,msgOnError:a=void 0!==a?a:"",msgOnSuccess:u=void 0!==u?u:""}}(G),he=(n=(t=X).error,r=t.message,o=t.showOnError,s=t.showOnSuccess,{error:n=void 0!==n&&n,message:r=void 0!==r?r:"",showOnError:o=void 0===o||o,showOnSuccess:s=void 0!==s&&s}),ge=c(null),be=ge,ye=l(function(e){Z&&(Oe(),Z(e))},[ve]),Ee=l(function(e){Y&&Y(e)},[ve]),Se=l(function(e){we(e),ee&&ee(e)},[oe,ve]),we=l(function(e){x||null===be||(_e(!ve),H&&H(!ve,e),oe?ie(!1):de(""))},[oe,ve]),Oe=l(function(){var e=pe.name,t=pe.check,n=pe.locale,r=pe.required,o=pe.msgOnSuccess;if(t)if(d.default[n]&&d.default[n][_]){if(r){var i=d.default[n][_],a=e||"";if(!ve)return void Ie(!0,i.unchecked(a))}o&&de(o),Ie(!1,o)}else console.error(f.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE)},[ve]),Ie=l(function(e,t){var n=t,r=pe.msgOnError;e&&r&&(n=r),ie(e),le(n),ne&&ne(e)},[]);u(function(){null!==be&&(g&&be.current.setAttribute("id",String(g)),p&&be.current.setAttribute("tabindex",String(p)))},[]),u(function(){C&&Oe()},[C,ve]),u(function(){_e(O)},[O]),u(function(){void 0!==me&&me!==ve&&Oe()},[me,ve]),u(function(){he&&he.message&&(he.showOnError&&Ie(he.error,he.message),!he.error&&he.showOnSuccess&&de(he.message))},[X]);var xe,Ne=f.WRAPPER_CLASS_IDENTITIFIER+" "+M+" "+v.default.checkbox__wrapper+" "+(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Ce=j+" "+v.default.checkbox__container+" "+(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Te=R+" "+v.default.checkbox__box+" "+(oe&&v.default.error)+" "+(ve&&v.default.checked)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),ke=(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Ae=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(oe&&v.default.error),Me=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(!oe&&v.default.success),Le=pe.showMsg;return Le&&oe&&ue&&(xe=i.createElement("div",{className:Ae},ue)),Le&&!oe&&""!==se&&(xe=i.createElement("div",{className:Me},se)),i.createElement("div",{ref:ge,className:Ne,style:D,onClick:Se,onBlur:ye,onFocus:Ee},i.createElement("div",{className:Ce,style:B},i.createElement("div",{className:Te,style:U},i.createElement("div",{className:v.default.box}),i.createElement("input",{name:y,type:_,className:v.default.checkbox__input,value:String(S),defaultChecked:ve,disabled:x,onChange:we})),i.createElement("label",{className:ke},k)),xe)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="radiobox";t.isValidValue=function(e,t){var n=!1;if(e.length)for(var r=0;r {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n","import { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE } from './const';\n\nconst getEnglishName = (name: string) => {\n let res = '';\n if (name) {\n res = `${name} `;\n }\n return res;\n};\n\nconst TEXT_BOX_VALIDATION_ZH_CN = {\n empty: (name: string) => `${name}不能为空`,\n invalid: (name: string) => `${name}格式有误`,\n invalidFormat: (name: string) => `${name}不是数字`,\n inBetween: (name: string) => (min: number) => (max: number) => `${name}必须在${min}-${max}之间`,\n lessThan: (name: string) => (min: number) => `${name}不可少于${min}`,\n greaterThan: (name: string) => (max: number) => `${name}不可大于${max}`,\n lengthEqual: (name: string) => (length: number) => `${name}长度必须为${length}`,\n twoInputsNotEqual: () => `两次输入不一致`,\n};\n\nconst TEXT_BOX_VALIDATION_EN_US = {\n empty: (name: string) => `${getEnglishName(name)}cannot be empty`,\n invalid: (name: string) => `${getEnglishName(name)}invalid format`,\n invalidFormat: (name: string) => `${getEnglishName(name)}is not a number`,\n inBetween: (name: string) => (min: number) => (max: number) => `${getEnglishName(name)}must be ${min}-${max}`,\n lessThan: (name: string) => (min: number) => `${getEnglishName(name)}cannot less than ${min}`,\n greaterThan: (name: string) => (max: number) => `${getEnglishName(name)}cannot greater than ${max}`,\n lengthEqual: (name: string) => (length: number) => `${getEnglishName(name)}length must be ${length}`,\n twoInputsNotEqual: () => `two inputs are not equal`,\n};\n\nconst TEXT_AREA_VALIDATION_ZH_CN = {\n empty: (name: string) => `${name}不能为空`,\n invalid: (name: string) => `${name}格式有误`,\n invalidFormat: (name: string) => `${name}不是数字`,\n inBetween: (name: string) => (min: number) => (max: number) => `${name}必须在${min}-${max}之间`,\n lessThan: (name: string) => (min: number) => `${name}不可少于${min}`,\n greaterThan: (name: string) => (max: number) => `${name}不可大于${max}`,\n lengthEqual: (name: string) => (length: number) => `${name}长度必须为${length}`,\n twoInputsNotEqual: () => `两次输入不一致`,\n};\n\nconst TEXT_AREA_VALIDATION_EN_US = {\n empty: (name: string) => `${getEnglishName(name)}cannot be empty`,\n invalid: (name: string) => `${getEnglishName(name)}invalid format`,\n invalidFormat: (name: string) => `${getEnglishName(name)}is not a number`,\n inBetween: (name: string) => (min: number) => (max: number) => `${getEnglishName(name)}must be ${min}-${max}`,\n lessThan: (name: string) => (min: number) => `${getEnglishName(name)}cannot less than ${min}`,\n greaterThan: (name: string) => (max: number) => `${getEnglishName(name)}cannot greater than ${max}`,\n lengthEqual: (name: string) => (length: number) => `${getEnglishName(name)}length must be ${length}`,\n twoInputsNotEqual: () => `two inputs are not equal`,\n};\n\nconst SELECT_VALIDATION_ZH_CN = {\n empty: (name: string) => `请选择一个${name}`,\n};\n\nconst SELECT_VALIDATION_EN_US = {\n empty: (name: string) => `Please select a ${getEnglishName(name)}`,\n};\n\nconst CHECK_BOX_VALIDATION_ZH_CN = {\n unchecked: (name: string) => `${name}必须勾选`,\n};\n\nconst CHECK_BOX_VALIDATION_EN_US = {\n unchecked: (name: string) => `${getEnglishName(name)}must be checked`,\n};\n\nconst RADIO_BOX_VALIDATION_ZH_CN = {\n empty: (name: string) => `必须勾选一个${name}`,\n};\n\nconst RADIO_BOX_VALIDATION_EN_US = {\n empty: (name: string) => `Please choose one ${getEnglishName(name)}`,\n};\n\ninterface Message {\n [key: string]: Key;\n}\n\ninterface Key {\n [key: string]: Func;\n}\n\ninterface Func {\n [key: string]: Function;\n}\n\nlet message: Message = {\n 'zh-CN': {\n textbox: TEXT_BOX_VALIDATION_ZH_CN,\n radiobox: RADIO_BOX_VALIDATION_ZH_CN,\n checkbox: CHECK_BOX_VALIDATION_ZH_CN,\n select: SELECT_VALIDATION_ZH_CN,\n textarea: TEXT_AREA_VALIDATION_ZH_CN,\n },\n 'en-US': {\n textbox: TEXT_BOX_VALIDATION_EN_US,\n radiobox: RADIO_BOX_VALIDATION_EN_US,\n checkbox: CHECK_BOX_VALIDATION_EN_US,\n select: SELECT_VALIDATION_EN_US,\n textarea: TEXT_AREA_VALIDATION_EN_US,\n },\n};\n\n// TODO: find a rewire way to handle non-export function\nexport const getCustomErrorMessage = (o: any, m: any) => {\n if (!o || typeof o !== 'object' || o.constructor !== Object || !Object.keys(o).length) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return false;\n }\n Object.keys(o).map(i => {\n if (!m[i]) {\n m[i] = o[i];\n } else {\n if (Object.keys(o[i]).length) {\n Object.keys(o[i]).map(j => {\n if (Object.keys(o[i][j]).length) {\n Object.keys(o[i][j]).map(k => {\n m[i][j][k] = o[i][j][k];\n });\n }\n });\n }\n }\n });\n return m;\n};\n\ndeclare global {\n interface Window {\n REACT_INPUTS_VALIDATION: any;\n }\n}\n\n// TODO: find a rewire way to handle non-export function\nexport const handleCustomErrorMessage = (message: any, w: Window) => {\n let res;\n if (typeof w !== 'undefined') {\n if (w.REACT_INPUTS_VALIDATION && w.REACT_INPUTS_VALIDATION['customErrorMessage']) {\n res = getCustomErrorMessage(w.REACT_INPUTS_VALIDATION['customErrorMessage'], message);\n }\n }\n if (typeof res === 'undefined' || res === false) {\n return message;\n }\n return res;\n};\n\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.REACT_INPUTS_VALIDATION = window.REACT_INPUTS_VALIDATION || {};\n message = handleCustomErrorMessage(message, window);\n}\n\nexport default message;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ellipsis\":\"react-inputs-validation__ellipsis___3-Api\",\"textbox__wrapper\":\"react-inputs-validation__textbox__wrapper___3tnXv\",\"textbox__container\":\"react-inputs-validation__textbox__container___3KXOM\",\"textbox__input\":\"react-inputs-validation__textbox__input___20hDL\",\"error\":\"react-inputs-validation__error___2aXSp\",\"success\":\"react-inputs-validation__success___3TpwE\",\"disabled\":\"react-inputs-validation__disabled___1-57g\",\"msg\":\"react-inputs-validation__msg___pxv8o\",\"textarea__wrapper\":\"react-inputs-validation__textarea__wrapper___35GhF\",\"textarea__container\":\"react-inputs-validation__textarea__container___2fbGp\",\"textarea__input\":\"react-inputs-validation__textarea__input___1CFm_\",\"radiobox__wrapper\":\"react-inputs-validation__radiobox__wrapper___1zZ30\",\"radiobox__container\":\"react-inputs-validation__radiobox__container___FD4vb\",\"radiobox__input\":\"react-inputs-validation__radiobox__input___2uX2-\",\"radiobox__label\":\"react-inputs-validation__radiobox__label___2tQsB\",\"checked\":\"react-inputs-validation__checked___2O0Ju\",\"radiobox__item\":\"react-inputs-validation__radiobox__item___ejuz1\",\"checkbox__wrapper\":\"react-inputs-validation__checkbox__wrapper___1c1rD\",\"checkbox__input\":\"react-inputs-validation__checkbox__input___1yF4X\",\"checkbox__container\":\"react-inputs-validation__checkbox__container___3I1rX\",\"checkbox__box\":\"react-inputs-validation__checkbox__box___1uj8A\",\"box\":\"react-inputs-validation__box___3E9nu\",\"select__wrapper\":\"react-inputs-validation__select__wrapper___1B4OH\",\"select__input\":\"react-inputs-validation__select__input___3h-P7\",\"select__container\":\"react-inputs-validation__select__container___3jgUR\",\"select__options-item\":\"react-inputs-validation__select__options-item___30yY4\",\"select__options-item-show-cursor\":\"react-inputs-validation__select__options-item-show-cursor___1ZT3b\",\"select__no-mouse\":\"react-inputs-validation__select__no-mouse___2uRg6\",\"select__hover-active\":\"react-inputs-validation__select__hover-active___2z1MQ\",\"active\":\"react-inputs-validation__active___3eZBB\",\"select__options-container-animate\":\"react-inputs-validation__select__options-container-animate___2Rm--\",\"show\":\"react-inputs-validation__show___2NI3u\",\"select__options-container\":\"react-inputs-validation__select__options-container___d54qE\",\"select__dropdown\":\"react-inputs-validation__select__dropdown___11yDr\",\"select__dropdown-icon\":\"react-inputs-validation__select__dropdown-icon___1T5r2\",\"select__dropdown-name\":\"react-inputs-validation__select__dropdown-name___3hghL\",\"select__dropdown-icon-container\":\"react-inputs-validation__select__dropdown-icon-container___2ild-\"};","const empty = (v: string) => (v.replace(/\\s/g, '').length ? false : true);\nconst number = (v: number, min: any, max: any) => {\n if (min === null && max === null){\n return true\n }\n if (!isNumeric(v)) {\n return false;\n }\n return v < min || v > max ? false : true;\n};\n// TODO: find a better type for regex\nconst reg = (reg: any, v: string) => {\n let err = true;\n if (reg.test(v)) {\n err = false;\n }\n return err;\n};\nconst isNumeric = (v: any) => {\n return !isNaN(parseFloat(v)) && isFinite(v);\n};\n\ninterface Validator {\n [key: string]: Function;\n}\n\nconst validator: Validator = {\n reg,\n empty,\n number,\n};\nexport default validator;\n","const camelize = (str: string) => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w|\\s+)/g, (match, index) => {\n if (+match === 0) return '';\n return index === 0 ? match.toLowerCase() : match.toUpperCase();\n });\n};\n\nconst toCamelCase = (str: string) => (capitalLize: boolean = false) => {\n const res = camelize(str);\n return capitalLize ? res.substr(0, 1).toUpperCase() + res.substr(1, res.length) : res;\n};\n\ninterface Utils {\n [key: string]: Function;\n}\n\nconst getRandomId = () => {\n return Math.random()\n .toString(36)\n .slice(-8);\n};\n\nconst getAlphanumeric = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if ((charCode >= 48 && charCode <= 57) || (charCode >= 97 && charCode <= 122)) {\n res += i;\n }\n });\n return res;\n};\n\nconst getAlpha = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if (charCode >= 97 && charCode <= 122) {\n res += i;\n }\n });\n return res;\n};\n\nconst getNumeric = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if (charCode >= 48 && charCode <= 57) {\n res += i;\n }\n });\n return res;\n};\n\nconst utils: Utils = {\n camelize,\n toCamelCase,\n getRandomId,\n getAlphanumeric,\n getAlpha,\n getNumeric,\n};\nexport default utils;\n","import Textbox from './Textbox';\nimport Textarea from './Textarea';\nimport Select from './Select';\nimport Checkbox from './Checkbox';\nimport Radiobox from './Radiobox';\n\nif (typeof window !== 'undefined') {\n (window).Textbox = Textbox;\n (window).Textarea = Textarea;\n (window).Radiobox = Radiobox;\n (window).Checkbox = Checkbox;\n (window).Select = Select;\n}\n\nexport { Textbox, Textarea, Select, Checkbox, Radiobox };\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport validator from './validator';\nimport utils from './utils';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'textbox';\nconst VALIDATE_OPTION_TYPE_LIST = ['string', 'number', 'alphanumeric', 'alpha'];\nconst VALIDATE_NUMBER_TYPE_LIST = ['decimal', 'int'];\nconst DEFAULT_MAX_LENGTH = 524288; // Default value is 524288\nconst DEFAULT_AUTO_COMPLETE = 'on'; // Default value is on\ninterface DefaultValidationOption {\n locale?: string;\n reg?: string;\n min?: number;\n max?: number;\n type?: string;\n numberType?: string;\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n length?: number;\n regMsg?: string;\n compare?: string;\n required?: boolean;\n msgOnError?: string;\n msgOnSuccess?: string;\n customFunc?: Function | undefined;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { reg, min, max, type, numberType, name, check, length, regMsg, compare, required, showMsg, locale, msgOnError, msgOnSuccess, customFunc } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n reg = typeof reg !== 'undefined' ? reg : '';\n min = typeof min !== 'undefined' ? min : 0;\n max = typeof max !== 'undefined' ? max : 0;\n type = typeof type !== 'undefined' ? type : 'string';\n numberType = typeof numberType !== 'undefined' ? numberType : 'string';\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n length = typeof length !== 'undefined' ? length : 0;\n regMsg = typeof regMsg !== 'undefined' ? regMsg : '';\n compare = typeof compare !== 'undefined' ? compare : '';\n required = typeof required !== 'undefined' ? required : true;\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n customFunc = typeof customFunc !== 'undefined' ? customFunc : undefined;\n return {\n reg,\n min,\n max,\n type,\n numberType,\n name,\n check,\n length,\n regMsg,\n locale,\n compare,\n required,\n showMsg,\n msgOnError,\n msgOnSuccess,\n customFunc,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n type?: string;\n value?: string;\n disabled?: boolean;\n validate?: boolean;\n autoComplete?: string;\n maxLength?: string | number;\n placeholder?: string;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n validationOption?: object;\n asyncMsgObj?: object;\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n validationCallback?: (res: boolean) => void;\n}\nconst autoFormatNumber = (v: number | string, numberType: string) => {\n const DOT = '.';\n let res = '';\n let hasDot = false;\n String(v)\n .split('')\n .filter(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if ((charCode >= 48 && charCode <= 57) || (charCode === 46 && !hasDot)) {\n if (charCode === 46) {\n if (numberType === VALIDATE_NUMBER_TYPE_LIST[1]) {\n return;\n }\n hasDot = true;\n }\n res += i;\n }\n });\n if (numberType === VALIDATE_NUMBER_TYPE_LIST[0]) {\n if (res.length && res[0] === DOT) {\n res = `0${res}`;\n }\n }\n return res;\n};\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n type = 'text',\n value = '',\n disabled = false,\n validate = false,\n autoComplete = DEFAULT_AUTO_COMPLETE,\n maxLength = DEFAULT_MAX_LENGTH,\n placeholder = '',\n classNameInput = '',\n classNameWrapper = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = (v: string, e: React.ChangeEvent) => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n onKeyUp = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n if (onKeyUp) {\n const { keyCode } = e;\n const keyCodeTab = 9;\n if (keyCode !== keyCodeTab) {\n check();\n }\n onKeyUp(e);\n }\n },\n [internalValue],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n let v = $el.current.value;\n if ((typeof maxLength === 'string' && maxLength !== '') || (typeof maxLength === 'number' && maxLength !== 0)) {\n if (v.length > Number(maxLength)) {\n return;\n }\n }\n const { type, numberType } = option;\n if (type === VALIDATE_OPTION_TYPE_LIST[1]) {\n v = String(autoFormatNumber(v, VALIDATE_NUMBER_TYPE_LIST.indexOf(numberType) >= 0 ? numberType : VALIDATE_NUMBER_TYPE_LIST[0]));\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[2]) {\n v = utils.getAlphanumeric(v);\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[3]) {\n v = utils.getAlpha(v);\n }\n setInternalValue(v);\n onChange && onChange(v, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err],\n );\n const check = useCallback(\n async () => {\n const { reg, min, max, type, name, check, length, regMsg, locale, compare, required, msgOnSuccess, customFunc } = option;\n if (!check) {\n return;\n }\n if (type) {\n if (VALIDATE_OPTION_TYPE_LIST.indexOf(type) !== -1) {\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (required) {\n if (validator.empty(internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (String(internalValue) !== '') {\n if (reg) {\n if (validator['reg'](reg, internalValue)) {\n handleCheckEnd(true, regMsg !== '' ? regMsg : msg.invalid(nameText));\n return;\n }\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[0]) {\n if (min || max) {\n if (min && max) {\n if (String(internalValue).length < min || String(internalValue).length > max) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (String(internalValue).length < min) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (String(internalValue).length > max) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[1]) {\n if (!validator[type](internalValue, null, null)) {\n handleCheckEnd(true, msg.invalid(nameText));\n return;\n }\n if (min || max) {\n if (min && max) {\n if (!validator[type](internalValue, min, max)) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (!validator[type](internalValue, min)) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (!validator[type](internalValue, 0, max)) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (compare && compare !== '') {\n if (internalValue !== compare) {\n handleCheckEnd(true, msg.twoInputsNotEqual());\n return;\n }\n }\n }\n if (customFunc && typeof customFunc === 'function') {\n const customFuncResult = await customFunc(internalValue);\n if (typeof customFuncResult === 'object') {\n if (typeof customFuncResult.error === 'boolean' && typeof customFuncResult.message === 'string') {\n if (customFuncResult.error === false && customFuncResult.showOnSuccess === true) {\n setSuccessMsg(customFuncResult.message);\n }\n handleCheckEnd(customFuncResult.error, customFuncResult.message, true);\n }\n return;\n }\n if (customFuncResult !== true) {\n handleCheckEnd(true, customFuncResult, true);\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n } else {\n console.error(`The valid ${utils.toCamelCase(TYPE)(true)} \"type\" options in validationOption are [${VALIDATE_OPTION_TYPE_LIST.map(i => i)}]`);\n }\n } else {\n console.error('Please provide \"type\" in validationOption');\n }\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string, fromCustomFunc: boolean = false) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError && !fromCustomFunc) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (prevInternalValue && prevInternalValue !== internalValue) {\n if (option.customFunc) {\n check();\n }\n }\n },\n [internalValue],\n );\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n $el.current.removeAttribute('value');\n });\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","/** @license React v16.8.6\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var k=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.concurrent_mode\"):60111,y=n?Symbol.for(\"react.forward_ref\"):60112,z=n?Symbol.for(\"react.suspense\"):60113,aa=n?Symbol.for(\"react.memo\"):\n60115,ba=n?Symbol.for(\"react.lazy\"):60116,A=\"function\"===typeof Symbol&&Symbol.iterator;function ca(a,b,d,c,e,g,h,f){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[d,c,e,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction B(a){for(var b=arguments.length-1,d=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=0;cP.length&&P.push(a)}\nfunction S(a,b,d,c){var e=typeof a;if(\"undefined\"===e||\"boolean\"===e)a=null;var g=!1;if(null===a)g=!0;else switch(e){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return d(c,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;h {\n let { reg, min, max, type, name, check, length, regMsg, required, showMsg, locale, msgOnError, msgOnSuccess, customFunc } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n reg = typeof reg !== 'undefined' ? reg : '';\n min = typeof min !== 'undefined' ? min : 0;\n max = typeof max !== 'undefined' ? max : 0;\n type = typeof type !== 'undefined' ? type : 'string';\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n length = typeof length !== 'undefined' ? length : 0;\n regMsg = typeof regMsg !== 'undefined' ? regMsg : '';\n required = typeof required !== 'undefined' ? required : true;\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n customFunc = typeof customFunc !== 'undefined' ? customFunc : undefined;\n return {\n reg,\n min,\n max,\n type,\n name,\n check,\n length,\n regMsg,\n locale,\n required,\n showMsg,\n msgOnError,\n msgOnSuccess,\n customFunc,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n type?: string;\n value?: string;\n disabled?: boolean;\n validate?: boolean;\n maxLength?: string | number;\n cols?: string | number;\n rows?: string | number;\n placeholder?: string;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n validationOption?: object;\n asyncMsgObj?: object;\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n validationCallback?: (res: boolean) => void;\n}\n\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n cols = DEFAULT_ROWS,\n rows = DEFAULT_COLS,\n disabled = false,\n validate = false,\n maxLength = DEFAULT_MAX_LENGTH,\n placeholder = '',\n classNameInput = '',\n classNameWrapper = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n onKeyUp = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n if (onKeyUp) {\n const { keyCode } = e;\n const keyCodeTab = 9;\n if (keyCode !== keyCodeTab) {\n check();\n }\n onKeyUp(e);\n }\n },\n [internalValue],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n const v = $el.current.value;\n if ((typeof maxLength === 'string' && maxLength !== '') || (typeof maxLength === 'number' && maxLength !== 0)) {\n if (v.length > Number(maxLength)) {\n return;\n }\n }\n setInternalValue(v);\n onChange && onChange(v, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err],\n );\n const check = useCallback(\n async () => {\n const { reg, min, max, type, name, check, length, regMsg, locale, required, msgOnSuccess, customFunc } = option;\n if (!check) {\n return;\n }\n if (type) {\n if (VALIDATE_OPTION_TYPE_LIST.indexOf(type) !== -1) {\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (required) {\n if (validator.empty(internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (String(internalValue) !== '') {\n if (reg) {\n if (validator['reg'](reg, internalValue)) {\n handleCheckEnd(true, regMsg !== '' ? regMsg : msg.invalid(nameText));\n return;\n }\n }\n if (min || max) {\n if (min && max) {\n if (String(internalValue).length < min || String(internalValue).length > max) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (String(internalValue).length < min) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (String(internalValue).length > max) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (customFunc && typeof customFunc === 'function') {\n const customFuncResult = await customFunc(internalValue);\n if (typeof customFuncResult === 'object') {\n if (typeof customFuncResult.error === 'boolean' && typeof customFuncResult.message === 'string') {\n if (customFuncResult.error === false && customFuncResult.showOnSuccess === true) {\n setSuccessMsg(customFuncResult.message);\n }\n handleCheckEnd(customFuncResult.error, customFuncResult.message, true);\n }\n return;\n }\n if (customFuncResult !== true) {\n handleCheckEnd(true, customFuncResult, true);\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n } else {\n console.error(`The valid ${utils.toCamelCase(TYPE)(true)} \"type\" options in validationOption are [${VALIDATE_OPTION_TYPE_LIST.map(i => i)}]`);\n }\n } else {\n console.error('Please provide \"type\" in validationOption');\n }\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string, fromCustomFunc: boolean = false) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError && !fromCustomFunc) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (prevInternalValue && prevInternalValue !== internalValue) {\n if (option.customFunc) {\n check();\n }\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, CONTAINER_CLASS_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'select';\n/* istanbul ignore next */\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function(searchString, position) {\n const p = position || 0;\n return this.indexOf(searchString, p) === p;\n };\n}\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\nexport const isValidValue = (list: OptionListItem[], value: any) => {\n let res = false;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = true;\n break;\n }\n }\n }\n return res;\n};\nexport const getItem = (list: OptionListItem[], value: any) => {\n let res = null;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = list[i];\n break;\n }\n }\n }\n return res;\n};\nexport const getIndex = (list: OptionListItem[], value: string) => {\n let key = -1;\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n key = i;\n break;\n }\n }\n return key;\n};\ninterface OptionListItem {\n id: string;\n name: string;\n}\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | number;\n disabled?: boolean;\n validate?: boolean;\n optionList: OptionListItem[];\n onChange: (res: string, e: React.MouseEvent) => void;\n onBlur?: (e: React.FocusEvent | Event) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n selectHtml?: React.ReactNode;\n selectOptionListItemHtml?: React.ReactNode;\n classNameWrapper?: string;\n classNameContainer?: string;\n classNameSelect?: string;\n classNameOptionListContainer?: string;\n classNameDropdownIconOptionListItem?: string;\n classNameOptionListItem?: string;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleSelect?: object;\n customStyleOptionListContainer?: object;\n customStyleDropdownIcon?: object;\n customStyleOptionListItem?: object;\n validationCallback?: (res: boolean) => void;\n}\ninterface Node {\n [key: string]: any;\n}\nlet globalVariableIsFocusing: boolean = false;\nlet globalVariableIsCorrected: boolean = false;\nlet globalVariableCurrentFocus: any | null = null;\nlet globalVariableTypingTimeout: any | null = null;\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n disabled = false,\n validate = false,\n optionList = [],\n classNameWrapper = '',\n classNameContainer = '',\n classNameSelect = '',\n classNameOptionListItem = '',\n classNameOptionListContainer = '',\n classNameDropdownIconOptionListItem = '',\n customStyleWrapper = {},\n customStyleContainer = {},\n customStyleSelect = {},\n customStyleOptionListItem = {},\n customStyleOptionListContainer = {},\n customStyleDropdownIcon = {},\n validationOption = {},\n asyncMsgObj = {},\n selectHtml = null,\n selectOptionListItemHtml = null,\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const [show, setShow] = useState(false);\n const [isTyping, setIsTyping] = useState(false);\n const initKeycodeList: number[] = [];\n const [keycodeList, setKeycodeList] = useState(initKeycodeList);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $wrapper = useRef(null);\n const $itemsWrapper = useRef(null);\n const $elWrapper: { [key: string]: any } | null = $wrapper;\n const $elItemsWrapper: { [key: string]: any } | null = $itemsWrapper;\n const $itemsRef: { [key: string]: any } = [];\n if (optionList.length) {\n for (let i = 0; i < optionList.length; i += 1) {\n $itemsRef.push(useRef(null));\n }\n }\n const handleOnBlur = useCallback(\n (e: React.FocusEvent | Event) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnChange = useCallback((v: string, e: React.MouseEvent) => {\n if (disabled || $elWrapper === null) {\n return;\n }\n onChange && onChange(String(v), e);\n }, []);\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!isValidValue(optionList, internalValue) || internalValue === '' || internalValue === 'null' || internalValue === 'undefined') {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n useEffect(() => {\n if ($elWrapper === null) {\n return;\n }\n window.addEventListener('mousedown', pageClick);\n window.addEventListener('touchstart', pageClick);\n if (id) {\n $elWrapper.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $elWrapper.current.setAttribute('tabindex', String(tabIndex));\n }\n return () => {\n window.removeEventListener('mousedown', pageClick);\n window.removeEventListener('touchstart', pageClick);\n $elWrapper.current.removeEventListener('keydown', onKeyDown);\n };\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const pageClick = useCallback((e: Event) => {\n if ($elWrapper === null || $elWrapper.current.contains(e.target)) {\n return;\n }\n if (globalVariableIsFocusing) {\n handleOnBlur(e);\n globalVariableIsFocusing = false;\n }\n setShow(false);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const resetCurrentFocus = useCallback(\n () => {\n globalVariableCurrentFocus = getIndex(optionList, internalValue);\n scroll();\n },\n [internalValue],\n );\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const setTimeoutTyping = useCallback(() => {\n if (globalVariableTypingTimeout) {\n clearTimeout(globalVariableTypingTimeout);\n }\n globalVariableTypingTimeout = setTimeout(() => {\n setKeycodeList([]);\n }, 250);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const scroll = useCallback((direction: undefined | string = undefined) => {\n if ($elItemsWrapper === null) {\n return;\n }\n const containerHeight = $elItemsWrapper.current.offsetHeight;\n const containerScrollTop = $elItemsWrapper.current.scrollTop;\n if (!globalVariableCurrentFocus || !$itemsRef[globalVariableCurrentFocus]) {\n return;\n }\n const $elOptionItem: Node | null = $itemsRef[globalVariableCurrentFocus];\n if ($elOptionItem === null) {\n return;\n }\n const itemHeight = $elOptionItem.current.offsetHeight;\n if (direction) {\n if (direction === 'down') {\n const bound = containerScrollTop + containerHeight;\n const heightItems = globalVariableCurrentFocus * itemHeight;\n const heightContainer = bound - itemHeight;\n if (heightItems >= heightContainer) {\n const offset = Math.abs(heightItems - heightContainer - itemHeight);\n if (offset >= 0 && !globalVariableIsCorrected) {\n $elItemsWrapper.current.scrollTop = containerScrollTop + itemHeight - offset;\n globalVariableIsCorrected = true;\n } else {\n $elItemsWrapper.current.scrollTop = containerScrollTop + itemHeight;\n }\n }\n }\n if (direction === 'up') {\n globalVariableIsCorrected = false;\n if (globalVariableCurrentFocus * itemHeight <= containerScrollTop) {\n $elItemsWrapper.current.scrollTop = globalVariableCurrentFocus * itemHeight;\n }\n }\n } else {\n globalVariableIsCorrected = false;\n $elItemsWrapper.current.scrollTop = globalVariableCurrentFocus * itemHeight;\n }\n }, []);\n const handleOnItemClick = useCallback((v: string, e: React.MouseEvent) => {\n handleOnChange(v, e);\n }, []);\n const handleOnItemMouseOver = useCallback((index: number) => {\n globalVariableCurrentFocus = index;\n addActive();\n }, []);\n const handleOnItemMouseMove = useCallback(() => {\n setIsTyping(false);\n }, []);\n const handleOnItemMouseOut = useCallback(() => {\n removeActive();\n }, []);\n const addActive = useCallback(() => {\n if (!$itemsRef) return;\n removeActive();\n if (globalVariableCurrentFocus === null) return;\n if (globalVariableCurrentFocus >= $itemsRef.length) globalVariableCurrentFocus = 0;\n if (globalVariableCurrentFocus < 0) globalVariableCurrentFocus = $itemsRef.length - 1;\n const $node: Node | null = $itemsRef[globalVariableCurrentFocus];\n /* istanbul ignore next because it won't happen */\n if (!$node) {\n return;\n }\n $itemsRef[globalVariableCurrentFocus].current.className += ` ${reactInputsValidationCss[`${TYPE}__hover-active`]}`;\n }, []);\n const removeActive = useCallback(() => {\n for (let i = 0; i < $itemsRef.length; i += 1) {\n const $node: Node | null = $itemsRef[i];\n if (!$node) {\n break;\n }\n if ($node && $node.current) {\n $node.current.className = $node.current.className.replace(reactInputsValidationCss[`${TYPE}__hover-active`], '');\n }\n }\n }, []);\n\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n setIsTyping(true);\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (!show) {\n return;\n }\n globalVariableCurrentFocus = globalVariableCurrentFocus === null ? getIndex(optionList, String(value)) : globalVariableCurrentFocus;\n let direction = undefined;\n const { keyCode } = e;\n const keyCodeEsc = 27;\n const keyCodeDown = 40;\n const keyCodeUp = 38;\n const keyCodeEnter = 13;\n const selectKeyList = [keyCodeEsc, keyCodeDown, keyCodeUp, keyCodeEnter];\n if (selectKeyList.indexOf(keyCode) !== -1) {\n if (keyCode === keyCodeEsc) {\n setShow(false);\n resetCurrentFocus();\n return;\n }\n if (keyCode === keyCodeDown) {\n direction = 'down';\n globalVariableCurrentFocus += 1;\n if (globalVariableCurrentFocus > optionList.length - 1) {\n globalVariableCurrentFocus = optionList.length - 1;\n }\n addActive();\n } else if (keyCode === keyCodeUp) {\n direction = 'up';\n globalVariableCurrentFocus -= 1;\n if (globalVariableCurrentFocus < 0) {\n globalVariableCurrentFocus = 0;\n }\n addActive();\n } else if (keyCode === keyCodeEnter) {\n if (globalVariableCurrentFocus > -1) {\n if ($itemsRef[globalVariableCurrentFocus]) {\n $itemsRef[globalVariableCurrentFocus].current.click();\n } else {\n return;\n }\n }\n }\n } else {\n setTimeoutTyping();\n const newkeyCodeList = [...keycodeList, keyCode];\n const str = String.fromCharCode(...newkeyCodeList).toLowerCase();\n let index = -1;\n optionList.filter((i, k) => {\n const { name } = i;\n if (name.toLowerCase().startsWith(str)) {\n if (index === -1) {\n index = k;\n }\n }\n });\n if (index !== -1) {\n globalVariableCurrentFocus = index;\n addActive();\n }\n setKeycodeList(newkeyCodeList);\n }\n scroll(direction);\n return globalVariableCurrentFocus;\n },\n [show, value, keycodeList],\n );\n useEffect(\n () => {\n if (show && $elWrapper) {\n $elWrapper.current.addEventListener('keydown', onKeyDown);\n }\n return () => {\n $elWrapper.current.removeEventListener('keydown', onKeyDown);\n };\n },\n [show, value, keycodeList],\n );\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n if (!(!isValidValue(optionList, internalValue) || internalValue === '' || internalValue === 'null' || internalValue === 'undefined')) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n check();\n }\n },\n [prevInternalValue, internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${CONTAINER_CLASS_IDENTITIFIER} ${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${show &&\n reactInputsValidationCss['show']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled &&\n reactInputsValidationCss['disabled']}`;\n const selectClass = `${classNameSelect} ${reactInputsValidationCss['ellipsis']} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const selectOptionListContainerClass = `${classNameOptionListContainer} ${reactInputsValidationCss[`${TYPE}__options-container`]} ${err && reactInputsValidationCss['error']} ${show &&\n reactInputsValidationCss['show']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const selectOptionListItemClass = `${!isTyping && reactInputsValidationCss[`${TYPE}__options-item-show-cursor`]} ${classNameOptionListItem} ${\n reactInputsValidationCss[`${TYPE}__options-item`]\n } ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const dropdownIconClass = `${classNameDropdownIconOptionListItem} ${reactInputsValidationCss[`${TYPE}__dropdown-icon`]}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n let optionListHtml;\n const item = getItem(optionList, String(value));\n if (optionList.length) {\n if (selectOptionListItemHtml) {\n optionListHtml = selectOptionListItemHtml;\n } else {\n optionListHtml = optionList.map((i, k) => (\n \n ));\n }\n }\n const selectorHtml = selectHtml ? (\n selectHtml\n ) : (\n
\n
{item ? item.name : ''}
\n
\n
\n );\n return (\n {\n handleOnClick(e);\n !disabled ? setShow(!show) : ``;\n }}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n >\n
\n {}} />\n
\n {selectorHtml}\n
\n
\n {optionListHtml}\n
\n
\n {msgHtml}\n
\n );\n};\ninterface OptionProps {\n index?: number;\n id?: string;\n refItem?: React.RefObject;\n className?: string;\n item?: OptionListItem;\n customStyleOptionListItem?: object;\n onClick?: (res: string, e: React.MouseEvent) => void;\n onMouseOver?: (res: number) => void;\n onMouseMove?: () => void;\n onMouseOut?: () => void;\n}\nexport const Option: React.FC = memo(\n ({\n index = -1,\n refItem = null,\n id = '',\n className = '',\n item = { id: '', name: '' },\n customStyleOptionListItem = {},\n onClick = () => {},\n onMouseOver = () => {},\n onMouseMove = () => {},\n onMouseOut = () => {},\n }) => {\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n onClick(item.id, e);\n }, []);\n const handleOnMouseOver = useCallback(() => {\n onMouseOver(index);\n }, []);\n const handleOnMouseMove = useCallback(() => {\n onMouseMove();\n }, []);\n const handleOnMouseOut = useCallback(() => {\n onMouseOut();\n }, []);\n return (\n \n {item.name}\n \n );\n },\n);\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'checkbox';\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | boolean;\n checked?: boolean;\n disabled?: boolean;\n labelHtml?: React.ReactNode;\n validate?: boolean;\n onChange: (res: boolean, e: React.ChangeEvent | React.MouseEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameInputBox?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleInputBox?: object;\n validationCallback?: (res: boolean) => void;\n}\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n checked = false,\n disabled = false,\n validate = false,\n labelHtml = null,\n classNameInput = '',\n classNameWrapper = '',\n classNameInputBox = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleInputBox = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalChecked, setInternalChecked] = useState(checked);\n const prevInternalChecked = usePrevious(internalChecked);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalChecked],\n );\n const handleOnFocus = useCallback(\n (e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n },\n [internalChecked],\n );\n const handleOnClick = useCallback(\n (e: React.MouseEvent) => {\n handleOnChange(e);\n if (onClick) {\n onClick(e);\n }\n },\n [err, internalChecked],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent | React.MouseEvent) => {\n if (disabled || $el === null) {\n return;\n }\n setInternalChecked(!internalChecked);\n onChange && onChange(!internalChecked, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err, internalChecked],\n );\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!internalChecked) {\n handleCheckEnd(true, msg.unchecked(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalChecked],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate, internalChecked],\n );\n useEffect(\n () => {\n setInternalChecked(checked);\n },\n [checked],\n );\n useEffect(\n () => {\n if (typeof prevInternalChecked !== 'undefined' && prevInternalChecked !== internalChecked) {\n check();\n }\n },\n [prevInternalChecked, internalChecked],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${internalChecked && reactInputsValidationCss['checked']} ${err &&\n reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${internalChecked && reactInputsValidationCss['checked']} ${err &&\n reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const boxClass = `${classNameInputBox} ${reactInputsValidationCss[`${TYPE}__box`]} ${err && reactInputsValidationCss['error']} ${internalChecked &&\n reactInputsValidationCss['checked']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const labelClass = `${internalChecked && reactInputsValidationCss['checked']} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n
\n
\n \n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, OPTION_LIST_ITEM_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'radiobox';\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\nexport const isValidValue = (list: OptionListItem[], value: any) => {\n let res = false;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = true;\n break;\n }\n }\n }\n return res;\n};\ninterface OptionListItem {\n id: string;\n name: string;\n}\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | number;\n disabled?: boolean;\n validate?: boolean;\n optionList?: OptionListItem[];\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n classNameWrapper?: string;\n classNameInput?: string;\n classNameContainer?: string;\n classNameOptionListItem?: string;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleInput?: object;\n customStyleOptionListItem?: object;\n validationCallback?: (res: boolean) => void;\n}\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n disabled = false,\n validate = false,\n optionList = [],\n classNameWrapper = '',\n classNameInput = '',\n classNameContainer = '',\n classNameOptionListItem = '',\n customStyleWrapper = {},\n customStyleContainer = {},\n customStyleInput = {},\n customStyleOptionListItem = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnChange = useCallback((val: string, e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n setInternalValue(val);\n onChange && onChange(val, e);\n }, []);\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!isValidValue(optionList, internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n if (internalValue && isValidValue(optionList, internalValue)) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n check();\n }\n },\n [prevInternalValue, internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__wrapper`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__container`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__input`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const labelClass = `${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${reactInputsValidationCss[`${TYPE}__label`]} ${disabled &&\n reactInputsValidationCss['disabled']}`;\n const optionListItemClass = `${OPTION_LIST_ITEM_IDENTITIFIER} ${classNameOptionListItem} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${reactInputsValidationCss[`${TYPE}__item`]} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n let optionHtml;\n if (optionList.length) {\n optionHtml = optionList.map((i, k) => {\n const checked = String(i.id) === String(internalValue) ? true : false;\n return (\n \n );\n });\n }\n return (\n
\n
\n {optionHtml}\n
\n {msgHtml}\n
\n );\n};\ninterface OptionProps {\n checked?: boolean;\n id?: string;\n name?: string;\n optionListItemClass?: string;\n labelClass?: string;\n inputClass?: string;\n value?: string | number;\n disabled?: boolean;\n item?: OptionListItem;\n customStyleOptionListItem?: object;\n customStyleInput?: object;\n onChange?: (res: string, e: React.ChangeEvent) => void;\n}\nexport const Option: React.FC = memo(\n ({\n checked = false,\n id = '',\n name = '',\n optionListItemClass = '',\n labelClass = '',\n inputClass = '',\n value = '',\n disabled = false,\n item = { id: '', name: '' },\n customStyleOptionListItem = {},\n customStyleInput = {},\n onChange = () => {},\n }) => {\n const handleOnChange = useCallback(e => {\n onChange(item.id, e);\n }, []);\n return (\n
\n \n \n
\n );\n },\n);\nexport default memo(component);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://react-inputs-validation/webpack/universalModuleDefinition","webpack://react-inputs-validation/webpack/bootstrap","webpack://react-inputs-validation/./node_modules/_react@16.8.6@react/index.js","webpack://react-inputs-validation/./src/js/Inputs/const.ts","webpack://react-inputs-validation/./src/js/Inputs/message.ts","webpack://react-inputs-validation/./src/js/Inputs/react-inputs-validation.css?df4a","webpack://react-inputs-validation/./src/js/Inputs/validator.ts","webpack://react-inputs-validation/./src/js/Inputs/utils.ts","webpack://react-inputs-validation/./src/js/Inputs/index.umd.ts","webpack://react-inputs-validation/./src/js/Inputs/Textbox.tsx","webpack://react-inputs-validation/./node_modules/_react@16.8.6@react/cjs/react.production.min.js","webpack://react-inputs-validation/./node_modules/_object-assign@4.1.1@object-assign/index.js","webpack://react-inputs-validation/./src/js/Inputs/Textarea.tsx","webpack://react-inputs-validation/./src/js/Inputs/Select.tsx","webpack://react-inputs-validation/./src/js/Inputs/Checkbox.tsx","webpack://react-inputs-validation/./src/js/Inputs/Radiobox.tsx"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","React","__importStar","useEffect","useRef","LOCALE_OPTION_LIST","REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE","DEFAULT_LOCALE","WRAPPER_CLASS_IDENTITIFIER","CONTAINER_CLASS_IDENTITIFIER","OPTION_LIST_ITEM_IDENTITIFIER","MSG_CLASS_IDENTITIFIER","usePrevious","ref","current","const_1","getEnglishName","res","message","zh-CN","textbox","empty","invalid","invalidFormat","inBetween","min","max","lessThan","greaterThan","lengthEqual","length","twoInputsNotEqual","radiobox","checkbox","unchecked","select","textarea","en-US","getCustomErrorMessage","constructor","keys","map","j","k","console","error","handleCustomErrorMessage","w","REACT_INPUTS_VALIDATION","default","ellipsis","textbox__wrapper","textbox__container","textbox__input","success","disabled","msg","textarea__wrapper","textarea__container","textarea__input","radiobox__wrapper","radiobox__container","radiobox__input","radiobox__label","checked","radiobox__item","checkbox__wrapper","checkbox__input","checkbox__container","checkbox__box","box","select__wrapper","select__input","select__container","select__options-item","select__options-item-show-cursor","select__no-mouse","select__hover-active","active","select__options-container-animate","show","select__options-container","select__dropdown","select__dropdown-icon","select__dropdown-name","select__dropdown-icon-container","isNumeric","v","isNaN","parseFloat","isFinite","validator","reg","err","test","replace","number","camelize","str","match","index","toLowerCase","toUpperCase","utils","toCamelCase","capitalLize","substr","getRandomId","Math","random","toString","slice","getAlphanumeric","String","split","forEach","charCode","charCodeAt","getAlpha","getNumeric","Textbox_1","__importDefault","Textbox","Textarea_1","Textarea","Select_1","Select","Checkbox_1","Checkbox","Radiobox_1","Radiobox","_this","this","useState","useCallback","memo","message_1","validator_1","utils_1","react_inputs_validation_css_1","TYPE","VALIDATE_OPTION_TYPE_LIST","VALIDATE_NUMBER_TYPE_LIST","_a","obj","showOnError","showOnSuccess","_b","tabIndex","_c","id","_d","_e","type","_f","_g","_h","validate","_j","autoComplete","_k","maxLength","_l","placeholder","_m","classNameInput","_o","classNameWrapper","_p","classNameContainer","_q","customStyleInput","_r","customStyleWrapper","_s","customStyleContainer","_t","validationOption","_u","asyncMsgObj","_v","onChange","e","_w","onBlur","_x","onFocus","_y","onClick","_z","onKeyUp","_0","validationCallback","_1","setErr","_2","setMsg","_3","successMsg","setSuccessMsg","_4","internalValue","setInternalValue","prevInternalValue","option","numberType","check","regMsg","compare","required","showMsg","locale","msgOnError","msgOnSuccess","customFunc","undefined","getDefaultValidationOption","asyncObj","$input","$el","handleOnBlur","handleOnFocus","handleOnClick","handleOnKeyUp","keyCode","handleOnChange","Number","hasDot","filter","autoFormatNumber","indexOf","__awaiter","msg_1","nameText","handleCheckEnd","customFuncResult","sent","fromCustomFunc","setAttribute","msgHtml","wrapperClass","containerClass","inputClass","errMsgClass","successMsgClass","createElement","className","style","for","q","u","x","y","z","aa","ba","A","iterator","B","a","b","arguments","encodeURIComponent","g","h","f","Error","framesToPop","ca","C","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","D","E","props","context","refs","updater","F","G","isReactComponent","setState","forceUpdate","H","isPureReactComponent","I","J","K","L","__self","__source","M","children","Array","defaultProps","$$typeof","_owner","N","O","P","Q","pop","result","keyPrefix","func","count","R","push","U","S","T","isArray","next","done","join","=",":","escape","ea","fa","V","da","W","X","Children","toArray","only","createRef","Component","PureComponent","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","forwardRef","render","lazy","_ctor","_status","_result","useContext","useImperativeHandle","useDebugValue","useLayoutEffect","useMemo","useReducer","Fragment","StrictMode","Suspense","cloneElement","createFactory","isValidElement","version","unstable_ConcurrentMode","unstable_Profiler","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentOwner","assign","Y","Z","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","target","source","from","symbols","to","val","TypeError","toObject","cols","rows","startsWith","searchString","position","isValidValue","list","getItem","getIndex","globalVariableIsFocusing","globalVariableIsCorrected","globalVariableCurrentFocus","globalVariableTypingTimeout","Option","refItem","item","customStyleOptionListItem","onMouseOver","onMouseMove","onMouseOut","handleOnMouseOver","handleOnMouseMove","handleOnMouseOut","optionList","classNameSelect","classNameOptionListItem","classNameOptionListContainer","classNameDropdownIconOptionListItem","customStyleSelect","customStyleOptionListContainer","customStyleDropdownIcon","selectHtml","selectOptionListItemHtml","_5","_6","_7","_8","_9","setShow","_10","isTyping","setIsTyping","_11","keycodeList","setKeycodeList","$wrapper","$itemsWrapper","$elWrapper","$elItemsWrapper","$itemsRef","addEventListener","pageClick","removeEventListener","onKeyDown","contains","resetCurrentFocus","scroll","setTimeoutTyping","clearTimeout","setTimeout","direction","containerHeight","offsetHeight","containerScrollTop","scrollTop","$elOptionItem","itemHeight","heightItems","heightContainer","offset","abs","handleOnItemClick","handleOnItemMouseOver","addActive","handleOnItemMouseMove","handleOnItemMouseOut","removeActive","$node","preventDefault","click","newkeyCodeList","concat","str_1","apply","index_1","optionListHtml","selectClass","selectOptionListContainerClass","selectOptionListItemClass","dropdownIconClass","selectorHtml","labelHtml","classNameInputBox","customStyleInputBox","internalChecked","setInternalChecked","prevInternalChecked","boxClass","labelClass","defaultChecked","optionListItemClass","htmlFor","optionHtml"],"mappings":"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","file":"react-inputs-validation.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"react-inputs-validation\"] = factory();\n\telse\n\t\troot[\"react-inputs-validation\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import * as React from 'react';\nconst { useEffect, useRef } = React;\nexport const LOCALE_OPTION_LIST = ['en-US', 'zh-CN'];\nexport const REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE =\n \"Invalid window.REACT_INPUTS_VALIDATION['customErrorMessage']. EXAMPLE: window.REACT_INPUTS_VALIDATION={customErrorMessage:{'en-US':{textbox:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}},radiobox:{empty:function empty(name){return'Please choose one '+getEnglishName(name)}},checkbox:{unchecked:function unchecked(name){return getEnglishName(name)+'must be checked'}},select:{empty:function empty(name){return'Please select a '+getEnglishName(name)}},textarea:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}}}}};\";\nexport const DEFAULT_LOCALE = 'en-US';\nexport const WRAPPER_CLASS_IDENTITIFIER = 'react-inputs-validation__wrapper_identifier';\nexport const CONTAINER_CLASS_IDENTITIFIER = 'react-inputs-validation__container_identifier';\nexport const OPTION_LIST_ITEM_IDENTITIFIER = 'react-inputs-validation__option-list-item_identifier';\nexport const MSG_CLASS_IDENTITIFIER = 'react-inputs-validation__msg_identifier';\nexport const usePrevious = (value: any) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n","import { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE } from './const';\n\nconst getEnglishName = (name: string) => {\n let res = '';\n if (name) {\n res = `${name} `;\n }\n return res;\n};\n\nconst TEXT_BOX_VALIDATION_ZH_CN = {\n empty: (name: string) => `${name}不能为空`,\n invalid: (name: string) => `${name}格式有误`,\n invalidFormat: (name: string) => `${name}不是数字`,\n inBetween: (name: string) => (min: number) => (max: number) => `${name}必须在${min}-${max}之间`,\n lessThan: (name: string) => (min: number) => `${name}不可少于${min}`,\n greaterThan: (name: string) => (max: number) => `${name}不可大于${max}`,\n lengthEqual: (name: string) => (length: number) => `${name}长度必须为${length}`,\n twoInputsNotEqual: () => `两次输入不一致`,\n};\n\nconst TEXT_BOX_VALIDATION_EN_US = {\n empty: (name: string) => `${getEnglishName(name)}cannot be empty`,\n invalid: (name: string) => `${getEnglishName(name)}invalid format`,\n invalidFormat: (name: string) => `${getEnglishName(name)}is not a number`,\n inBetween: (name: string) => (min: number) => (max: number) => `${getEnglishName(name)}must be ${min}-${max}`,\n lessThan: (name: string) => (min: number) => `${getEnglishName(name)}cannot less than ${min}`,\n greaterThan: (name: string) => (max: number) => `${getEnglishName(name)}cannot greater than ${max}`,\n lengthEqual: (name: string) => (length: number) => `${getEnglishName(name)}length must be ${length}`,\n twoInputsNotEqual: () => `two inputs are not equal`,\n};\n\nconst TEXT_AREA_VALIDATION_ZH_CN = {\n empty: (name: string) => `${name}不能为空`,\n invalid: (name: string) => `${name}格式有误`,\n invalidFormat: (name: string) => `${name}不是数字`,\n inBetween: (name: string) => (min: number) => (max: number) => `${name}必须在${min}-${max}之间`,\n lessThan: (name: string) => (min: number) => `${name}不可少于${min}`,\n greaterThan: (name: string) => (max: number) => `${name}不可大于${max}`,\n lengthEqual: (name: string) => (length: number) => `${name}长度必须为${length}`,\n twoInputsNotEqual: () => `两次输入不一致`,\n};\n\nconst TEXT_AREA_VALIDATION_EN_US = {\n empty: (name: string) => `${getEnglishName(name)}cannot be empty`,\n invalid: (name: string) => `${getEnglishName(name)}invalid format`,\n invalidFormat: (name: string) => `${getEnglishName(name)}is not a number`,\n inBetween: (name: string) => (min: number) => (max: number) => `${getEnglishName(name)}must be ${min}-${max}`,\n lessThan: (name: string) => (min: number) => `${getEnglishName(name)}cannot less than ${min}`,\n greaterThan: (name: string) => (max: number) => `${getEnglishName(name)}cannot greater than ${max}`,\n lengthEqual: (name: string) => (length: number) => `${getEnglishName(name)}length must be ${length}`,\n twoInputsNotEqual: () => `two inputs are not equal`,\n};\n\nconst SELECT_VALIDATION_ZH_CN = {\n empty: (name: string) => `请选择一个${name}`,\n};\n\nconst SELECT_VALIDATION_EN_US = {\n empty: (name: string) => `Please select a ${getEnglishName(name)}`,\n};\n\nconst CHECK_BOX_VALIDATION_ZH_CN = {\n unchecked: (name: string) => `${name}必须勾选`,\n};\n\nconst CHECK_BOX_VALIDATION_EN_US = {\n unchecked: (name: string) => `${getEnglishName(name)}must be checked`,\n};\n\nconst RADIO_BOX_VALIDATION_ZH_CN = {\n empty: (name: string) => `必须勾选一个${name}`,\n};\n\nconst RADIO_BOX_VALIDATION_EN_US = {\n empty: (name: string) => `Please choose one ${getEnglishName(name)}`,\n};\n\ninterface Message {\n [key: string]: Key;\n}\n\ninterface Key {\n [key: string]: Func;\n}\n\ninterface Func {\n [key: string]: Function;\n}\n\nlet message: Message = {\n 'zh-CN': {\n textbox: TEXT_BOX_VALIDATION_ZH_CN,\n radiobox: RADIO_BOX_VALIDATION_ZH_CN,\n checkbox: CHECK_BOX_VALIDATION_ZH_CN,\n select: SELECT_VALIDATION_ZH_CN,\n textarea: TEXT_AREA_VALIDATION_ZH_CN,\n },\n 'en-US': {\n textbox: TEXT_BOX_VALIDATION_EN_US,\n radiobox: RADIO_BOX_VALIDATION_EN_US,\n checkbox: CHECK_BOX_VALIDATION_EN_US,\n select: SELECT_VALIDATION_EN_US,\n textarea: TEXT_AREA_VALIDATION_EN_US,\n },\n};\n\n// TODO: find a rewire way to handle non-export function\nexport const getCustomErrorMessage = (o: any, m: any) => {\n if (!o || typeof o !== 'object' || o.constructor !== Object || !Object.keys(o).length) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return false;\n }\n Object.keys(o).map(i => {\n if (!m[i]) {\n m[i] = o[i];\n } else {\n if (Object.keys(o[i]).length) {\n Object.keys(o[i]).map(j => {\n if (Object.keys(o[i][j]).length) {\n Object.keys(o[i][j]).map(k => {\n m[i][j][k] = o[i][j][k];\n });\n }\n });\n }\n }\n });\n return m;\n};\n\ndeclare global {\n interface Window {\n REACT_INPUTS_VALIDATION: any;\n }\n}\n\n// TODO: find a rewire way to handle non-export function\nexport const handleCustomErrorMessage = (message: any, w: Window) => {\n let res;\n if (typeof w !== 'undefined') {\n if (w.REACT_INPUTS_VALIDATION && w.REACT_INPUTS_VALIDATION['customErrorMessage']) {\n res = getCustomErrorMessage(w.REACT_INPUTS_VALIDATION['customErrorMessage'], message);\n }\n }\n if (typeof res === 'undefined' || res === false) {\n return message;\n }\n return res;\n};\n\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.REACT_INPUTS_VALIDATION = window.REACT_INPUTS_VALIDATION || {};\n message = handleCustomErrorMessage(message, window);\n}\n\nexport default message;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ellipsis\":\"react-inputs-validation__ellipsis___3-Api\",\"textbox__wrapper\":\"react-inputs-validation__textbox__wrapper___3tnXv\",\"textbox__container\":\"react-inputs-validation__textbox__container___3KXOM\",\"textbox__input\":\"react-inputs-validation__textbox__input___20hDL\",\"error\":\"react-inputs-validation__error___2aXSp\",\"success\":\"react-inputs-validation__success___3TpwE\",\"disabled\":\"react-inputs-validation__disabled___1-57g\",\"msg\":\"react-inputs-validation__msg___pxv8o\",\"textarea__wrapper\":\"react-inputs-validation__textarea__wrapper___35GhF\",\"textarea__container\":\"react-inputs-validation__textarea__container___2fbGp\",\"textarea__input\":\"react-inputs-validation__textarea__input___1CFm_\",\"radiobox__wrapper\":\"react-inputs-validation__radiobox__wrapper___1zZ30\",\"radiobox__container\":\"react-inputs-validation__radiobox__container___FD4vb\",\"radiobox__input\":\"react-inputs-validation__radiobox__input___2uX2-\",\"radiobox__label\":\"react-inputs-validation__radiobox__label___2tQsB\",\"checked\":\"react-inputs-validation__checked___2O0Ju\",\"radiobox__item\":\"react-inputs-validation__radiobox__item___ejuz1\",\"checkbox__wrapper\":\"react-inputs-validation__checkbox__wrapper___1c1rD\",\"checkbox__input\":\"react-inputs-validation__checkbox__input___1yF4X\",\"checkbox__container\":\"react-inputs-validation__checkbox__container___3I1rX\",\"checkbox__box\":\"react-inputs-validation__checkbox__box___1uj8A\",\"box\":\"react-inputs-validation__box___3E9nu\",\"select__wrapper\":\"react-inputs-validation__select__wrapper___1B4OH\",\"select__input\":\"react-inputs-validation__select__input___3h-P7\",\"select__container\":\"react-inputs-validation__select__container___3jgUR\",\"select__options-item\":\"react-inputs-validation__select__options-item___30yY4\",\"select__options-item-show-cursor\":\"react-inputs-validation__select__options-item-show-cursor___1ZT3b\",\"select__no-mouse\":\"react-inputs-validation__select__no-mouse___2uRg6\",\"select__hover-active\":\"react-inputs-validation__select__hover-active___2z1MQ\",\"active\":\"react-inputs-validation__active___3eZBB\",\"select__options-container-animate\":\"react-inputs-validation__select__options-container-animate___2Rm--\",\"show\":\"react-inputs-validation__show___2NI3u\",\"select__options-container\":\"react-inputs-validation__select__options-container___d54qE\",\"select__dropdown\":\"react-inputs-validation__select__dropdown___11yDr\",\"select__dropdown-icon\":\"react-inputs-validation__select__dropdown-icon___1T5r2\",\"select__dropdown-name\":\"react-inputs-validation__select__dropdown-name___3hghL\",\"select__dropdown-icon-container\":\"react-inputs-validation__select__dropdown-icon-container___2ild-\"};","const empty = (v: string) => (v.replace(/\\s/g, '').length ? false : true);\nconst number = (v: number, min: any, max: any) => {\n if (min === null && max === null){\n return true\n }\n if (!isNumeric(v)) {\n return false;\n }\n return v < min || v > max ? false : true;\n};\n// TODO: find a better type for regex\nconst reg = (reg: any, v: string) => {\n let err = true;\n if (reg.test(v)) {\n err = false;\n }\n return err;\n};\nconst isNumeric = (v: any) => {\n return !isNaN(parseFloat(v)) && isFinite(v);\n};\n\ninterface Validator {\n [key: string]: Function;\n}\n\nconst validator: Validator = {\n reg,\n empty,\n number,\n};\nexport default validator;\n","const camelize = (str: string) => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w|\\s+)/g, (match, index) => {\n if (+match === 0) return '';\n return index === 0 ? match.toLowerCase() : match.toUpperCase();\n });\n};\n\nconst toCamelCase = (str: string) => (capitalLize: boolean = false) => {\n const res = camelize(str);\n return capitalLize ? res.substr(0, 1).toUpperCase() + res.substr(1, res.length) : res;\n};\n\ninterface Utils {\n [key: string]: Function;\n}\n\nconst getRandomId = () => {\n return Math.random()\n .toString(36)\n .slice(-8);\n};\n\nconst getAlphanumeric = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if ((charCode >= 48 && charCode <= 57) || (charCode >= 97 && charCode <= 122)) {\n res += i;\n }\n });\n return res;\n};\n\nconst getAlpha = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if (charCode >= 97 && charCode <= 122) {\n res += i;\n }\n });\n return res;\n};\n\nconst getNumeric = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if (charCode >= 48 && charCode <= 57) {\n res += i;\n }\n });\n return res;\n};\n\nconst utils: Utils = {\n camelize,\n toCamelCase,\n getRandomId,\n getAlphanumeric,\n getAlpha,\n getNumeric,\n};\nexport default utils;\n","import Textbox from './Textbox';\nimport Textarea from './Textarea';\nimport Select from './Select';\nimport Checkbox from './Checkbox';\nimport Radiobox from './Radiobox';\n\nif (typeof window !== 'undefined') {\n (window).Textbox = Textbox;\n (window).Textarea = Textarea;\n (window).Radiobox = Radiobox;\n (window).Checkbox = Checkbox;\n (window).Select = Select;\n}\n\nexport { Textbox, Textarea, Select, Checkbox, Radiobox };\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport validator from './validator';\nimport utils from './utils';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'textbox';\nconst VALIDATE_OPTION_TYPE_LIST = ['string', 'number', 'alphanumeric', 'alpha'];\nconst VALIDATE_NUMBER_TYPE_LIST = ['decimal', 'int'];\nconst DEFAULT_MAX_LENGTH = 524288; // Default value is 524288\nconst DEFAULT_AUTO_COMPLETE = 'on'; // Default value is on\ninterface DefaultValidationOption {\n locale?: string;\n reg?: string;\n min?: number;\n max?: number;\n type?: string;\n numberType?: string;\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n length?: number;\n regMsg?: string;\n compare?: string;\n required?: boolean;\n msgOnError?: string;\n msgOnSuccess?: string;\n customFunc?: Function | undefined;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { reg, min, max, type, numberType, name, check, length, regMsg, compare, required, showMsg, locale, msgOnError, msgOnSuccess, customFunc } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n reg = typeof reg !== 'undefined' ? reg : '';\n min = typeof min !== 'undefined' ? min : 0;\n max = typeof max !== 'undefined' ? max : 0;\n type = typeof type !== 'undefined' ? type : 'string';\n numberType = typeof numberType !== 'undefined' ? numberType : 'string';\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n length = typeof length !== 'undefined' ? length : 0;\n regMsg = typeof regMsg !== 'undefined' ? regMsg : '';\n compare = typeof compare !== 'undefined' ? compare : '';\n required = typeof required !== 'undefined' ? required : true;\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n customFunc = typeof customFunc !== 'undefined' ? customFunc : undefined;\n return {\n reg,\n min,\n max,\n type,\n numberType,\n name,\n check,\n length,\n regMsg,\n locale,\n compare,\n required,\n showMsg,\n msgOnError,\n msgOnSuccess,\n customFunc,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n type?: string;\n value?: string;\n disabled?: boolean;\n validate?: boolean;\n autoComplete?: string;\n maxLength?: string | number;\n placeholder?: string;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n validationOption?: object;\n asyncMsgObj?: object;\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n validationCallback?: (res: boolean) => void;\n}\nconst autoFormatNumber = (v: number | string, numberType: string) => {\n const DOT = '.';\n let res = '';\n let hasDot = false;\n String(v)\n .split('')\n .filter(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if ((charCode >= 48 && charCode <= 57) || (charCode === 46 && !hasDot)) {\n if (charCode === 46) {\n if (numberType === VALIDATE_NUMBER_TYPE_LIST[1]) {\n return;\n }\n hasDot = true;\n }\n res += i;\n }\n });\n if (numberType === VALIDATE_NUMBER_TYPE_LIST[0]) {\n if (res.length && res[0] === DOT) {\n res = `0${res}`;\n }\n }\n return res;\n};\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n type = 'text',\n value = '',\n disabled = false,\n validate = false,\n autoComplete = DEFAULT_AUTO_COMPLETE,\n maxLength = DEFAULT_MAX_LENGTH,\n placeholder = '',\n classNameInput = '',\n classNameWrapper = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = (v: string, e: React.ChangeEvent) => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n onKeyUp = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n if (onKeyUp) {\n const { keyCode } = e;\n const keyCodeTab = 9;\n if (keyCode !== keyCodeTab) {\n check();\n }\n onKeyUp(e);\n }\n },\n [internalValue],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n let v = $el.current.value;\n if ((typeof maxLength === 'string' && maxLength !== '') || (typeof maxLength === 'number' && maxLength !== 0)) {\n if (v.length > Number(maxLength)) {\n return;\n }\n }\n const { type, numberType } = option;\n if (type === VALIDATE_OPTION_TYPE_LIST[1]) {\n v = String(autoFormatNumber(v, VALIDATE_NUMBER_TYPE_LIST.indexOf(numberType) >= 0 ? numberType : VALIDATE_NUMBER_TYPE_LIST[0]));\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[2]) {\n v = utils.getAlphanumeric(v);\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[3]) {\n v = utils.getAlpha(v);\n }\n setInternalValue(v);\n onChange && onChange(v, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err],\n );\n const check = useCallback(\n async () => {\n const { reg, min, max, type, name, check, length, regMsg, locale, compare, required, msgOnSuccess, customFunc } = option;\n if (!check) {\n return;\n }\n if (type) {\n if (VALIDATE_OPTION_TYPE_LIST.indexOf(type) !== -1) {\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (required) {\n if (validator.empty(internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (String(internalValue) !== '') {\n if (reg) {\n if (validator['reg'](reg, internalValue)) {\n handleCheckEnd(true, regMsg !== '' ? regMsg : msg.invalid(nameText));\n return;\n }\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[0]) {\n if (min || max) {\n if (min && max) {\n if (String(internalValue).length < min || String(internalValue).length > max) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (String(internalValue).length < min) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (String(internalValue).length > max) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[1]) {\n if (!validator[type](internalValue, null, null)) {\n handleCheckEnd(true, msg.invalid(nameText));\n return;\n }\n if (min || max) {\n if (min && max) {\n if (!validator[type](internalValue, min, max)) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (!validator[type](internalValue, min)) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (!validator[type](internalValue, 0, max)) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (compare && compare !== '') {\n if (internalValue !== compare) {\n handleCheckEnd(true, msg.twoInputsNotEqual());\n return;\n }\n }\n }\n if (customFunc && typeof customFunc === 'function') {\n const customFuncResult = await customFunc(internalValue);\n if (typeof customFuncResult === 'object') {\n if (typeof customFuncResult.error === 'boolean' && typeof customFuncResult.message === 'string') {\n if (customFuncResult.error === false && customFuncResult.showOnSuccess === true) {\n setSuccessMsg(customFuncResult.message);\n }\n handleCheckEnd(customFuncResult.error, customFuncResult.message, true);\n }\n return;\n }\n if (customFuncResult !== true) {\n handleCheckEnd(true, customFuncResult, true);\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n } else {\n console.error(`The valid ${utils.toCamelCase(TYPE)(true)} \"type\" options in validationOption are [${VALIDATE_OPTION_TYPE_LIST.map(i => i)}]`);\n }\n } else {\n console.error('Please provide \"type\" in validationOption');\n }\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string, fromCustomFunc: boolean = false) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError && !fromCustomFunc) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n if (option.customFunc) {\n check();\n }\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","/** @license React v16.8.6\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var k=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.concurrent_mode\"):60111,y=n?Symbol.for(\"react.forward_ref\"):60112,z=n?Symbol.for(\"react.suspense\"):60113,aa=n?Symbol.for(\"react.memo\"):\n60115,ba=n?Symbol.for(\"react.lazy\"):60116,A=\"function\"===typeof Symbol&&Symbol.iterator;function ca(a,b,d,c,e,g,h,f){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[d,c,e,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction B(a){for(var b=arguments.length-1,d=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=0;cP.length&&P.push(a)}\nfunction S(a,b,d,c){var e=typeof a;if(\"undefined\"===e||\"boolean\"===e)a=null;var g=!1;if(null===a)g=!0;else switch(e){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return d(c,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;h {\n let { reg, min, max, type, name, check, length, regMsg, required, showMsg, locale, msgOnError, msgOnSuccess, customFunc } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n reg = typeof reg !== 'undefined' ? reg : '';\n min = typeof min !== 'undefined' ? min : 0;\n max = typeof max !== 'undefined' ? max : 0;\n type = typeof type !== 'undefined' ? type : 'string';\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n length = typeof length !== 'undefined' ? length : 0;\n regMsg = typeof regMsg !== 'undefined' ? regMsg : '';\n required = typeof required !== 'undefined' ? required : true;\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n customFunc = typeof customFunc !== 'undefined' ? customFunc : undefined;\n return {\n reg,\n min,\n max,\n type,\n name,\n check,\n length,\n regMsg,\n locale,\n required,\n showMsg,\n msgOnError,\n msgOnSuccess,\n customFunc,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n type?: string;\n value?: string;\n disabled?: boolean;\n validate?: boolean;\n maxLength?: string | number;\n cols?: string | number;\n rows?: string | number;\n placeholder?: string;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n validationOption?: object;\n asyncMsgObj?: object;\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n validationCallback?: (res: boolean) => void;\n}\n\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n cols = DEFAULT_ROWS,\n rows = DEFAULT_COLS,\n disabled = false,\n validate = false,\n maxLength = DEFAULT_MAX_LENGTH,\n placeholder = '',\n classNameInput = '',\n classNameWrapper = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n onKeyUp = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n if (onKeyUp) {\n const { keyCode } = e;\n const keyCodeTab = 9;\n if (keyCode !== keyCodeTab) {\n check();\n }\n onKeyUp(e);\n }\n },\n [internalValue],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n const v = $el.current.value;\n if ((typeof maxLength === 'string' && maxLength !== '') || (typeof maxLength === 'number' && maxLength !== 0)) {\n if (v.length > Number(maxLength)) {\n return;\n }\n }\n setInternalValue(v);\n onChange && onChange(v, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err],\n );\n const check = useCallback(\n async () => {\n const { reg, min, max, type, name, check, length, regMsg, locale, required, msgOnSuccess, customFunc } = option;\n if (!check) {\n return;\n }\n if (type) {\n if (VALIDATE_OPTION_TYPE_LIST.indexOf(type) !== -1) {\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (required) {\n if (validator.empty(internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (String(internalValue) !== '') {\n if (reg) {\n if (validator['reg'](reg, internalValue)) {\n handleCheckEnd(true, regMsg !== '' ? regMsg : msg.invalid(nameText));\n return;\n }\n }\n if (min || max) {\n if (min && max) {\n if (String(internalValue).length < min || String(internalValue).length > max) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (String(internalValue).length < min) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (String(internalValue).length > max) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (customFunc && typeof customFunc === 'function') {\n const customFuncResult = await customFunc(internalValue);\n if (typeof customFuncResult === 'object') {\n if (typeof customFuncResult.error === 'boolean' && typeof customFuncResult.message === 'string') {\n if (customFuncResult.error === false && customFuncResult.showOnSuccess === true) {\n setSuccessMsg(customFuncResult.message);\n }\n handleCheckEnd(customFuncResult.error, customFuncResult.message, true);\n }\n return;\n }\n if (customFuncResult !== true) {\n handleCheckEnd(true, customFuncResult, true);\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n } else {\n console.error(`The valid ${utils.toCamelCase(TYPE)(true)} \"type\" options in validationOption are [${VALIDATE_OPTION_TYPE_LIST.map(i => i)}]`);\n }\n } else {\n console.error('Please provide \"type\" in validationOption');\n }\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string, fromCustomFunc: boolean = false) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError && !fromCustomFunc) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n if (option.customFunc) {\n check();\n }\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, CONTAINER_CLASS_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'select';\n/* istanbul ignore next */\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function(searchString, position) {\n const p = position || 0;\n return this.indexOf(searchString, p) === p;\n };\n}\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\nexport const isValidValue = (list: OptionListItem[], value: any) => {\n let res = false;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = true;\n break;\n }\n }\n }\n return res;\n};\nexport const getItem = (list: OptionListItem[], value: any) => {\n let res = null;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = list[i];\n break;\n }\n }\n }\n return res;\n};\nexport const getIndex = (list: OptionListItem[], value: string) => {\n let key = -1;\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n key = i;\n break;\n }\n }\n return key;\n};\ninterface OptionListItem {\n id: string;\n name: string;\n}\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | number;\n disabled?: boolean;\n validate?: boolean;\n optionList: OptionListItem[];\n onChange: (res: string, e: React.MouseEvent) => void;\n onBlur?: (e: React.FocusEvent | Event) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n selectHtml?: React.ReactNode;\n selectOptionListItemHtml?: React.ReactNode;\n classNameWrapper?: string;\n classNameContainer?: string;\n classNameSelect?: string;\n classNameOptionListContainer?: string;\n classNameDropdownIconOptionListItem?: string;\n classNameOptionListItem?: string;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleSelect?: object;\n customStyleOptionListContainer?: object;\n customStyleDropdownIcon?: object;\n customStyleOptionListItem?: object;\n validationCallback?: (res: boolean) => void;\n}\ninterface Node {\n [key: string]: any;\n}\nlet globalVariableIsFocusing: boolean = false;\nlet globalVariableIsCorrected: boolean = false;\nlet globalVariableCurrentFocus: any | null = null;\nlet globalVariableTypingTimeout: any | null = null;\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n disabled = false,\n validate = false,\n optionList = [],\n classNameWrapper = '',\n classNameContainer = '',\n classNameSelect = '',\n classNameOptionListItem = '',\n classNameOptionListContainer = '',\n classNameDropdownIconOptionListItem = '',\n customStyleWrapper = {},\n customStyleContainer = {},\n customStyleSelect = {},\n customStyleOptionListItem = {},\n customStyleOptionListContainer = {},\n customStyleDropdownIcon = {},\n validationOption = {},\n asyncMsgObj = {},\n selectHtml = null,\n selectOptionListItemHtml = null,\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const [show, setShow] = useState(false);\n const [isTyping, setIsTyping] = useState(false);\n const initKeycodeList: number[] = [];\n const [keycodeList, setKeycodeList] = useState(initKeycodeList);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $wrapper = useRef(null);\n const $itemsWrapper = useRef(null);\n const $elWrapper: { [key: string]: any } | null = $wrapper;\n const $elItemsWrapper: { [key: string]: any } | null = $itemsWrapper;\n const $itemsRef: { [key: string]: any } = [];\n if (optionList.length) {\n for (let i = 0; i < optionList.length; i += 1) {\n $itemsRef.push(useRef(null));\n }\n }\n const handleOnBlur = useCallback(\n (e: React.FocusEvent | Event) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnChange = useCallback((v: string, e: React.MouseEvent) => {\n if (disabled || $elWrapper === null) {\n return;\n }\n onChange && onChange(String(v), e);\n }, []);\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!isValidValue(optionList, internalValue) || internalValue === '' || internalValue === 'null' || internalValue === 'undefined') {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n useEffect(() => {\n if ($elWrapper === null) {\n return;\n }\n window.addEventListener('mousedown', pageClick);\n window.addEventListener('touchstart', pageClick);\n if (id) {\n $elWrapper.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $elWrapper.current.setAttribute('tabindex', String(tabIndex));\n }\n return () => {\n window.removeEventListener('mousedown', pageClick);\n window.removeEventListener('touchstart', pageClick);\n $elWrapper.current.removeEventListener('keydown', onKeyDown);\n };\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const pageClick = useCallback((e: Event) => {\n if ($elWrapper === null || $elWrapper.current.contains(e.target)) {\n return;\n }\n if (globalVariableIsFocusing) {\n handleOnBlur(e);\n globalVariableIsFocusing = false;\n }\n setShow(false);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const resetCurrentFocus = useCallback(\n () => {\n globalVariableCurrentFocus = getIndex(optionList, internalValue);\n scroll();\n },\n [internalValue],\n );\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const setTimeoutTyping = useCallback(() => {\n if (globalVariableTypingTimeout) {\n clearTimeout(globalVariableTypingTimeout);\n }\n globalVariableTypingTimeout = setTimeout(() => {\n setKeycodeList([]);\n }, 250);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const scroll = useCallback((direction: undefined | string = undefined) => {\n if ($elItemsWrapper === null) {\n return;\n }\n const containerHeight = $elItemsWrapper.current.offsetHeight;\n const containerScrollTop = $elItemsWrapper.current.scrollTop;\n if (!globalVariableCurrentFocus || !$itemsRef[globalVariableCurrentFocus]) {\n return;\n }\n const $elOptionItem: Node | null = $itemsRef[globalVariableCurrentFocus];\n if ($elOptionItem === null) {\n return;\n }\n const itemHeight = $elOptionItem.current.offsetHeight;\n if (direction) {\n if (direction === 'down') {\n const bound = containerScrollTop + containerHeight;\n const heightItems = globalVariableCurrentFocus * itemHeight;\n const heightContainer = bound - itemHeight;\n if (heightItems >= heightContainer) {\n const offset = Math.abs(heightItems - heightContainer - itemHeight);\n if (offset >= 0 && !globalVariableIsCorrected) {\n $elItemsWrapper.current.scrollTop = containerScrollTop + itemHeight - offset;\n globalVariableIsCorrected = true;\n } else {\n $elItemsWrapper.current.scrollTop = containerScrollTop + itemHeight;\n }\n }\n }\n if (direction === 'up') {\n globalVariableIsCorrected = false;\n if (globalVariableCurrentFocus * itemHeight <= containerScrollTop) {\n $elItemsWrapper.current.scrollTop = globalVariableCurrentFocus * itemHeight;\n }\n }\n } else {\n globalVariableIsCorrected = false;\n $elItemsWrapper.current.scrollTop = globalVariableCurrentFocus * itemHeight;\n }\n }, []);\n const handleOnItemClick = useCallback((v: string, e: React.MouseEvent) => {\n handleOnChange(v, e);\n }, []);\n const handleOnItemMouseOver = useCallback((index: number) => {\n globalVariableCurrentFocus = index;\n addActive();\n }, []);\n const handleOnItemMouseMove = useCallback(() => {\n setIsTyping(false);\n }, []);\n const handleOnItemMouseOut = useCallback(() => {\n removeActive();\n }, []);\n const addActive = useCallback(() => {\n if (!$itemsRef) return;\n removeActive();\n if (globalVariableCurrentFocus === null) return;\n if (globalVariableCurrentFocus >= $itemsRef.length) globalVariableCurrentFocus = 0;\n if (globalVariableCurrentFocus < 0) globalVariableCurrentFocus = $itemsRef.length - 1;\n const $node: Node | null = $itemsRef[globalVariableCurrentFocus];\n /* istanbul ignore next because it won't happen */\n if (!$node) {\n return;\n }\n $itemsRef[globalVariableCurrentFocus].current.className += ` ${reactInputsValidationCss[`${TYPE}__hover-active`]}`;\n }, []);\n const removeActive = useCallback(() => {\n for (let i = 0; i < $itemsRef.length; i += 1) {\n const $node: Node | null = $itemsRef[i];\n if (!$node) {\n break;\n }\n if ($node && $node.current) {\n $node.current.className = $node.current.className.replace(reactInputsValidationCss[`${TYPE}__hover-active`], '');\n }\n }\n }, []);\n\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n setIsTyping(true);\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (!show) {\n return;\n }\n globalVariableCurrentFocus = globalVariableCurrentFocus === null ? getIndex(optionList, String(value)) : globalVariableCurrentFocus;\n let direction = undefined;\n const { keyCode } = e;\n const keyCodeEsc = 27;\n const keyCodeDown = 40;\n const keyCodeUp = 38;\n const keyCodeEnter = 13;\n const selectKeyList = [keyCodeEsc, keyCodeDown, keyCodeUp, keyCodeEnter];\n if (selectKeyList.indexOf(keyCode) !== -1) {\n if (keyCode === keyCodeEsc) {\n setShow(false);\n resetCurrentFocus();\n return;\n }\n if (keyCode === keyCodeDown) {\n direction = 'down';\n globalVariableCurrentFocus += 1;\n if (globalVariableCurrentFocus > optionList.length - 1) {\n globalVariableCurrentFocus = optionList.length - 1;\n }\n addActive();\n } else if (keyCode === keyCodeUp) {\n direction = 'up';\n globalVariableCurrentFocus -= 1;\n if (globalVariableCurrentFocus < 0) {\n globalVariableCurrentFocus = 0;\n }\n addActive();\n } else if (keyCode === keyCodeEnter) {\n if (globalVariableCurrentFocus > -1) {\n if ($itemsRef[globalVariableCurrentFocus]) {\n $itemsRef[globalVariableCurrentFocus].current.click();\n } else {\n return;\n }\n }\n }\n } else {\n setTimeoutTyping();\n const newkeyCodeList = [...keycodeList, keyCode];\n const str = String.fromCharCode(...newkeyCodeList).toLowerCase();\n let index = -1;\n optionList.filter((i, k) => {\n const { name } = i;\n if (name.toLowerCase().startsWith(str)) {\n if (index === -1) {\n index = k;\n }\n }\n });\n if (index !== -1) {\n globalVariableCurrentFocus = index;\n addActive();\n }\n setKeycodeList(newkeyCodeList);\n }\n scroll(direction);\n return globalVariableCurrentFocus;\n },\n [show, value, keycodeList],\n );\n useEffect(\n () => {\n if (show && $elWrapper) {\n $elWrapper.current.addEventListener('keydown', onKeyDown);\n }\n return () => {\n $elWrapper.current.removeEventListener('keydown', onKeyDown);\n };\n },\n [show, value, keycodeList],\n );\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n if (!(!isValidValue(optionList, internalValue) || internalValue === '' || internalValue === 'null' || internalValue === 'undefined')) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n check();\n }\n },\n [prevInternalValue, internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${CONTAINER_CLASS_IDENTITIFIER} ${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${show &&\n reactInputsValidationCss['show']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled &&\n reactInputsValidationCss['disabled']}`;\n const selectClass = `${classNameSelect} ${reactInputsValidationCss['ellipsis']} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const selectOptionListContainerClass = `${classNameOptionListContainer} ${reactInputsValidationCss[`${TYPE}__options-container`]} ${err && reactInputsValidationCss['error']} ${show &&\n reactInputsValidationCss['show']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const selectOptionListItemClass = `${!isTyping && reactInputsValidationCss[`${TYPE}__options-item-show-cursor`]} ${classNameOptionListItem} ${\n reactInputsValidationCss[`${TYPE}__options-item`]\n } ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const dropdownIconClass = `${classNameDropdownIconOptionListItem} ${reactInputsValidationCss[`${TYPE}__dropdown-icon`]}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n let optionListHtml;\n const item = getItem(optionList, String(value));\n if (optionList.length) {\n if (selectOptionListItemHtml) {\n optionListHtml = selectOptionListItemHtml;\n } else {\n optionListHtml = optionList.map((i, k) => (\n \n ));\n }\n }\n const selectorHtml = selectHtml ? (\n selectHtml\n ) : (\n
\n
{item ? item.name : ''}
\n
\n
\n );\n return (\n {\n handleOnClick(e);\n !disabled ? setShow(!show) : ``;\n }}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n >\n
\n {}} />\n
\n {selectorHtml}\n
\n
\n {optionListHtml}\n
\n
\n {msgHtml}\n
\n );\n};\ninterface OptionProps {\n index?: number;\n id?: string;\n refItem?: React.RefObject;\n className?: string;\n item?: OptionListItem;\n customStyleOptionListItem?: object;\n onClick?: (res: string, e: React.MouseEvent) => void;\n onMouseOver?: (res: number) => void;\n onMouseMove?: () => void;\n onMouseOut?: () => void;\n}\nexport const Option: React.FC = memo(\n ({\n index = -1,\n refItem = null,\n id = '',\n className = '',\n item = { id: '', name: '' },\n customStyleOptionListItem = {},\n onClick = () => {},\n onMouseOver = () => {},\n onMouseMove = () => {},\n onMouseOut = () => {},\n }) => {\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n onClick(item.id, e);\n }, []);\n const handleOnMouseOver = useCallback(() => {\n onMouseOver(index);\n }, []);\n const handleOnMouseMove = useCallback(() => {\n onMouseMove();\n }, []);\n const handleOnMouseOut = useCallback(() => {\n onMouseOut();\n }, []);\n return (\n \n {item.name}\n
\n );\n },\n);\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'checkbox';\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | boolean;\n checked?: boolean;\n disabled?: boolean;\n labelHtml?: React.ReactNode;\n validate?: boolean;\n onChange: (res: boolean, e: React.ChangeEvent | React.MouseEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameInputBox?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleInputBox?: object;\n validationCallback?: (res: boolean) => void;\n}\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n checked = false,\n disabled = false,\n validate = false,\n labelHtml = null,\n classNameInput = '',\n classNameWrapper = '',\n classNameInputBox = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleInputBox = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalChecked, setInternalChecked] = useState(checked);\n const prevInternalChecked = usePrevious(internalChecked);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalChecked],\n );\n const handleOnFocus = useCallback(\n (e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n },\n [internalChecked],\n );\n const handleOnClick = useCallback(\n (e: React.MouseEvent) => {\n handleOnChange(e);\n if (onClick) {\n onClick(e);\n }\n },\n [err, internalChecked],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent | React.MouseEvent) => {\n if (disabled || $el === null) {\n return;\n }\n setInternalChecked(!internalChecked);\n onChange && onChange(!internalChecked, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err, internalChecked],\n );\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!internalChecked) {\n handleCheckEnd(true, msg.unchecked(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalChecked],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate, internalChecked],\n );\n useEffect(\n () => {\n setInternalChecked(checked);\n },\n [checked],\n );\n useEffect(\n () => {\n if (typeof prevInternalChecked !== 'undefined' && prevInternalChecked !== internalChecked) {\n check();\n }\n },\n [prevInternalChecked, internalChecked],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${internalChecked && reactInputsValidationCss['checked']} ${err &&\n reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${internalChecked && reactInputsValidationCss['checked']} ${err &&\n reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const boxClass = `${classNameInputBox} ${reactInputsValidationCss[`${TYPE}__box`]} ${err && reactInputsValidationCss['error']} ${internalChecked &&\n reactInputsValidationCss['checked']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const labelClass = `${internalChecked && reactInputsValidationCss['checked']} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n
\n
\n \n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, OPTION_LIST_ITEM_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'radiobox';\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\nexport const isValidValue = (list: OptionListItem[], value: any) => {\n let res = false;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = true;\n break;\n }\n }\n }\n return res;\n};\ninterface OptionListItem {\n id: string;\n name: string;\n}\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | number;\n disabled?: boolean;\n validate?: boolean;\n optionList?: OptionListItem[];\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n classNameWrapper?: string;\n classNameInput?: string;\n classNameContainer?: string;\n classNameOptionListItem?: string;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleInput?: object;\n customStyleOptionListItem?: object;\n validationCallback?: (res: boolean) => void;\n}\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n disabled = false,\n validate = false,\n optionList = [],\n classNameWrapper = '',\n classNameInput = '',\n classNameContainer = '',\n classNameOptionListItem = '',\n customStyleWrapper = {},\n customStyleContainer = {},\n customStyleInput = {},\n customStyleOptionListItem = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnChange = useCallback((val: string, e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n setInternalValue(val);\n onChange && onChange(val, e);\n }, []);\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!isValidValue(optionList, internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n if (internalValue && isValidValue(optionList, internalValue)) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n check();\n }\n },\n [prevInternalValue, internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__wrapper`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__container`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__input`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const labelClass = `${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${reactInputsValidationCss[`${TYPE}__label`]} ${disabled &&\n reactInputsValidationCss['disabled']}`;\n const optionListItemClass = `${OPTION_LIST_ITEM_IDENTITIFIER} ${classNameOptionListItem} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${reactInputsValidationCss[`${TYPE}__item`]} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n let optionHtml;\n if (optionList.length) {\n optionHtml = optionList.map((i, k) => {\n const checked = String(i.id) === String(internalValue) ? true : false;\n return (\n \n );\n });\n }\n return (\n
\n
\n {optionHtml}\n
\n {msgHtml}\n
\n );\n};\ninterface OptionProps {\n checked?: boolean;\n id?: string;\n name?: string;\n optionListItemClass?: string;\n labelClass?: string;\n inputClass?: string;\n value?: string | number;\n disabled?: boolean;\n item?: OptionListItem;\n customStyleOptionListItem?: object;\n customStyleInput?: object;\n onChange?: (res: string, e: React.ChangeEvent) => void;\n}\nexport const Option: React.FC = memo(\n ({\n checked = false,\n id = '',\n name = '',\n optionListItemClass = '',\n labelClass = '',\n inputClass = '',\n value = '',\n disabled = false,\n item = { id: '', name: '' },\n customStyleOptionListItem = {},\n customStyleInput = {},\n onChange = () => {},\n }) => {\n const handleOnChange = useCallback(e => {\n onChange(item.id, e);\n }, []);\n return (\n
\n \n \n
\n );\n },\n);\nexport default memo(component);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/react-inputs-validation.min.js b/lib/react-inputs-validation.min.js index 986b81f..f4a627e 100644 --- a/lib/react-inputs-validation.min.js +++ b/lib/react-inputs-validation.min.js @@ -1,4 +1,4 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["react-inputs-validation"]=t():e["react-inputs-validation"]=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";e.exports=n(8)},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(0)),i=o.useEffect,a=o.useRef;t.LOCALE_OPTION_LIST=["en-US","zh-CN"],t.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE="Invalid window.REACT_INPUTS_VALIDATION['customErrorMessage']. EXAMPLE: window.REACT_INPUTS_VALIDATION={customErrorMessage:{'en-US':{textbox:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}},radiobox:{empty:function empty(name){return'Please choose one '+getEnglishName(name)}},checkbox:{unchecked:function unchecked(name){return getEnglishName(name)+'must be checked'}},select:{empty:function empty(name){return'Please select a '+getEnglishName(name)}},textarea:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}}}}};",t.DEFAULT_LOCALE="en-US",t.WRAPPER_CLASS_IDENTITIFIER="react-inputs-validation__wrapper_identifier",t.CONTAINER_CLASS_IDENTITIFIER="react-inputs-validation__container_identifier",t.OPTION_LIST_ITEM_IDENTITIFIER="react-inputs-validation__option-list-item_identifier",t.MSG_CLASS_IDENTITIFIER="react-inputs-validation__msg_identifier",t.usePrevious=function(e){var t=a();return i(function(){t.current=e}),t.current}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=function(e){var t="";return e&&(t=e+" "),t},i={"zh-CN":{textbox:{empty:function(e){return e+"不能为空"},invalid:function(e){return e+"格式有误"},invalidFormat:function(e){return e+"不是数字"},inBetween:function(e){return function(t){return function(n){return e+"必须在"+t+"-"+n+"之间"}}},lessThan:function(e){return function(t){return e+"不可少于"+t}},greaterThan:function(e){return function(t){return e+"不可大于"+t}},lengthEqual:function(e){return function(t){return e+"长度必须为"+t}},twoInputsNotEqual:function(){return"两次输入不一致"}},radiobox:{empty:function(e){return"必须勾选一个"+e}},checkbox:{unchecked:function(e){return e+"必须勾选"}},select:{empty:function(e){return"请选择一个"+e}},textarea:{empty:function(e){return e+"不能为空"},invalid:function(e){return e+"格式有误"},invalidFormat:function(e){return e+"不是数字"},inBetween:function(e){return function(t){return function(n){return e+"必须在"+t+"-"+n+"之间"}}},lessThan:function(e){return function(t){return e+"不可少于"+t}},greaterThan:function(e){return function(t){return e+"不可大于"+t}},lengthEqual:function(e){return function(t){return e+"长度必须为"+t}},twoInputsNotEqual:function(){return"两次输入不一致"}}},"en-US":{textbox:{empty:function(e){return o(e)+"cannot be empty"},invalid:function(e){return o(e)+"invalid format"},invalidFormat:function(e){return o(e)+"is not a number"},inBetween:function(e){return function(t){return function(n){return o(e)+"must be "+t+"-"+n}}},lessThan:function(e){return function(t){return o(e)+"cannot less than "+t}},greaterThan:function(e){return function(t){return o(e)+"cannot greater than "+t}},lengthEqual:function(e){return function(t){return o(e)+"length must be "+t}},twoInputsNotEqual:function(){return"two inputs are not equal"}},radiobox:{empty:function(e){return"Please choose one "+o(e)}},checkbox:{unchecked:function(e){return o(e)+"must be checked"}},select:{empty:function(e){return"Please select a "+o(e)}},textarea:{empty:function(e){return o(e)+"cannot be empty"},invalid:function(e){return o(e)+"invalid format"},invalidFormat:function(e){return o(e)+"is not a number"},inBetween:function(e){return function(t){return function(n){return o(e)+"must be "+t+"-"+n}}},lessThan:function(e){return function(t){return o(e)+"cannot less than "+t}},greaterThan:function(e){return function(t){return o(e)+"cannot greater than "+t}},lengthEqual:function(e){return function(t){return o(e)+"length must be "+t}},twoInputsNotEqual:function(){return"two inputs are not equal"}}}};t.getCustomErrorMessage=function(e,t){return e&&"object"==typeof e&&e.constructor===Object&&Object.keys(e).length?(Object.keys(e).map(function(n){t[n]?Object.keys(e[n]).length&&Object.keys(e[n]).map(function(r){Object.keys(e[n][r]).length&&Object.keys(e[n][r]).map(function(o){t[n][r][o]=e[n][r][o]})}):t[n]=e[n]}),t):(console.error(r.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),!1)},t.handleCustomErrorMessage=function(e,n){var r;return void 0!==n&&n.REACT_INPUTS_VALIDATION&&n.REACT_INPUTS_VALIDATION.customErrorMessage&&(r=t.getCustomErrorMessage(n.REACT_INPUTS_VALIDATION.customErrorMessage,e)),void 0===r||!1===r?e:r},"undefined"!=typeof window&&(window.REACT_INPUTS_VALIDATION=window.REACT_INPUTS_VALIDATION||{},i=t.handleCustomErrorMessage(i,window)),t.default=i},function(e,t,n){e.exports={ellipsis:"react-inputs-validation__ellipsis___3-Api",textbox__wrapper:"react-inputs-validation__textbox__wrapper___3tnXv",textbox__container:"react-inputs-validation__textbox__container___3KXOM",textbox__input:"react-inputs-validation__textbox__input___20hDL",error:"react-inputs-validation__error___2aXSp",success:"react-inputs-validation__success___3TpwE",disabled:"react-inputs-validation__disabled___1-57g",msg:"react-inputs-validation__msg___pxv8o",textarea__wrapper:"react-inputs-validation__textarea__wrapper___35GhF",textarea__container:"react-inputs-validation__textarea__container___2fbGp",textarea__input:"react-inputs-validation__textarea__input___1CFm_",radiobox__wrapper:"react-inputs-validation__radiobox__wrapper___1zZ30",radiobox__container:"react-inputs-validation__radiobox__container___FD4vb",radiobox__input:"react-inputs-validation__radiobox__input___2uX2-",radiobox__label:"react-inputs-validation__radiobox__label___2tQsB",checked:"react-inputs-validation__checked___2O0Ju",radiobox__item:"react-inputs-validation__radiobox__item___ejuz1",checkbox__wrapper:"react-inputs-validation__checkbox__wrapper___1c1rD",checkbox__input:"react-inputs-validation__checkbox__input___1yF4X",checkbox__container:"react-inputs-validation__checkbox__container___3I1rX",checkbox__box:"react-inputs-validation__checkbox__box___1uj8A",box:"react-inputs-validation__box___3E9nu",select__wrapper:"react-inputs-validation__select__wrapper___1B4OH",select__input:"react-inputs-validation__select__input___3h-P7",select__container:"react-inputs-validation__select__container___3jgUR","select__options-item":"react-inputs-validation__select__options-item___30yY4","select__options-item-show-cursor":"react-inputs-validation__select__options-item-show-cursor___1ZT3b","select__no-mouse":"react-inputs-validation__select__no-mouse___2uRg6","select__hover-active":"react-inputs-validation__select__hover-active___2z1MQ",active:"react-inputs-validation__active___3eZBB","select__options-container-animate":"react-inputs-validation__select__options-container-animate___2Rm--",show:"react-inputs-validation__show___2NI3u","select__options-container":"react-inputs-validation__select__options-container___d54qE",select__dropdown:"react-inputs-validation__select__dropdown___11yDr","select__dropdown-icon":"react-inputs-validation__select__dropdown-icon___1T5r2","select__dropdown-name":"react-inputs-validation__select__dropdown-name___3hghL","select__dropdown-icon-container":"react-inputs-validation__select__dropdown-icon-container___2ild-"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},o={reg:function(e,t){var n=!0;return e.test(t)&&(n=!1),n},empty:function(e){return!e.replace(/\s/g,"").length},number:function(e,t,n){return null===t&&null===n||!!r(e)&&!(en)}};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,function(e,t){return 0==+e?"":0===t?e.toLowerCase():e.toUpperCase()})},o={camelize:r,toCamelCase:function(e){return function(t){void 0===t&&(t=!1);var n=r(e);return t?n.substr(0,1).toUpperCase()+n.substr(1,n.length):n}},getRandomId:function(){return Math.random().toString(36).slice(-8)},getAlphanumeric:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);(n>=48&&n<=57||n>=97&&n<=122)&&(t+=e)}),t},getAlpha:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);n>=97&&n<=122&&(t+=e)}),t},getNumeric:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);n>=48&&n<=57&&(t+=e)}),t}};t.default=o},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(7));t.Textbox=o.default;var i=r(n(10));t.Textarea=i.default;var a=r(n(11));t.Select=a.default;var u=r(n(12));t.Checkbox=u.default;var l=r(n(13));t.Radiobox=l.default,"undefined"!=typeof window&&(window.Textbox=o.default,window.Textarea=i.default,window.Radiobox=l.default,window.Checkbox=u.default,window.Select=a.default)},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function u(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]Number(q))){var n=Te.type,r=Te.numberType;n===y[1]&&(t=String(function(e,t){var n="",r=!1;return String(e).split("").filter(function(e){var o=e.toLowerCase().charCodeAt(0);if(o>=48&&o<=57||46===o&&!r){if(46===o){if(t===E[1])return;r=!0}n+=e}}),t===E[0]&&n.length&&"."===n[0]&&(n="0"+n),n}(t,E.indexOf(r)>=0?r:E[0]))),n===y[2]&&(t=p.default.getAlphanumeric(t)),n===y[3]&&(t=p.default.getAlpha(t)),Ne(t),ie&&ie(t,e),he?ge(!1):Oe("")}}},[he]),De=d(function(){return r(u,void 0,void 0,function(){var e,t,n,r,i,a,u,l,c,s,d,f,v,g,E,S;return o(this,function(o){switch(o.label){case 0:if(e=Te.reg,t=Te.min,n=Te.max,r=Te.type,i=Te.name,a=Te.check,u=Te.length,l=Te.regMsg,c=Te.locale,s=Te.compare,d=Te.required,f=Te.msgOnSuccess,v=Te.customFunc,!a)return[2];if(!r)return[3,5];if(-1===y.indexOf(r))return[3,3];if(!_.default[c]||!_.default[c][b])return console.error(h.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),[2];if(g=_.default[c][b],E=i||"",d&&m.default.empty(xe))return qe(!0,g.empty(E)),[2];if(""!==String(xe)){if(e&&m.default.reg(e,xe))return qe(!0,""!==l?l:g.invalid(E)),[2];if(r===y[0]){if(t||n)if(t&&n){if(String(xe).lengthn)return qe(!0,g.inBetween(E)(t)(n)),[2]}else{if(t&&String(xe).lengthn)return qe(!0,g.greaterThan(E)(n)),[2]}if(u&&String(xe).length!==u)return qe(!0,g.lengthEqual(E)(u)),[2]}if(r===y[1]){if(!m.default[r](xe,null,null))return qe(!0,g.invalid(E)),[2];if(t||n)if(t&&n){if(!m.default[r](xe,t,n))return qe(!0,g.inBetween(E)(t)(n)),[2]}else{if(t&&!m.default[r](xe,t))return qe(!0,g.lessThan(E)(t)),[2];if(n&&!m.default[r](xe,0,n))return qe(!0,g.greaterThan(E)(n)),[2]}if(u&&String(xe).length!==u)return qe(!0,g.lengthEqual(E)(u)),[2]}if(s&&""!==s&&xe!==s)return qe(!0,g.twoInputsNotEqual()),[2]}return v&&"function"==typeof v?[4,v(xe)]:[3,2];case 1:if("object"==typeof(S=o.sent()))return"boolean"==typeof S.error&&"string"==typeof S.message&&(!1===S.error&&!0===S.showOnSuccess&&Oe(S.message),qe(S.error,S.message,!0)),[2];if(!0!==S)return qe(!0,S,!0),[2];o.label=2;case 2:return f&&Oe(f),qe(!1,f),[3,4];case 3:console.error("The valid "+p.default.toCamelCase(b)(!0)+' "type" options in validationOption are ['+y.map(function(e){return e})+"]"),o.label=4;case 4:return[3,6];case 5:console.error('Please provide "type" in validationOption'),o.label=6;case 6:return[2]}})})},[xe]),qe=d(function(e,t,n){void 0===n&&(n=!1);var r=t,o=Te.msgOnError;e&&o&&!n&&(r=o),ge(e),Ee(r),me&&me(e)},[]);s(function(){null!==Me&&(I&&Me.current.setAttribute("id",String(I)),w&&Me.current.setAttribute("tabindex",String(w)))},[]),s(function(){P&&De()},[P]),s(function(){Ne(String(A))},[A]),s(function(){Ce&&Ce!==xe&&Te.customFunc&&De()},[xe]),s(function(){null!==Me&&Me.current.removeAttribute("value")}),s(function(){ke&&ke.message&&(ke.showOnError&&qe(ke.error,ke.message),!ke.error&&ke.showOnSuccess&&Oe(ke.message))},[re]);var Ue,Ve=W+" "+g.default.textbox__wrapper+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),Be=z+" "+g.default.textbox__container+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),$e=$+" "+g.default.textbox__input+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),Ge=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(he&&g.default.error),We=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(!he&&g.default.success),Xe=Te.showMsg;return Xe&&he&&ye&&(Ue=l.createElement("div",{className:Ge},ye)),Xe&&!he&&""!==we&&(Ue=l.createElement("div",{className:We},we)),l.createElement("div",{className:Ve,style:Q},l.createElement("div",{className:Be,style:J},l.createElement("input",{name:N,type:T,value:xe,disabled:L,autoComplete:F,maxLength:Number(q),onBlur:Le,onKeyUp:je,onFocus:Re,onClick:Pe,className:$e,onChange:Fe,style:K,placeholder:V,ref:Ae})),Ue)})},function(e,t,n){"use strict"; +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["react-inputs-validation"]=t():e["react-inputs-validation"]=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";e.exports=n(8)},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(0)),i=o.useEffect,a=o.useRef;t.LOCALE_OPTION_LIST=["en-US","zh-CN"],t.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE="Invalid window.REACT_INPUTS_VALIDATION['customErrorMessage']. EXAMPLE: window.REACT_INPUTS_VALIDATION={customErrorMessage:{'en-US':{textbox:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}},radiobox:{empty:function empty(name){return'Please choose one '+getEnglishName(name)}},checkbox:{unchecked:function unchecked(name){return getEnglishName(name)+'must be checked'}},select:{empty:function empty(name){return'Please select a '+getEnglishName(name)}},textarea:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}}}}};",t.DEFAULT_LOCALE="en-US",t.WRAPPER_CLASS_IDENTITIFIER="react-inputs-validation__wrapper_identifier",t.CONTAINER_CLASS_IDENTITIFIER="react-inputs-validation__container_identifier",t.OPTION_LIST_ITEM_IDENTITIFIER="react-inputs-validation__option-list-item_identifier",t.MSG_CLASS_IDENTITIFIER="react-inputs-validation__msg_identifier",t.usePrevious=function(e){var t=a();return i(function(){t.current=e}),t.current}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=function(e){var t="";return e&&(t=e+" "),t},i={"zh-CN":{textbox:{empty:function(e){return e+"不能为空"},invalid:function(e){return e+"格式有误"},invalidFormat:function(e){return e+"不是数字"},inBetween:function(e){return function(t){return function(n){return e+"必须在"+t+"-"+n+"之间"}}},lessThan:function(e){return function(t){return e+"不可少于"+t}},greaterThan:function(e){return function(t){return e+"不可大于"+t}},lengthEqual:function(e){return function(t){return e+"长度必须为"+t}},twoInputsNotEqual:function(){return"两次输入不一致"}},radiobox:{empty:function(e){return"必须勾选一个"+e}},checkbox:{unchecked:function(e){return e+"必须勾选"}},select:{empty:function(e){return"请选择一个"+e}},textarea:{empty:function(e){return e+"不能为空"},invalid:function(e){return e+"格式有误"},invalidFormat:function(e){return e+"不是数字"},inBetween:function(e){return function(t){return function(n){return e+"必须在"+t+"-"+n+"之间"}}},lessThan:function(e){return function(t){return e+"不可少于"+t}},greaterThan:function(e){return function(t){return e+"不可大于"+t}},lengthEqual:function(e){return function(t){return e+"长度必须为"+t}},twoInputsNotEqual:function(){return"两次输入不一致"}}},"en-US":{textbox:{empty:function(e){return o(e)+"cannot be empty"},invalid:function(e){return o(e)+"invalid format"},invalidFormat:function(e){return o(e)+"is not a number"},inBetween:function(e){return function(t){return function(n){return o(e)+"must be "+t+"-"+n}}},lessThan:function(e){return function(t){return o(e)+"cannot less than "+t}},greaterThan:function(e){return function(t){return o(e)+"cannot greater than "+t}},lengthEqual:function(e){return function(t){return o(e)+"length must be "+t}},twoInputsNotEqual:function(){return"two inputs are not equal"}},radiobox:{empty:function(e){return"Please choose one "+o(e)}},checkbox:{unchecked:function(e){return o(e)+"must be checked"}},select:{empty:function(e){return"Please select a "+o(e)}},textarea:{empty:function(e){return o(e)+"cannot be empty"},invalid:function(e){return o(e)+"invalid format"},invalidFormat:function(e){return o(e)+"is not a number"},inBetween:function(e){return function(t){return function(n){return o(e)+"must be "+t+"-"+n}}},lessThan:function(e){return function(t){return o(e)+"cannot less than "+t}},greaterThan:function(e){return function(t){return o(e)+"cannot greater than "+t}},lengthEqual:function(e){return function(t){return o(e)+"length must be "+t}},twoInputsNotEqual:function(){return"two inputs are not equal"}}}};t.getCustomErrorMessage=function(e,t){return e&&"object"==typeof e&&e.constructor===Object&&Object.keys(e).length?(Object.keys(e).map(function(n){t[n]?Object.keys(e[n]).length&&Object.keys(e[n]).map(function(r){Object.keys(e[n][r]).length&&Object.keys(e[n][r]).map(function(o){t[n][r][o]=e[n][r][o]})}):t[n]=e[n]}),t):(console.error(r.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),!1)},t.handleCustomErrorMessage=function(e,n){var r;return void 0!==n&&n.REACT_INPUTS_VALIDATION&&n.REACT_INPUTS_VALIDATION.customErrorMessage&&(r=t.getCustomErrorMessage(n.REACT_INPUTS_VALIDATION.customErrorMessage,e)),void 0===r||!1===r?e:r},"undefined"!=typeof window&&(window.REACT_INPUTS_VALIDATION=window.REACT_INPUTS_VALIDATION||{},i=t.handleCustomErrorMessage(i,window)),t.default=i},function(e,t,n){e.exports={ellipsis:"react-inputs-validation__ellipsis___3-Api",textbox__wrapper:"react-inputs-validation__textbox__wrapper___3tnXv",textbox__container:"react-inputs-validation__textbox__container___3KXOM",textbox__input:"react-inputs-validation__textbox__input___20hDL",error:"react-inputs-validation__error___2aXSp",success:"react-inputs-validation__success___3TpwE",disabled:"react-inputs-validation__disabled___1-57g",msg:"react-inputs-validation__msg___pxv8o",textarea__wrapper:"react-inputs-validation__textarea__wrapper___35GhF",textarea__container:"react-inputs-validation__textarea__container___2fbGp",textarea__input:"react-inputs-validation__textarea__input___1CFm_",radiobox__wrapper:"react-inputs-validation__radiobox__wrapper___1zZ30",radiobox__container:"react-inputs-validation__radiobox__container___FD4vb",radiobox__input:"react-inputs-validation__radiobox__input___2uX2-",radiobox__label:"react-inputs-validation__radiobox__label___2tQsB",checked:"react-inputs-validation__checked___2O0Ju",radiobox__item:"react-inputs-validation__radiobox__item___ejuz1",checkbox__wrapper:"react-inputs-validation__checkbox__wrapper___1c1rD",checkbox__input:"react-inputs-validation__checkbox__input___1yF4X",checkbox__container:"react-inputs-validation__checkbox__container___3I1rX",checkbox__box:"react-inputs-validation__checkbox__box___1uj8A",box:"react-inputs-validation__box___3E9nu",select__wrapper:"react-inputs-validation__select__wrapper___1B4OH",select__input:"react-inputs-validation__select__input___3h-P7",select__container:"react-inputs-validation__select__container___3jgUR","select__options-item":"react-inputs-validation__select__options-item___30yY4","select__options-item-show-cursor":"react-inputs-validation__select__options-item-show-cursor___1ZT3b","select__no-mouse":"react-inputs-validation__select__no-mouse___2uRg6","select__hover-active":"react-inputs-validation__select__hover-active___2z1MQ",active:"react-inputs-validation__active___3eZBB","select__options-container-animate":"react-inputs-validation__select__options-container-animate___2Rm--",show:"react-inputs-validation__show___2NI3u","select__options-container":"react-inputs-validation__select__options-container___d54qE",select__dropdown:"react-inputs-validation__select__dropdown___11yDr","select__dropdown-icon":"react-inputs-validation__select__dropdown-icon___1T5r2","select__dropdown-name":"react-inputs-validation__select__dropdown-name___3hghL","select__dropdown-icon-container":"react-inputs-validation__select__dropdown-icon-container___2ild-"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},o={reg:function(e,t){var n=!0;return e.test(t)&&(n=!1),n},empty:function(e){return!e.replace(/\s/g,"").length},number:function(e,t,n){return null===t&&null===n||!!r(e)&&!(en)}};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,function(e,t){return 0==+e?"":0===t?e.toLowerCase():e.toUpperCase()})},o={camelize:r,toCamelCase:function(e){return function(t){void 0===t&&(t=!1);var n=r(e);return t?n.substr(0,1).toUpperCase()+n.substr(1,n.length):n}},getRandomId:function(){return Math.random().toString(36).slice(-8)},getAlphanumeric:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);(n>=48&&n<=57||n>=97&&n<=122)&&(t+=e)}),t},getAlpha:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);n>=97&&n<=122&&(t+=e)}),t},getNumeric:function(e){var t="";return String(e).split("").forEach(function(e){var n=e.toLowerCase().charCodeAt(0);n>=48&&n<=57&&(t+=e)}),t}};t.default=o},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(7));t.Textbox=o.default;var i=r(n(10));t.Textarea=i.default;var a=r(n(11));t.Select=a.default;var u=r(n(12));t.Checkbox=u.default;var l=r(n(13));t.Radiobox=l.default,"undefined"!=typeof window&&(window.Textbox=o.default,window.Textarea=i.default,window.Radiobox=l.default,window.Checkbox=u.default,window.Select=a.default)},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function u(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]Number(q))){var n=Te.type,r=Te.numberType;n===y[1]&&(t=String(function(e,t){var n="",r=!1;return String(e).split("").filter(function(e){var o=e.toLowerCase().charCodeAt(0);if(o>=48&&o<=57||46===o&&!r){if(46===o){if(t===E[1])return;r=!0}n+=e}}),t===E[0]&&n.length&&"."===n[0]&&(n="0"+n),n}(t,E.indexOf(r)>=0?r:E[0]))),n===y[2]&&(t=p.default.getAlphanumeric(t)),n===y[3]&&(t=p.default.getAlpha(t)),Ne(t),ie&&ie(t,e),he?ge(!1):Oe("")}}},[he]),De=d(function(){return r(u,void 0,void 0,function(){var e,t,n,r,i,a,u,l,c,s,d,f,v,g,E,S;return o(this,function(o){switch(o.label){case 0:if(e=Te.reg,t=Te.min,n=Te.max,r=Te.type,i=Te.name,a=Te.check,u=Te.length,l=Te.regMsg,c=Te.locale,s=Te.compare,d=Te.required,f=Te.msgOnSuccess,v=Te.customFunc,!a)return[2];if(!r)return[3,5];if(-1===y.indexOf(r))return[3,3];if(!_.default[c]||!_.default[c][b])return console.error(h.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),[2];if(g=_.default[c][b],E=i||"",d&&m.default.empty(xe))return qe(!0,g.empty(E)),[2];if(""!==String(xe)){if(e&&m.default.reg(e,xe))return qe(!0,""!==l?l:g.invalid(E)),[2];if(r===y[0]){if(t||n)if(t&&n){if(String(xe).lengthn)return qe(!0,g.inBetween(E)(t)(n)),[2]}else{if(t&&String(xe).lengthn)return qe(!0,g.greaterThan(E)(n)),[2]}if(u&&String(xe).length!==u)return qe(!0,g.lengthEqual(E)(u)),[2]}if(r===y[1]){if(!m.default[r](xe,null,null))return qe(!0,g.invalid(E)),[2];if(t||n)if(t&&n){if(!m.default[r](xe,t,n))return qe(!0,g.inBetween(E)(t)(n)),[2]}else{if(t&&!m.default[r](xe,t))return qe(!0,g.lessThan(E)(t)),[2];if(n&&!m.default[r](xe,0,n))return qe(!0,g.greaterThan(E)(n)),[2]}if(u&&String(xe).length!==u)return qe(!0,g.lengthEqual(E)(u)),[2]}if(s&&""!==s&&xe!==s)return qe(!0,g.twoInputsNotEqual()),[2]}return v&&"function"==typeof v?[4,v(xe)]:[3,2];case 1:if("object"==typeof(S=o.sent()))return"boolean"==typeof S.error&&"string"==typeof S.message&&(!1===S.error&&!0===S.showOnSuccess&&Oe(S.message),qe(S.error,S.message,!0)),[2];if(!0!==S)return qe(!0,S,!0),[2];o.label=2;case 2:return f&&Oe(f),qe(!1,f),[3,4];case 3:console.error("The valid "+p.default.toCamelCase(b)(!0)+' "type" options in validationOption are ['+y.map(function(e){return e})+"]"),o.label=4;case 4:return[3,6];case 5:console.error('Please provide "type" in validationOption'),o.label=6;case 6:return[2]}})})},[xe]),qe=d(function(e,t,n){void 0===n&&(n=!1);var r=t,o=Te.msgOnError;e&&o&&!n&&(r=o),ge(e),Ee(r),me&&me(e)},[]);s(function(){null!==Me&&(I&&Me.current.setAttribute("id",String(I)),w&&Me.current.setAttribute("tabindex",String(w)))},[]),s(function(){P&&De()},[P]),s(function(){Ne(String(A))},[A]),s(function(){void 0!==Ce&&Ce!==xe&&Te.customFunc&&De()},[xe]),s(function(){ke&&ke.message&&(ke.showOnError&&qe(ke.error,ke.message),!ke.error&&ke.showOnSuccess&&Oe(ke.message))},[re]);var Ue,Ve=W+" "+g.default.textbox__wrapper+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),Be=z+" "+g.default.textbox__container+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),$e=$+" "+g.default.textbox__input+" "+(he&&g.default.error)+" "+(""!==we&&!he&&g.default.success)+" "+(L&&g.default.disabled),Ge=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(he&&g.default.error),We=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(!he&&g.default.success),Xe=Te.showMsg;return Xe&&he&&ye&&(Ue=l.createElement("div",{className:Ge},ye)),Xe&&!he&&""!==we&&(Ue=l.createElement("div",{className:We},we)),l.createElement("div",{className:Ve,style:Q},l.createElement("div",{className:Be,style:J},l.createElement("input",{name:N,type:T,value:xe,disabled:L,autoComplete:F,maxLength:Number(q),onBlur:Le,onKeyUp:je,onFocus:Re,onClick:Pe,className:$e,onChange:Fe,style:K,placeholder:V,ref:Ae})),Ue)})},function(e,t,n){"use strict"; /** @license React v16.8.6 * react.production.min.js * @@ -11,5 +11,5 @@ object-assign (c) Sindre Sorhus @license MIT -*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,u=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]Number(D)||(xe(t),oe&&oe(t,e),pe?he(!1):we(""))}},[pe]),Fe=d(function(){return r(u,void 0,void 0,function(){var e,t,n,r,i,a,u,l,c,s,d,f,v,g,E;return o(this,function(o){switch(o.label){case 0:if(e=Ce.reg,t=Ce.min,n=Ce.max,r=Ce.type,i=Ce.name,a=Ce.check,u=Ce.length,l=Ce.regMsg,c=Ce.locale,s=Ce.required,d=Ce.msgOnSuccess,f=Ce.customFunc,!a)return[2];if(!r)return[3,5];if(-1===y.indexOf(r))return[3,3];if(!_.default[c]||!_.default[c][b])return console.error(h.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),[2];if(v=_.default[c][b],g=i||"",s&&m.default.empty(Ie))return De(!0,v.empty(g)),[2];if(""!==String(Ie)){if(e&&m.default.reg(e,Ie))return De(!0,""!==l?l:v.invalid(g)),[2];if(t||n)if(t&&n){if(String(Ie).lengthn)return De(!0,v.inBetween(g)(t)(n)),[2]}else{if(t&&String(Ie).lengthn)return De(!0,v.greaterThan(g)(n)),[2]}if(u&&String(Ie).length!==u)return De(!0,v.lengthEqual(g)(u)),[2]}return f&&"function"==typeof f?[4,f(Ie)]:[3,2];case 1:if("object"==typeof(E=o.sent()))return"boolean"==typeof E.error&&"string"==typeof E.message&&(!1===E.error&&!0===E.showOnSuccess&&we(E.message),De(E.error,E.message,!0)),[2];if(!0!==E)return De(!0,E,!0),[2];o.label=2;case 2:return d&&we(d),De(!1,d),[3,4];case 3:console.error("The valid "+p.default.toCamelCase(b)(!0)+' "type" options in validationOption are ['+y.map(function(e){return e})+"]"),o.label=4;case 4:return[3,6];case 5:console.error('Please provide "type" in validationOption'),o.label=6;case 6:return[2]}})})},[Ie]),De=d(function(e,t,n){void 0===n&&(n=!1);var r=t,o=Ce.msgOnError;e&&o&&!n&&(r=o),he(e),ye(r),_e&&_e(e)},[]);s(function(){null!==Ae&&(O&&Ae.current.setAttribute("id",String(O)),S&&Ae.current.setAttribute("tabindex",String(S)))},[]),s(function(){j&&Fe()},[j]),s(function(){xe(String(C))},[C]),s(function(){Ne&&Ne!==Ie&&Ce.customFunc&&Fe()},[Ie]),s(function(){Te&&Te.message&&(Te.showOnError&&De(Te.error,Te.message),!Te.error&&Te.showOnSuccess&&we(Te.message))},[ne]);var qe,Ue=G+" "+g.default.textarea__wrapper+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),Ve=X+" "+g.default.textarea__container+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),Be=B+" "+g.default.textarea__input+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),$e=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(pe&&g.default.error),Ge=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(!pe&&g.default.success),We=Ce.showMsg;return We&&pe&&be&&(qe=l.createElement("div",{className:$e},be)),We&&!pe&&""!==Se&&(qe=l.createElement("div",{className:Ge},Se)),l.createElement("div",{className:Ue,style:Z},l.createElement("div",{className:Ve,style:Y},l.createElement("textarea",{name:x,value:Ie,disabled:R,onBlur:Me,maxLength:Number(D),onKeyUp:Pe,onFocus:Le,onClick:Re,className:Be,onChange:je,style:H,placeholder:U,cols:Number(k),rows:Number(M),ref:ke})),qe)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="select";String.prototype.startsWith||(String.prototype.startsWith=function(e,t){var n=t||0;return this.indexOf(e,n)===n});t.isValidValue=function(e,t){var n=!1;if(e.length)for(var r=0;r=a){var u=Math.abs(i-a-o);u>=0&&!p?(ze.current.scrollTop=n+o-u,p=!0):ze.current.scrollTop=n+o}}"up"===e&&(p=!1,h*o<=n&&(ze.current.scrollTop=h*o))}else p=!1,ze.current.scrollTop=h*o}}}},[]),at=l(function(e,t){Je(e,t)},[]),ut=l(function(e){h=e,st()},[]),lt=l(function(){De(!1)},[]),ct=l(function(){dt()},[]),st=l(function(){He&&(dt(),null!==h&&(h>=He.length&&(h=0),h<0&&(h=He.length-1),He[h]&&(He[h].current.className+=" "+v.default[_+"__hover-active"])))},[]),dt=l(function(){for(var e=0;eL.length-1&&(h=L.length-1),st();else if(38===r)n="up",(h-=1)<0&&(h=0),st();else if(13===r&&h>-1){if(!He[h])return;He[h].current.click()}}else{ot();var o=Ue.concat([r]),i=String.fromCharCode.apply(String,o).toLowerCase(),a=-1;L.filter(function(e,t){e.name.toLowerCase().startsWith(i)&&-1===a&&(a=t)}),-1!==a&&(h=a,st()),Ve(o)}return it(n),h}},[Re,N,Ue]);u(function(){return Re&&Xe&&Xe.current.addEventListener("keydown",ft),function(){Xe.current.removeEventListener("keydown",ft)}},[Re,N,Ue]),u(function(){A&&et()},[A]),u(function(){t.isValidValue(L,ke)&&""!==ke&&"null"!==ke&&"undefined"!==ke?Se(!1):Ce("")},[ke]),u(function(){Ae(String(N))},[N]),u(function(){void 0!==Me&&Me!==ke&&et()},[Me,ke]),u(function(){$e&&$e.message&&($e.showOnError&&tt($e.error,$e.message),!$e.error&&$e.showOnSuccess&&Ce($e.message))},[ie]);var vt,_t,mt=f.WRAPPER_CLASS_IDENTITIFIER+" "+P+" "+v.default.select__wrapper+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),pt=f.CONTAINER_CLASS_IDENTITIFIER+" "+F+" "+v.default.select__container+" "+(Ee&&v.default.error)+" "+(Re&&v.default.show)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),ht=v.default.select__input+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),gt=q+" "+v.default.ellipsis+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),bt=$+" "+v.default[_+"__options-container"]+" "+(Ee&&v.default.error)+" "+(Re&&v.default.show)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),yt=(!Fe&&v.default[_+"__options-item-show-cursor"])+" "+V+" "+v.default[_+"__options-item"]+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),Et=W+" "+v.default[_+"__dropdown-icon"],St=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(Ee&&v.default.error),wt=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(!Ee&&v.default.success),Ot=Be.showMsg;Ot&&Ee&&Oe&&(vt=i.createElement("div",{className:St},Oe)),Ot&&!Ee&&""!==Ne&&(vt=i.createElement("div",{className:wt},Ne));var It=t.getItem(L,String(N));L.length&&(_t=ce||L.map(function(e,n){return i.createElement(t.Option,{key:n,index:n,id:"react-inputs-validation__select_option-"+e.id,refItem:He[n],className:String(e.id)===String(N)?yt+" "+v.default.active:""+yt,item:e,customStyleOptionListItem:J,onClick:at,onMouseOver:ut,onMouseMove:lt,onMouseOut:ct})}));var xt=ue||i.createElement("div",{className:v.default.select__dropdown},i.createElement("div",{className:v.default[_+"__dropdown-name"]+" "+v.default.ellipsis},It?It.name:""),i.createElement("div",{className:Et}));return i.createElement("div",{ref:Ge,className:mt,style:z,onClick:function(e){Ye(e),!T&&Pe(!Re)},onFocus:Qe,onBlur:Ze},i.createElement("div",{className:pt,style:K},i.createElement("input",{name:I,type:"hidden",value:N,className:ht,onChange:function(){}}),i.createElement("div",{className:gt,style:Q},xt),i.createElement("div",{ref:We,className:bt,style:te},_t)),vt)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="checkbox";t.default=s(function(e){var t,n,r,o,s,m=e.tabIndex,p=void 0===m?null:m,h=e.id,g=void 0===h?null:h,b=e.name,y=void 0===b?"":b,E=e.value,S=void 0===E?"":E,w=e.checked,O=void 0!==w&&w,I=e.disabled,x=void 0!==I&&I,N=e.validate,C=void 0!==N&&N,T=e.labelHtml,k=void 0===T?null:T,A=(e.classNameInput,e.classNameWrapper),M=void 0===A?"":A,L=e.classNameInputBox,R=void 0===L?"":L,P=e.classNameContainer,j=void 0===P?"":P,F=(e.customStyleInput,e.customStyleWrapper),D=void 0===F?{}:F,q=e.customStyleInputBox,U=void 0===q?{}:q,V=e.customStyleContainer,B=void 0===V?{}:V,$=e.validationOption,G=void 0===$?{}:$,W=e.asyncMsgObj,X=void 0===W?{}:W,z=e.onChange,H=void 0===z?function(){}:z,K=e.onBlur,Z=void 0===K?null:K,Q=e.onFocus,Y=void 0===Q?null:Q,J=e.onClick,ee=void 0===J?null:J,te=e.validationCallback,ne=void 0===te?null:te,re=a(!1),oe=re[0],ie=re[1],ae=a(""),ue=ae[0],le=ae[1],ce=a(""),se=ce[0],de=ce[1],fe=a(O),ve=fe[0],_e=fe[1],me=f.usePrevious(ve),pe=function(e){var t=e.name,n=e.check,r=e.required,o=e.showMsg,i=e.locale,a=e.msgOnError,u=e.msgOnSuccess;return{name:t=void 0!==t?t:"",check:n=void 0===n||n,showMsg:o=void 0===o||o,required:r=void 0===r||r,locale:i=void 0!==i?i:f.DEFAULT_LOCALE,msgOnError:a=void 0!==a?a:"",msgOnSuccess:u=void 0!==u?u:""}}(G),he=(n=(t=X).error,r=t.message,o=t.showOnError,s=t.showOnSuccess,{error:n=void 0!==n&&n,message:r=void 0!==r?r:"",showOnError:o=void 0===o||o,showOnSuccess:s=void 0!==s&&s}),ge=c(null),be=ge,ye=l(function(e){Z&&(Oe(),Z(e))},[ve]),Ee=l(function(e){Y&&Y(e)},[ve]),Se=l(function(e){we(e),ee&&ee(e)},[oe,ve]),we=l(function(e){x||null===be||(_e(!ve),H&&H(!ve,e),oe?ie(!1):de(""))},[oe,ve]),Oe=l(function(){var e=pe.name,t=pe.check,n=pe.locale,r=pe.required,o=pe.msgOnSuccess;if(t)if(d.default[n]&&d.default[n][_]){if(r){var i=d.default[n][_],a=e||"";if(!ve)return void Ie(!0,i.unchecked(a))}o&&de(o),Ie(!1,o)}else console.error(f.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE)},[ve]),Ie=l(function(e,t){var n=t,r=pe.msgOnError;e&&r&&(n=r),ie(e),le(n),ne&&ne(e)},[]);u(function(){null!==be&&(g&&be.current.setAttribute("id",String(g)),p&&be.current.setAttribute("tabindex",String(p)))},[]),u(function(){C&&Oe()},[C,ve]),u(function(){_e(O)},[O]),u(function(){void 0!==me&&me!==ve&&Oe()},[me,ve]),u(function(){he&&he.message&&(he.showOnError&&Ie(he.error,he.message),!he.error&&he.showOnSuccess&&de(he.message))},[X]);var xe,Ne=f.WRAPPER_CLASS_IDENTITIFIER+" "+M+" "+v.default.checkbox__wrapper+" "+(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Ce=j+" "+v.default.checkbox__container+" "+(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Te=R+" "+v.default.checkbox__box+" "+(oe&&v.default.error)+" "+(ve&&v.default.checked)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),ke=(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Ae=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(oe&&v.default.error),Me=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(!oe&&v.default.success),Le=pe.showMsg;return Le&&oe&&ue&&(xe=i.createElement("div",{className:Ae},ue)),Le&&!oe&&""!==se&&(xe=i.createElement("div",{className:Me},se)),i.createElement("div",{ref:ge,className:Ne,style:D,onClick:Se,onBlur:ye,onFocus:Ee},i.createElement("div",{className:Ce,style:B},i.createElement("div",{className:Te,style:U},i.createElement("div",{className:v.default.box}),i.createElement("input",{name:y,type:_,className:v.default.checkbox__input,value:String(S),defaultChecked:ve,disabled:x,onChange:we})),i.createElement("label",{className:ke},k)),xe)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="radiobox";t.isValidValue=function(e,t){var n=!1;if(e.length)for(var r=0;r0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]Number(D)||(xe(t),oe&&oe(t,e),pe?he(!1):we(""))}},[pe]),Fe=d(function(){return r(u,void 0,void 0,function(){var e,t,n,r,i,a,u,l,c,s,d,f,v,g,E;return o(this,function(o){switch(o.label){case 0:if(e=Ce.reg,t=Ce.min,n=Ce.max,r=Ce.type,i=Ce.name,a=Ce.check,u=Ce.length,l=Ce.regMsg,c=Ce.locale,s=Ce.required,d=Ce.msgOnSuccess,f=Ce.customFunc,!a)return[2];if(!r)return[3,5];if(-1===y.indexOf(r))return[3,3];if(!_.default[c]||!_.default[c][b])return console.error(h.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE),[2];if(v=_.default[c][b],g=i||"",s&&m.default.empty(Ie))return De(!0,v.empty(g)),[2];if(""!==String(Ie)){if(e&&m.default.reg(e,Ie))return De(!0,""!==l?l:v.invalid(g)),[2];if(t||n)if(t&&n){if(String(Ie).lengthn)return De(!0,v.inBetween(g)(t)(n)),[2]}else{if(t&&String(Ie).lengthn)return De(!0,v.greaterThan(g)(n)),[2]}if(u&&String(Ie).length!==u)return De(!0,v.lengthEqual(g)(u)),[2]}return f&&"function"==typeof f?[4,f(Ie)]:[3,2];case 1:if("object"==typeof(E=o.sent()))return"boolean"==typeof E.error&&"string"==typeof E.message&&(!1===E.error&&!0===E.showOnSuccess&&we(E.message),De(E.error,E.message,!0)),[2];if(!0!==E)return De(!0,E,!0),[2];o.label=2;case 2:return d&&we(d),De(!1,d),[3,4];case 3:console.error("The valid "+p.default.toCamelCase(b)(!0)+' "type" options in validationOption are ['+y.map(function(e){return e})+"]"),o.label=4;case 4:return[3,6];case 5:console.error('Please provide "type" in validationOption'),o.label=6;case 6:return[2]}})})},[Ie]),De=d(function(e,t,n){void 0===n&&(n=!1);var r=t,o=Ce.msgOnError;e&&o&&!n&&(r=o),he(e),ye(r),_e&&_e(e)},[]);s(function(){null!==Ae&&(O&&Ae.current.setAttribute("id",String(O)),S&&Ae.current.setAttribute("tabindex",String(S)))},[]),s(function(){j&&Fe()},[j]),s(function(){xe(String(C))},[C]),s(function(){void 0!==Ne&&Ne!==Ie&&Ce.customFunc&&Fe()},[Ie]),s(function(){Te&&Te.message&&(Te.showOnError&&De(Te.error,Te.message),!Te.error&&Te.showOnSuccess&&we(Te.message))},[ne]);var qe,Ue=G+" "+g.default.textarea__wrapper+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),Ve=X+" "+g.default.textarea__container+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),Be=B+" "+g.default.textarea__input+" "+(pe&&g.default.error)+" "+(""!==Se&&!pe&&g.default.success)+" "+(R&&g.default.disabled),$e=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(pe&&g.default.error),Ge=h.MSG_CLASS_IDENTITIFIER+" "+g.default.msg+" "+(!pe&&g.default.success),We=Ce.showMsg;return We&&pe&&be&&(qe=l.createElement("div",{className:$e},be)),We&&!pe&&""!==Se&&(qe=l.createElement("div",{className:Ge},Se)),l.createElement("div",{className:Ue,style:Z},l.createElement("div",{className:Ve,style:Y},l.createElement("textarea",{name:x,value:Ie,disabled:R,onBlur:Me,maxLength:Number(D),onKeyUp:Pe,onFocus:Le,onClick:Re,className:Be,onChange:je,style:H,placeholder:U,cols:Number(k),rows:Number(M),ref:ke})),qe)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="select";String.prototype.startsWith||(String.prototype.startsWith=function(e,t){var n=t||0;return this.indexOf(e,n)===n});t.isValidValue=function(e,t){var n=!1;if(e.length)for(var r=0;r=a){var u=Math.abs(i-a-o);u>=0&&!p?(ze.current.scrollTop=n+o-u,p=!0):ze.current.scrollTop=n+o}}"up"===e&&(p=!1,h*o<=n&&(ze.current.scrollTop=h*o))}else p=!1,ze.current.scrollTop=h*o}}}},[]),at=l(function(e,t){Je(e,t)},[]),ut=l(function(e){h=e,st()},[]),lt=l(function(){De(!1)},[]),ct=l(function(){dt()},[]),st=l(function(){He&&(dt(),null!==h&&(h>=He.length&&(h=0),h<0&&(h=He.length-1),He[h]&&(He[h].current.className+=" "+v.default[_+"__hover-active"])))},[]),dt=l(function(){for(var e=0;eL.length-1&&(h=L.length-1),st();else if(38===r)n="up",(h-=1)<0&&(h=0),st();else if(13===r&&h>-1){if(!He[h])return;He[h].current.click()}}else{ot();var o=Ue.concat([r]),i=String.fromCharCode.apply(String,o).toLowerCase(),a=-1;L.filter(function(e,t){e.name.toLowerCase().startsWith(i)&&-1===a&&(a=t)}),-1!==a&&(h=a,st()),Ve(o)}return it(n),h}},[Re,N,Ue]);u(function(){return Re&&Xe&&Xe.current.addEventListener("keydown",ft),function(){Xe.current.removeEventListener("keydown",ft)}},[Re,N,Ue]),u(function(){A&&et()},[A]),u(function(){t.isValidValue(L,ke)&&""!==ke&&"null"!==ke&&"undefined"!==ke?Se(!1):Ce("")},[ke]),u(function(){Ae(String(N))},[N]),u(function(){void 0!==Me&&Me!==ke&&et()},[Me,ke]),u(function(){$e&&$e.message&&($e.showOnError&&tt($e.error,$e.message),!$e.error&&$e.showOnSuccess&&Ce($e.message))},[ie]);var vt,_t,mt=f.WRAPPER_CLASS_IDENTITIFIER+" "+P+" "+v.default.select__wrapper+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),pt=f.CONTAINER_CLASS_IDENTITIFIER+" "+F+" "+v.default.select__container+" "+(Ee&&v.default.error)+" "+(Re&&v.default.show)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),ht=v.default.select__input+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),gt=q+" "+v.default.ellipsis+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),bt=$+" "+v.default[_+"__options-container"]+" "+(Ee&&v.default.error)+" "+(Re&&v.default.show)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),yt=(!Fe&&v.default[_+"__options-item-show-cursor"])+" "+V+" "+v.default[_+"__options-item"]+" "+(Ee&&v.default.error)+" "+(""!==Ne&&!Ee&&v.default.success)+" "+(T&&v.default.disabled),Et=W+" "+v.default[_+"__dropdown-icon"],St=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(Ee&&v.default.error),wt=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(!Ee&&v.default.success),Ot=Be.showMsg;Ot&&Ee&&Oe&&(vt=i.createElement("div",{className:St},Oe)),Ot&&!Ee&&""!==Ne&&(vt=i.createElement("div",{className:wt},Ne));var It=t.getItem(L,String(N));L.length&&(_t=ce||L.map(function(e,n){return i.createElement(t.Option,{key:n,index:n,id:"react-inputs-validation__select_option-"+e.id,refItem:He[n],className:String(e.id)===String(N)?yt+" "+v.default.active:""+yt,item:e,customStyleOptionListItem:J,onClick:at,onMouseOver:ut,onMouseMove:lt,onMouseOut:ct})}));var xt=ue||i.createElement("div",{className:v.default.select__dropdown},i.createElement("div",{className:v.default[_+"__dropdown-name"]+" "+v.default.ellipsis},It?It.name:""),i.createElement("div",{className:Et}));return i.createElement("div",{ref:Ge,className:mt,style:z,onClick:function(e){Ye(e),!T&&Pe(!Re)},onFocus:Qe,onBlur:Ze},i.createElement("div",{className:pt,style:K},i.createElement("input",{name:I,type:"hidden",value:N,className:ht,onChange:function(){}}),i.createElement("div",{className:gt,style:Q},xt),i.createElement("div",{ref:We,className:bt,style:te},_t)),vt)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="checkbox";t.default=s(function(e){var t,n,r,o,s,m=e.tabIndex,p=void 0===m?null:m,h=e.id,g=void 0===h?null:h,b=e.name,y=void 0===b?"":b,E=e.value,S=void 0===E?"":E,w=e.checked,O=void 0!==w&&w,I=e.disabled,x=void 0!==I&&I,N=e.validate,C=void 0!==N&&N,T=e.labelHtml,k=void 0===T?null:T,A=(e.classNameInput,e.classNameWrapper),M=void 0===A?"":A,L=e.classNameInputBox,R=void 0===L?"":L,P=e.classNameContainer,j=void 0===P?"":P,F=(e.customStyleInput,e.customStyleWrapper),D=void 0===F?{}:F,q=e.customStyleInputBox,U=void 0===q?{}:q,V=e.customStyleContainer,B=void 0===V?{}:V,$=e.validationOption,G=void 0===$?{}:$,W=e.asyncMsgObj,X=void 0===W?{}:W,z=e.onChange,H=void 0===z?function(){}:z,K=e.onBlur,Z=void 0===K?null:K,Q=e.onFocus,Y=void 0===Q?null:Q,J=e.onClick,ee=void 0===J?null:J,te=e.validationCallback,ne=void 0===te?null:te,re=a(!1),oe=re[0],ie=re[1],ae=a(""),ue=ae[0],le=ae[1],ce=a(""),se=ce[0],de=ce[1],fe=a(O),ve=fe[0],_e=fe[1],me=f.usePrevious(ve),pe=function(e){var t=e.name,n=e.check,r=e.required,o=e.showMsg,i=e.locale,a=e.msgOnError,u=e.msgOnSuccess;return{name:t=void 0!==t?t:"",check:n=void 0===n||n,showMsg:o=void 0===o||o,required:r=void 0===r||r,locale:i=void 0!==i?i:f.DEFAULT_LOCALE,msgOnError:a=void 0!==a?a:"",msgOnSuccess:u=void 0!==u?u:""}}(G),he=(n=(t=X).error,r=t.message,o=t.showOnError,s=t.showOnSuccess,{error:n=void 0!==n&&n,message:r=void 0!==r?r:"",showOnError:o=void 0===o||o,showOnSuccess:s=void 0!==s&&s}),ge=c(null),be=ge,ye=l(function(e){Z&&(Oe(),Z(e))},[ve]),Ee=l(function(e){Y&&Y(e)},[ve]),Se=l(function(e){we(e),ee&&ee(e)},[oe,ve]),we=l(function(e){x||null===be||(_e(!ve),H&&H(!ve,e),oe?ie(!1):de(""))},[oe,ve]),Oe=l(function(){var e=pe.name,t=pe.check,n=pe.locale,r=pe.required,o=pe.msgOnSuccess;if(t)if(d.default[n]&&d.default[n][_]){if(r){var i=d.default[n][_],a=e||"";if(!ve)return void Ie(!0,i.unchecked(a))}o&&de(o),Ie(!1,o)}else console.error(f.REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE)},[ve]),Ie=l(function(e,t){var n=t,r=pe.msgOnError;e&&r&&(n=r),ie(e),le(n),ne&&ne(e)},[]);u(function(){null!==be&&(g&&be.current.setAttribute("id",String(g)),p&&be.current.setAttribute("tabindex",String(p)))},[]),u(function(){C&&Oe()},[C,ve]),u(function(){_e(O)},[O]),u(function(){void 0!==me&&me!==ve&&Oe()},[me,ve]),u(function(){he&&he.message&&(he.showOnError&&Ie(he.error,he.message),!he.error&&he.showOnSuccess&&de(he.message))},[X]);var xe,Ne=f.WRAPPER_CLASS_IDENTITIFIER+" "+M+" "+v.default.checkbox__wrapper+" "+(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Ce=j+" "+v.default.checkbox__container+" "+(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Te=R+" "+v.default.checkbox__box+" "+(oe&&v.default.error)+" "+(ve&&v.default.checked)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),ke=(ve&&v.default.checked)+" "+(oe&&v.default.error)+" "+(""!==se&&!oe&&v.default.success)+" "+(x&&v.default.disabled),Ae=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(oe&&v.default.error),Me=f.MSG_CLASS_IDENTITIFIER+" "+v.default.msg+" "+(!oe&&v.default.success),Le=pe.showMsg;return Le&&oe&&ue&&(xe=i.createElement("div",{className:Ae},ue)),Le&&!oe&&""!==se&&(xe=i.createElement("div",{className:Me},se)),i.createElement("div",{ref:ge,className:Ne,style:D,onClick:Se,onBlur:ye,onFocus:Ee},i.createElement("div",{className:Ce,style:B},i.createElement("div",{className:Te,style:U},i.createElement("div",{className:v.default.box}),i.createElement("input",{name:y,type:_,className:v.default.checkbox__input,value:String(S),defaultChecked:ve,disabled:x,onChange:we})),i.createElement("label",{className:ke},k)),xe)})},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(0)),a=i.useState,u=i.useEffect,l=i.useCallback,c=i.useRef,s=i.memo,d=o(n(2)),f=n(1),v=o(n(3)),_="radiobox";t.isValidValue=function(e,t){var n=!1;if(e.length)for(var r=0;r {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n","import { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE } from './const';\n\nconst getEnglishName = (name: string) => {\n let res = '';\n if (name) {\n res = `${name} `;\n }\n return res;\n};\n\nconst TEXT_BOX_VALIDATION_ZH_CN = {\n empty: (name: string) => `${name}不能为空`,\n invalid: (name: string) => `${name}格式有误`,\n invalidFormat: (name: string) => `${name}不是数字`,\n inBetween: (name: string) => (min: number) => (max: number) => `${name}必须在${min}-${max}之间`,\n lessThan: (name: string) => (min: number) => `${name}不可少于${min}`,\n greaterThan: (name: string) => (max: number) => `${name}不可大于${max}`,\n lengthEqual: (name: string) => (length: number) => `${name}长度必须为${length}`,\n twoInputsNotEqual: () => `两次输入不一致`,\n};\n\nconst TEXT_BOX_VALIDATION_EN_US = {\n empty: (name: string) => `${getEnglishName(name)}cannot be empty`,\n invalid: (name: string) => `${getEnglishName(name)}invalid format`,\n invalidFormat: (name: string) => `${getEnglishName(name)}is not a number`,\n inBetween: (name: string) => (min: number) => (max: number) => `${getEnglishName(name)}must be ${min}-${max}`,\n lessThan: (name: string) => (min: number) => `${getEnglishName(name)}cannot less than ${min}`,\n greaterThan: (name: string) => (max: number) => `${getEnglishName(name)}cannot greater than ${max}`,\n lengthEqual: (name: string) => (length: number) => `${getEnglishName(name)}length must be ${length}`,\n twoInputsNotEqual: () => `two inputs are not equal`,\n};\n\nconst TEXT_AREA_VALIDATION_ZH_CN = {\n empty: (name: string) => `${name}不能为空`,\n invalid: (name: string) => `${name}格式有误`,\n invalidFormat: (name: string) => `${name}不是数字`,\n inBetween: (name: string) => (min: number) => (max: number) => `${name}必须在${min}-${max}之间`,\n lessThan: (name: string) => (min: number) => `${name}不可少于${min}`,\n greaterThan: (name: string) => (max: number) => `${name}不可大于${max}`,\n lengthEqual: (name: string) => (length: number) => `${name}长度必须为${length}`,\n twoInputsNotEqual: () => `两次输入不一致`,\n};\n\nconst TEXT_AREA_VALIDATION_EN_US = {\n empty: (name: string) => `${getEnglishName(name)}cannot be empty`,\n invalid: (name: string) => `${getEnglishName(name)}invalid format`,\n invalidFormat: (name: string) => `${getEnglishName(name)}is not a number`,\n inBetween: (name: string) => (min: number) => (max: number) => `${getEnglishName(name)}must be ${min}-${max}`,\n lessThan: (name: string) => (min: number) => `${getEnglishName(name)}cannot less than ${min}`,\n greaterThan: (name: string) => (max: number) => `${getEnglishName(name)}cannot greater than ${max}`,\n lengthEqual: (name: string) => (length: number) => `${getEnglishName(name)}length must be ${length}`,\n twoInputsNotEqual: () => `two inputs are not equal`,\n};\n\nconst SELECT_VALIDATION_ZH_CN = {\n empty: (name: string) => `请选择一个${name}`,\n};\n\nconst SELECT_VALIDATION_EN_US = {\n empty: (name: string) => `Please select a ${getEnglishName(name)}`,\n};\n\nconst CHECK_BOX_VALIDATION_ZH_CN = {\n unchecked: (name: string) => `${name}必须勾选`,\n};\n\nconst CHECK_BOX_VALIDATION_EN_US = {\n unchecked: (name: string) => `${getEnglishName(name)}must be checked`,\n};\n\nconst RADIO_BOX_VALIDATION_ZH_CN = {\n empty: (name: string) => `必须勾选一个${name}`,\n};\n\nconst RADIO_BOX_VALIDATION_EN_US = {\n empty: (name: string) => `Please choose one ${getEnglishName(name)}`,\n};\n\ninterface Message {\n [key: string]: Key;\n}\n\ninterface Key {\n [key: string]: Func;\n}\n\ninterface Func {\n [key: string]: Function;\n}\n\nlet message: Message = {\n 'zh-CN': {\n textbox: TEXT_BOX_VALIDATION_ZH_CN,\n radiobox: RADIO_BOX_VALIDATION_ZH_CN,\n checkbox: CHECK_BOX_VALIDATION_ZH_CN,\n select: SELECT_VALIDATION_ZH_CN,\n textarea: TEXT_AREA_VALIDATION_ZH_CN,\n },\n 'en-US': {\n textbox: TEXT_BOX_VALIDATION_EN_US,\n radiobox: RADIO_BOX_VALIDATION_EN_US,\n checkbox: CHECK_BOX_VALIDATION_EN_US,\n select: SELECT_VALIDATION_EN_US,\n textarea: TEXT_AREA_VALIDATION_EN_US,\n },\n};\n\n// TODO: find a rewire way to handle non-export function\nexport const getCustomErrorMessage = (o: any, m: any) => {\n if (!o || typeof o !== 'object' || o.constructor !== Object || !Object.keys(o).length) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return false;\n }\n Object.keys(o).map(i => {\n if (!m[i]) {\n m[i] = o[i];\n } else {\n if (Object.keys(o[i]).length) {\n Object.keys(o[i]).map(j => {\n if (Object.keys(o[i][j]).length) {\n Object.keys(o[i][j]).map(k => {\n m[i][j][k] = o[i][j][k];\n });\n }\n });\n }\n }\n });\n return m;\n};\n\ndeclare global {\n interface Window {\n REACT_INPUTS_VALIDATION: any;\n }\n}\n\n// TODO: find a rewire way to handle non-export function\nexport const handleCustomErrorMessage = (message: any, w: Window) => {\n let res;\n if (typeof w !== 'undefined') {\n if (w.REACT_INPUTS_VALIDATION && w.REACT_INPUTS_VALIDATION['customErrorMessage']) {\n res = getCustomErrorMessage(w.REACT_INPUTS_VALIDATION['customErrorMessage'], message);\n }\n }\n if (typeof res === 'undefined' || res === false) {\n return message;\n }\n return res;\n};\n\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.REACT_INPUTS_VALIDATION = window.REACT_INPUTS_VALIDATION || {};\n message = handleCustomErrorMessage(message, window);\n}\n\nexport default message;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ellipsis\":\"react-inputs-validation__ellipsis___3-Api\",\"textbox__wrapper\":\"react-inputs-validation__textbox__wrapper___3tnXv\",\"textbox__container\":\"react-inputs-validation__textbox__container___3KXOM\",\"textbox__input\":\"react-inputs-validation__textbox__input___20hDL\",\"error\":\"react-inputs-validation__error___2aXSp\",\"success\":\"react-inputs-validation__success___3TpwE\",\"disabled\":\"react-inputs-validation__disabled___1-57g\",\"msg\":\"react-inputs-validation__msg___pxv8o\",\"textarea__wrapper\":\"react-inputs-validation__textarea__wrapper___35GhF\",\"textarea__container\":\"react-inputs-validation__textarea__container___2fbGp\",\"textarea__input\":\"react-inputs-validation__textarea__input___1CFm_\",\"radiobox__wrapper\":\"react-inputs-validation__radiobox__wrapper___1zZ30\",\"radiobox__container\":\"react-inputs-validation__radiobox__container___FD4vb\",\"radiobox__input\":\"react-inputs-validation__radiobox__input___2uX2-\",\"radiobox__label\":\"react-inputs-validation__radiobox__label___2tQsB\",\"checked\":\"react-inputs-validation__checked___2O0Ju\",\"radiobox__item\":\"react-inputs-validation__radiobox__item___ejuz1\",\"checkbox__wrapper\":\"react-inputs-validation__checkbox__wrapper___1c1rD\",\"checkbox__input\":\"react-inputs-validation__checkbox__input___1yF4X\",\"checkbox__container\":\"react-inputs-validation__checkbox__container___3I1rX\",\"checkbox__box\":\"react-inputs-validation__checkbox__box___1uj8A\",\"box\":\"react-inputs-validation__box___3E9nu\",\"select__wrapper\":\"react-inputs-validation__select__wrapper___1B4OH\",\"select__input\":\"react-inputs-validation__select__input___3h-P7\",\"select__container\":\"react-inputs-validation__select__container___3jgUR\",\"select__options-item\":\"react-inputs-validation__select__options-item___30yY4\",\"select__options-item-show-cursor\":\"react-inputs-validation__select__options-item-show-cursor___1ZT3b\",\"select__no-mouse\":\"react-inputs-validation__select__no-mouse___2uRg6\",\"select__hover-active\":\"react-inputs-validation__select__hover-active___2z1MQ\",\"active\":\"react-inputs-validation__active___3eZBB\",\"select__options-container-animate\":\"react-inputs-validation__select__options-container-animate___2Rm--\",\"show\":\"react-inputs-validation__show___2NI3u\",\"select__options-container\":\"react-inputs-validation__select__options-container___d54qE\",\"select__dropdown\":\"react-inputs-validation__select__dropdown___11yDr\",\"select__dropdown-icon\":\"react-inputs-validation__select__dropdown-icon___1T5r2\",\"select__dropdown-name\":\"react-inputs-validation__select__dropdown-name___3hghL\",\"select__dropdown-icon-container\":\"react-inputs-validation__select__dropdown-icon-container___2ild-\"};","const empty = (v: string) => (v.replace(/\\s/g, '').length ? false : true);\nconst number = (v: number, min: any, max: any) => {\n if (min === null && max === null){\n return true\n }\n if (!isNumeric(v)) {\n return false;\n }\n return v < min || v > max ? false : true;\n};\n// TODO: find a better type for regex\nconst reg = (reg: any, v: string) => {\n let err = true;\n if (reg.test(v)) {\n err = false;\n }\n return err;\n};\nconst isNumeric = (v: any) => {\n return !isNaN(parseFloat(v)) && isFinite(v);\n};\n\ninterface Validator {\n [key: string]: Function;\n}\n\nconst validator: Validator = {\n reg,\n empty,\n number,\n};\nexport default validator;\n","const camelize = (str: string) => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w|\\s+)/g, (match, index) => {\n if (+match === 0) return '';\n return index === 0 ? match.toLowerCase() : match.toUpperCase();\n });\n};\n\nconst toCamelCase = (str: string) => (capitalLize: boolean = false) => {\n const res = camelize(str);\n return capitalLize ? res.substr(0, 1).toUpperCase() + res.substr(1, res.length) : res;\n};\n\ninterface Utils {\n [key: string]: Function;\n}\n\nconst getRandomId = () => {\n return Math.random()\n .toString(36)\n .slice(-8);\n};\n\nconst getAlphanumeric = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if ((charCode >= 48 && charCode <= 57) || (charCode >= 97 && charCode <= 122)) {\n res += i;\n }\n });\n return res;\n};\n\nconst getAlpha = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if (charCode >= 97 && charCode <= 122) {\n res += i;\n }\n });\n return res;\n};\n\nconst getNumeric = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if (charCode >= 48 && charCode <= 57) {\n res += i;\n }\n });\n return res;\n};\n\nconst utils: Utils = {\n camelize,\n toCamelCase,\n getRandomId,\n getAlphanumeric,\n getAlpha,\n getNumeric,\n};\nexport default utils;\n","import Textbox from './Textbox';\nimport Textarea from './Textarea';\nimport Select from './Select';\nimport Checkbox from './Checkbox';\nimport Radiobox from './Radiobox';\n\nif (typeof window !== 'undefined') {\n (window).Textbox = Textbox;\n (window).Textarea = Textarea;\n (window).Radiobox = Radiobox;\n (window).Checkbox = Checkbox;\n (window).Select = Select;\n}\n\nexport { Textbox, Textarea, Select, Checkbox, Radiobox };\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport validator from './validator';\nimport utils from './utils';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'textbox';\nconst VALIDATE_OPTION_TYPE_LIST = ['string', 'number', 'alphanumeric', 'alpha'];\nconst VALIDATE_NUMBER_TYPE_LIST = ['decimal', 'int'];\nconst DEFAULT_MAX_LENGTH = 524288; // Default value is 524288\nconst DEFAULT_AUTO_COMPLETE = 'on'; // Default value is on\ninterface DefaultValidationOption {\n locale?: string;\n reg?: string;\n min?: number;\n max?: number;\n type?: string;\n numberType?: string;\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n length?: number;\n regMsg?: string;\n compare?: string;\n required?: boolean;\n msgOnError?: string;\n msgOnSuccess?: string;\n customFunc?: Function | undefined;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { reg, min, max, type, numberType, name, check, length, regMsg, compare, required, showMsg, locale, msgOnError, msgOnSuccess, customFunc } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n reg = typeof reg !== 'undefined' ? reg : '';\n min = typeof min !== 'undefined' ? min : 0;\n max = typeof max !== 'undefined' ? max : 0;\n type = typeof type !== 'undefined' ? type : 'string';\n numberType = typeof numberType !== 'undefined' ? numberType : 'string';\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n length = typeof length !== 'undefined' ? length : 0;\n regMsg = typeof regMsg !== 'undefined' ? regMsg : '';\n compare = typeof compare !== 'undefined' ? compare : '';\n required = typeof required !== 'undefined' ? required : true;\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n customFunc = typeof customFunc !== 'undefined' ? customFunc : undefined;\n return {\n reg,\n min,\n max,\n type,\n numberType,\n name,\n check,\n length,\n regMsg,\n locale,\n compare,\n required,\n showMsg,\n msgOnError,\n msgOnSuccess,\n customFunc,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n type?: string;\n value?: string;\n disabled?: boolean;\n validate?: boolean;\n autoComplete?: string;\n maxLength?: string | number;\n placeholder?: string;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n validationOption?: object;\n asyncMsgObj?: object;\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n validationCallback?: (res: boolean) => void;\n}\nconst autoFormatNumber = (v: number | string, numberType: string) => {\n const DOT = '.';\n let res = '';\n let hasDot = false;\n String(v)\n .split('')\n .filter(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if ((charCode >= 48 && charCode <= 57) || (charCode === 46 && !hasDot)) {\n if (charCode === 46) {\n if (numberType === VALIDATE_NUMBER_TYPE_LIST[1]) {\n return;\n }\n hasDot = true;\n }\n res += i;\n }\n });\n if (numberType === VALIDATE_NUMBER_TYPE_LIST[0]) {\n if (res.length && res[0] === DOT) {\n res = `0${res}`;\n }\n }\n return res;\n};\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n type = 'text',\n value = '',\n disabled = false,\n validate = false,\n autoComplete = DEFAULT_AUTO_COMPLETE,\n maxLength = DEFAULT_MAX_LENGTH,\n placeholder = '',\n classNameInput = '',\n classNameWrapper = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = (v: string, e: React.ChangeEvent) => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n onKeyUp = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n if (onKeyUp) {\n const { keyCode } = e;\n const keyCodeTab = 9;\n if (keyCode !== keyCodeTab) {\n check();\n }\n onKeyUp(e);\n }\n },\n [internalValue],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n let v = $el.current.value;\n if ((typeof maxLength === 'string' && maxLength !== '') || (typeof maxLength === 'number' && maxLength !== 0)) {\n if (v.length > Number(maxLength)) {\n return;\n }\n }\n const { type, numberType } = option;\n if (type === VALIDATE_OPTION_TYPE_LIST[1]) {\n v = String(autoFormatNumber(v, VALIDATE_NUMBER_TYPE_LIST.indexOf(numberType) >= 0 ? numberType : VALIDATE_NUMBER_TYPE_LIST[0]));\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[2]) {\n v = utils.getAlphanumeric(v);\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[3]) {\n v = utils.getAlpha(v);\n }\n setInternalValue(v);\n onChange && onChange(v, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err],\n );\n const check = useCallback(\n async () => {\n const { reg, min, max, type, name, check, length, regMsg, locale, compare, required, msgOnSuccess, customFunc } = option;\n if (!check) {\n return;\n }\n if (type) {\n if (VALIDATE_OPTION_TYPE_LIST.indexOf(type) !== -1) {\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (required) {\n if (validator.empty(internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (String(internalValue) !== '') {\n if (reg) {\n if (validator['reg'](reg, internalValue)) {\n handleCheckEnd(true, regMsg !== '' ? regMsg : msg.invalid(nameText));\n return;\n }\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[0]) {\n if (min || max) {\n if (min && max) {\n if (String(internalValue).length < min || String(internalValue).length > max) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (String(internalValue).length < min) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (String(internalValue).length > max) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[1]) {\n if (!validator[type](internalValue, null, null)) {\n handleCheckEnd(true, msg.invalid(nameText));\n return;\n }\n if (min || max) {\n if (min && max) {\n if (!validator[type](internalValue, min, max)) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (!validator[type](internalValue, min)) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (!validator[type](internalValue, 0, max)) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (compare && compare !== '') {\n if (internalValue !== compare) {\n handleCheckEnd(true, msg.twoInputsNotEqual());\n return;\n }\n }\n }\n if (customFunc && typeof customFunc === 'function') {\n const customFuncResult = await customFunc(internalValue);\n if (typeof customFuncResult === 'object') {\n if (typeof customFuncResult.error === 'boolean' && typeof customFuncResult.message === 'string') {\n if (customFuncResult.error === false && customFuncResult.showOnSuccess === true) {\n setSuccessMsg(customFuncResult.message);\n }\n handleCheckEnd(customFuncResult.error, customFuncResult.message, true);\n }\n return;\n }\n if (customFuncResult !== true) {\n handleCheckEnd(true, customFuncResult, true);\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n } else {\n console.error(`The valid ${utils.toCamelCase(TYPE)(true)} \"type\" options in validationOption are [${VALIDATE_OPTION_TYPE_LIST.map(i => i)}]`);\n }\n } else {\n console.error('Please provide \"type\" in validationOption');\n }\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string, fromCustomFunc: boolean = false) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError && !fromCustomFunc) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (prevInternalValue && prevInternalValue !== internalValue) {\n if (option.customFunc) {\n check();\n }\n }\n },\n [internalValue],\n );\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n $el.current.removeAttribute('value');\n });\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","/** @license React v16.8.6\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var k=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.concurrent_mode\"):60111,y=n?Symbol.for(\"react.forward_ref\"):60112,z=n?Symbol.for(\"react.suspense\"):60113,aa=n?Symbol.for(\"react.memo\"):\n60115,ba=n?Symbol.for(\"react.lazy\"):60116,A=\"function\"===typeof Symbol&&Symbol.iterator;function ca(a,b,d,c,e,g,h,f){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[d,c,e,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction B(a){for(var b=arguments.length-1,d=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=0;cP.length&&P.push(a)}\nfunction S(a,b,d,c){var e=typeof a;if(\"undefined\"===e||\"boolean\"===e)a=null;var g=!1;if(null===a)g=!0;else switch(e){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return d(c,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;h {\n let { reg, min, max, type, name, check, length, regMsg, required, showMsg, locale, msgOnError, msgOnSuccess, customFunc } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n reg = typeof reg !== 'undefined' ? reg : '';\n min = typeof min !== 'undefined' ? min : 0;\n max = typeof max !== 'undefined' ? max : 0;\n type = typeof type !== 'undefined' ? type : 'string';\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n length = typeof length !== 'undefined' ? length : 0;\n regMsg = typeof regMsg !== 'undefined' ? regMsg : '';\n required = typeof required !== 'undefined' ? required : true;\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n customFunc = typeof customFunc !== 'undefined' ? customFunc : undefined;\n return {\n reg,\n min,\n max,\n type,\n name,\n check,\n length,\n regMsg,\n locale,\n required,\n showMsg,\n msgOnError,\n msgOnSuccess,\n customFunc,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n type?: string;\n value?: string;\n disabled?: boolean;\n validate?: boolean;\n maxLength?: string | number;\n cols?: string | number;\n rows?: string | number;\n placeholder?: string;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n validationOption?: object;\n asyncMsgObj?: object;\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n validationCallback?: (res: boolean) => void;\n}\n\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n cols = DEFAULT_ROWS,\n rows = DEFAULT_COLS,\n disabled = false,\n validate = false,\n maxLength = DEFAULT_MAX_LENGTH,\n placeholder = '',\n classNameInput = '',\n classNameWrapper = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n onKeyUp = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n if (onKeyUp) {\n const { keyCode } = e;\n const keyCodeTab = 9;\n if (keyCode !== keyCodeTab) {\n check();\n }\n onKeyUp(e);\n }\n },\n [internalValue],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n const v = $el.current.value;\n if ((typeof maxLength === 'string' && maxLength !== '') || (typeof maxLength === 'number' && maxLength !== 0)) {\n if (v.length > Number(maxLength)) {\n return;\n }\n }\n setInternalValue(v);\n onChange && onChange(v, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err],\n );\n const check = useCallback(\n async () => {\n const { reg, min, max, type, name, check, length, regMsg, locale, required, msgOnSuccess, customFunc } = option;\n if (!check) {\n return;\n }\n if (type) {\n if (VALIDATE_OPTION_TYPE_LIST.indexOf(type) !== -1) {\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (required) {\n if (validator.empty(internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (String(internalValue) !== '') {\n if (reg) {\n if (validator['reg'](reg, internalValue)) {\n handleCheckEnd(true, regMsg !== '' ? regMsg : msg.invalid(nameText));\n return;\n }\n }\n if (min || max) {\n if (min && max) {\n if (String(internalValue).length < min || String(internalValue).length > max) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (String(internalValue).length < min) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (String(internalValue).length > max) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (customFunc && typeof customFunc === 'function') {\n const customFuncResult = await customFunc(internalValue);\n if (typeof customFuncResult === 'object') {\n if (typeof customFuncResult.error === 'boolean' && typeof customFuncResult.message === 'string') {\n if (customFuncResult.error === false && customFuncResult.showOnSuccess === true) {\n setSuccessMsg(customFuncResult.message);\n }\n handleCheckEnd(customFuncResult.error, customFuncResult.message, true);\n }\n return;\n }\n if (customFuncResult !== true) {\n handleCheckEnd(true, customFuncResult, true);\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n } else {\n console.error(`The valid ${utils.toCamelCase(TYPE)(true)} \"type\" options in validationOption are [${VALIDATE_OPTION_TYPE_LIST.map(i => i)}]`);\n }\n } else {\n console.error('Please provide \"type\" in validationOption');\n }\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string, fromCustomFunc: boolean = false) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError && !fromCustomFunc) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (prevInternalValue && prevInternalValue !== internalValue) {\n if (option.customFunc) {\n check();\n }\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, CONTAINER_CLASS_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'select';\n/* istanbul ignore next */\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function(searchString, position) {\n const p = position || 0;\n return this.indexOf(searchString, p) === p;\n };\n}\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\nexport const isValidValue = (list: OptionListItem[], value: any) => {\n let res = false;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = true;\n break;\n }\n }\n }\n return res;\n};\nexport const getItem = (list: OptionListItem[], value: any) => {\n let res = null;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = list[i];\n break;\n }\n }\n }\n return res;\n};\nexport const getIndex = (list: OptionListItem[], value: string) => {\n let key = -1;\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n key = i;\n break;\n }\n }\n return key;\n};\ninterface OptionListItem {\n id: string;\n name: string;\n}\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | number;\n disabled?: boolean;\n validate?: boolean;\n optionList: OptionListItem[];\n onChange: (res: string, e: React.MouseEvent) => void;\n onBlur?: (e: React.FocusEvent | Event) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n selectHtml?: React.ReactNode;\n selectOptionListItemHtml?: React.ReactNode;\n classNameWrapper?: string;\n classNameContainer?: string;\n classNameSelect?: string;\n classNameOptionListContainer?: string;\n classNameDropdownIconOptionListItem?: string;\n classNameOptionListItem?: string;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleSelect?: object;\n customStyleOptionListContainer?: object;\n customStyleDropdownIcon?: object;\n customStyleOptionListItem?: object;\n validationCallback?: (res: boolean) => void;\n}\ninterface Node {\n [key: string]: any;\n}\nlet globalVariableIsFocusing: boolean = false;\nlet globalVariableIsCorrected: boolean = false;\nlet globalVariableCurrentFocus: any | null = null;\nlet globalVariableTypingTimeout: any | null = null;\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n disabled = false,\n validate = false,\n optionList = [],\n classNameWrapper = '',\n classNameContainer = '',\n classNameSelect = '',\n classNameOptionListItem = '',\n classNameOptionListContainer = '',\n classNameDropdownIconOptionListItem = '',\n customStyleWrapper = {},\n customStyleContainer = {},\n customStyleSelect = {},\n customStyleOptionListItem = {},\n customStyleOptionListContainer = {},\n customStyleDropdownIcon = {},\n validationOption = {},\n asyncMsgObj = {},\n selectHtml = null,\n selectOptionListItemHtml = null,\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const [show, setShow] = useState(false);\n const [isTyping, setIsTyping] = useState(false);\n const initKeycodeList: number[] = [];\n const [keycodeList, setKeycodeList] = useState(initKeycodeList);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $wrapper = useRef(null);\n const $itemsWrapper = useRef(null);\n const $elWrapper: { [key: string]: any } | null = $wrapper;\n const $elItemsWrapper: { [key: string]: any } | null = $itemsWrapper;\n const $itemsRef: { [key: string]: any } = [];\n if (optionList.length) {\n for (let i = 0; i < optionList.length; i += 1) {\n $itemsRef.push(useRef(null));\n }\n }\n const handleOnBlur = useCallback(\n (e: React.FocusEvent | Event) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnChange = useCallback((v: string, e: React.MouseEvent) => {\n if (disabled || $elWrapper === null) {\n return;\n }\n onChange && onChange(String(v), e);\n }, []);\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!isValidValue(optionList, internalValue) || internalValue === '' || internalValue === 'null' || internalValue === 'undefined') {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n useEffect(() => {\n if ($elWrapper === null) {\n return;\n }\n window.addEventListener('mousedown', pageClick);\n window.addEventListener('touchstart', pageClick);\n if (id) {\n $elWrapper.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $elWrapper.current.setAttribute('tabindex', String(tabIndex));\n }\n return () => {\n window.removeEventListener('mousedown', pageClick);\n window.removeEventListener('touchstart', pageClick);\n $elWrapper.current.removeEventListener('keydown', onKeyDown);\n };\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const pageClick = useCallback((e: Event) => {\n if ($elWrapper === null || $elWrapper.current.contains(e.target)) {\n return;\n }\n if (globalVariableIsFocusing) {\n handleOnBlur(e);\n globalVariableIsFocusing = false;\n }\n setShow(false);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const resetCurrentFocus = useCallback(\n () => {\n globalVariableCurrentFocus = getIndex(optionList, internalValue);\n scroll();\n },\n [internalValue],\n );\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const setTimeoutTyping = useCallback(() => {\n if (globalVariableTypingTimeout) {\n clearTimeout(globalVariableTypingTimeout);\n }\n globalVariableTypingTimeout = setTimeout(() => {\n setKeycodeList([]);\n }, 250);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const scroll = useCallback((direction: undefined | string = undefined) => {\n if ($elItemsWrapper === null) {\n return;\n }\n const containerHeight = $elItemsWrapper.current.offsetHeight;\n const containerScrollTop = $elItemsWrapper.current.scrollTop;\n if (!globalVariableCurrentFocus || !$itemsRef[globalVariableCurrentFocus]) {\n return;\n }\n const $elOptionItem: Node | null = $itemsRef[globalVariableCurrentFocus];\n if ($elOptionItem === null) {\n return;\n }\n const itemHeight = $elOptionItem.current.offsetHeight;\n if (direction) {\n if (direction === 'down') {\n const bound = containerScrollTop + containerHeight;\n const heightItems = globalVariableCurrentFocus * itemHeight;\n const heightContainer = bound - itemHeight;\n if (heightItems >= heightContainer) {\n const offset = Math.abs(heightItems - heightContainer - itemHeight);\n if (offset >= 0 && !globalVariableIsCorrected) {\n $elItemsWrapper.current.scrollTop = containerScrollTop + itemHeight - offset;\n globalVariableIsCorrected = true;\n } else {\n $elItemsWrapper.current.scrollTop = containerScrollTop + itemHeight;\n }\n }\n }\n if (direction === 'up') {\n globalVariableIsCorrected = false;\n if (globalVariableCurrentFocus * itemHeight <= containerScrollTop) {\n $elItemsWrapper.current.scrollTop = globalVariableCurrentFocus * itemHeight;\n }\n }\n } else {\n globalVariableIsCorrected = false;\n $elItemsWrapper.current.scrollTop = globalVariableCurrentFocus * itemHeight;\n }\n }, []);\n const handleOnItemClick = useCallback((v: string, e: React.MouseEvent) => {\n handleOnChange(v, e);\n }, []);\n const handleOnItemMouseOver = useCallback((index: number) => {\n globalVariableCurrentFocus = index;\n addActive();\n }, []);\n const handleOnItemMouseMove = useCallback(() => {\n setIsTyping(false);\n }, []);\n const handleOnItemMouseOut = useCallback(() => {\n removeActive();\n }, []);\n const addActive = useCallback(() => {\n if (!$itemsRef) return;\n removeActive();\n if (globalVariableCurrentFocus === null) return;\n if (globalVariableCurrentFocus >= $itemsRef.length) globalVariableCurrentFocus = 0;\n if (globalVariableCurrentFocus < 0) globalVariableCurrentFocus = $itemsRef.length - 1;\n const $node: Node | null = $itemsRef[globalVariableCurrentFocus];\n /* istanbul ignore next because it won't happen */\n if (!$node) {\n return;\n }\n $itemsRef[globalVariableCurrentFocus].current.className += ` ${reactInputsValidationCss[`${TYPE}__hover-active`]}`;\n }, []);\n const removeActive = useCallback(() => {\n for (let i = 0; i < $itemsRef.length; i += 1) {\n const $node: Node | null = $itemsRef[i];\n if (!$node) {\n break;\n }\n if ($node && $node.current) {\n $node.current.className = $node.current.className.replace(reactInputsValidationCss[`${TYPE}__hover-active`], '');\n }\n }\n }, []);\n\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n setIsTyping(true);\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (!show) {\n return;\n }\n globalVariableCurrentFocus = globalVariableCurrentFocus === null ? getIndex(optionList, String(value)) : globalVariableCurrentFocus;\n let direction = undefined;\n const { keyCode } = e;\n const keyCodeEsc = 27;\n const keyCodeDown = 40;\n const keyCodeUp = 38;\n const keyCodeEnter = 13;\n const selectKeyList = [keyCodeEsc, keyCodeDown, keyCodeUp, keyCodeEnter];\n if (selectKeyList.indexOf(keyCode) !== -1) {\n if (keyCode === keyCodeEsc) {\n setShow(false);\n resetCurrentFocus();\n return;\n }\n if (keyCode === keyCodeDown) {\n direction = 'down';\n globalVariableCurrentFocus += 1;\n if (globalVariableCurrentFocus > optionList.length - 1) {\n globalVariableCurrentFocus = optionList.length - 1;\n }\n addActive();\n } else if (keyCode === keyCodeUp) {\n direction = 'up';\n globalVariableCurrentFocus -= 1;\n if (globalVariableCurrentFocus < 0) {\n globalVariableCurrentFocus = 0;\n }\n addActive();\n } else if (keyCode === keyCodeEnter) {\n if (globalVariableCurrentFocus > -1) {\n if ($itemsRef[globalVariableCurrentFocus]) {\n $itemsRef[globalVariableCurrentFocus].current.click();\n } else {\n return;\n }\n }\n }\n } else {\n setTimeoutTyping();\n const newkeyCodeList = [...keycodeList, keyCode];\n const str = String.fromCharCode(...newkeyCodeList).toLowerCase();\n let index = -1;\n optionList.filter((i, k) => {\n const { name } = i;\n if (name.toLowerCase().startsWith(str)) {\n if (index === -1) {\n index = k;\n }\n }\n });\n if (index !== -1) {\n globalVariableCurrentFocus = index;\n addActive();\n }\n setKeycodeList(newkeyCodeList);\n }\n scroll(direction);\n return globalVariableCurrentFocus;\n },\n [show, value, keycodeList],\n );\n useEffect(\n () => {\n if (show && $elWrapper) {\n $elWrapper.current.addEventListener('keydown', onKeyDown);\n }\n return () => {\n $elWrapper.current.removeEventListener('keydown', onKeyDown);\n };\n },\n [show, value, keycodeList],\n );\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n if (!(!isValidValue(optionList, internalValue) || internalValue === '' || internalValue === 'null' || internalValue === 'undefined')) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n check();\n }\n },\n [prevInternalValue, internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${CONTAINER_CLASS_IDENTITIFIER} ${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${show &&\n reactInputsValidationCss['show']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled &&\n reactInputsValidationCss['disabled']}`;\n const selectClass = `${classNameSelect} ${reactInputsValidationCss['ellipsis']} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const selectOptionListContainerClass = `${classNameOptionListContainer} ${reactInputsValidationCss[`${TYPE}__options-container`]} ${err && reactInputsValidationCss['error']} ${show &&\n reactInputsValidationCss['show']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const selectOptionListItemClass = `${!isTyping && reactInputsValidationCss[`${TYPE}__options-item-show-cursor`]} ${classNameOptionListItem} ${\n reactInputsValidationCss[`${TYPE}__options-item`]\n } ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const dropdownIconClass = `${classNameDropdownIconOptionListItem} ${reactInputsValidationCss[`${TYPE}__dropdown-icon`]}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n let optionListHtml;\n const item = getItem(optionList, String(value));\n if (optionList.length) {\n if (selectOptionListItemHtml) {\n optionListHtml = selectOptionListItemHtml;\n } else {\n optionListHtml = optionList.map((i, k) => (\n \n ));\n }\n }\n const selectorHtml = selectHtml ? (\n selectHtml\n ) : (\n
\n
{item ? item.name : ''}
\n
\n
\n );\n return (\n {\n handleOnClick(e);\n !disabled ? setShow(!show) : ``;\n }}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n >\n
\n {}} />\n
\n {selectorHtml}\n
\n
\n {optionListHtml}\n
\n
\n {msgHtml}\n
\n );\n};\ninterface OptionProps {\n index?: number;\n id?: string;\n refItem?: React.RefObject;\n className?: string;\n item?: OptionListItem;\n customStyleOptionListItem?: object;\n onClick?: (res: string, e: React.MouseEvent) => void;\n onMouseOver?: (res: number) => void;\n onMouseMove?: () => void;\n onMouseOut?: () => void;\n}\nexport const Option: React.FC = memo(\n ({\n index = -1,\n refItem = null,\n id = '',\n className = '',\n item = { id: '', name: '' },\n customStyleOptionListItem = {},\n onClick = () => {},\n onMouseOver = () => {},\n onMouseMove = () => {},\n onMouseOut = () => {},\n }) => {\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n onClick(item.id, e);\n }, []);\n const handleOnMouseOver = useCallback(() => {\n onMouseOver(index);\n }, []);\n const handleOnMouseMove = useCallback(() => {\n onMouseMove();\n }, []);\n const handleOnMouseOut = useCallback(() => {\n onMouseOut();\n }, []);\n return (\n \n {item.name}\n
\n );\n },\n);\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'checkbox';\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | boolean;\n checked?: boolean;\n disabled?: boolean;\n labelHtml?: React.ReactNode;\n validate?: boolean;\n onChange: (res: boolean, e: React.ChangeEvent | React.MouseEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameInputBox?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleInputBox?: object;\n validationCallback?: (res: boolean) => void;\n}\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n checked = false,\n disabled = false,\n validate = false,\n labelHtml = null,\n classNameInput = '',\n classNameWrapper = '',\n classNameInputBox = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleInputBox = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalChecked, setInternalChecked] = useState(checked);\n const prevInternalChecked = usePrevious(internalChecked);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalChecked],\n );\n const handleOnFocus = useCallback(\n (e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n },\n [internalChecked],\n );\n const handleOnClick = useCallback(\n (e: React.MouseEvent) => {\n handleOnChange(e);\n if (onClick) {\n onClick(e);\n }\n },\n [err, internalChecked],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent | React.MouseEvent) => {\n if (disabled || $el === null) {\n return;\n }\n setInternalChecked(!internalChecked);\n onChange && onChange(!internalChecked, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err, internalChecked],\n );\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!internalChecked) {\n handleCheckEnd(true, msg.unchecked(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalChecked],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate, internalChecked],\n );\n useEffect(\n () => {\n setInternalChecked(checked);\n },\n [checked],\n );\n useEffect(\n () => {\n if (typeof prevInternalChecked !== 'undefined' && prevInternalChecked !== internalChecked) {\n check();\n }\n },\n [prevInternalChecked, internalChecked],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${internalChecked && reactInputsValidationCss['checked']} ${err &&\n reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${internalChecked && reactInputsValidationCss['checked']} ${err &&\n reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const boxClass = `${classNameInputBox} ${reactInputsValidationCss[`${TYPE}__box`]} ${err && reactInputsValidationCss['error']} ${internalChecked &&\n reactInputsValidationCss['checked']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const labelClass = `${internalChecked && reactInputsValidationCss['checked']} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n
\n
\n \n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, OPTION_LIST_ITEM_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'radiobox';\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\nexport const isValidValue = (list: OptionListItem[], value: any) => {\n let res = false;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = true;\n break;\n }\n }\n }\n return res;\n};\ninterface OptionListItem {\n id: string;\n name: string;\n}\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | number;\n disabled?: boolean;\n validate?: boolean;\n optionList?: OptionListItem[];\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n classNameWrapper?: string;\n classNameInput?: string;\n classNameContainer?: string;\n classNameOptionListItem?: string;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleInput?: object;\n customStyleOptionListItem?: object;\n validationCallback?: (res: boolean) => void;\n}\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n disabled = false,\n validate = false,\n optionList = [],\n classNameWrapper = '',\n classNameInput = '',\n classNameContainer = '',\n classNameOptionListItem = '',\n customStyleWrapper = {},\n customStyleContainer = {},\n customStyleInput = {},\n customStyleOptionListItem = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnChange = useCallback((val: string, e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n setInternalValue(val);\n onChange && onChange(val, e);\n }, []);\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!isValidValue(optionList, internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n if (internalValue && isValidValue(optionList, internalValue)) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n check();\n }\n },\n [prevInternalValue, internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__wrapper`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__container`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__input`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const labelClass = `${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${reactInputsValidationCss[`${TYPE}__label`]} ${disabled &&\n reactInputsValidationCss['disabled']}`;\n const optionListItemClass = `${OPTION_LIST_ITEM_IDENTITIFIER} ${classNameOptionListItem} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${reactInputsValidationCss[`${TYPE}__item`]} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n let optionHtml;\n if (optionList.length) {\n optionHtml = optionList.map((i, k) => {\n const checked = String(i.id) === String(internalValue) ? true : false;\n return (\n \n );\n });\n }\n return (\n
\n
\n {optionHtml}\n
\n {msgHtml}\n
\n );\n};\ninterface OptionProps {\n checked?: boolean;\n id?: string;\n name?: string;\n optionListItemClass?: string;\n labelClass?: string;\n inputClass?: string;\n value?: string | number;\n disabled?: boolean;\n item?: OptionListItem;\n customStyleOptionListItem?: object;\n customStyleInput?: object;\n onChange?: (res: string, e: React.ChangeEvent) => void;\n}\nexport const Option: React.FC = memo(\n ({\n checked = false,\n id = '',\n name = '',\n optionListItemClass = '',\n labelClass = '',\n inputClass = '',\n value = '',\n disabled = false,\n item = { id: '', name: '' },\n customStyleOptionListItem = {},\n customStyleInput = {},\n onChange = () => {},\n }) => {\n const handleOnChange = useCallback(e => {\n onChange(item.id, e);\n }, []);\n return (\n
\n \n \n
\n );\n },\n);\nexport default memo(component);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://react-inputs-validation/webpack/universalModuleDefinition","webpack://react-inputs-validation/webpack/bootstrap","webpack://react-inputs-validation/./node_modules/_react@16.8.6@react/index.js","webpack://react-inputs-validation/./src/js/Inputs/const.ts","webpack://react-inputs-validation/./src/js/Inputs/message.ts","webpack://react-inputs-validation/./src/js/Inputs/react-inputs-validation.css?df4a","webpack://react-inputs-validation/./src/js/Inputs/validator.ts","webpack://react-inputs-validation/./src/js/Inputs/utils.ts","webpack://react-inputs-validation/./src/js/Inputs/index.umd.ts","webpack://react-inputs-validation/./src/js/Inputs/Textbox.tsx","webpack://react-inputs-validation/./node_modules/_react@16.8.6@react/cjs/react.production.min.js","webpack://react-inputs-validation/./node_modules/_object-assign@4.1.1@object-assign/index.js","webpack://react-inputs-validation/./src/js/Inputs/Textarea.tsx","webpack://react-inputs-validation/./src/js/Inputs/Select.tsx","webpack://react-inputs-validation/./src/js/Inputs/Checkbox.tsx","webpack://react-inputs-validation/./src/js/Inputs/Radiobox.tsx"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","React","__importStar","useEffect","useRef","LOCALE_OPTION_LIST","REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE","DEFAULT_LOCALE","WRAPPER_CLASS_IDENTITIFIER","CONTAINER_CLASS_IDENTITIFIER","OPTION_LIST_ITEM_IDENTITIFIER","MSG_CLASS_IDENTITIFIER","usePrevious","ref","current","const_1","getEnglishName","res","message","zh-CN","textbox","empty","invalid","invalidFormat","inBetween","min","max","lessThan","greaterThan","lengthEqual","length","twoInputsNotEqual","radiobox","checkbox","unchecked","select","textarea","en-US","getCustomErrorMessage","constructor","keys","map","j","k","console","error","handleCustomErrorMessage","w","REACT_INPUTS_VALIDATION","default","ellipsis","textbox__wrapper","textbox__container","textbox__input","success","disabled","msg","textarea__wrapper","textarea__container","textarea__input","radiobox__wrapper","radiobox__container","radiobox__input","radiobox__label","checked","radiobox__item","checkbox__wrapper","checkbox__input","checkbox__container","checkbox__box","box","select__wrapper","select__input","select__container","select__options-item","select__options-item-show-cursor","select__no-mouse","select__hover-active","active","select__options-container-animate","show","select__options-container","select__dropdown","select__dropdown-icon","select__dropdown-name","select__dropdown-icon-container","isNumeric","v","isNaN","parseFloat","isFinite","validator","reg","err","test","replace","number","camelize","str","match","index","toLowerCase","toUpperCase","utils","toCamelCase","capitalLize","substr","getRandomId","Math","random","toString","slice","getAlphanumeric","String","split","forEach","charCode","charCodeAt","getAlpha","getNumeric","Textbox_1","__importDefault","Textbox","Textarea_1","Textarea","Select_1","Select","Checkbox_1","Checkbox","Radiobox_1","Radiobox","_this","this","useState","useCallback","memo","message_1","validator_1","utils_1","react_inputs_validation_css_1","TYPE","VALIDATE_OPTION_TYPE_LIST","VALIDATE_NUMBER_TYPE_LIST","_a","obj","showOnError","showOnSuccess","_b","tabIndex","_c","id","_d","_e","type","_f","_g","_h","validate","_j","autoComplete","_k","maxLength","_l","placeholder","_m","classNameInput","_o","classNameWrapper","_p","classNameContainer","_q","customStyleInput","_r","customStyleWrapper","_s","customStyleContainer","_t","validationOption","_u","asyncMsgObj","_v","onChange","e","_w","onBlur","_x","onFocus","_y","onClick","_z","onKeyUp","_0","validationCallback","_1","setErr","_2","setMsg","_3","successMsg","setSuccessMsg","_4","internalValue","setInternalValue","prevInternalValue","option","numberType","check","regMsg","compare","required","showMsg","locale","msgOnError","msgOnSuccess","customFunc","undefined","getDefaultValidationOption","asyncObj","$input","$el","handleOnBlur","handleOnFocus","handleOnClick","handleOnKeyUp","keyCode","handleOnChange","Number","hasDot","filter","autoFormatNumber","indexOf","__awaiter","msg_1","nameText","handleCheckEnd","customFuncResult","sent","fromCustomFunc","setAttribute","msgHtml","wrapperClass","containerClass","inputClass","errMsgClass","successMsgClass","createElement","className","style","for","q","u","x","y","z","aa","ba","A","iterator","B","a","b","arguments","encodeURIComponent","g","h","f","Error","framesToPop","ca","C","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","D","E","props","context","refs","updater","F","G","isReactComponent","setState","forceUpdate","H","isPureReactComponent","I","J","K","L","__self","__source","M","children","Array","defaultProps","$$typeof","_owner","N","O","P","Q","pop","result","keyPrefix","func","count","R","push","U","S","T","isArray","next","done","join","=",":","escape","ea","fa","V","da","W","X","Children","toArray","only","createRef","Component","PureComponent","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","forwardRef","render","lazy","_ctor","_status","_result","useContext","useImperativeHandle","useDebugValue","useLayoutEffect","useMemo","useReducer","Fragment","StrictMode","Suspense","cloneElement","createFactory","isValidElement","version","unstable_ConcurrentMode","unstable_Profiler","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentOwner","assign","Y","Z","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","target","source","from","symbols","to","val","TypeError","toObject","cols","rows","startsWith","searchString","position","isValidValue","list","getItem","getIndex","globalVariableIsFocusing","globalVariableIsCorrected","globalVariableCurrentFocus","globalVariableTypingTimeout","Option","refItem","item","customStyleOptionListItem","onMouseOver","onMouseMove","onMouseOut","handleOnMouseOver","handleOnMouseMove","handleOnMouseOut","optionList","classNameSelect","classNameOptionListItem","classNameOptionListContainer","classNameDropdownIconOptionListItem","customStyleSelect","customStyleOptionListContainer","customStyleDropdownIcon","selectHtml","selectOptionListItemHtml","_5","_6","_7","_8","_9","setShow","_10","isTyping","setIsTyping","_11","keycodeList","setKeycodeList","$wrapper","$itemsWrapper","$elWrapper","$elItemsWrapper","$itemsRef","addEventListener","pageClick","removeEventListener","onKeyDown","contains","resetCurrentFocus","scroll","setTimeoutTyping","clearTimeout","setTimeout","direction","containerHeight","offsetHeight","containerScrollTop","scrollTop","$elOptionItem","itemHeight","heightItems","heightContainer","offset","abs","handleOnItemClick","handleOnItemMouseOver","addActive","handleOnItemMouseMove","handleOnItemMouseOut","removeActive","$node","preventDefault","click","newkeyCodeList","concat","str_1","apply","index_1","optionListHtml","selectClass","selectOptionListContainerClass","selectOptionListItemClass","dropdownIconClass","selectorHtml","labelHtml","classNameInputBox","customStyleInputBox","internalChecked","setInternalChecked","prevInternalChecked","boxClass","labelClass","defaultChecked","optionListItemClass","htmlFor","optionHtml"],"mappings":"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","file":"react-inputs-validation.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"react-inputs-validation\"] = factory();\n\telse\n\t\troot[\"react-inputs-validation\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import * as React from 'react';\nconst { useEffect, useRef } = React;\nexport const LOCALE_OPTION_LIST = ['en-US', 'zh-CN'];\nexport const REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE =\n \"Invalid window.REACT_INPUTS_VALIDATION['customErrorMessage']. EXAMPLE: window.REACT_INPUTS_VALIDATION={customErrorMessage:{'en-US':{textbox:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}},radiobox:{empty:function empty(name){return'Please choose one '+getEnglishName(name)}},checkbox:{unchecked:function unchecked(name){return getEnglishName(name)+'must be checked'}},select:{empty:function empty(name){return'Please select a '+getEnglishName(name)}},textarea:{empty:function empty(name){return getEnglishName(name)+'cannot be empty'},invalid:function invalid(name){return getEnglishName(name)+'invalid format'},invalidFormat:function invalidFormat(name){return getEnglishName(name)+'is not a number'},inBetween:function inBetween(name){return function(min){return function(max){return getEnglishName(name)+'must be '+min+'-'+max}}},lessThan:function lessThan(name){return function(min){return getEnglishName(name)+'cannot less than '+min}},greaterThan:function greaterThan(name){return function(max){return getEnglishName(name)+'cannot greater than '+max}},lengthEqual:function lengthEqual(name){return function(length){return getEnglishName(name)+'length must be '+length}},twoInputsNotEqual:function twoInputsNotEqual(){return'two inputs are not equal'}}}}};\";\nexport const DEFAULT_LOCALE = 'en-US';\nexport const WRAPPER_CLASS_IDENTITIFIER = 'react-inputs-validation__wrapper_identifier';\nexport const CONTAINER_CLASS_IDENTITIFIER = 'react-inputs-validation__container_identifier';\nexport const OPTION_LIST_ITEM_IDENTITIFIER = 'react-inputs-validation__option-list-item_identifier';\nexport const MSG_CLASS_IDENTITIFIER = 'react-inputs-validation__msg_identifier';\nexport const usePrevious = (value: any) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n","import { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE } from './const';\n\nconst getEnglishName = (name: string) => {\n let res = '';\n if (name) {\n res = `${name} `;\n }\n return res;\n};\n\nconst TEXT_BOX_VALIDATION_ZH_CN = {\n empty: (name: string) => `${name}不能为空`,\n invalid: (name: string) => `${name}格式有误`,\n invalidFormat: (name: string) => `${name}不是数字`,\n inBetween: (name: string) => (min: number) => (max: number) => `${name}必须在${min}-${max}之间`,\n lessThan: (name: string) => (min: number) => `${name}不可少于${min}`,\n greaterThan: (name: string) => (max: number) => `${name}不可大于${max}`,\n lengthEqual: (name: string) => (length: number) => `${name}长度必须为${length}`,\n twoInputsNotEqual: () => `两次输入不一致`,\n};\n\nconst TEXT_BOX_VALIDATION_EN_US = {\n empty: (name: string) => `${getEnglishName(name)}cannot be empty`,\n invalid: (name: string) => `${getEnglishName(name)}invalid format`,\n invalidFormat: (name: string) => `${getEnglishName(name)}is not a number`,\n inBetween: (name: string) => (min: number) => (max: number) => `${getEnglishName(name)}must be ${min}-${max}`,\n lessThan: (name: string) => (min: number) => `${getEnglishName(name)}cannot less than ${min}`,\n greaterThan: (name: string) => (max: number) => `${getEnglishName(name)}cannot greater than ${max}`,\n lengthEqual: (name: string) => (length: number) => `${getEnglishName(name)}length must be ${length}`,\n twoInputsNotEqual: () => `two inputs are not equal`,\n};\n\nconst TEXT_AREA_VALIDATION_ZH_CN = {\n empty: (name: string) => `${name}不能为空`,\n invalid: (name: string) => `${name}格式有误`,\n invalidFormat: (name: string) => `${name}不是数字`,\n inBetween: (name: string) => (min: number) => (max: number) => `${name}必须在${min}-${max}之间`,\n lessThan: (name: string) => (min: number) => `${name}不可少于${min}`,\n greaterThan: (name: string) => (max: number) => `${name}不可大于${max}`,\n lengthEqual: (name: string) => (length: number) => `${name}长度必须为${length}`,\n twoInputsNotEqual: () => `两次输入不一致`,\n};\n\nconst TEXT_AREA_VALIDATION_EN_US = {\n empty: (name: string) => `${getEnglishName(name)}cannot be empty`,\n invalid: (name: string) => `${getEnglishName(name)}invalid format`,\n invalidFormat: (name: string) => `${getEnglishName(name)}is not a number`,\n inBetween: (name: string) => (min: number) => (max: number) => `${getEnglishName(name)}must be ${min}-${max}`,\n lessThan: (name: string) => (min: number) => `${getEnglishName(name)}cannot less than ${min}`,\n greaterThan: (name: string) => (max: number) => `${getEnglishName(name)}cannot greater than ${max}`,\n lengthEqual: (name: string) => (length: number) => `${getEnglishName(name)}length must be ${length}`,\n twoInputsNotEqual: () => `two inputs are not equal`,\n};\n\nconst SELECT_VALIDATION_ZH_CN = {\n empty: (name: string) => `请选择一个${name}`,\n};\n\nconst SELECT_VALIDATION_EN_US = {\n empty: (name: string) => `Please select a ${getEnglishName(name)}`,\n};\n\nconst CHECK_BOX_VALIDATION_ZH_CN = {\n unchecked: (name: string) => `${name}必须勾选`,\n};\n\nconst CHECK_BOX_VALIDATION_EN_US = {\n unchecked: (name: string) => `${getEnglishName(name)}must be checked`,\n};\n\nconst RADIO_BOX_VALIDATION_ZH_CN = {\n empty: (name: string) => `必须勾选一个${name}`,\n};\n\nconst RADIO_BOX_VALIDATION_EN_US = {\n empty: (name: string) => `Please choose one ${getEnglishName(name)}`,\n};\n\ninterface Message {\n [key: string]: Key;\n}\n\ninterface Key {\n [key: string]: Func;\n}\n\ninterface Func {\n [key: string]: Function;\n}\n\nlet message: Message = {\n 'zh-CN': {\n textbox: TEXT_BOX_VALIDATION_ZH_CN,\n radiobox: RADIO_BOX_VALIDATION_ZH_CN,\n checkbox: CHECK_BOX_VALIDATION_ZH_CN,\n select: SELECT_VALIDATION_ZH_CN,\n textarea: TEXT_AREA_VALIDATION_ZH_CN,\n },\n 'en-US': {\n textbox: TEXT_BOX_VALIDATION_EN_US,\n radiobox: RADIO_BOX_VALIDATION_EN_US,\n checkbox: CHECK_BOX_VALIDATION_EN_US,\n select: SELECT_VALIDATION_EN_US,\n textarea: TEXT_AREA_VALIDATION_EN_US,\n },\n};\n\n// TODO: find a rewire way to handle non-export function\nexport const getCustomErrorMessage = (o: any, m: any) => {\n if (!o || typeof o !== 'object' || o.constructor !== Object || !Object.keys(o).length) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return false;\n }\n Object.keys(o).map(i => {\n if (!m[i]) {\n m[i] = o[i];\n } else {\n if (Object.keys(o[i]).length) {\n Object.keys(o[i]).map(j => {\n if (Object.keys(o[i][j]).length) {\n Object.keys(o[i][j]).map(k => {\n m[i][j][k] = o[i][j][k];\n });\n }\n });\n }\n }\n });\n return m;\n};\n\ndeclare global {\n interface Window {\n REACT_INPUTS_VALIDATION: any;\n }\n}\n\n// TODO: find a rewire way to handle non-export function\nexport const handleCustomErrorMessage = (message: any, w: Window) => {\n let res;\n if (typeof w !== 'undefined') {\n if (w.REACT_INPUTS_VALIDATION && w.REACT_INPUTS_VALIDATION['customErrorMessage']) {\n res = getCustomErrorMessage(w.REACT_INPUTS_VALIDATION['customErrorMessage'], message);\n }\n }\n if (typeof res === 'undefined' || res === false) {\n return message;\n }\n return res;\n};\n\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.REACT_INPUTS_VALIDATION = window.REACT_INPUTS_VALIDATION || {};\n message = handleCustomErrorMessage(message, window);\n}\n\nexport default message;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ellipsis\":\"react-inputs-validation__ellipsis___3-Api\",\"textbox__wrapper\":\"react-inputs-validation__textbox__wrapper___3tnXv\",\"textbox__container\":\"react-inputs-validation__textbox__container___3KXOM\",\"textbox__input\":\"react-inputs-validation__textbox__input___20hDL\",\"error\":\"react-inputs-validation__error___2aXSp\",\"success\":\"react-inputs-validation__success___3TpwE\",\"disabled\":\"react-inputs-validation__disabled___1-57g\",\"msg\":\"react-inputs-validation__msg___pxv8o\",\"textarea__wrapper\":\"react-inputs-validation__textarea__wrapper___35GhF\",\"textarea__container\":\"react-inputs-validation__textarea__container___2fbGp\",\"textarea__input\":\"react-inputs-validation__textarea__input___1CFm_\",\"radiobox__wrapper\":\"react-inputs-validation__radiobox__wrapper___1zZ30\",\"radiobox__container\":\"react-inputs-validation__radiobox__container___FD4vb\",\"radiobox__input\":\"react-inputs-validation__radiobox__input___2uX2-\",\"radiobox__label\":\"react-inputs-validation__radiobox__label___2tQsB\",\"checked\":\"react-inputs-validation__checked___2O0Ju\",\"radiobox__item\":\"react-inputs-validation__radiobox__item___ejuz1\",\"checkbox__wrapper\":\"react-inputs-validation__checkbox__wrapper___1c1rD\",\"checkbox__input\":\"react-inputs-validation__checkbox__input___1yF4X\",\"checkbox__container\":\"react-inputs-validation__checkbox__container___3I1rX\",\"checkbox__box\":\"react-inputs-validation__checkbox__box___1uj8A\",\"box\":\"react-inputs-validation__box___3E9nu\",\"select__wrapper\":\"react-inputs-validation__select__wrapper___1B4OH\",\"select__input\":\"react-inputs-validation__select__input___3h-P7\",\"select__container\":\"react-inputs-validation__select__container___3jgUR\",\"select__options-item\":\"react-inputs-validation__select__options-item___30yY4\",\"select__options-item-show-cursor\":\"react-inputs-validation__select__options-item-show-cursor___1ZT3b\",\"select__no-mouse\":\"react-inputs-validation__select__no-mouse___2uRg6\",\"select__hover-active\":\"react-inputs-validation__select__hover-active___2z1MQ\",\"active\":\"react-inputs-validation__active___3eZBB\",\"select__options-container-animate\":\"react-inputs-validation__select__options-container-animate___2Rm--\",\"show\":\"react-inputs-validation__show___2NI3u\",\"select__options-container\":\"react-inputs-validation__select__options-container___d54qE\",\"select__dropdown\":\"react-inputs-validation__select__dropdown___11yDr\",\"select__dropdown-icon\":\"react-inputs-validation__select__dropdown-icon___1T5r2\",\"select__dropdown-name\":\"react-inputs-validation__select__dropdown-name___3hghL\",\"select__dropdown-icon-container\":\"react-inputs-validation__select__dropdown-icon-container___2ild-\"};","const empty = (v: string) => (v.replace(/\\s/g, '').length ? false : true);\nconst number = (v: number, min: any, max: any) => {\n if (min === null && max === null){\n return true\n }\n if (!isNumeric(v)) {\n return false;\n }\n return v < min || v > max ? false : true;\n};\n// TODO: find a better type for regex\nconst reg = (reg: any, v: string) => {\n let err = true;\n if (reg.test(v)) {\n err = false;\n }\n return err;\n};\nconst isNumeric = (v: any) => {\n return !isNaN(parseFloat(v)) && isFinite(v);\n};\n\ninterface Validator {\n [key: string]: Function;\n}\n\nconst validator: Validator = {\n reg,\n empty,\n number,\n};\nexport default validator;\n","const camelize = (str: string) => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w|\\s+)/g, (match, index) => {\n if (+match === 0) return '';\n return index === 0 ? match.toLowerCase() : match.toUpperCase();\n });\n};\n\nconst toCamelCase = (str: string) => (capitalLize: boolean = false) => {\n const res = camelize(str);\n return capitalLize ? res.substr(0, 1).toUpperCase() + res.substr(1, res.length) : res;\n};\n\ninterface Utils {\n [key: string]: Function;\n}\n\nconst getRandomId = () => {\n return Math.random()\n .toString(36)\n .slice(-8);\n};\n\nconst getAlphanumeric = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if ((charCode >= 48 && charCode <= 57) || (charCode >= 97 && charCode <= 122)) {\n res += i;\n }\n });\n return res;\n};\n\nconst getAlpha = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if (charCode >= 97 && charCode <= 122) {\n res += i;\n }\n });\n return res;\n};\n\nconst getNumeric = (v: string) => {\n let res = '';\n String(v)\n .split('')\n .forEach(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if (charCode >= 48 && charCode <= 57) {\n res += i;\n }\n });\n return res;\n};\n\nconst utils: Utils = {\n camelize,\n toCamelCase,\n getRandomId,\n getAlphanumeric,\n getAlpha,\n getNumeric,\n};\nexport default utils;\n","import Textbox from './Textbox';\nimport Textarea from './Textarea';\nimport Select from './Select';\nimport Checkbox from './Checkbox';\nimport Radiobox from './Radiobox';\n\nif (typeof window !== 'undefined') {\n (window).Textbox = Textbox;\n (window).Textarea = Textarea;\n (window).Radiobox = Radiobox;\n (window).Checkbox = Checkbox;\n (window).Select = Select;\n}\n\nexport { Textbox, Textarea, Select, Checkbox, Radiobox };\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport validator from './validator';\nimport utils from './utils';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'textbox';\nconst VALIDATE_OPTION_TYPE_LIST = ['string', 'number', 'alphanumeric', 'alpha'];\nconst VALIDATE_NUMBER_TYPE_LIST = ['decimal', 'int'];\nconst DEFAULT_MAX_LENGTH = 524288; // Default value is 524288\nconst DEFAULT_AUTO_COMPLETE = 'on'; // Default value is on\ninterface DefaultValidationOption {\n locale?: string;\n reg?: string;\n min?: number;\n max?: number;\n type?: string;\n numberType?: string;\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n length?: number;\n regMsg?: string;\n compare?: string;\n required?: boolean;\n msgOnError?: string;\n msgOnSuccess?: string;\n customFunc?: Function | undefined;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { reg, min, max, type, numberType, name, check, length, regMsg, compare, required, showMsg, locale, msgOnError, msgOnSuccess, customFunc } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n reg = typeof reg !== 'undefined' ? reg : '';\n min = typeof min !== 'undefined' ? min : 0;\n max = typeof max !== 'undefined' ? max : 0;\n type = typeof type !== 'undefined' ? type : 'string';\n numberType = typeof numberType !== 'undefined' ? numberType : 'string';\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n length = typeof length !== 'undefined' ? length : 0;\n regMsg = typeof regMsg !== 'undefined' ? regMsg : '';\n compare = typeof compare !== 'undefined' ? compare : '';\n required = typeof required !== 'undefined' ? required : true;\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n customFunc = typeof customFunc !== 'undefined' ? customFunc : undefined;\n return {\n reg,\n min,\n max,\n type,\n numberType,\n name,\n check,\n length,\n regMsg,\n locale,\n compare,\n required,\n showMsg,\n msgOnError,\n msgOnSuccess,\n customFunc,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n type?: string;\n value?: string;\n disabled?: boolean;\n validate?: boolean;\n autoComplete?: string;\n maxLength?: string | number;\n placeholder?: string;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n validationOption?: object;\n asyncMsgObj?: object;\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n validationCallback?: (res: boolean) => void;\n}\nconst autoFormatNumber = (v: number | string, numberType: string) => {\n const DOT = '.';\n let res = '';\n let hasDot = false;\n String(v)\n .split('')\n .filter(i => {\n const charCode = i.toLowerCase().charCodeAt(0);\n if ((charCode >= 48 && charCode <= 57) || (charCode === 46 && !hasDot)) {\n if (charCode === 46) {\n if (numberType === VALIDATE_NUMBER_TYPE_LIST[1]) {\n return;\n }\n hasDot = true;\n }\n res += i;\n }\n });\n if (numberType === VALIDATE_NUMBER_TYPE_LIST[0]) {\n if (res.length && res[0] === DOT) {\n res = `0${res}`;\n }\n }\n return res;\n};\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n type = 'text',\n value = '',\n disabled = false,\n validate = false,\n autoComplete = DEFAULT_AUTO_COMPLETE,\n maxLength = DEFAULT_MAX_LENGTH,\n placeholder = '',\n classNameInput = '',\n classNameWrapper = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = (v: string, e: React.ChangeEvent) => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n onKeyUp = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n if (onKeyUp) {\n const { keyCode } = e;\n const keyCodeTab = 9;\n if (keyCode !== keyCodeTab) {\n check();\n }\n onKeyUp(e);\n }\n },\n [internalValue],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n let v = $el.current.value;\n if ((typeof maxLength === 'string' && maxLength !== '') || (typeof maxLength === 'number' && maxLength !== 0)) {\n if (v.length > Number(maxLength)) {\n return;\n }\n }\n const { type, numberType } = option;\n if (type === VALIDATE_OPTION_TYPE_LIST[1]) {\n v = String(autoFormatNumber(v, VALIDATE_NUMBER_TYPE_LIST.indexOf(numberType) >= 0 ? numberType : VALIDATE_NUMBER_TYPE_LIST[0]));\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[2]) {\n v = utils.getAlphanumeric(v);\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[3]) {\n v = utils.getAlpha(v);\n }\n setInternalValue(v);\n onChange && onChange(v, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err],\n );\n const check = useCallback(\n async () => {\n const { reg, min, max, type, name, check, length, regMsg, locale, compare, required, msgOnSuccess, customFunc } = option;\n if (!check) {\n return;\n }\n if (type) {\n if (VALIDATE_OPTION_TYPE_LIST.indexOf(type) !== -1) {\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (required) {\n if (validator.empty(internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (String(internalValue) !== '') {\n if (reg) {\n if (validator['reg'](reg, internalValue)) {\n handleCheckEnd(true, regMsg !== '' ? regMsg : msg.invalid(nameText));\n return;\n }\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[0]) {\n if (min || max) {\n if (min && max) {\n if (String(internalValue).length < min || String(internalValue).length > max) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (String(internalValue).length < min) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (String(internalValue).length > max) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (type === VALIDATE_OPTION_TYPE_LIST[1]) {\n if (!validator[type](internalValue, null, null)) {\n handleCheckEnd(true, msg.invalid(nameText));\n return;\n }\n if (min || max) {\n if (min && max) {\n if (!validator[type](internalValue, min, max)) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (!validator[type](internalValue, min)) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (!validator[type](internalValue, 0, max)) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (compare && compare !== '') {\n if (internalValue !== compare) {\n handleCheckEnd(true, msg.twoInputsNotEqual());\n return;\n }\n }\n }\n if (customFunc && typeof customFunc === 'function') {\n const customFuncResult = await customFunc(internalValue);\n if (typeof customFuncResult === 'object') {\n if (typeof customFuncResult.error === 'boolean' && typeof customFuncResult.message === 'string') {\n if (customFuncResult.error === false && customFuncResult.showOnSuccess === true) {\n setSuccessMsg(customFuncResult.message);\n }\n handleCheckEnd(customFuncResult.error, customFuncResult.message, true);\n }\n return;\n }\n if (customFuncResult !== true) {\n handleCheckEnd(true, customFuncResult, true);\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n } else {\n console.error(`The valid ${utils.toCamelCase(TYPE)(true)} \"type\" options in validationOption are [${VALIDATE_OPTION_TYPE_LIST.map(i => i)}]`);\n }\n } else {\n console.error('Please provide \"type\" in validationOption');\n }\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string, fromCustomFunc: boolean = false) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError && !fromCustomFunc) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n if (option.customFunc) {\n check();\n }\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","/** @license React v16.8.6\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var k=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.concurrent_mode\"):60111,y=n?Symbol.for(\"react.forward_ref\"):60112,z=n?Symbol.for(\"react.suspense\"):60113,aa=n?Symbol.for(\"react.memo\"):\n60115,ba=n?Symbol.for(\"react.lazy\"):60116,A=\"function\"===typeof Symbol&&Symbol.iterator;function ca(a,b,d,c,e,g,h,f){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[d,c,e,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction B(a){for(var b=arguments.length-1,d=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=0;cP.length&&P.push(a)}\nfunction S(a,b,d,c){var e=typeof a;if(\"undefined\"===e||\"boolean\"===e)a=null;var g=!1;if(null===a)g=!0;else switch(e){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return d(c,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;h {\n let { reg, min, max, type, name, check, length, regMsg, required, showMsg, locale, msgOnError, msgOnSuccess, customFunc } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n reg = typeof reg !== 'undefined' ? reg : '';\n min = typeof min !== 'undefined' ? min : 0;\n max = typeof max !== 'undefined' ? max : 0;\n type = typeof type !== 'undefined' ? type : 'string';\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n length = typeof length !== 'undefined' ? length : 0;\n regMsg = typeof regMsg !== 'undefined' ? regMsg : '';\n required = typeof required !== 'undefined' ? required : true;\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n customFunc = typeof customFunc !== 'undefined' ? customFunc : undefined;\n return {\n reg,\n min,\n max,\n type,\n name,\n check,\n length,\n regMsg,\n locale,\n required,\n showMsg,\n msgOnError,\n msgOnSuccess,\n customFunc,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n type?: string;\n value?: string;\n disabled?: boolean;\n validate?: boolean;\n maxLength?: string | number;\n cols?: string | number;\n rows?: string | number;\n placeholder?: string;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n validationOption?: object;\n asyncMsgObj?: object;\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n validationCallback?: (res: boolean) => void;\n}\n\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n cols = DEFAULT_ROWS,\n rows = DEFAULT_COLS,\n disabled = false,\n validate = false,\n maxLength = DEFAULT_MAX_LENGTH,\n placeholder = '',\n classNameInput = '',\n classNameWrapper = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n onKeyUp = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n if (onKeyUp) {\n const { keyCode } = e;\n const keyCodeTab = 9;\n if (keyCode !== keyCodeTab) {\n check();\n }\n onKeyUp(e);\n }\n },\n [internalValue],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n const v = $el.current.value;\n if ((typeof maxLength === 'string' && maxLength !== '') || (typeof maxLength === 'number' && maxLength !== 0)) {\n if (v.length > Number(maxLength)) {\n return;\n }\n }\n setInternalValue(v);\n onChange && onChange(v, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err],\n );\n const check = useCallback(\n async () => {\n const { reg, min, max, type, name, check, length, regMsg, locale, required, msgOnSuccess, customFunc } = option;\n if (!check) {\n return;\n }\n if (type) {\n if (VALIDATE_OPTION_TYPE_LIST.indexOf(type) !== -1) {\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (required) {\n if (validator.empty(internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (String(internalValue) !== '') {\n if (reg) {\n if (validator['reg'](reg, internalValue)) {\n handleCheckEnd(true, regMsg !== '' ? regMsg : msg.invalid(nameText));\n return;\n }\n }\n if (min || max) {\n if (min && max) {\n if (String(internalValue).length < min || String(internalValue).length > max) {\n handleCheckEnd(true, msg.inBetween(nameText)(min)(max));\n return;\n }\n } else {\n if (min) {\n if (String(internalValue).length < min) {\n handleCheckEnd(true, msg.lessThan(nameText)(min));\n return;\n }\n }\n if (max) {\n if (String(internalValue).length > max) {\n handleCheckEnd(true, msg.greaterThan(nameText)(max));\n return;\n }\n }\n }\n }\n if (length) {\n if (String(internalValue).length !== length) {\n handleCheckEnd(true, msg.lengthEqual(nameText)(length));\n return;\n }\n }\n }\n if (customFunc && typeof customFunc === 'function') {\n const customFuncResult = await customFunc(internalValue);\n if (typeof customFuncResult === 'object') {\n if (typeof customFuncResult.error === 'boolean' && typeof customFuncResult.message === 'string') {\n if (customFuncResult.error === false && customFuncResult.showOnSuccess === true) {\n setSuccessMsg(customFuncResult.message);\n }\n handleCheckEnd(customFuncResult.error, customFuncResult.message, true);\n }\n return;\n }\n if (customFuncResult !== true) {\n handleCheckEnd(true, customFuncResult, true);\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n } else {\n console.error(`The valid ${utils.toCamelCase(TYPE)(true)} \"type\" options in validationOption are [${VALIDATE_OPTION_TYPE_LIST.map(i => i)}]`);\n }\n } else {\n console.error('Please provide \"type\" in validationOption');\n }\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string, fromCustomFunc: boolean = false) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError && !fromCustomFunc) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n if (option.customFunc) {\n check();\n }\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, CONTAINER_CLASS_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'select';\n/* istanbul ignore next */\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function(searchString, position) {\n const p = position || 0;\n return this.indexOf(searchString, p) === p;\n };\n}\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\nexport const isValidValue = (list: OptionListItem[], value: any) => {\n let res = false;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = true;\n break;\n }\n }\n }\n return res;\n};\nexport const getItem = (list: OptionListItem[], value: any) => {\n let res = null;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = list[i];\n break;\n }\n }\n }\n return res;\n};\nexport const getIndex = (list: OptionListItem[], value: string) => {\n let key = -1;\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n key = i;\n break;\n }\n }\n return key;\n};\ninterface OptionListItem {\n id: string;\n name: string;\n}\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | number;\n disabled?: boolean;\n validate?: boolean;\n optionList: OptionListItem[];\n onChange: (res: string, e: React.MouseEvent) => void;\n onBlur?: (e: React.FocusEvent | Event) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n selectHtml?: React.ReactNode;\n selectOptionListItemHtml?: React.ReactNode;\n classNameWrapper?: string;\n classNameContainer?: string;\n classNameSelect?: string;\n classNameOptionListContainer?: string;\n classNameDropdownIconOptionListItem?: string;\n classNameOptionListItem?: string;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleSelect?: object;\n customStyleOptionListContainer?: object;\n customStyleDropdownIcon?: object;\n customStyleOptionListItem?: object;\n validationCallback?: (res: boolean) => void;\n}\ninterface Node {\n [key: string]: any;\n}\nlet globalVariableIsFocusing: boolean = false;\nlet globalVariableIsCorrected: boolean = false;\nlet globalVariableCurrentFocus: any | null = null;\nlet globalVariableTypingTimeout: any | null = null;\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n disabled = false,\n validate = false,\n optionList = [],\n classNameWrapper = '',\n classNameContainer = '',\n classNameSelect = '',\n classNameOptionListItem = '',\n classNameOptionListContainer = '',\n classNameDropdownIconOptionListItem = '',\n customStyleWrapper = {},\n customStyleContainer = {},\n customStyleSelect = {},\n customStyleOptionListItem = {},\n customStyleOptionListContainer = {},\n customStyleDropdownIcon = {},\n validationOption = {},\n asyncMsgObj = {},\n selectHtml = null,\n selectOptionListItemHtml = null,\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const [show, setShow] = useState(false);\n const [isTyping, setIsTyping] = useState(false);\n const initKeycodeList: number[] = [];\n const [keycodeList, setKeycodeList] = useState(initKeycodeList);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $wrapper = useRef(null);\n const $itemsWrapper = useRef(null);\n const $elWrapper: { [key: string]: any } | null = $wrapper;\n const $elItemsWrapper: { [key: string]: any } | null = $itemsWrapper;\n const $itemsRef: { [key: string]: any } = [];\n if (optionList.length) {\n for (let i = 0; i < optionList.length; i += 1) {\n $itemsRef.push(useRef(null));\n }\n }\n const handleOnBlur = useCallback(\n (e: React.FocusEvent | Event) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnChange = useCallback((v: string, e: React.MouseEvent) => {\n if (disabled || $elWrapper === null) {\n return;\n }\n onChange && onChange(String(v), e);\n }, []);\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!isValidValue(optionList, internalValue) || internalValue === '' || internalValue === 'null' || internalValue === 'undefined') {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n useEffect(() => {\n if ($elWrapper === null) {\n return;\n }\n window.addEventListener('mousedown', pageClick);\n window.addEventListener('touchstart', pageClick);\n if (id) {\n $elWrapper.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $elWrapper.current.setAttribute('tabindex', String(tabIndex));\n }\n return () => {\n window.removeEventListener('mousedown', pageClick);\n window.removeEventListener('touchstart', pageClick);\n $elWrapper.current.removeEventListener('keydown', onKeyDown);\n };\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const pageClick = useCallback((e: Event) => {\n if ($elWrapper === null || $elWrapper.current.contains(e.target)) {\n return;\n }\n if (globalVariableIsFocusing) {\n handleOnBlur(e);\n globalVariableIsFocusing = false;\n }\n setShow(false);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const resetCurrentFocus = useCallback(\n () => {\n globalVariableCurrentFocus = getIndex(optionList, internalValue);\n scroll();\n },\n [internalValue],\n );\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const setTimeoutTyping = useCallback(() => {\n if (globalVariableTypingTimeout) {\n clearTimeout(globalVariableTypingTimeout);\n }\n globalVariableTypingTimeout = setTimeout(() => {\n setKeycodeList([]);\n }, 250);\n }, []);\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const scroll = useCallback((direction: undefined | string = undefined) => {\n if ($elItemsWrapper === null) {\n return;\n }\n const containerHeight = $elItemsWrapper.current.offsetHeight;\n const containerScrollTop = $elItemsWrapper.current.scrollTop;\n if (!globalVariableCurrentFocus || !$itemsRef[globalVariableCurrentFocus]) {\n return;\n }\n const $elOptionItem: Node | null = $itemsRef[globalVariableCurrentFocus];\n if ($elOptionItem === null) {\n return;\n }\n const itemHeight = $elOptionItem.current.offsetHeight;\n if (direction) {\n if (direction === 'down') {\n const bound = containerScrollTop + containerHeight;\n const heightItems = globalVariableCurrentFocus * itemHeight;\n const heightContainer = bound - itemHeight;\n if (heightItems >= heightContainer) {\n const offset = Math.abs(heightItems - heightContainer - itemHeight);\n if (offset >= 0 && !globalVariableIsCorrected) {\n $elItemsWrapper.current.scrollTop = containerScrollTop + itemHeight - offset;\n globalVariableIsCorrected = true;\n } else {\n $elItemsWrapper.current.scrollTop = containerScrollTop + itemHeight;\n }\n }\n }\n if (direction === 'up') {\n globalVariableIsCorrected = false;\n if (globalVariableCurrentFocus * itemHeight <= containerScrollTop) {\n $elItemsWrapper.current.scrollTop = globalVariableCurrentFocus * itemHeight;\n }\n }\n } else {\n globalVariableIsCorrected = false;\n $elItemsWrapper.current.scrollTop = globalVariableCurrentFocus * itemHeight;\n }\n }, []);\n const handleOnItemClick = useCallback((v: string, e: React.MouseEvent) => {\n handleOnChange(v, e);\n }, []);\n const handleOnItemMouseOver = useCallback((index: number) => {\n globalVariableCurrentFocus = index;\n addActive();\n }, []);\n const handleOnItemMouseMove = useCallback(() => {\n setIsTyping(false);\n }, []);\n const handleOnItemMouseOut = useCallback(() => {\n removeActive();\n }, []);\n const addActive = useCallback(() => {\n if (!$itemsRef) return;\n removeActive();\n if (globalVariableCurrentFocus === null) return;\n if (globalVariableCurrentFocus >= $itemsRef.length) globalVariableCurrentFocus = 0;\n if (globalVariableCurrentFocus < 0) globalVariableCurrentFocus = $itemsRef.length - 1;\n const $node: Node | null = $itemsRef[globalVariableCurrentFocus];\n /* istanbul ignore next because it won't happen */\n if (!$node) {\n return;\n }\n $itemsRef[globalVariableCurrentFocus].current.className += ` ${reactInputsValidationCss[`${TYPE}__hover-active`]}`;\n }, []);\n const removeActive = useCallback(() => {\n for (let i = 0; i < $itemsRef.length; i += 1) {\n const $node: Node | null = $itemsRef[i];\n if (!$node) {\n break;\n }\n if ($node && $node.current) {\n $node.current.className = $node.current.className.replace(reactInputsValidationCss[`${TYPE}__hover-active`], '');\n }\n }\n }, []);\n\n /* istanbul ignore next because of https://github.com/airbnb/enzyme/issues/441 && https://github.com/airbnb/enzyme/blob/master/docs/future.md */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n setIsTyping(true);\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (!show) {\n return;\n }\n globalVariableCurrentFocus = globalVariableCurrentFocus === null ? getIndex(optionList, String(value)) : globalVariableCurrentFocus;\n let direction = undefined;\n const { keyCode } = e;\n const keyCodeEsc = 27;\n const keyCodeDown = 40;\n const keyCodeUp = 38;\n const keyCodeEnter = 13;\n const selectKeyList = [keyCodeEsc, keyCodeDown, keyCodeUp, keyCodeEnter];\n if (selectKeyList.indexOf(keyCode) !== -1) {\n if (keyCode === keyCodeEsc) {\n setShow(false);\n resetCurrentFocus();\n return;\n }\n if (keyCode === keyCodeDown) {\n direction = 'down';\n globalVariableCurrentFocus += 1;\n if (globalVariableCurrentFocus > optionList.length - 1) {\n globalVariableCurrentFocus = optionList.length - 1;\n }\n addActive();\n } else if (keyCode === keyCodeUp) {\n direction = 'up';\n globalVariableCurrentFocus -= 1;\n if (globalVariableCurrentFocus < 0) {\n globalVariableCurrentFocus = 0;\n }\n addActive();\n } else if (keyCode === keyCodeEnter) {\n if (globalVariableCurrentFocus > -1) {\n if ($itemsRef[globalVariableCurrentFocus]) {\n $itemsRef[globalVariableCurrentFocus].current.click();\n } else {\n return;\n }\n }\n }\n } else {\n setTimeoutTyping();\n const newkeyCodeList = [...keycodeList, keyCode];\n const str = String.fromCharCode(...newkeyCodeList).toLowerCase();\n let index = -1;\n optionList.filter((i, k) => {\n const { name } = i;\n if (name.toLowerCase().startsWith(str)) {\n if (index === -1) {\n index = k;\n }\n }\n });\n if (index !== -1) {\n globalVariableCurrentFocus = index;\n addActive();\n }\n setKeycodeList(newkeyCodeList);\n }\n scroll(direction);\n return globalVariableCurrentFocus;\n },\n [show, value, keycodeList],\n );\n useEffect(\n () => {\n if (show && $elWrapper) {\n $elWrapper.current.addEventListener('keydown', onKeyDown);\n }\n return () => {\n $elWrapper.current.removeEventListener('keydown', onKeyDown);\n };\n },\n [show, value, keycodeList],\n );\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n if (!(!isValidValue(optionList, internalValue) || internalValue === '' || internalValue === 'null' || internalValue === 'undefined')) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n check();\n }\n },\n [prevInternalValue, internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${CONTAINER_CLASS_IDENTITIFIER} ${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${err && reactInputsValidationCss['error']} ${show &&\n reactInputsValidationCss['show']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${reactInputsValidationCss[`${TYPE}__input`]} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled &&\n reactInputsValidationCss['disabled']}`;\n const selectClass = `${classNameSelect} ${reactInputsValidationCss['ellipsis']} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const selectOptionListContainerClass = `${classNameOptionListContainer} ${reactInputsValidationCss[`${TYPE}__options-container`]} ${err && reactInputsValidationCss['error']} ${show &&\n reactInputsValidationCss['show']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const selectOptionListItemClass = `${!isTyping && reactInputsValidationCss[`${TYPE}__options-item-show-cursor`]} ${classNameOptionListItem} ${\n reactInputsValidationCss[`${TYPE}__options-item`]\n } ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const dropdownIconClass = `${classNameDropdownIconOptionListItem} ${reactInputsValidationCss[`${TYPE}__dropdown-icon`]}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n let optionListHtml;\n const item = getItem(optionList, String(value));\n if (optionList.length) {\n if (selectOptionListItemHtml) {\n optionListHtml = selectOptionListItemHtml;\n } else {\n optionListHtml = optionList.map((i, k) => (\n \n ));\n }\n }\n const selectorHtml = selectHtml ? (\n selectHtml\n ) : (\n
\n
{item ? item.name : ''}
\n
\n
\n );\n return (\n {\n handleOnClick(e);\n !disabled ? setShow(!show) : ``;\n }}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n >\n
\n {}} />\n
\n {selectorHtml}\n
\n
\n {optionListHtml}\n
\n
\n {msgHtml}\n
\n );\n};\ninterface OptionProps {\n index?: number;\n id?: string;\n refItem?: React.RefObject;\n className?: string;\n item?: OptionListItem;\n customStyleOptionListItem?: object;\n onClick?: (res: string, e: React.MouseEvent) => void;\n onMouseOver?: (res: number) => void;\n onMouseMove?: () => void;\n onMouseOut?: () => void;\n}\nexport const Option: React.FC = memo(\n ({\n index = -1,\n refItem = null,\n id = '',\n className = '',\n item = { id: '', name: '' },\n customStyleOptionListItem = {},\n onClick = () => {},\n onMouseOver = () => {},\n onMouseMove = () => {},\n onMouseOut = () => {},\n }) => {\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n onClick(item.id, e);\n }, []);\n const handleOnMouseOver = useCallback(() => {\n onMouseOver(index);\n }, []);\n const handleOnMouseMove = useCallback(() => {\n onMouseMove();\n }, []);\n const handleOnMouseOut = useCallback(() => {\n onMouseOut();\n }, []);\n return (\n \n {item.name}\n
\n );\n },\n);\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'checkbox';\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | boolean;\n checked?: boolean;\n disabled?: boolean;\n labelHtml?: React.ReactNode;\n validate?: boolean;\n onChange: (res: boolean, e: React.ChangeEvent | React.MouseEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n classNameInput?: string;\n classNameWrapper?: string;\n classNameInputBox?: string;\n classNameContainer?: string;\n customStyleInput?: object;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleInputBox?: object;\n validationCallback?: (res: boolean) => void;\n}\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n checked = false,\n disabled = false,\n validate = false,\n labelHtml = null,\n classNameInput = '',\n classNameWrapper = '',\n classNameInputBox = '',\n classNameContainer = '',\n customStyleInput = {},\n customStyleWrapper = {},\n customStyleInputBox = {},\n customStyleContainer = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalChecked, setInternalChecked] = useState(checked);\n const prevInternalChecked = usePrevious(internalChecked);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalChecked],\n );\n const handleOnFocus = useCallback(\n (e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n },\n [internalChecked],\n );\n const handleOnClick = useCallback(\n (e: React.MouseEvent) => {\n handleOnChange(e);\n if (onClick) {\n onClick(e);\n }\n },\n [err, internalChecked],\n );\n const handleOnChange = useCallback(\n (e: React.ChangeEvent | React.MouseEvent) => {\n if (disabled || $el === null) {\n return;\n }\n setInternalChecked(!internalChecked);\n onChange && onChange(!internalChecked, e);\n if (err) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [err, internalChecked],\n );\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!internalChecked) {\n handleCheckEnd(true, msg.unchecked(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalChecked],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate, internalChecked],\n );\n useEffect(\n () => {\n setInternalChecked(checked);\n },\n [checked],\n );\n useEffect(\n () => {\n if (typeof prevInternalChecked !== 'undefined' && prevInternalChecked !== internalChecked) {\n check();\n }\n },\n [prevInternalChecked, internalChecked],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${reactInputsValidationCss[`${TYPE}__wrapper`]} ${internalChecked && reactInputsValidationCss['checked']} ${err &&\n reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${reactInputsValidationCss[`${TYPE}__container`]} ${internalChecked && reactInputsValidationCss['checked']} ${err &&\n reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const boxClass = `${classNameInputBox} ${reactInputsValidationCss[`${TYPE}__box`]} ${err && reactInputsValidationCss['error']} ${internalChecked &&\n reactInputsValidationCss['checked']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const labelClass = `${internalChecked && reactInputsValidationCss['checked']} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n return (\n
\n
\n
\n
\n \n
\n \n
\n {msgHtml}\n
\n );\n};\nexport default memo(component);\n","import * as React from 'react';\nconst { useState, useEffect, useCallback, useRef, memo } = React;\nimport message from './message';\nimport { REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE, DEFAULT_LOCALE, WRAPPER_CLASS_IDENTITIFIER, OPTION_LIST_ITEM_IDENTITIFIER, MSG_CLASS_IDENTITIFIER, usePrevious } from './const';\nimport utils from './utils';\nimport reactInputsValidationCss from './react-inputs-validation.css';\nconst TYPE = 'radiobox';\ninterface DefaultValidationOption {\n name?: string;\n check?: boolean;\n showMsg?: boolean;\n required?: boolean;\n locale?: string;\n msgOnError?: string;\n msgOnSuccess?: string;\n}\nconst getDefaultValidationOption = (obj: DefaultValidationOption) => {\n let { name, check, required, showMsg, locale, msgOnError, msgOnSuccess } = obj;\n locale = typeof locale !== 'undefined' ? locale : DEFAULT_LOCALE;\n name = typeof name !== 'undefined' ? name : '';\n check = typeof check !== 'undefined' ? check : true;\n showMsg = typeof showMsg !== 'undefined' ? showMsg : true;\n required = typeof required !== 'undefined' ? required : true;\n msgOnSuccess = typeof msgOnSuccess !== 'undefined' ? msgOnSuccess : '';\n msgOnError = typeof msgOnError !== 'undefined' ? msgOnError : '';\n return {\n name,\n check,\n showMsg,\n required,\n locale,\n msgOnError,\n msgOnSuccess,\n };\n};\ninterface DefaultAsyncMsgObj {\n error?: boolean;\n message?: string;\n showOnError?: boolean;\n showOnSuccess?: boolean;\n}\nconst getDefaultAsyncObj = (obj: DefaultAsyncMsgObj) => {\n let { error, message, showOnError, showOnSuccess } = obj;\n error = typeof error !== 'undefined' ? error : false;\n message = typeof message !== 'undefined' ? message : '';\n showOnError = typeof showOnError !== 'undefined' ? showOnError : true;\n showOnSuccess = typeof showOnSuccess !== 'undefined' ? showOnSuccess : false;\n return {\n error,\n message,\n showOnError,\n showOnSuccess,\n };\n};\nexport const isValidValue = (list: OptionListItem[], value: any) => {\n let res = false;\n if (list.length) {\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].id === value) {\n res = true;\n break;\n }\n }\n }\n return res;\n};\ninterface OptionListItem {\n id: string;\n name: string;\n}\ninterface Props {\n tabIndex?: string | number | null;\n id?: string | null;\n name?: string;\n value?: string | number;\n disabled?: boolean;\n validate?: boolean;\n optionList?: OptionListItem[];\n onChange: (res: string, e: React.ChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n validationOption?: object;\n asyncMsgObj?: object;\n classNameWrapper?: string;\n classNameInput?: string;\n classNameContainer?: string;\n classNameOptionListItem?: string;\n customStyleWrapper?: object;\n customStyleContainer?: object;\n customStyleInput?: object;\n customStyleOptionListItem?: object;\n validationCallback?: (res: boolean) => void;\n}\nconst component: React.FC = ({\n tabIndex = null,\n id = null,\n name = '',\n value = '',\n disabled = false,\n validate = false,\n optionList = [],\n classNameWrapper = '',\n classNameInput = '',\n classNameContainer = '',\n classNameOptionListItem = '',\n customStyleWrapper = {},\n customStyleContainer = {},\n customStyleInput = {},\n customStyleOptionListItem = {},\n validationOption = {},\n asyncMsgObj = {},\n onChange = () => {},\n onBlur = null,\n onFocus = null,\n onClick = null,\n validationCallback = null,\n}) => {\n const [err, setErr] = useState(false);\n const [msg, setMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n const [internalValue, setInternalValue] = useState(String(value));\n const prevInternalValue = usePrevious(internalValue);\n const option = getDefaultValidationOption(validationOption);\n const asyncObj = getDefaultAsyncObj(asyncMsgObj);\n const $input = useRef(null);\n const $el: { [key: string]: any } | null = $input;\n const handleOnBlur = useCallback(\n (e: React.FocusEvent) => {\n if (onBlur) {\n check();\n onBlur(e);\n }\n },\n [internalValue],\n );\n const handleOnFocus = useCallback((e: React.FocusEvent) => {\n if (onFocus) {\n onFocus(e);\n }\n }, []);\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n if (onClick) {\n onClick(e);\n }\n }, []);\n const handleOnChange = useCallback((val: string, e: React.ChangeEvent) => {\n if (disabled || $el === null) {\n return;\n }\n setInternalValue(val);\n onChange && onChange(val, e);\n }, []);\n const check = useCallback(\n () => {\n const { name, check, locale, required, msgOnSuccess } = option;\n if (!check) {\n return;\n }\n if (!message[locale] || !message[locale][TYPE]) {\n console.error(REACT_INPUTS_VALIDATION_CUSTOM_ERROR_MESSAGE_EXAMPLE);\n return;\n }\n if (required) {\n const msg = message[locale][TYPE];\n const nameText = name ? name : '';\n if (!isValidValue(optionList, internalValue)) {\n handleCheckEnd(true, msg.empty(nameText));\n return;\n }\n }\n if (msgOnSuccess) {\n setSuccessMsg(msgOnSuccess);\n }\n handleCheckEnd(false, msgOnSuccess);\n },\n [internalValue],\n );\n const handleCheckEnd = useCallback((err: boolean, message: string) => {\n let msg = message;\n const { msgOnError } = option;\n if (err && msgOnError) {\n msg = msgOnError;\n }\n setErr(err);\n setMsg(msg);\n validationCallback && validationCallback(err);\n }, []);\n useEffect(() => {\n /* istanbul ignore if because it won't happen */\n if ($el === null) {\n return;\n }\n if (id) {\n $el.current.setAttribute('id', String(id));\n }\n if (tabIndex) {\n $el.current.setAttribute('tabindex', String(tabIndex));\n }\n }, []);\n useEffect(\n () => {\n if (validate) {\n check();\n }\n },\n [validate],\n );\n useEffect(\n () => {\n if (internalValue && isValidValue(optionList, internalValue)) {\n setErr(false);\n } else {\n setSuccessMsg('');\n }\n },\n [internalValue],\n );\n useEffect(\n () => {\n setInternalValue(String(value));\n },\n [value],\n );\n useEffect(\n () => {\n if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) {\n check();\n }\n },\n [prevInternalValue, internalValue],\n );\n useEffect(\n () => {\n if (asyncObj) {\n if (asyncObj.message) {\n if (asyncObj.showOnError) {\n handleCheckEnd(asyncObj.error, asyncObj.message);\n }\n if (!asyncObj.error && asyncObj.showOnSuccess) {\n setSuccessMsg(asyncObj.message);\n }\n }\n }\n },\n [asyncMsgObj],\n );\n const wrapperClass = `${WRAPPER_CLASS_IDENTITIFIER} ${classNameWrapper} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__wrapper`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const containerClass = `${classNameContainer} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__container`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const inputClass = `${classNameInput} ${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${\n reactInputsValidationCss[`${TYPE}__input`]\n } ${disabled && reactInputsValidationCss['disabled']}`;\n const labelClass = `${err && reactInputsValidationCss['error']} ${successMsg !== '' && !err && reactInputsValidationCss['success']} ${reactInputsValidationCss[`${TYPE}__label`]} ${disabled &&\n reactInputsValidationCss['disabled']}`;\n const optionListItemClass = `${OPTION_LIST_ITEM_IDENTITIFIER} ${classNameOptionListItem} ${err && reactInputsValidationCss['error']} ${successMsg !== '' &&\n !err &&\n reactInputsValidationCss['success']} ${reactInputsValidationCss[`${TYPE}__item`]} ${disabled && reactInputsValidationCss['disabled']}`;\n const errMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${err && reactInputsValidationCss['error']}`;\n const successMsgClass = `${MSG_CLASS_IDENTITIFIER} ${reactInputsValidationCss['msg']} ${!err && reactInputsValidationCss['success']}`;\n let msgHtml;\n const { showMsg } = option;\n if (showMsg && err && msg) {\n msgHtml =
{msg}
;\n }\n if (showMsg && !err && successMsg !== '') {\n msgHtml =
{successMsg}
;\n }\n let optionHtml;\n if (optionList.length) {\n optionHtml = optionList.map((i, k) => {\n const checked = String(i.id) === String(internalValue) ? true : false;\n return (\n \n );\n });\n }\n return (\n
\n
\n {optionHtml}\n
\n {msgHtml}\n
\n );\n};\ninterface OptionProps {\n checked?: boolean;\n id?: string;\n name?: string;\n optionListItemClass?: string;\n labelClass?: string;\n inputClass?: string;\n value?: string | number;\n disabled?: boolean;\n item?: OptionListItem;\n customStyleOptionListItem?: object;\n customStyleInput?: object;\n onChange?: (res: string, e: React.ChangeEvent) => void;\n}\nexport const Option: React.FC = memo(\n ({\n checked = false,\n id = '',\n name = '',\n optionListItemClass = '',\n labelClass = '',\n inputClass = '',\n value = '',\n disabled = false,\n item = { id: '', name: '' },\n customStyleOptionListItem = {},\n customStyleInput = {},\n onChange = () => {},\n }) => {\n const handleOnChange = useCallback(e => {\n onChange(item.id, e);\n }, []);\n return (\n
\n \n \n
\n );\n },\n);\nexport default memo(component);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 3979215..2a9aeb6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-inputs-validation", - "version": "3.4.3", + "version": "3.4.5", "description": "React form input validation components", "main": "index.js", "repository": { diff --git a/src/js/Inputs/Textarea.tsx b/src/js/Inputs/Textarea.tsx index 34e7260..30ccf7f 100644 --- a/src/js/Inputs/Textarea.tsx +++ b/src/js/Inputs/Textarea.tsx @@ -316,7 +316,7 @@ const component: React.FC = ({ ); useEffect( () => { - if (prevInternalValue && prevInternalValue !== internalValue) { + if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) { if (option.customFunc) { check(); } diff --git a/src/js/Inputs/Textbox.tsx b/src/js/Inputs/Textbox.tsx index 21ac8a3..4241240 100644 --- a/src/js/Inputs/Textbox.tsx +++ b/src/js/Inputs/Textbox.tsx @@ -396,7 +396,7 @@ const component: React.FC = ({ ); useEffect( () => { - if (prevInternalValue && prevInternalValue !== internalValue) { + if (typeof prevInternalValue !== 'undefined' && prevInternalValue !== internalValue) { if (option.customFunc) { check(); } @@ -404,13 +404,6 @@ const component: React.FC = ({ }, [internalValue], ); - useEffect(() => { - /* istanbul ignore if because it won't happen */ - if ($el === null) { - return; - } - $el.current.removeAttribute('value'); - }); useEffect( () => { if (asyncObj) {