diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/business-tasklist-1iQWPpFs.png b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/business-tasklist-1iQWPpFs.png new file mode 100644 index 0000000..c75af06 Binary files /dev/null and b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/business-tasklist-1iQWPpFs.png differ diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-3cLTlVuP.css b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-3cLTlVuP.css deleted file mode 100644 index b5e3926..0000000 --- a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-3cLTlVuP.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.absolute{position:absolute}.relative{position:relative}.left-\[2px\]{left:2px}.top-\[1px\]{top:1px}.mx-auto{margin-left:auto;margin-right:auto}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.table{display:table}.hidden{display:none}.h-20{height:5rem}.h-4{height:1rem}.h-\[85vh\]{height:85vh}.w-4{width:1rem}.w-full{width:100%}.max-w-sm{max-width:24rem}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-3{gap:.75rem}.gap-5{gap:1.25rem}.gap-8{gap:2rem}.overflow-x-auto{overflow-x:auto}.rounded-md{border-radius:.375rem}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r-\[1\.5px\]{border-right-width:1.5px}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.bg-\[\#f2f1ee99\]{background-color:#f2f1ee99}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-1{padding:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.\!pl-2{padding-left:.5rem!important}.text-left{text-align:left}.text-center{text-align:center}.font-inter{font-family:Inter}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black{--tw-shadow-color: #000;--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.drop-shadow-2xl{--tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / .15));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-box{width:100%;border-radius:.375rem;border-width:1.5px;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity));padding:.25rem .5rem .25rem 2.75rem;outline:2px solid transparent;outline-offset:2px}.error-field{border-style:none;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity))}.active{text-decoration-line:underline}.table-col-title{white-space:nowrap;padding:.75rem 1.5rem;text-align:left;vertical-align:middle;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase}.table-col-data{white-space:nowrap;border-top-width:0px;border-left-width:0px;border-right-width:0px;padding:1rem 1.5rem;vertical-align:middle;font-size:.75rem;line-height:1rem}.focus\:border-black:focus{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.has-\[\:checked\]\:border-2:has(:checked){border-width:2px}.has-\[\:checked\]\:border-black:has(:checked){--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.has-\[\:checked\]\:bg-\[\#f2f1ee99\]:has(:checked){background-color:#f2f1ee99}@media (min-width: 768px){.md\:flex{display:flex}} diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-HWJH_NYl.js b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-HWJH_NYl.js new file mode 100644 index 0000000..8215ad8 --- /dev/null +++ b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-HWJH_NYl.js @@ -0,0 +1,3 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const a of n)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function r(n){const a={};return n.integrity&&(a.integrity=n.integrity),n.referrerPolicy&&(a.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?a.credentials="include":n.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(n){if(n.ep)return;n.ep=!0;const a=r(n);fetch(n.href,a)}})();var Re=Object.defineProperty,et=(t,e,r)=>e in t?Re(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,C=(t,e,r)=>(et(t,typeof e!="symbol"?e+"":e,r),r);const tt=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,rt=/^-?[0-9]\d*$/,it=/^(?=.*[A-Za-z])(?=.*\d).{8,}$/,nt=/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/,at=t=>{let e=t;return typeof t=="string"&&(e=t.trim()),!e},st=t=>tt.test(t),ot=(t,e)=>t.length>e,lt=(t,e)=>t.lengthtypeof t!="string"?!1:!isNaN(+t)&&!isNaN(parseFloat(t)),dt=t=>rt.test(t),ct=t=>it.test(t),ft=t=>nt.test(t),ht=(t,e)=>t>e,mt=(t,e)=>ttypeof t!="string"||t==="";var w=(t=>(t.Required="required",t.Email="email",t.MinLength="minLength",t.MaxLength="maxLength",t.Password="password",t.Number="number",t.Integer="integer",t.MaxNumber="maxNumber",t.MinNumber="minNumber",t.StrongPassword="strongPassword",t.CustomRegexp="customRegexp",t.MinFilesCount="minFilesCount",t.MaxFilesCount="maxFilesCount",t.Files="files",t))(w||{}),xe=(t=>(t.Required="required",t))(xe||{}),je=(t=>(t.Label="label",t.LabelArrow="labelArrow",t))(je||{});const $e=[{key:w.Required,dict:{en:"The field is required"}},{key:w.Email,dict:{en:"Email has invalid format"}},{key:w.MaxLength,dict:{en:"The field must contain a maximum of :value characters"}},{key:w.MinLength,dict:{en:"The field must contain a minimum of :value characters"}},{key:w.Password,dict:{en:"Password must contain minimum eight characters, at least one letter and one number"}},{key:w.StrongPassword,dict:{en:"Password should contain minimum eight characters, at least one uppercase letter, one lowercase letter, one number and one special character"}},{key:w.Number,dict:{en:"Value should be a number"}},{key:w.MaxNumber,dict:{en:"Number should be less or equal than :value"}},{key:w.MinNumber,dict:{en:"Number should be more or equal than :value"}},{key:w.MinFilesCount,dict:{en:"Files count should be more or equal than :value"}},{key:w.MaxFilesCount,dict:{en:"Files count should be less or equal than :value"}},{key:w.Files,dict:{en:"Uploaded files have one or several invalid properties (extension/size/type etc)."}}],pt="Value is incorrect",ue=t=>typeof t=="object"&&t!==null&&"then"in t&&typeof t.then=="function",vt=t=>{let e=t;const r=[];for(;e;)r.unshift(e),e=e.parentNode;return r},bt=(t,e)=>{const r=[...e].reverse();for(let i=0,n=r.length;iArray.isArray(t)?t.filter(e=>e.length>0):typeof t=="string"&&t.trim()?[...t.split(" ").filter(e=>e.length>0)]:[],de=t=>t instanceof Element||t instanceof HTMLDocument,gt=".just-validate-error-label[data-tooltip=true]{position:fixed;padding:4px 8px;background:#423f3f;color:#fff;white-space:nowrap;z-index:10;border-radius:4px;transform:translateY(-5px)}.just-validate-error-label[data-tooltip=true]:before{content:'';width:0;height:0;border-left:solid 5px transparent;border-right:solid 5px transparent;border-bottom:solid 5px #423f3f;position:absolute;z-index:3;display:block;bottom:-5px;transform:rotate(180deg);left:calc(50% - 5px)}.just-validate-error-label[data-tooltip=true][data-direction=left]{transform:translateX(-5px)}.just-validate-error-label[data-tooltip=true][data-direction=left]:before{right:-7px;bottom:auto;left:auto;top:calc(50% - 2px);transform:rotate(90deg)}.just-validate-error-label[data-tooltip=true][data-direction=right]{transform:translateX(5px)}.just-validate-error-label[data-tooltip=true][data-direction=right]:before{right:auto;bottom:auto;left:-7px;top:calc(50% - 2px);transform:rotate(-90deg)}.just-validate-error-label[data-tooltip=true][data-direction=bottom]{transform:translateY(5px)}.just-validate-error-label[data-tooltip=true][data-direction=bottom]:before{right:auto;bottom:auto;left:calc(50% - 5px);top:-5px;transform:rotate(0)}",ge=5,Te={errorFieldStyle:{color:"#b81111",border:"1px solid #B81111"},errorFieldCssClass:"just-validate-error-field",successFieldCssClass:"just-validate-success-field",errorLabelStyle:{color:"#b81111"},errorLabelCssClass:"just-validate-error-label",successLabelCssClass:"just-validate-success-label",focusInvalidField:!0,lockForm:!0,testingMode:!1,validateBeforeSubmitting:!1,submitFormAutomatically:!1};class wt{constructor(e,r,i){C(this,"form",null),C(this,"fields",{}),C(this,"groupFields",{}),C(this,"errors",{}),C(this,"isValid",!1),C(this,"isSubmitted",!1),C(this,"globalConfig",Te),C(this,"errorLabels",{}),C(this,"successLabels",{}),C(this,"eventListeners",[]),C(this,"dictLocale",$e),C(this,"currentLocale","en"),C(this,"customStyleTags",{}),C(this,"onSuccessCallback"),C(this,"onFailCallback"),C(this,"onValidateCallback"),C(this,"tooltips",[]),C(this,"lastScrollPosition"),C(this,"isScrollTick"),C(this,"fieldIds",new Map),C(this,"getKeyByFieldSelector",n=>this.fieldIds.get(n)),C(this,"getFieldSelectorByKey",n=>{for(const[a,s]of this.fieldIds)if(n===s)return a}),C(this,"getCompatibleFields",()=>{const n={};return Object.keys(this.fields).forEach(a=>{let s=a;const o=this.getFieldSelectorByKey(a);typeof o=="string"&&(s=o),n[s]={...this.fields[a]}}),n}),C(this,"setKeyByFieldSelector",n=>{if(this.fieldIds.has(n))return this.fieldIds.get(n);const a=String(this.fieldIds.size+1);return this.fieldIds.set(n,a),a}),C(this,"refreshAllTooltips",()=>{this.tooltips.forEach(n=>{n.refresh()})}),C(this,"handleDocumentScroll",()=>{this.lastScrollPosition=window.scrollY,this.isScrollTick||(window.requestAnimationFrame(()=>{this.refreshAllTooltips(),this.isScrollTick=!1}),this.isScrollTick=!0)}),C(this,"formSubmitHandler",n=>{n.preventDefault(),this.isSubmitted=!0,this.validateHandler(n)}),C(this,"handleFieldChange",n=>{let a;for(const s in this.fields)if(this.fields[s].elem===n){a=s;break}a&&(this.fields[a].touched=!0,this.validateField(a,!0))}),C(this,"handleGroupChange",n=>{let a;for(const s in this.groupFields)if(this.groupFields[s].elems.find(c=>c===n)){a=s;break}a&&(this.groupFields[a].touched=!0,this.validateGroup(a,!0))}),C(this,"handlerChange",n=>{n.target&&(this.handleFieldChange(n.target),this.handleGroupChange(n.target),this.renderErrors())}),this.initialize(e,r,i)}initialize(e,r,i){if(this.form=null,this.errors={},this.isValid=!1,this.isSubmitted=!1,this.globalConfig=Te,this.errorLabels={},this.successLabels={},this.eventListeners=[],this.customStyleTags={},this.tooltips=[],this.currentLocale="en",typeof e=="string"){const n=document.querySelector(e);if(!n)throw Error(`Form with ${e} selector not found! Please check the form selector`);this.setForm(n)}else if(e instanceof HTMLFormElement)this.setForm(e);else throw Error("Form selector is not valid. Please specify a string selector or a DOM element.");if(this.globalConfig={...Te,...r},i&&(this.dictLocale=[...i,...$e]),this.isTooltip()){const n=document.createElement("style");n.textContent=gt,this.customStyleTags[je.Label]=document.head.appendChild(n),this.addListener("scroll",document,this.handleDocumentScroll)}}getLocalisedString(e,r,i){var n;const a=i??e;let s=(n=this.dictLocale.find(o=>o.key===a))==null?void 0:n.dict[this.currentLocale];if(s||i&&(s=i),s&&r!==void 0)switch(e){case w.MaxLength:case w.MinLength:case w.MaxNumber:case w.MinNumber:case w.MinFilesCount:case w.MaxFilesCount:s=s.replace(":value",String(r))}return s||i||pt}getFieldErrorMessage(e,r){const i=typeof e.errorMessage=="function"?e.errorMessage(this.getElemValue(r),this.fields):e.errorMessage;return this.getLocalisedString(e.rule,e.value,i)}getFieldSuccessMessage(e,r){const i=typeof e=="function"?e(this.getElemValue(r),this.fields):e;return this.getLocalisedString(void 0,void 0,i)}getGroupErrorMessage(e){return this.getLocalisedString(e.rule,void 0,e.errorMessage)}getGroupSuccessMessage(e){if(e.successMessage)return this.getLocalisedString(void 0,void 0,e.successMessage)}setFieldInvalid(e,r){this.fields[e].isValid=!1,this.fields[e].errorMessage=this.getFieldErrorMessage(r,this.fields[e].elem)}setFieldValid(e,r){this.fields[e].isValid=!0,r!==void 0&&(this.fields[e].successMessage=this.getFieldSuccessMessage(r,this.fields[e].elem))}setGroupInvalid(e,r){this.groupFields[e].isValid=!1,this.groupFields[e].errorMessage=this.getGroupErrorMessage(r)}setGroupValid(e,r){this.groupFields[e].isValid=!0,this.groupFields[e].successMessage=this.getGroupSuccessMessage(r)}getElemValue(e){switch(e.type){case"checkbox":return e.checked;case"file":return e.files;default:return e.value}}validateGroupRule(e,r,i){switch(i.rule){case xe.Required:r.every(n=>!n.checked)?this.setGroupInvalid(e,i):this.setGroupValid(e,i)}}validateFieldRule(e,r,i,n=!1){const a=i.value,s=this.getElemValue(r);if(i.plugin){i.plugin(s,this.getCompatibleFields())||this.setFieldInvalid(e,i);return}switch(i.rule){case w.Required:{at(s)&&this.setFieldInvalid(e,i);break}case w.Email:{if(z(s))break;st(s)||this.setFieldInvalid(e,i);break}case w.MaxLength:{if(a===void 0){console.error(`Value for ${i.rule} rule for [${e}] field is not defined. The field will be always invalid.`),this.setFieldInvalid(e,i);break}if(typeof a!="number"){console.error(`Value for ${i.rule} rule for [${e}] should be a number. The field will be always invalid.`),this.setFieldInvalid(e,i);break}if(z(s))break;ot(s,a)&&this.setFieldInvalid(e,i);break}case w.MinLength:{if(a===void 0){console.error(`Value for ${i.rule} rule for [${e}] field is not defined. The field will be always invalid.`),this.setFieldInvalid(e,i);break}if(typeof a!="number"){console.error(`Value for ${i.rule} rule for [${e}] should be a number. The field will be always invalid.`),this.setFieldInvalid(e,i);break}if(z(s))break;lt(s,a)&&this.setFieldInvalid(e,i);break}case w.Password:{if(z(s))break;ct(s)||this.setFieldInvalid(e,i);break}case w.StrongPassword:{if(z(s))break;ft(s)||this.setFieldInvalid(e,i);break}case w.Number:{if(z(s))break;ut(s)||this.setFieldInvalid(e,i);break}case w.Integer:{if(z(s))break;dt(s)||this.setFieldInvalid(e,i);break}case w.MaxNumber:{if(a===void 0){console.error(`Value for ${i.rule} rule for [${e}] field is not defined. The field will be always invalid.`),this.setFieldInvalid(e,i);break}if(typeof a!="number"){console.error(`Value for ${i.rule} rule for [${e}] field should be a number. The field will be always invalid.`),this.setFieldInvalid(e,i);break}if(z(s))break;const o=+s;(Number.isNaN(o)||ht(o,a))&&this.setFieldInvalid(e,i);break}case w.MinNumber:{if(a===void 0){console.error(`Value for ${i.rule} rule for [${e}] field is not defined. The field will be always invalid.`),this.setFieldInvalid(e,i);break}if(typeof a!="number"){console.error(`Value for ${i.rule} rule for [${e}] field should be a number. The field will be always invalid.`),this.setFieldInvalid(e,i);break}if(z(s))break;const o=+s;(Number.isNaN(o)||mt(o,a))&&this.setFieldInvalid(e,i);break}case w.CustomRegexp:{if(a===void 0){console.error(`Value for ${i.rule} rule for [${e}] field is not defined. This field will be always invalid.`),this.setFieldInvalid(e,i);return}let o;try{o=new RegExp(a)}catch{console.error(`Value for ${i.rule} rule for [${e}] should be a valid regexp. This field will be always invalid.`),this.setFieldInvalid(e,i);break}const c=String(s);c!==""&&!o.test(c)&&this.setFieldInvalid(e,i);break}case w.MinFilesCount:{if(a===void 0){console.error(`Value for ${i.rule} rule for [${e}] field is not defined. This field will be always invalid.`),this.setFieldInvalid(e,i);break}if(typeof a!="number"){console.error(`Value for ${i.rule} rule for [${e}] field should be a number. The field will be always invalid.`),this.setFieldInvalid(e,i);break}if(Number.isFinite(s==null?void 0:s.length)&&s.lengtha){this.setFieldInvalid(e,i);break}break}case w.Files:{if(a===void 0){console.error(`Value for ${i.rule} rule for [${e}] field is not defined. This field will be always invalid.`),this.setFieldInvalid(e,i);return}if(typeof a!="object"){console.error(`Value for ${i.rule} rule for [${e}] field should be an object. This field will be always invalid.`),this.setFieldInvalid(e,i);return}const o=a.files;if(typeof o!="object"){console.error(`Value for ${i.rule} rule for [${e}] field should be an object with files array. This field will be always invalid.`),this.setFieldInvalid(e,i);return}const c=(l,h)=>{const p=Number.isFinite(h.minSize)&&l.sizeh.maxSize,E=Array.isArray(h.names)&&!h.names.includes(l.name),N=Array.isArray(h.extensions)&&!h.extensions.includes(l.name.split(".")[l.name.split(".").length-1]),B=Array.isArray(h.types)&&!h.types.includes(l.type);return p||F||E||N||B};if(typeof s=="object"&&s!==null)for(let l=0,h=s.length;l{l||this.setFieldInvalid(e,i)}).catch(()=>{this.setFieldInvalid(e,i)})}o||this.setFieldInvalid(e,i)}}}isFormValid(){let e=!0;for(let r=0,i=Object.values(this.fields).length;r{const o=this.validateFieldRule(e,n.elem,s,r);ue(o)&&a.push(o)}),n.isValid&&this.setFieldValid(e,(i=n.config)==null?void 0:i.successMessage),Promise.allSettled(a).finally(()=>{var s;r&&((s=this.onValidateCallback)==null||s.call(this,{isValid:this.isFormValid(),isSubmitted:this.isSubmitted,fields:this.getCompatibleFields(),groups:{...this.groupFields}}))})}revalidateField(e){if(typeof e!="string"&&!de(e))throw Error("Field selector is not valid. Please specify a string selector or a valid DOM element.");const r=this.getKeyByFieldSelector(e);return!r||!this.fields[r]?(console.error("Field not found. Check the field selector."),Promise.reject()):new Promise(i=>{this.validateField(r,!0).finally(()=>{this.clearFieldStyle(r),this.clearFieldLabel(r),this.renderFieldError(r,!0),i(!!this.fields[r].isValid)})})}revalidateGroup(e){if(typeof e!="string"&&!de(e))throw Error("Group selector is not valid. Please specify a string selector or a valid DOM element.");const r=this.getKeyByFieldSelector(e);return!r||!this.groupFields[r]?(console.error("Group not found. Check the group selector."),Promise.reject()):new Promise(i=>{this.validateGroup(r).finally(()=>{this.clearFieldLabel(r),this.renderGroupError(r,!0),i(!!this.groupFields[r].isValid)})})}validateGroup(e,r=!1){const i=this.groupFields[e],n=[];return[...i.rules].reverse().forEach(a=>{const s=this.validateGroupRule(e,i.elems,a);ue(s)&&n.push(s)}),Promise.allSettled(n).finally(()=>{var a;r&&((a=this.onValidateCallback)==null||a.call(this,{isValid:this.isFormValid(),isSubmitted:this.isSubmitted,fields:this.getCompatibleFields(),groups:{...this.groupFields}}))})}focusInvalidField(){for(const e in this.fields){const r=this.fields[e];if(!r.isValid){setTimeout(()=>r.elem.focus(),0);break}}}afterSubmitValidation(e=!1){this.renderErrors(e),this.globalConfig.focusInvalidField&&this.focusInvalidField()}validate(e=!1){return new Promise(r=>{const i=[];Object.keys(this.fields).forEach(n=>{const a=this.validateField(n);ue(a)&&i.push(a)}),Object.keys(this.groupFields).forEach(n=>{const a=this.validateGroup(n);ue(a)&&i.push(a)}),Promise.allSettled(i).then(()=>{var n;this.afterSubmitValidation(e),(n=this.onValidateCallback)==null||n.call(this,{isValid:this.isFormValid(),isSubmitted:this.isSubmitted,fields:this.getCompatibleFields(),groups:{...this.groupFields}}),r(!!i.length)})})}revalidate(){return new Promise(e=>{this.validateHandler(void 0,!0).finally(()=>{this.globalConfig.focusInvalidField&&this.focusInvalidField(),e(this.isValid)})})}validateHandler(e,r=!1){return this.globalConfig.lockForm&&this.lockForm(),this.validate(r).finally(()=>{var i,n,a;this.globalConfig.lockForm&&this.unlockForm(),this.isValid?((i=this.onSuccessCallback)==null||i.call(this,e),this.globalConfig.submitFormAutomatically&&((n=e==null?void 0:e.currentTarget)==null||n.submit())):(a=this.onFailCallback)==null||a.call(this,this.getCompatibleFields(),this.groupFields)})}setForm(e){this.form=e,this.form.setAttribute("novalidate","novalidate"),this.removeListener("submit",this.form,this.formSubmitHandler),this.addListener("submit",this.form,this.formSubmitHandler)}addListener(e,r,i){r.addEventListener(e,i),this.eventListeners.push({type:e,elem:r,func:i})}removeListener(e,r,i){r.removeEventListener(e,i),this.eventListeners=this.eventListeners.filter(n=>n.type!==e||n.elem!==r)}addField(e,r,i){if(typeof e!="string"&&!de(e))throw Error("Field selector is not valid. Please specify a string selector or a valid DOM element.");let n;if(typeof e=="string"?n=this.form.querySelector(e):n=e,!n)throw Error("Field doesn't exist in the DOM! Please check the field selector.");if(!Array.isArray(r)||!r.length)throw Error("Rules argument should be an array and should contain at least 1 element.");r.forEach(s=>{if(!("rule"in s||"validator"in s||"plugin"in s))throw Error("Rules argument must contain at least one rule or validator property.");if(!s.validator&&!s.plugin&&(!s.rule||!Object.values(w).includes(s.rule)))throw Error(`Rule should be one of these types: ${Object.values(w).join(", ")}. Provided value: ${s.rule}`)});const a=this.setKeyByFieldSelector(e);return this.fields[a]={elem:n,rules:r,isValid:void 0,touched:!1,config:i},this.setListeners(n),(this.isSubmitted||this.globalConfig.validateBeforeSubmitting)&&this.validateField(a),this}removeField(e){if(typeof e!="string"&&!de(e))throw Error("Field selector is not valid. Please specify a string selector or a valid DOM element.");const r=this.getKeyByFieldSelector(e);if(!r||!this.fields[r])return console.error("Field not found. Check the field selector."),this;const i=this.getListenerType(this.fields[r].elem.type);return this.removeListener(i,this.fields[r].elem,this.handlerChange),this.clearErrors(),delete this.fields[r],this}removeGroup(e){if(typeof e!="string")throw Error("Group selector is not valid. Please specify a string selector.");const r=this.getKeyByFieldSelector(e);return!r||!this.groupFields[r]?(console.error("Group not found. Check the group selector."),this):(this.groupFields[r].elems.forEach(i=>{const n=this.getListenerType(i.type);this.removeListener(n,i,this.handlerChange)}),this.clearErrors(),delete this.groupFields[r],this)}addRequiredGroup(e,r,i,n){if(typeof e!="string"&&!de(e))throw Error("Group selector is not valid. Please specify a string selector or a valid DOM element.");let a;if(typeof e=="string"?a=this.form.querySelector(e):a=e,!a)throw Error("Group selector not found! Please check the group selector.");const s=a.querySelectorAll("input"),o=Array.from(s).filter(l=>{const h=bt(this.groupFields,vt(l));return h?h[1].elems.find(p=>p!==l):!0}),c=this.setKeyByFieldSelector(e);return this.groupFields[c]={rules:[{rule:xe.Required,errorMessage:r,successMessage:n}],groupElem:a,elems:o,touched:!1,isValid:void 0,config:i},s.forEach(l=>{this.setListeners(l)}),this}getListenerType(e){switch(e){case"checkbox":case"select-one":case"file":case"radio":return"change";default:return"input"}}setListeners(e){const r=this.getListenerType(e.type);this.removeListener(r,e,this.handlerChange),this.addListener(r,e,this.handlerChange)}clearFieldLabel(e){var r,i;(r=this.errorLabels[e])==null||r.remove(),(i=this.successLabels[e])==null||i.remove()}clearFieldStyle(e){var r,i,n,a;const s=this.fields[e],o=((r=s.config)==null?void 0:r.errorFieldStyle)||this.globalConfig.errorFieldStyle;Object.keys(o).forEach(l=>{s.elem.style[l]=""});const c=((i=s.config)==null?void 0:i.successFieldStyle)||this.globalConfig.successFieldStyle||{};Object.keys(c).forEach(l=>{s.elem.style[l]=""}),s.elem.classList.remove(...H(((n=s.config)==null?void 0:n.errorFieldCssClass)||this.globalConfig.errorFieldCssClass),...H(((a=s.config)==null?void 0:a.successFieldCssClass)||this.globalConfig.successFieldCssClass))}clearErrors(){var e,r;Object.keys(this.errorLabels).forEach(i=>this.errorLabels[i].remove()),Object.keys(this.successLabels).forEach(i=>this.successLabels[i].remove());for(const i in this.fields)this.clearFieldStyle(i);for(const i in this.groupFields){const n=this.groupFields[i],a=((e=n.config)==null?void 0:e.errorFieldStyle)||this.globalConfig.errorFieldStyle;Object.keys(a).forEach(o=>{n.elems.forEach(c=>{var l;c.style[o]="",c.classList.remove(...H(((l=n.config)==null?void 0:l.errorFieldCssClass)||this.globalConfig.errorFieldCssClass))})});const s=((r=n.config)==null?void 0:r.successFieldStyle)||this.globalConfig.successFieldStyle||{};Object.keys(s).forEach(o=>{n.elems.forEach(c=>{var l;c.style[o]="",c.classList.remove(...H(((l=n.config)==null?void 0:l.successFieldCssClass)||this.globalConfig.successFieldCssClass))})})}this.tooltips=[]}isTooltip(){return!!this.globalConfig.tooltip}lockForm(){const e=this.form.querySelectorAll("input, textarea, button, select");for(let r=0,i=e.length;r{this.renderTooltip(e,r,i)}}}createErrorLabelElem(e,r,i){const n=document.createElement("div");n.innerHTML=r;const a=this.isTooltip()?i==null?void 0:i.errorLabelStyle:(i==null?void 0:i.errorLabelStyle)||this.globalConfig.errorLabelStyle;return Object.assign(n.style,a),n.classList.add(...H((i==null?void 0:i.errorLabelCssClass)||this.globalConfig.errorLabelCssClass),"just-validate-error-label"),this.isTooltip()&&(n.dataset.tooltip="true"),this.globalConfig.testingMode&&(n.dataset.testId=`error-label-${e}`),this.errorLabels[e]=n,n}createSuccessLabelElem(e,r,i){if(r===void 0)return null;const n=document.createElement("div");n.innerHTML=r;const a=(i==null?void 0:i.successLabelStyle)||this.globalConfig.successLabelStyle;return Object.assign(n.style,a),n.classList.add(...H((i==null?void 0:i.successLabelCssClass)||this.globalConfig.successLabelCssClass),"just-validate-success-label"),this.globalConfig.testingMode&&(n.dataset.testId=`success-label-${e}`),this.successLabels[e]=n,n}renderErrorsContainer(e,r){const i=r||this.globalConfig.errorsContainer;if(typeof i=="string"){const n=this.form.querySelector(i);if(n)return n.appendChild(e),!0;console.error(`Error container with ${i} selector not found. Errors will be rendered as usual`)}return i instanceof Element?(i.appendChild(e),!0):(i!==void 0&&console.error("Error container not found. It should be a string or existing Element. Errors will be rendered as usual"),!1)}renderGroupLabel(e,r,i,n){!n&&this.renderErrorsContainer(r,i)||e.appendChild(r)}renderFieldLabel(e,r,i,n){var a,s,o,c,l,h,p;if(!(!n&&this.renderErrorsContainer(r,i)))if(e.type==="checkbox"||e.type==="radio"){const F=document.querySelector(`label[for="${e.getAttribute("id")}"]`);((s=(a=e.parentElement)==null?void 0:a.tagName)==null?void 0:s.toLowerCase())==="label"?(c=(o=e.parentElement)==null?void 0:o.parentElement)==null||c.appendChild(r):F?(l=F.parentElement)==null||l.appendChild(r):(h=e.parentElement)==null||h.appendChild(r)}else(p=e.parentElement)==null||p.appendChild(r)}showLabels(e,r){Object.keys(e).forEach((i,n)=>{const a=e[i],s=this.getKeyByFieldSelector(i);if(!s||!this.fields[s]){console.error("Field not found. Check the field selector.");return}const o=this.fields[s];o.isValid=!r,this.clearFieldStyle(s),this.clearFieldLabel(s),this.renderFieldError(s,!1,a),n===0&&this.globalConfig.focusInvalidField&&setTimeout(()=>o.elem.focus(),0)})}showErrors(e){if(typeof e!="object")throw Error("[showErrors]: Errors should be an object with key: value format");this.showLabels(e,!0)}showSuccessLabels(e){if(typeof e!="object")throw Error("[showSuccessLabels]: Labels should be an object with key: value format");this.showLabels(e,!1)}renderFieldError(e,r=!1,i){var n,a,s,o,c,l;const h=this.fields[e];if(h.isValid===!1&&(this.isValid=!1),h.isValid===void 0||!r&&!this.isSubmitted&&!h.touched&&i===void 0)return;if(h.isValid){if(!h.asyncCheckPending){const F=this.createSuccessLabelElem(e,i!==void 0?i:h.successMessage,h.config);F&&this.renderFieldLabel(h.elem,F,(n=h.config)==null?void 0:n.errorsContainer,!0),h.elem.classList.add(...H(((a=h.config)==null?void 0:a.successFieldCssClass)||this.globalConfig.successFieldCssClass))}return}h.elem.classList.add(...H(((s=h.config)==null?void 0:s.errorFieldCssClass)||this.globalConfig.errorFieldCssClass));const p=this.createErrorLabelElem(e,i!==void 0?i:h.errorMessage,h.config);this.renderFieldLabel(h.elem,p,(o=h.config)==null?void 0:o.errorsContainer),this.isTooltip()&&this.tooltips.push(this.renderTooltip(h.elem,p,(l=(c=h.config)==null?void 0:c.tooltip)==null?void 0:l.position))}renderGroupError(e,r=!0){var i,n,a,s;const o=this.groupFields[e];if(o.isValid===!1&&(this.isValid=!1),o.isValid===void 0||!r&&!this.isSubmitted&&!o.touched)return;if(o.isValid){o.elems.forEach(h=>{var p,F;Object.assign(h.style,((p=o.config)==null?void 0:p.successFieldStyle)||this.globalConfig.successFieldStyle),h.classList.add(...H(((F=o.config)==null?void 0:F.successFieldCssClass)||this.globalConfig.successFieldCssClass))});const l=this.createSuccessLabelElem(e,o.successMessage,o.config);l&&this.renderGroupLabel(o.groupElem,l,(i=o.config)==null?void 0:i.errorsContainer,!0);return}this.isValid=!1,o.elems.forEach(l=>{var h,p;Object.assign(l.style,((h=o.config)==null?void 0:h.errorFieldStyle)||this.globalConfig.errorFieldStyle),l.classList.add(...H(((p=o.config)==null?void 0:p.errorFieldCssClass)||this.globalConfig.errorFieldCssClass))});const c=this.createErrorLabelElem(e,o.errorMessage,o.config);this.renderGroupLabel(o.groupElem,c,(n=o.config)==null?void 0:n.errorsContainer),this.isTooltip()&&this.tooltips.push(this.renderTooltip(o.groupElem,c,(s=(a=o.config)==null?void 0:a.tooltip)==null?void 0:s.position))}renderErrors(e=!1){if(!(!this.isSubmitted&&!e&&!this.globalConfig.validateBeforeSubmitting)){this.clearErrors(),this.isValid=!0;for(const r in this.groupFields)this.renderGroupError(r);for(const r in this.fields)this.renderFieldError(r)}}destroy(){this.eventListeners.forEach(e=>{this.removeListener(e.type,e.elem,e.func)}),Object.keys(this.customStyleTags).forEach(e=>{this.customStyleTags[e].remove()}),this.clearErrors(),this.globalConfig.lockForm&&this.unlockForm()}refresh(){this.destroy(),this.form?(this.initialize(this.form,this.globalConfig),Object.keys(this.fields).forEach(e=>{const r=this.getFieldSelectorByKey(e);r&&this.addField(r,[...this.fields[e].rules],this.fields[e].config)})):console.error("Cannot initialize the library! Form is not defined")}setCurrentLocale(e){if(typeof e!="string"&&e!==void 0){console.error("Current locale should be a string");return}this.currentLocale=e,this.isSubmitted&&this.validate()}onSuccess(e){return this.onSuccessCallback=e,this}onFail(e){return this.onFailCallback=e,this}onValidate(e){return this.onValidateCallback=e,this}}let we;const yt=new Uint8Array(16);function Ct(){if(!we&&(we=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!we))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return we(yt)}const $=[];for(let t=0;t<256;++t)$.push((t+256).toString(16).slice(1));function Tt(t,e=0){return $[t[e+0]]+$[t[e+1]]+$[t[e+2]]+$[t[e+3]]+"-"+$[t[e+4]]+$[t[e+5]]+"-"+$[t[e+6]]+$[t[e+7]]+"-"+$[t[e+8]]+$[t[e+9]]+"-"+$[t[e+10]]+$[t[e+11]]+$[t[e+12]]+$[t[e+13]]+$[t[e+14]]+$[t[e+15]]}const Ft=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Ue={randomUUID:Ft};function St(t,e,r){if(Ue.randomUUID&&!e&&!t)return Ue.randomUUID();t=t||{};const i=t.random||(t.rng||Ct)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){r=r||0;for(let n=0;n<16;++n)e[r+n]=i[n];return e}return Tt(i)}var Et={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},xt=function(t,e,r){var i,n=Et[t];return typeof n=="string"?i=n:e===1?i=n.one:i=n.other.replace("{{count}}",e.toString()),r!=null&&r.addSuffix?r.comparison&&r.comparison>0?"in "+i:i+" ago":i},Dt=xt;function Fe(t){return function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=e.width?String(e.width):t.defaultWidth,i=t.formats[r]||t.formats[t.defaultWidth];return i}}var Mt={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},_t={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Lt={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},kt={date:Fe({formats:Mt,defaultWidth:"full"}),time:Fe({formats:_t,defaultWidth:"full"}),dateTime:Fe({formats:Lt,defaultWidth:"full"})},Pt=kt,Ot={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},It=function(t,e,r,i){return Ot[t]},$t=It;function ce(t){return function(e,r){var i=r||{},n=i.context?String(i.context):"standalone",a;if(n==="formatting"&&t.formattingValues){var s=t.defaultFormattingWidth||t.defaultWidth,o=i.width?String(i.width):s;a=t.formattingValues[o]||t.formattingValues[s]}else{var c=t.defaultWidth,l=i.width?String(i.width):t.defaultWidth;a=t.values[l]||t.values[c]}var h=t.argumentCallback?t.argumentCallback(e):e;return a[h]}}var Ut={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Nt={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},qt={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Yt={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Wt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Vt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},At=function(t,e){var r=Number(t),i=r%100;if(i>20||i<10)switch(i%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},Ht={ordinalNumber:At,era:ce({values:Ut,defaultWidth:"wide"}),quarter:ce({values:Nt,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:ce({values:qt,defaultWidth:"wide"}),day:ce({values:Yt,defaultWidth:"wide"}),dayPeriod:ce({values:Wt,defaultWidth:"wide",formattingValues:Vt,defaultFormattingWidth:"wide"})},jt=Ht;function fe(t){return function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.width,n=i&&t.matchPatterns[i]||t.matchPatterns[t.defaultMatchWidth],a=e.match(n);if(!a)return null;var s=a[0],o=i&&t.parsePatterns[i]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(o)?Bt(o,function(p){return p.test(s)}):Gt(o,function(p){return p.test(s)}),l;l=t.valueCallback?t.valueCallback(c):c,l=r.valueCallback?r.valueCallback(l):l;var h=e.slice(s.length);return{value:l,rest:h}}}function Gt(t,e){for(var r in t)if(t.hasOwnProperty(r)&&e(t[r]))return r}function Bt(t,e){for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:{},i=e.match(t.matchPattern);if(!i)return null;var n=i[0],a=e.match(t.parsePattern);if(!a)return null;var s=t.valueCallback?t.valueCallback(a[0]):a[0];s=r.valueCallback?r.valueCallback(s):s;var o=e.slice(n.length);return{value:s,rest:o}}}var Qt=/^(\d+)(th|st|nd|rd)?/i,Xt=/\d+/i,Kt={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Jt={any:[/^b/i,/^(a|c)/i]},Zt={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Rt={any:[/1/i,/2/i,/3/i,/4/i]},er={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},tr={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},rr={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},ir={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},nr={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},ar={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},sr={ordinalNumber:zt({matchPattern:Qt,parsePattern:Xt,valueCallback:function(t){return parseInt(t,10)}}),era:fe({matchPatterns:Kt,defaultMatchWidth:"wide",parsePatterns:Jt,defaultParseWidth:"any"}),quarter:fe({matchPatterns:Zt,defaultMatchWidth:"wide",parsePatterns:Rt,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:fe({matchPatterns:er,defaultMatchWidth:"wide",parsePatterns:tr,defaultParseWidth:"any"}),day:fe({matchPatterns:rr,defaultMatchWidth:"wide",parsePatterns:ir,defaultParseWidth:"any"}),dayPeriod:fe({matchPatterns:nr,defaultMatchWidth:"any",parsePatterns:ar,defaultParseWidth:"any"})},or=sr,lr={code:"en-US",formatDistance:Dt,formatLong:Pt,formatRelative:$t,localize:jt,match:or,options:{weekStartsOn:0,firstWeekContainsDate:1}},ur=lr;function O(t){if(t===null||t===!0||t===!1)return NaN;var e=Number(t);return isNaN(e)?e:e<0?Math.ceil(e):Math.floor(e)}function L(t,e){if(e.length1?"s":"")+" required, but only "+e.length+" present")}function I(t){L(1,arguments);var e=Object.prototype.toString.call(t);return t instanceof Date||typeof t=="object"&&e==="[object Date]"?new Date(t.getTime()):typeof t=="number"||e==="[object Number]"?new Date(t):((typeof t=="string"||e==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn(new Error().stack)),new Date(NaN))}function dr(t,e){L(2,arguments);var r=I(t).getTime(),i=O(e);return new Date(r+i)}function cr(t,e){L(2,arguments);var r=O(e);return dr(t,-r)}function fr(t,e){if(t==null)throw new TypeError("assign requires that input parameter not be null or undefined");e=e||{};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}function Ne(t,e){switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}}function Ge(t,e){switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}}function hr(t,e){var r=t.match(/(P+)(p+)?/)||[],i=r[1],n=r[2];if(!n)return Ne(t,e);var a;switch(i){case"P":a=e.dateTime({width:"short"});break;case"PP":a=e.dateTime({width:"medium"});break;case"PPP":a=e.dateTime({width:"long"});break;case"PPPP":default:a=e.dateTime({width:"full"});break}return a.replace("{{date}}",Ne(i,e)).replace("{{time}}",Ge(n,e))}var mr={p:Ge,P:hr},pr=mr;function vr(t){var e=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return e.setUTCFullYear(t.getFullYear()),t.getTime()-e.getTime()}var br=["D","DD"],gr=["YY","YYYY"];function wr(t){return br.indexOf(t)!==-1}function yr(t){return gr.indexOf(t)!==-1}function qe(t,e,r){if(t==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(e,"`) for formatting years to the input `").concat(r,"`; see: https://git.io/fxCyr"));if(t==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(e,"`) for formatting years to the input `").concat(r,"`; see: https://git.io/fxCyr"));if(t==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(e,"`) for formatting days of the month to the input `").concat(r,"`; see: https://git.io/fxCyr"));if(t==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(e,"`) for formatting days of the month to the input `").concat(r,"`; see: https://git.io/fxCyr"))}function ie(t,e){L(1,arguments);var r=e||{},i=r.locale,n=i&&i.options&&i.options.weekStartsOn,a=n==null?0:O(n),s=r.weekStartsOn==null?a:O(r.weekStartsOn);if(!(s>=0&&s<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var o=I(t),c=o.getUTCDay(),l=(c=1&&c<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var l=new Date(0);l.setUTCFullYear(i+1,0,c),l.setUTCHours(0,0,0,0);var h=ie(l,e),p=new Date(0);p.setUTCFullYear(i,0,c),p.setUTCHours(0,0,0,0);var F=ie(p,e);return r.getTime()>=h.getTime()?i+1:r.getTime()>=F.getTime()?i:i-1}function Se(t,e,r){L(2,arguments);var i=r||{},n=i.locale,a=n&&n.options&&n.options.weekStartsOn,s=a==null?0:O(a),o=i.weekStartsOn==null?s:O(i.weekStartsOn);if(!(o>=0&&o<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=I(t),l=O(e),h=c.getUTCDay(),p=l%7,F=(p+7)%7,E=(F=n.getTime()?r+1:e.getTime()>=s.getTime()?r:r-1}function Fr(t){L(1,arguments);var e=Tr(t),r=new Date(0);r.setUTCFullYear(e,0,4),r.setUTCHours(0,0,0,0);var i=se(r);return i}var Sr=6048e5;function Er(t){L(1,arguments);var e=I(t),r=se(e).getTime()-Fr(e).getTime();return Math.round(r/Sr)+1}function xr(t,e){L(2,arguments);var r=I(t),i=O(e),n=Er(r)-i;return r.setUTCDate(r.getUTCDate()-n*7),r}function Dr(t,e){L(1,arguments);var r=e||{},i=r.locale,n=i&&i.options&&i.options.firstWeekContainsDate,a=n==null?1:O(n),s=r.firstWeekContainsDate==null?a:O(r.firstWeekContainsDate),o=Be(t,e),c=new Date(0);c.setUTCFullYear(o,0,s),c.setUTCHours(0,0,0,0);var l=ie(c,e);return l}var Mr=6048e5;function _r(t,e){L(1,arguments);var r=I(t),i=ie(r,e).getTime()-Dr(r,e).getTime();return Math.round(i/Mr)+1}function Lr(t,e,r){L(2,arguments);var i=I(t),n=O(e),a=_r(i,r)-n;return i.setUTCDate(i.getUTCDate()-a*7),i}var kr=36e5,Pr=6e4,Or=1e3,_={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},j={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function S(t,e,r){var i=e.match(t);if(!i)return null;var n=parseInt(i[0],10);return{value:r?r(n):n,rest:e.slice(i[0].length)}}function G(t,e){var r=e.match(t);if(!r)return null;if(r[0]==="Z")return{value:0,rest:e.slice(1)};var i=r[1]==="+"?1:-1,n=r[2]?parseInt(r[2],10):0,a=r[3]?parseInt(r[3],10):0,s=r[5]?parseInt(r[5],10):0;return{value:i*(n*kr+a*Pr+s*Or),rest:e.slice(r[0].length)}}function Ye(t,e){return S(_.anyDigitsSigned,t,e)}function D(t,e,r){switch(t){case 1:return S(_.singleDigit,e,r);case 2:return S(_.twoDigits,e,r);case 3:return S(_.threeDigits,e,r);case 4:return S(_.fourDigits,e,r);default:return S(new RegExp("^\\d{1,"+t+"}"),e,r)}}function ye(t,e,r){switch(t){case 1:return S(_.singleDigitSigned,e,r);case 2:return S(_.twoDigitsSigned,e,r);case 3:return S(_.threeDigitsSigned,e,r);case 4:return S(_.fourDigitsSigned,e,r);default:return S(new RegExp("^-?\\d{1,"+t+"}"),e,r)}}function Ee(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;case"am":case"midnight":case"night":default:return 0}}function We(t,e){var r=e>0,i=r?e:1-e,n;if(i<=50)n=t||100;else{var a=i+50,s=Math.floor(a/100)*100,o=t>=a%100;n=t+s-(o?100:0)}return r?n:1-n}var Ir=[31,28,31,30,31,30,31,31,30,31,30,31],$r=[31,29,31,30,31,30,31,31,30,31,30,31];function Ve(t){return t%400===0||t%4===0&&t%100!==0}var Ur={G:{priority:140,parse:function(t,e,r,i){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});case"GGGG":default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}},set:function(t,e,r,i){return e.era=r,t.setUTCFullYear(r,0,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["R","u","t","T"]},y:{priority:130,parse:function(t,e,r,i){var n=function(a){return{year:a,isTwoDigitYear:e==="yy"}};switch(e){case"y":return D(4,t,n);case"yo":return r.ordinalNumber(t,{unit:"year",valueCallback:n});default:return D(e.length,t,n)}},validate:function(t,e,r){return e.isTwoDigitYear||e.year>0},set:function(t,e,r,i){var n=t.getUTCFullYear();if(r.isTwoDigitYear){var a=We(r.year,n);return t.setUTCFullYear(a,0,1),t.setUTCHours(0,0,0,0),t}var s=!("era"in e)||e.era===1?r.year:1-r.year;return t.setUTCFullYear(s,0,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","u","w","I","i","e","c","t","T"]},Y:{priority:130,parse:function(t,e,r,i){var n=function(a){return{year:a,isTwoDigitYear:e==="YY"}};switch(e){case"Y":return D(4,t,n);case"Yo":return r.ordinalNumber(t,{unit:"year",valueCallback:n});default:return D(e.length,t,n)}},validate:function(t,e,r){return e.isTwoDigitYear||e.year>0},set:function(t,e,r,i){var n=Be(t,i);if(r.isTwoDigitYear){var a=We(r.year,n);return t.setUTCFullYear(a,0,i.firstWeekContainsDate),t.setUTCHours(0,0,0,0),ie(t,i)}var s=!("era"in e)||e.era===1?r.year:1-r.year;return t.setUTCFullYear(s,0,i.firstWeekContainsDate),t.setUTCHours(0,0,0,0),ie(t,i)},incompatibleTokens:["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:{priority:130,parse:function(t,e,r,i){return ye(e==="R"?4:e.length,t)},set:function(t,e,r,i){var n=new Date(0);return n.setUTCFullYear(r,0,4),n.setUTCHours(0,0,0,0),se(n)},incompatibleTokens:["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:{priority:130,parse:function(t,e,r,i){return ye(e==="u"?4:e.length,t)},set:function(t,e,r,i){return t.setUTCFullYear(r,0,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["G","y","Y","R","w","I","i","e","c","t","T"]},Q:{priority:120,parse:function(t,e,r,i){switch(e){case"Q":case"QQ":return D(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQ":default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,r){return e>=1&&e<=4},set:function(t,e,r,i){return t.setUTCMonth((r-1)*3,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:{priority:120,parse:function(t,e,r,i){switch(e){case"q":case"qq":return D(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});case"qqqq":default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}},validate:function(t,e,r){return e>=1&&e<=4},set:function(t,e,r,i){return t.setUTCMonth((r-1)*3,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:{priority:110,parse:function(t,e,r,i){var n=function(a){return a-1};switch(e){case"M":return S(_.month,t,n);case"MM":return D(2,t,n);case"Mo":return r.ordinalNumber(t,{unit:"month",valueCallback:n});case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});case"MMMM":default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,r){return e>=0&&e<=11},set:function(t,e,r,i){return t.setUTCMonth(r,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]},L:{priority:110,parse:function(t,e,r,i){var n=function(a){return a-1};switch(e){case"L":return S(_.month,t,n);case"LL":return D(2,t,n);case"Lo":return r.ordinalNumber(t,{unit:"month",valueCallback:n});case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});case"LLLL":default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}},validate:function(t,e,r){return e>=0&&e<=11},set:function(t,e,r,i){return t.setUTCMonth(r,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:{priority:100,parse:function(t,e,r,i){switch(e){case"w":return S(_.week,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return D(e.length,t)}},validate:function(t,e,r){return e>=1&&e<=53},set:function(t,e,r,i){return ie(Lr(t,r,i),i)},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:{priority:100,parse:function(t,e,r,i){switch(e){case"I":return S(_.week,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return D(e.length,t)}},validate:function(t,e,r){return e>=1&&e<=53},set:function(t,e,r,i){return se(xr(t,r,i),i)},incompatibleTokens:["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:{priority:90,subPriority:1,parse:function(t,e,r,i){switch(e){case"d":return S(_.date,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return D(e.length,t)}},validate:function(t,e,r){var i=t.getUTCFullYear(),n=Ve(i),a=t.getUTCMonth();return n?e>=1&&e<=$r[a]:e>=1&&e<=Ir[a]},set:function(t,e,r,i){return t.setUTCDate(r),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:{priority:90,subPriority:1,parse:function(t,e,r,i){switch(e){case"D":case"DD":return S(_.dayOfYear,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return D(e.length,t)}},validate:function(t,e,r){var i=t.getUTCFullYear(),n=Ve(i);return n?e>=1&&e<=366:e>=1&&e<=365},set:function(t,e,r,i){return t.setUTCMonth(0,r),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:{priority:90,parse:function(t,e,r,i){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEE":default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,r){return e>=0&&e<=6},set:function(t,e,r,i){return t=Se(t,r,i),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["D","i","e","c","t","T"]},e:{priority:90,parse:function(t,e,r,i){var n=function(a){var s=Math.floor((a-1)/7)*7;return(a+i.weekStartsOn+6)%7+s};switch(e){case"e":case"ee":return D(e.length,t,n);case"eo":return r.ordinalNumber(t,{unit:"day",valueCallback:n});case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeee":default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,r){return e>=0&&e<=6},set:function(t,e,r,i){return t=Se(t,r,i),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:{priority:90,parse:function(t,e,r,i){var n=function(a){var s=Math.floor((a-1)/7)*7;return(a+i.weekStartsOn+6)%7+s};switch(e){case"c":case"cc":return D(e.length,t,n);case"co":return r.ordinalNumber(t,{unit:"day",valueCallback:n});case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"cccc":default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}},validate:function(t,e,r){return e>=0&&e<=6},set:function(t,e,r,i){return t=Se(t,r,i),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:{priority:90,parse:function(t,e,r,i){var n=function(a){return a===0?7:a};switch(e){case"i":case"ii":return D(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return r.day(t,{width:"abbreviated",context:"formatting",valueCallback:n})||r.day(t,{width:"short",context:"formatting",valueCallback:n})||r.day(t,{width:"narrow",context:"formatting",valueCallback:n});case"iiiii":return r.day(t,{width:"narrow",context:"formatting",valueCallback:n});case"iiiiii":return r.day(t,{width:"short",context:"formatting",valueCallback:n})||r.day(t,{width:"narrow",context:"formatting",valueCallback:n});case"iiii":default:return r.day(t,{width:"wide",context:"formatting",valueCallback:n})||r.day(t,{width:"abbreviated",context:"formatting",valueCallback:n})||r.day(t,{width:"short",context:"formatting",valueCallback:n})||r.day(t,{width:"narrow",context:"formatting",valueCallback:n})}},validate:function(t,e,r){return e>=1&&e<=7},set:function(t,e,r,i){return t=Cr(t,r,i),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:{priority:80,parse:function(t,e,r,i){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaa":default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}},set:function(t,e,r,i){return t.setUTCHours(Ee(r),0,0,0),t},incompatibleTokens:["b","B","H","k","t","T"]},b:{priority:80,parse:function(t,e,r,i){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbb":default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}},set:function(t,e,r,i){return t.setUTCHours(Ee(r),0,0,0),t},incompatibleTokens:["a","B","H","k","t","T"]},B:{priority:80,parse:function(t,e,r,i){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBB":default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}},set:function(t,e,r,i){return t.setUTCHours(Ee(r),0,0,0),t},incompatibleTokens:["a","b","t","T"]},h:{priority:70,parse:function(t,e,r,i){switch(e){case"h":return S(_.hour12h,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return D(e.length,t)}},validate:function(t,e,r){return e>=1&&e<=12},set:function(t,e,r,i){var n=t.getUTCHours()>=12;return n&&r<12?t.setUTCHours(r+12,0,0,0):!n&&r===12?t.setUTCHours(0,0,0,0):t.setUTCHours(r,0,0,0),t},incompatibleTokens:["H","K","k","t","T"]},H:{priority:70,parse:function(t,e,r,i){switch(e){case"H":return S(_.hour23h,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return D(e.length,t)}},validate:function(t,e,r){return e>=0&&e<=23},set:function(t,e,r,i){return t.setUTCHours(r,0,0,0),t},incompatibleTokens:["a","b","h","K","k","t","T"]},K:{priority:70,parse:function(t,e,r,i){switch(e){case"K":return S(_.hour11h,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return D(e.length,t)}},validate:function(t,e,r){return e>=0&&e<=11},set:function(t,e,r,i){var n=t.getUTCHours()>=12;return n&&r<12?t.setUTCHours(r+12,0,0,0):t.setUTCHours(r,0,0,0),t},incompatibleTokens:["h","H","k","t","T"]},k:{priority:70,parse:function(t,e,r,i){switch(e){case"k":return S(_.hour24h,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return D(e.length,t)}},validate:function(t,e,r){return e>=1&&e<=24},set:function(t,e,r,i){var n=r<=24?r%24:r;return t.setUTCHours(n,0,0,0),t},incompatibleTokens:["a","b","h","H","K","t","T"]},m:{priority:60,parse:function(t,e,r,i){switch(e){case"m":return S(_.minute,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return D(e.length,t)}},validate:function(t,e,r){return e>=0&&e<=59},set:function(t,e,r,i){return t.setUTCMinutes(r,0,0),t},incompatibleTokens:["t","T"]},s:{priority:50,parse:function(t,e,r,i){switch(e){case"s":return S(_.second,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return D(e.length,t)}},validate:function(t,e,r){return e>=0&&e<=59},set:function(t,e,r,i){return t.setUTCSeconds(r,0),t},incompatibleTokens:["t","T"]},S:{priority:30,parse:function(t,e,r,i){var n=function(a){return Math.floor(a*Math.pow(10,-e.length+3))};return D(e.length,t,n)},set:function(t,e,r,i){return t.setUTCMilliseconds(r),t},incompatibleTokens:["t","T"]},X:{priority:10,parse:function(t,e,r,i){switch(e){case"X":return G(j.basicOptionalMinutes,t);case"XX":return G(j.basic,t);case"XXXX":return G(j.basicOptionalSeconds,t);case"XXXXX":return G(j.extendedOptionalSeconds,t);case"XXX":default:return G(j.extended,t)}},set:function(t,e,r,i){return e.timestampIsSet?t:new Date(t.getTime()-r)},incompatibleTokens:["t","T","x"]},x:{priority:10,parse:function(t,e,r,i){switch(e){case"x":return G(j.basicOptionalMinutes,t);case"xx":return G(j.basic,t);case"xxxx":return G(j.basicOptionalSeconds,t);case"xxxxx":return G(j.extendedOptionalSeconds,t);case"xxx":default:return G(j.extended,t)}},set:function(t,e,r,i){return e.timestampIsSet?t:new Date(t.getTime()-r)},incompatibleTokens:["t","T","X"]},t:{priority:40,parse:function(t,e,r,i){return Ye(t)},set:function(t,e,r,i){return[new Date(r*1e3),{timestampIsSet:!0}]},incompatibleTokens:"*"},T:{priority:20,parse:function(t,e,r,i){return Ye(t)},set:function(t,e,r,i){return[new Date(r),{timestampIsSet:!0}]},incompatibleTokens:"*"}},Nr=Ur,qr=10,Yr=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Wr=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Vr=/^'([^]*?)'?$/,Ar=/''/g,Hr=/\S/,jr=/[a-zA-Z]/;function ze(t,e,r,i){L(3,arguments);var n=String(t),a=String(e),s=i||{},o=s.locale||ur;if(!o.match)throw new RangeError("locale must contain match property");var c=o.options&&o.options.firstWeekContainsDate,l=c==null?1:O(c),h=s.firstWeekContainsDate==null?l:O(s.firstWeekContainsDate);if(!(h>=1&&h<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var p=o.options&&o.options.weekStartsOn,F=p==null?0:O(p),E=s.weekStartsOn==null?F:O(s.weekStartsOn);if(!(E>=0&&E<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(a==="")return n===""?I(r):new Date(NaN);var N={firstWeekContainsDate:h,weekStartsOn:E,locale:o},B=[{priority:qr,subPriority:-1,set:Gr,index:0}],V,ve=a.match(Wr).map(function(m){var u=m[0];if(u==="p"||u==="P"){var b=pr[u];return b(m,o.formatLong,N)}return m}).join("").match(Yr),R=[];for(V=0;V0&&Hr.test(n))return new Date(NaN);var y=B.map(function(m){return m.priority}).sort(function(m,u){return u-m}).filter(function(m,u,b){return b.indexOf(m)===u}).map(function(m){return B.filter(function(u){return u.priority===m}).sort(function(u,b){return b.subPriority-u.subPriority})}).map(function(m){return m[0]}),K=I(r);if(isNaN(K))return new Date(NaN);var J=cr(K,vr(K)),v={};for(V=0;Vi.getTime()}function Pe(t,e){L(2,arguments);var r=I(t),i=I(e);return r.getTime()===i.getTime()}const Xe=(t,e)=>e?ze(t,e,new Date):new Date(t),pe=(t,e,r)=>{let i;return Qe(e)?i=e:typeof e=="string"&&(i=Xe(e,r)),!De(i)||!De(t)?null:i},Qr=(t,e,r)=>{const i=pe(e,t,r);return i===null?!1:Pe(i,e)},Xr=(t,e,r)=>{const i=pe(e,t,r);return i===null?!1:Ce(i,e)},Kr=(t,e,r)=>{const i=pe(e,t,r);return i===null?!1:Pe(i,e)||Ce(i,e)},Jr=(t,e,r)=>{const i=pe(e,t,r);return i===null?!1:Ce(e,i)},Zr=(t,e,r)=>{const i=pe(e,t,r);return i===null?!1:Pe(i,e)||Ce(e,i)},Rr=t=>(e,r)=>{const i=t(r),n={format:!0,isAfter:!0,isBefore:!0,required:!0,isBeforeOrEqual:!0,isAfterOrEqual:!0,isEqual:!0};if(typeof e!="string")return console.error("Value should be a string! The result will be always invalid"),!1;if(!i.required&&e==="")return!0;i.format!==void 0&&(typeof i.format!="string"?(console.error("Format field should be a string! The result will be always invalid"),n.format=!1):n.format=zr(e,i.format));const a=Xe(e,i.format);return i.isBefore!==void 0&&(n.isBefore=Xr(i.isBefore,a,i.format)),i.isBeforeOrEqual!==void 0&&(n.isBeforeOrEqual=Kr(i.isBeforeOrEqual,a,i.format)),i.isAfter!==void 0&&(n.isAfter=Jr(i.isAfter,a,i.format)),i.isAfterOrEqual!==void 0&&(n.isAfter=Zr(i.isAfterOrEqual,a,i.format)),i.isEqual!==void 0&&(n.isEqual=Qr(i.isEqual,a,i.format)),Object.values(n).every(s=>s)};var ei=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ti(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Ke={exports:{}};(function(t,e){(function(r,i){t.exports=i()})(ei,function(){var r=1e3,i=6e4,n=36e5,a="millisecond",s="second",o="minute",c="hour",l="day",h="week",p="month",F="quarter",E="year",N="date",B="Invalid Date",V=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,ve=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,R={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(v){var f=["th","st","nd","rd"],d=v%100;return"["+v+(f[(d-20)%10]||f[d]||f[0])+"]"}},k=function(v,f,d){var m=String(v);return!m||m.length>=f?v:""+Array(f+1-m.length).join(d)+v},Q={s:k,z:function(v){var f=-v.utcOffset(),d=Math.abs(f),m=Math.floor(d/60),u=d%60;return(f<=0?"+":"-")+k(m,2,"0")+":"+k(u,2,"0")},m:function v(f,d){if(f.date()1)return v(g[0])}else{var T=f.name;A[T]=f,u=T}return!m&&u&&(q=u),u||!m&&q},x=function(v,f){if(X(v))return v.clone();var d=typeof f=="object"?f:{};return d.date=v,d.args=arguments,new K(d)},y=Q;y.l=ee,y.i=X,y.w=function(v,f){return x(v,{locale:f.$L,utc:f.$u,x:f.$x,$offset:f.$offset})};var K=function(){function v(d){this.$L=ee(d.locale,null,!0),this.parse(d),this.$x=this.$x||d.x||{},this[ne]=!0}var f=v.prototype;return f.parse=function(d){this.$d=function(m){var u=m.date,b=m.utc;if(u===null)return new Date(NaN);if(y.u(u))return new Date;if(u instanceof Date)return new Date(u);if(typeof u=="string"&&!/Z$/i.test(u)){var g=u.match(V);if(g){var T=g[2]-1||0,M=(g[7]||"0").substring(0,3);return b?new Date(Date.UTC(g[1],T,g[3]||1,g[4]||0,g[5]||0,g[6]||0,M)):new Date(g[1],T,g[3]||1,g[4]||0,g[5]||0,g[6]||0,M)}}return new Date(u)}(d),this.init()},f.init=function(){var d=this.$d;this.$y=d.getFullYear(),this.$M=d.getMonth(),this.$D=d.getDate(),this.$W=d.getDay(),this.$H=d.getHours(),this.$m=d.getMinutes(),this.$s=d.getSeconds(),this.$ms=d.getMilliseconds()},f.$utils=function(){return y},f.isValid=function(){return this.$d.toString()!==B},f.isSame=function(d,m){var u=x(d);return this.startOf(m)<=u&&u<=this.endOf(m)},f.isAfter=function(d,m){return x(d)({format:"yyyy-MM-dd",isBefore:ni})),errorMessage:"age under 18 not allowed"}],{errorFieldCssClass:["error-field"]}),t.addField("#role",[{rule:"required"}],{errorFieldCssClass:["error-field"]}),t.addRequiredGroup("#genderRadio")}function si(){let t;return localStorage.getItem("employeeDatas")===null?t=[]:t=JSON.parse(localStorage.getItem("employeeDatas")),t}function Je(t){localStorage.setItem("employeeDatas",JSON.stringify(t))}function _e(t,e){t.classList.add("hidden"),e.classList.remove("hidden")}const Le=document.forms.EzEmregistration,ke=document.querySelector("#registartion-area"),me=document.querySelector("#employees-details"),Ae=me.querySelector("table"),He=me.querySelector("#no-data"),oi=document.querySelector("#nav"),Oe=document.querySelector("#emp-datas-list"),he=si();document.addEventListener("DOMContentLoaded",t=>{Ie(he)});const Ze=new wt(Le,{validateBeforeSubmitting:!0});ai(Ze);Ze.onSuccess(t=>{t.preventDefault();const e=new FormData(Le);e.append("age",Math.abs(Me(e.get("dob")).diff(Me(),"year"))),e.append("id",St());const r=Object.fromEntries(e);console.log(r),he.push(r),Je(he),Le.reset(),Oe.innerHTML="",Ie(he),_e(ke,me)});function Ie(t){if(t.length>0){Ae.classList.remove("hidden"),He.classList.add("hidden");const e=[];t.map((r,i)=>{const n=document.createElement("tr"),a=document.createElement("td"),s=document.createElement("th"),o=document.createElement("td"),c=document.createElement("td"),l=document.createElement("td"),h=document.createElement("td"),p=document.createElement("td"),F=document.createElement("td"),E=document.createElement("span");a.classList.add("table-col-data"),a.textContent=i+1,s.classList.add("text-left","table-col-data"),s.textContent=r.name,o.classList.add("table-col-data"),o.textContent=r.role,c.classList.add("table-col-data"),c.textContent=r.gender,l.classList.add("table-col-data"),l.textContent=r.age,h.classList.add("table-col-data"),h.textContent=r.email,p.classList.add("table-col-data"),p.textContent=r.phone,F.classList.add("table-col-data"),E.classList.add("cursor-pointer"),E.setAttribute("title","delete"),E.innerHTML=` + + `,E.addEventListener("click",N=>{li(r)}),F.append(E),n.append(a,s,o,c,l,h,p,F),e.push(n)}),e.forEach(r=>Oe.append(r))}else Ae.classList.add("hidden"),He.classList.remove("hidden")}function li(t){let e=he.filter(r=>r.id!==t.id);Je(e),Oe.innerHTML="",Ie(e)}oi.addEventListener("click",t=>{const e=t.target;e.id==="regEmp"?_e(me,ke):e.id==="empDet"&&_e(ke,me)});document.querySelector("#menu-icon").addEventListener("click",function(){this.classList.toggle("menu-active"),document.querySelector("#nav").classList.toggle("hidden")}); diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-PPMkhn-C.js b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-PPMkhn-C.js deleted file mode 100644 index 31853b7..0000000 --- a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-PPMkhn-C.js +++ /dev/null @@ -1,3 +0,0 @@ -(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))t(s);new MutationObserver(s=>{for(const l of s)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&t(o)}).observe(document,{childList:!0,subtree:!0});function i(s){const l={};return s.integrity&&(l.integrity=s.integrity),s.referrerPolicy&&(l.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?l.credentials="include":s.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function t(s){if(s.ep)return;s.ep=!0;const l=i(s);fetch(s.href,l)}})();var G=Object.defineProperty,q=(r,e,i)=>e in r?G(r,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):r[e]=i,h=(r,e,i)=>(q(r,typeof e!="symbol"?e+"":e,i),i);const D=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,z=/^-?[0-9]\d*$/,B=/^(?=.*[A-Za-z])(?=.*\d).{8,}$/,H=/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/,K=r=>{let e=r;return typeof r=="string"&&(e=r.trim()),!e},U=r=>D.test(r),X=(r,e)=>r.length>e,Z=(r,e)=>r.lengthtypeof r!="string"?!1:!isNaN(+r)&&!isNaN(parseFloat(r)),W=r=>z.test(r),Y=r=>B.test(r),Q=r=>H.test(r),R=(r,e)=>r>e,ee=(r,e)=>rtypeof r!="string"||r==="";var u=(r=>(r.Required="required",r.Email="email",r.MinLength="minLength",r.MaxLength="maxLength",r.Password="password",r.Number="number",r.Integer="integer",r.MaxNumber="maxNumber",r.MinNumber="minNumber",r.StrongPassword="strongPassword",r.CustomRegexp="customRegexp",r.MinFilesCount="minFilesCount",r.MaxFilesCount="maxFilesCount",r.Files="files",r))(u||{}),w=(r=>(r.Required="required",r))(w||{}),k=(r=>(r.Label="label",r.LabelArrow="labelArrow",r))(k||{});const P=[{key:u.Required,dict:{en:"The field is required"}},{key:u.Email,dict:{en:"Email has invalid format"}},{key:u.MaxLength,dict:{en:"The field must contain a maximum of :value characters"}},{key:u.MinLength,dict:{en:"The field must contain a minimum of :value characters"}},{key:u.Password,dict:{en:"Password must contain minimum eight characters, at least one letter and one number"}},{key:u.StrongPassword,dict:{en:"Password should contain minimum eight characters, at least one uppercase letter, one lowercase letter, one number and one special character"}},{key:u.Number,dict:{en:"Value should be a number"}},{key:u.MaxNumber,dict:{en:"Number should be less or equal than :value"}},{key:u.MinNumber,dict:{en:"Number should be more or equal than :value"}},{key:u.MinFilesCount,dict:{en:"Files count should be more or equal than :value"}},{key:u.MaxFilesCount,dict:{en:"Files count should be less or equal than :value"}},{key:u.Files,dict:{en:"Uploaded files have one or several invalid properties (extension/size/type etc)."}}],te="Value is incorrect",v=r=>typeof r=="object"&&r!==null&&"then"in r&&typeof r.then=="function",ie=r=>{let e=r;const i=[];for(;e;)i.unshift(e),e=e.parentNode;return i},se=(r,e)=>{const i=[...e].reverse();for(let t=0,s=i.length;tArray.isArray(r)?r.filter(e=>e.length>0):typeof r=="string"&&r.trim()?[...r.split(" ").filter(e=>e.length>0)]:[],F=r=>r instanceof Element||r instanceof HTMLDocument,re=".just-validate-error-label[data-tooltip=true]{position:fixed;padding:4px 8px;background:#423f3f;color:#fff;white-space:nowrap;z-index:10;border-radius:4px;transform:translateY(-5px)}.just-validate-error-label[data-tooltip=true]:before{content:'';width:0;height:0;border-left:solid 5px transparent;border-right:solid 5px transparent;border-bottom:solid 5px #423f3f;position:absolute;z-index:3;display:block;bottom:-5px;transform:rotate(180deg);left:calc(50% - 5px)}.just-validate-error-label[data-tooltip=true][data-direction=left]{transform:translateX(-5px)}.just-validate-error-label[data-tooltip=true][data-direction=left]:before{right:-7px;bottom:auto;left:auto;top:calc(50% - 2px);transform:rotate(90deg)}.just-validate-error-label[data-tooltip=true][data-direction=right]{transform:translateX(5px)}.just-validate-error-label[data-tooltip=true][data-direction=right]:before{right:auto;bottom:auto;left:-7px;top:calc(50% - 2px);transform:rotate(-90deg)}.just-validate-error-label[data-tooltip=true][data-direction=bottom]{transform:translateY(5px)}.just-validate-error-label[data-tooltip=true][data-direction=bottom]:before{right:auto;bottom:auto;left:calc(50% - 5px);top:-5px;transform:rotate(0)}",C=5,S={errorFieldStyle:{color:"#b81111",border:"1px solid #B81111"},errorFieldCssClass:"just-validate-error-field",successFieldCssClass:"just-validate-success-field",errorLabelStyle:{color:"#b81111"},errorLabelCssClass:"just-validate-error-label",successLabelCssClass:"just-validate-success-label",focusInvalidField:!0,lockForm:!0,testingMode:!1,validateBeforeSubmitting:!1,submitFormAutomatically:!1};class le{constructor(e,i,t){h(this,"form",null),h(this,"fields",{}),h(this,"groupFields",{}),h(this,"errors",{}),h(this,"isValid",!1),h(this,"isSubmitted",!1),h(this,"globalConfig",S),h(this,"errorLabels",{}),h(this,"successLabels",{}),h(this,"eventListeners",[]),h(this,"dictLocale",P),h(this,"currentLocale","en"),h(this,"customStyleTags",{}),h(this,"onSuccessCallback"),h(this,"onFailCallback"),h(this,"onValidateCallback"),h(this,"tooltips",[]),h(this,"lastScrollPosition"),h(this,"isScrollTick"),h(this,"fieldIds",new Map),h(this,"getKeyByFieldSelector",s=>this.fieldIds.get(s)),h(this,"getFieldSelectorByKey",s=>{for(const[l,o]of this.fieldIds)if(s===o)return l}),h(this,"getCompatibleFields",()=>{const s={};return Object.keys(this.fields).forEach(l=>{let o=l;const a=this.getFieldSelectorByKey(l);typeof a=="string"&&(o=a),s[o]={...this.fields[l]}}),s}),h(this,"setKeyByFieldSelector",s=>{if(this.fieldIds.has(s))return this.fieldIds.get(s);const l=String(this.fieldIds.size+1);return this.fieldIds.set(s,l),l}),h(this,"refreshAllTooltips",()=>{this.tooltips.forEach(s=>{s.refresh()})}),h(this,"handleDocumentScroll",()=>{this.lastScrollPosition=window.scrollY,this.isScrollTick||(window.requestAnimationFrame(()=>{this.refreshAllTooltips(),this.isScrollTick=!1}),this.isScrollTick=!0)}),h(this,"formSubmitHandler",s=>{s.preventDefault(),this.isSubmitted=!0,this.validateHandler(s)}),h(this,"handleFieldChange",s=>{let l;for(const o in this.fields)if(this.fields[o].elem===s){l=o;break}l&&(this.fields[l].touched=!0,this.validateField(l,!0))}),h(this,"handleGroupChange",s=>{let l;for(const o in this.groupFields)if(this.groupFields[o].elems.find(c=>c===s)){l=o;break}l&&(this.groupFields[l].touched=!0,this.validateGroup(l,!0))}),h(this,"handlerChange",s=>{s.target&&(this.handleFieldChange(s.target),this.handleGroupChange(s.target),this.renderErrors())}),this.initialize(e,i,t)}initialize(e,i,t){if(this.form=null,this.errors={},this.isValid=!1,this.isSubmitted=!1,this.globalConfig=S,this.errorLabels={},this.successLabels={},this.eventListeners=[],this.customStyleTags={},this.tooltips=[],this.currentLocale="en",typeof e=="string"){const s=document.querySelector(e);if(!s)throw Error(`Form with ${e} selector not found! Please check the form selector`);this.setForm(s)}else if(e instanceof HTMLFormElement)this.setForm(e);else throw Error("Form selector is not valid. Please specify a string selector or a DOM element.");if(this.globalConfig={...S,...i},t&&(this.dictLocale=[...t,...P]),this.isTooltip()){const s=document.createElement("style");s.textContent=re,this.customStyleTags[k.Label]=document.head.appendChild(s),this.addListener("scroll",document,this.handleDocumentScroll)}}getLocalisedString(e,i,t){var s;const l=t??e;let o=(s=this.dictLocale.find(a=>a.key===l))==null?void 0:s.dict[this.currentLocale];if(o||t&&(o=t),o&&i!==void 0)switch(e){case u.MaxLength:case u.MinLength:case u.MaxNumber:case u.MinNumber:case u.MinFilesCount:case u.MaxFilesCount:o=o.replace(":value",String(i))}return o||t||te}getFieldErrorMessage(e,i){const t=typeof e.errorMessage=="function"?e.errorMessage(this.getElemValue(i),this.fields):e.errorMessage;return this.getLocalisedString(e.rule,e.value,t)}getFieldSuccessMessage(e,i){const t=typeof e=="function"?e(this.getElemValue(i),this.fields):e;return this.getLocalisedString(void 0,void 0,t)}getGroupErrorMessage(e){return this.getLocalisedString(e.rule,void 0,e.errorMessage)}getGroupSuccessMessage(e){if(e.successMessage)return this.getLocalisedString(void 0,void 0,e.successMessage)}setFieldInvalid(e,i){this.fields[e].isValid=!1,this.fields[e].errorMessage=this.getFieldErrorMessage(i,this.fields[e].elem)}setFieldValid(e,i){this.fields[e].isValid=!0,i!==void 0&&(this.fields[e].successMessage=this.getFieldSuccessMessage(i,this.fields[e].elem))}setGroupInvalid(e,i){this.groupFields[e].isValid=!1,this.groupFields[e].errorMessage=this.getGroupErrorMessage(i)}setGroupValid(e,i){this.groupFields[e].isValid=!0,this.groupFields[e].successMessage=this.getGroupSuccessMessage(i)}getElemValue(e){switch(e.type){case"checkbox":return e.checked;case"file":return e.files;default:return e.value}}validateGroupRule(e,i,t){switch(t.rule){case w.Required:i.every(s=>!s.checked)?this.setGroupInvalid(e,t):this.setGroupValid(e,t)}}validateFieldRule(e,i,t,s=!1){const l=t.value,o=this.getElemValue(i);if(t.plugin){t.plugin(o,this.getCompatibleFields())||this.setFieldInvalid(e,t);return}switch(t.rule){case u.Required:{K(o)&&this.setFieldInvalid(e,t);break}case u.Email:{if(p(o))break;U(o)||this.setFieldInvalid(e,t);break}case u.MaxLength:{if(l===void 0){console.error(`Value for ${t.rule} rule for [${e}] field is not defined. The field will be always invalid.`),this.setFieldInvalid(e,t);break}if(typeof l!="number"){console.error(`Value for ${t.rule} rule for [${e}] should be a number. The field will be always invalid.`),this.setFieldInvalid(e,t);break}if(p(o))break;X(o,l)&&this.setFieldInvalid(e,t);break}case u.MinLength:{if(l===void 0){console.error(`Value for ${t.rule} rule for [${e}] field is not defined. The field will be always invalid.`),this.setFieldInvalid(e,t);break}if(typeof l!="number"){console.error(`Value for ${t.rule} rule for [${e}] should be a number. The field will be always invalid.`),this.setFieldInvalid(e,t);break}if(p(o))break;Z(o,l)&&this.setFieldInvalid(e,t);break}case u.Password:{if(p(o))break;Y(o)||this.setFieldInvalid(e,t);break}case u.StrongPassword:{if(p(o))break;Q(o)||this.setFieldInvalid(e,t);break}case u.Number:{if(p(o))break;J(o)||this.setFieldInvalid(e,t);break}case u.Integer:{if(p(o))break;W(o)||this.setFieldInvalid(e,t);break}case u.MaxNumber:{if(l===void 0){console.error(`Value for ${t.rule} rule for [${e}] field is not defined. The field will be always invalid.`),this.setFieldInvalid(e,t);break}if(typeof l!="number"){console.error(`Value for ${t.rule} rule for [${e}] field should be a number. The field will be always invalid.`),this.setFieldInvalid(e,t);break}if(p(o))break;const a=+o;(Number.isNaN(a)||R(a,l))&&this.setFieldInvalid(e,t);break}case u.MinNumber:{if(l===void 0){console.error(`Value for ${t.rule} rule for [${e}] field is not defined. The field will be always invalid.`),this.setFieldInvalid(e,t);break}if(typeof l!="number"){console.error(`Value for ${t.rule} rule for [${e}] field should be a number. The field will be always invalid.`),this.setFieldInvalid(e,t);break}if(p(o))break;const a=+o;(Number.isNaN(a)||ee(a,l))&&this.setFieldInvalid(e,t);break}case u.CustomRegexp:{if(l===void 0){console.error(`Value for ${t.rule} rule for [${e}] field is not defined. This field will be always invalid.`),this.setFieldInvalid(e,t);return}let a;try{a=new RegExp(l)}catch{console.error(`Value for ${t.rule} rule for [${e}] should be a valid regexp. This field will be always invalid.`),this.setFieldInvalid(e,t);break}const c=String(o);c!==""&&!a.test(c)&&this.setFieldInvalid(e,t);break}case u.MinFilesCount:{if(l===void 0){console.error(`Value for ${t.rule} rule for [${e}] field is not defined. This field will be always invalid.`),this.setFieldInvalid(e,t);break}if(typeof l!="number"){console.error(`Value for ${t.rule} rule for [${e}] field should be a number. The field will be always invalid.`),this.setFieldInvalid(e,t);break}if(Number.isFinite(o==null?void 0:o.length)&&o.lengthl){this.setFieldInvalid(e,t);break}break}case u.Files:{if(l===void 0){console.error(`Value for ${t.rule} rule for [${e}] field is not defined. This field will be always invalid.`),this.setFieldInvalid(e,t);return}if(typeof l!="object"){console.error(`Value for ${t.rule} rule for [${e}] field should be an object. This field will be always invalid.`),this.setFieldInvalid(e,t);return}const a=l.files;if(typeof a!="object"){console.error(`Value for ${t.rule} rule for [${e}] field should be an object with files array. This field will be always invalid.`),this.setFieldInvalid(e,t);return}const c=(n,d)=>{const f=Number.isFinite(d.minSize)&&n.sized.maxSize,$=Array.isArray(d.names)&&!d.names.includes(n.name),A=Array.isArray(d.extensions)&&!d.extensions.includes(n.name.split(".")[n.name.split(".").length-1]),N=Array.isArray(d.types)&&!d.types.includes(n.type);return f||b||$||A||N};if(typeof o=="object"&&o!==null)for(let n=0,d=o.length;n{n||this.setFieldInvalid(e,t)}).catch(()=>{this.setFieldInvalid(e,t)})}a||this.setFieldInvalid(e,t)}}}isFormValid(){let e=!0;for(let i=0,t=Object.values(this.fields).length;i{const a=this.validateFieldRule(e,s.elem,o,i);v(a)&&l.push(a)}),s.isValid&&this.setFieldValid(e,(t=s.config)==null?void 0:t.successMessage),Promise.allSettled(l).finally(()=>{var o;i&&((o=this.onValidateCallback)==null||o.call(this,{isValid:this.isFormValid(),isSubmitted:this.isSubmitted,fields:this.getCompatibleFields(),groups:{...this.groupFields}}))})}revalidateField(e){if(typeof e!="string"&&!F(e))throw Error("Field selector is not valid. Please specify a string selector or a valid DOM element.");const i=this.getKeyByFieldSelector(e);return!i||!this.fields[i]?(console.error("Field not found. Check the field selector."),Promise.reject()):new Promise(t=>{this.validateField(i,!0).finally(()=>{this.clearFieldStyle(i),this.clearFieldLabel(i),this.renderFieldError(i,!0),t(!!this.fields[i].isValid)})})}revalidateGroup(e){if(typeof e!="string"&&!F(e))throw Error("Group selector is not valid. Please specify a string selector or a valid DOM element.");const i=this.getKeyByFieldSelector(e);return!i||!this.groupFields[i]?(console.error("Group not found. Check the group selector."),Promise.reject()):new Promise(t=>{this.validateGroup(i).finally(()=>{this.clearFieldLabel(i),this.renderGroupError(i,!0),t(!!this.groupFields[i].isValid)})})}validateGroup(e,i=!1){const t=this.groupFields[e],s=[];return[...t.rules].reverse().forEach(l=>{const o=this.validateGroupRule(e,t.elems,l);v(o)&&s.push(o)}),Promise.allSettled(s).finally(()=>{var l;i&&((l=this.onValidateCallback)==null||l.call(this,{isValid:this.isFormValid(),isSubmitted:this.isSubmitted,fields:this.getCompatibleFields(),groups:{...this.groupFields}}))})}focusInvalidField(){for(const e in this.fields){const i=this.fields[e];if(!i.isValid){setTimeout(()=>i.elem.focus(),0);break}}}afterSubmitValidation(e=!1){this.renderErrors(e),this.globalConfig.focusInvalidField&&this.focusInvalidField()}validate(e=!1){return new Promise(i=>{const t=[];Object.keys(this.fields).forEach(s=>{const l=this.validateField(s);v(l)&&t.push(l)}),Object.keys(this.groupFields).forEach(s=>{const l=this.validateGroup(s);v(l)&&t.push(l)}),Promise.allSettled(t).then(()=>{var s;this.afterSubmitValidation(e),(s=this.onValidateCallback)==null||s.call(this,{isValid:this.isFormValid(),isSubmitted:this.isSubmitted,fields:this.getCompatibleFields(),groups:{...this.groupFields}}),i(!!t.length)})})}revalidate(){return new Promise(e=>{this.validateHandler(void 0,!0).finally(()=>{this.globalConfig.focusInvalidField&&this.focusInvalidField(),e(this.isValid)})})}validateHandler(e,i=!1){return this.globalConfig.lockForm&&this.lockForm(),this.validate(i).finally(()=>{var t,s,l;this.globalConfig.lockForm&&this.unlockForm(),this.isValid?((t=this.onSuccessCallback)==null||t.call(this,e),this.globalConfig.submitFormAutomatically&&((s=e==null?void 0:e.currentTarget)==null||s.submit())):(l=this.onFailCallback)==null||l.call(this,this.getCompatibleFields(),this.groupFields)})}setForm(e){this.form=e,this.form.setAttribute("novalidate","novalidate"),this.removeListener("submit",this.form,this.formSubmitHandler),this.addListener("submit",this.form,this.formSubmitHandler)}addListener(e,i,t){i.addEventListener(e,t),this.eventListeners.push({type:e,elem:i,func:t})}removeListener(e,i,t){i.removeEventListener(e,t),this.eventListeners=this.eventListeners.filter(s=>s.type!==e||s.elem!==i)}addField(e,i,t){if(typeof e!="string"&&!F(e))throw Error("Field selector is not valid. Please specify a string selector or a valid DOM element.");let s;if(typeof e=="string"?s=this.form.querySelector(e):s=e,!s)throw Error("Field doesn't exist in the DOM! Please check the field selector.");if(!Array.isArray(i)||!i.length)throw Error("Rules argument should be an array and should contain at least 1 element.");i.forEach(o=>{if(!("rule"in o||"validator"in o||"plugin"in o))throw Error("Rules argument must contain at least one rule or validator property.");if(!o.validator&&!o.plugin&&(!o.rule||!Object.values(u).includes(o.rule)))throw Error(`Rule should be one of these types: ${Object.values(u).join(", ")}. Provided value: ${o.rule}`)});const l=this.setKeyByFieldSelector(e);return this.fields[l]={elem:s,rules:i,isValid:void 0,touched:!1,config:t},this.setListeners(s),(this.isSubmitted||this.globalConfig.validateBeforeSubmitting)&&this.validateField(l),this}removeField(e){if(typeof e!="string"&&!F(e))throw Error("Field selector is not valid. Please specify a string selector or a valid DOM element.");const i=this.getKeyByFieldSelector(e);if(!i||!this.fields[i])return console.error("Field not found. Check the field selector."),this;const t=this.getListenerType(this.fields[i].elem.type);return this.removeListener(t,this.fields[i].elem,this.handlerChange),this.clearErrors(),delete this.fields[i],this}removeGroup(e){if(typeof e!="string")throw Error("Group selector is not valid. Please specify a string selector.");const i=this.getKeyByFieldSelector(e);return!i||!this.groupFields[i]?(console.error("Group not found. Check the group selector."),this):(this.groupFields[i].elems.forEach(t=>{const s=this.getListenerType(t.type);this.removeListener(s,t,this.handlerChange)}),this.clearErrors(),delete this.groupFields[i],this)}addRequiredGroup(e,i,t,s){if(typeof e!="string"&&!F(e))throw Error("Group selector is not valid. Please specify a string selector or a valid DOM element.");let l;if(typeof e=="string"?l=this.form.querySelector(e):l=e,!l)throw Error("Group selector not found! Please check the group selector.");const o=l.querySelectorAll("input"),a=Array.from(o).filter(n=>{const d=se(this.groupFields,ie(n));return d?d[1].elems.find(f=>f!==n):!0}),c=this.setKeyByFieldSelector(e);return this.groupFields[c]={rules:[{rule:w.Required,errorMessage:i,successMessage:s}],groupElem:l,elems:a,touched:!1,isValid:void 0,config:t},o.forEach(n=>{this.setListeners(n)}),this}getListenerType(e){switch(e){case"checkbox":case"select-one":case"file":case"radio":return"change";default:return"input"}}setListeners(e){const i=this.getListenerType(e.type);this.removeListener(i,e,this.handlerChange),this.addListener(i,e,this.handlerChange)}clearFieldLabel(e){var i,t;(i=this.errorLabels[e])==null||i.remove(),(t=this.successLabels[e])==null||t.remove()}clearFieldStyle(e){var i,t,s,l;const o=this.fields[e],a=((i=o.config)==null?void 0:i.errorFieldStyle)||this.globalConfig.errorFieldStyle;Object.keys(a).forEach(n=>{o.elem.style[n]=""});const c=((t=o.config)==null?void 0:t.successFieldStyle)||this.globalConfig.successFieldStyle||{};Object.keys(c).forEach(n=>{o.elem.style[n]=""}),o.elem.classList.remove(...m(((s=o.config)==null?void 0:s.errorFieldCssClass)||this.globalConfig.errorFieldCssClass),...m(((l=o.config)==null?void 0:l.successFieldCssClass)||this.globalConfig.successFieldCssClass))}clearErrors(){var e,i;Object.keys(this.errorLabels).forEach(t=>this.errorLabels[t].remove()),Object.keys(this.successLabels).forEach(t=>this.successLabels[t].remove());for(const t in this.fields)this.clearFieldStyle(t);for(const t in this.groupFields){const s=this.groupFields[t],l=((e=s.config)==null?void 0:e.errorFieldStyle)||this.globalConfig.errorFieldStyle;Object.keys(l).forEach(a=>{s.elems.forEach(c=>{var n;c.style[a]="",c.classList.remove(...m(((n=s.config)==null?void 0:n.errorFieldCssClass)||this.globalConfig.errorFieldCssClass))})});const o=((i=s.config)==null?void 0:i.successFieldStyle)||this.globalConfig.successFieldStyle||{};Object.keys(o).forEach(a=>{s.elems.forEach(c=>{var n;c.style[a]="",c.classList.remove(...m(((n=s.config)==null?void 0:n.successFieldCssClass)||this.globalConfig.successFieldCssClass))})})}this.tooltips=[]}isTooltip(){return!!this.globalConfig.tooltip}lockForm(){const e=this.form.querySelectorAll("input, textarea, button, select");for(let i=0,t=e.length;i{this.renderTooltip(e,i,t)}}}createErrorLabelElem(e,i,t){const s=document.createElement("div");s.innerHTML=i;const l=this.isTooltip()?t==null?void 0:t.errorLabelStyle:(t==null?void 0:t.errorLabelStyle)||this.globalConfig.errorLabelStyle;return Object.assign(s.style,l),s.classList.add(...m((t==null?void 0:t.errorLabelCssClass)||this.globalConfig.errorLabelCssClass),"just-validate-error-label"),this.isTooltip()&&(s.dataset.tooltip="true"),this.globalConfig.testingMode&&(s.dataset.testId=`error-label-${e}`),this.errorLabels[e]=s,s}createSuccessLabelElem(e,i,t){if(i===void 0)return null;const s=document.createElement("div");s.innerHTML=i;const l=(t==null?void 0:t.successLabelStyle)||this.globalConfig.successLabelStyle;return Object.assign(s.style,l),s.classList.add(...m((t==null?void 0:t.successLabelCssClass)||this.globalConfig.successLabelCssClass),"just-validate-success-label"),this.globalConfig.testingMode&&(s.dataset.testId=`success-label-${e}`),this.successLabels[e]=s,s}renderErrorsContainer(e,i){const t=i||this.globalConfig.errorsContainer;if(typeof t=="string"){const s=this.form.querySelector(t);if(s)return s.appendChild(e),!0;console.error(`Error container with ${t} selector not found. Errors will be rendered as usual`)}return t instanceof Element?(t.appendChild(e),!0):(t!==void 0&&console.error("Error container not found. It should be a string or existing Element. Errors will be rendered as usual"),!1)}renderGroupLabel(e,i,t,s){!s&&this.renderErrorsContainer(i,t)||e.appendChild(i)}renderFieldLabel(e,i,t,s){var l,o,a,c,n,d,f;if(!(!s&&this.renderErrorsContainer(i,t)))if(e.type==="checkbox"||e.type==="radio"){const b=document.querySelector(`label[for="${e.getAttribute("id")}"]`);((o=(l=e.parentElement)==null?void 0:l.tagName)==null?void 0:o.toLowerCase())==="label"?(c=(a=e.parentElement)==null?void 0:a.parentElement)==null||c.appendChild(i):b?(n=b.parentElement)==null||n.appendChild(i):(d=e.parentElement)==null||d.appendChild(i)}else(f=e.parentElement)==null||f.appendChild(i)}showLabels(e,i){Object.keys(e).forEach((t,s)=>{const l=e[t],o=this.getKeyByFieldSelector(t);if(!o||!this.fields[o]){console.error("Field not found. Check the field selector.");return}const a=this.fields[o];a.isValid=!i,this.clearFieldStyle(o),this.clearFieldLabel(o),this.renderFieldError(o,!1,l),s===0&&this.globalConfig.focusInvalidField&&setTimeout(()=>a.elem.focus(),0)})}showErrors(e){if(typeof e!="object")throw Error("[showErrors]: Errors should be an object with key: value format");this.showLabels(e,!0)}showSuccessLabels(e){if(typeof e!="object")throw Error("[showSuccessLabels]: Labels should be an object with key: value format");this.showLabels(e,!1)}renderFieldError(e,i=!1,t){var s,l,o,a,c,n;const d=this.fields[e];if(d.isValid===!1&&(this.isValid=!1),d.isValid===void 0||!i&&!this.isSubmitted&&!d.touched&&t===void 0)return;if(d.isValid){if(!d.asyncCheckPending){const b=this.createSuccessLabelElem(e,t!==void 0?t:d.successMessage,d.config);b&&this.renderFieldLabel(d.elem,b,(s=d.config)==null?void 0:s.errorsContainer,!0),d.elem.classList.add(...m(((l=d.config)==null?void 0:l.successFieldCssClass)||this.globalConfig.successFieldCssClass))}return}d.elem.classList.add(...m(((o=d.config)==null?void 0:o.errorFieldCssClass)||this.globalConfig.errorFieldCssClass));const f=this.createErrorLabelElem(e,t!==void 0?t:d.errorMessage,d.config);this.renderFieldLabel(d.elem,f,(a=d.config)==null?void 0:a.errorsContainer),this.isTooltip()&&this.tooltips.push(this.renderTooltip(d.elem,f,(n=(c=d.config)==null?void 0:c.tooltip)==null?void 0:n.position))}renderGroupError(e,i=!0){var t,s,l,o;const a=this.groupFields[e];if(a.isValid===!1&&(this.isValid=!1),a.isValid===void 0||!i&&!this.isSubmitted&&!a.touched)return;if(a.isValid){a.elems.forEach(d=>{var f,b;Object.assign(d.style,((f=a.config)==null?void 0:f.successFieldStyle)||this.globalConfig.successFieldStyle),d.classList.add(...m(((b=a.config)==null?void 0:b.successFieldCssClass)||this.globalConfig.successFieldCssClass))});const n=this.createSuccessLabelElem(e,a.successMessage,a.config);n&&this.renderGroupLabel(a.groupElem,n,(t=a.config)==null?void 0:t.errorsContainer,!0);return}this.isValid=!1,a.elems.forEach(n=>{var d,f;Object.assign(n.style,((d=a.config)==null?void 0:d.errorFieldStyle)||this.globalConfig.errorFieldStyle),n.classList.add(...m(((f=a.config)==null?void 0:f.errorFieldCssClass)||this.globalConfig.errorFieldCssClass))});const c=this.createErrorLabelElem(e,a.errorMessage,a.config);this.renderGroupLabel(a.groupElem,c,(s=a.config)==null?void 0:s.errorsContainer),this.isTooltip()&&this.tooltips.push(this.renderTooltip(a.groupElem,c,(o=(l=a.config)==null?void 0:l.tooltip)==null?void 0:o.position))}renderErrors(e=!1){if(!(!this.isSubmitted&&!e&&!this.globalConfig.validateBeforeSubmitting)){this.clearErrors(),this.isValid=!0;for(const i in this.groupFields)this.renderGroupError(i);for(const i in this.fields)this.renderFieldError(i)}}destroy(){this.eventListeners.forEach(e=>{this.removeListener(e.type,e.elem,e.func)}),Object.keys(this.customStyleTags).forEach(e=>{this.customStyleTags[e].remove()}),this.clearErrors(),this.globalConfig.lockForm&&this.unlockForm()}refresh(){this.destroy(),this.form?(this.initialize(this.form,this.globalConfig),Object.keys(this.fields).forEach(e=>{const i=this.getFieldSelectorByKey(e);i&&this.addField(i,[...this.fields[e].rules],this.fields[e].config)})):console.error("Cannot initialize the library! Form is not defined")}setCurrentLocale(e){if(typeof e!="string"&&e!==void 0){console.error("Current locale should be a string");return}this.currentLocale=e,this.isSubmitted&&this.validate()}onSuccess(e){return this.onSuccessCallback=e,this}onFail(e){return this.onFailCallback=e,this}onValidate(e){return this.onValidateCallback=e,this}}let E;const oe=new Uint8Array(16);function ae(){if(!E&&(E=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!E))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return E(oe)}const g=[];for(let r=0;r<256;++r)g.push((r+256).toString(16).slice(1));function ne(r,e=0){return g[r[e+0]]+g[r[e+1]]+g[r[e+2]]+g[r[e+3]]+"-"+g[r[e+4]]+g[r[e+5]]+"-"+g[r[e+6]]+g[r[e+7]]+"-"+g[r[e+8]]+g[r[e+9]]+"-"+g[r[e+10]]+g[r[e+11]]+g[r[e+12]]+g[r[e+13]]+g[r[e+14]]+g[r[e+15]]}const de=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),_={randomUUID:de};function ce(r,e,i){if(_.randomUUID&&!e&&!r)return _.randomUUID();r=r||{};const t=r.random||(r.rng||ae)();if(t[6]=t[6]&15|64,t[8]=t[8]&63|128,e){i=i||0;for(let s=0;s<16;++s)e[i+s]=t[s];return e}return ne(t)}function ue(r){r.addField("#name",[{rule:"required"},{rule:"minLength",value:3},{rule:"maxLength",value:20}],{errorFieldCssClass:["error-field"]}),r.addField("#email",[{rule:"required"},{rule:"email"}],{errorFieldCssClass:["error-field"]}),r.addField("#phone",[{rule:"required"},{rule:"required"},{rule:"number"},{rule:"minLength",value:10,errorMessage:"The phone number must be 10 characters"},{rule:"maxLength",value:10}],{errorFieldCssClass:["error-field"]}),r.addField("#dob",[{rule:"required"}],{errorFieldCssClass:["error-field"]}),r.addField("#role",[{rule:"required"}],{errorFieldCssClass:["error-field"]}),r.addRequiredGroup("#genderRadio")}function he(){let r;return localStorage.getItem("employeeDatas")===null?r=[]:r=JSON.parse(localStorage.getItem("employeeDatas")),r}function j(r){localStorage.setItem("employeeDatas",JSON.stringify(r))}function I(r,e){r.classList.add("hidden"),e.classList.remove("hidden")}const x=document.forms.EzEmregistration,V=document.querySelector("#registartion-area"),M=document.querySelector("#employees-details"),fe=document.querySelector("#nav"),L=document.querySelector("#emp-datas-list"),y=he();document.addEventListener("DOMContentLoaded",r=>{T(y)});const O=new le(x,{validateBeforeSubmitting:!0});ue(O);O.onSuccess(r=>{r.preventDefault();const e=new FormData(x);e.append("id",ce());const i=Object.fromEntries(e);console.log(i),y.push(i),j(y),I(V,M),x.reset,L.innerHTML="",T(y)});function T(r){if(r.length>0){const e=[];r.map((i,t)=>{const s=document.createElement("tr"),l=document.createElement("td"),o=document.createElement("th"),a=document.createElement("td"),c=document.createElement("td"),n=document.createElement("td"),d=document.createElement("td"),f=document.createElement("td"),b=document.createElement("span");l.classList.add("table-col-data"),l.textContent=t+1,o.classList.add("text-left","table-col-data"),o.textContent=i.name,a.classList.add("table-col-data"),a.textContent=i.role,c.classList.add("table-col-data"),c.textContent=i.gender,n.classList.add("table-col-data"),n.textContent=i.email,d.classList.add("table-col-data"),d.textContent=i.phone,f.classList.add("table-col-data"),b.classList.add("cursor-pointer"),b.setAttribute("title","delete"),b.innerHTML=` - - `,b.addEventListener("click",$=>{be(i)}),f.append(b),s.append(l,o,a,c,n,d,f),e.push(s)}),e.forEach(i=>L.append(i))}else L.innerHTML="no Data found please add "}fe.addEventListener("click",r=>{const e=r.target;e.id==="regEmp"?I(M,V):e.id==="empDet"&&I(V,M)});function be(r){let e=y.filter(i=>i.id!==r.id);j(e),L.innerHTML="",T(e)} diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-tw1vCjre.css b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-tw1vCjre.css new file mode 100644 index 0000000..8722d20 --- /dev/null +++ b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/index-tw1vCjre.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.top-\[3\.2rem\]{top:3.2rem}.z-30{z-index:30}.mx-auto{margin-left:auto;margin-right:auto}.mt-8{margin-top:2rem}.mt-\[50px\]{margin-top:50px}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-0\.5{height:.125rem}.h-20{height:5rem}.h-4{height:1rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.w-screen{width:100vw}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-b-\[0\.5px\]{border-bottom-width:.5px}.border-\[\#5A7D7C\]{--tw-border-opacity: 1;border-color:rgb(90 125 124 / var(--tw-border-opacity))}.border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.bg-\[\#232C33\]{--tw-bg-opacity: 1;background-color:rgb(35 44 51 / var(--tw-bg-opacity))}.bg-\[\#232c33d1\]{background-color:#232c33d1}.bg-\[\#A0C1D1\]{--tw-bg-opacity: 1;background-color:rgb(160 193 209 / var(--tw-bg-opacity))}.bg-\[\#DADFF7\]{--tw-bg-opacity: 1;background-color:rgb(218 223 247 / var(--tw-bg-opacity))}.bg-\[\#f2f1ee99\]{background-color:#f2f1ee99}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.\!pl-2{padding-left:.5rem!important}.pb-12{padding-bottom:3rem}.pb-4{padding-bottom:1rem}.pl-6{padding-left:1.5rem}.pr-6{padding-right:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-inter{font-family:Inter}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-\[\#232c33\]{--tw-text-opacity: 1;color:rgb(35 44 51 / var(--tw-text-opacity))}.text-\[\#808080\]{--tw-text-opacity: 1;color:rgb(128 128 128 / var(--tw-text-opacity))}.text-\[\#DADFF7\]{--tw-text-opacity: 1;color:rgb(218 223 247 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[\#B5B2C2\]{--tw-shadow-color: #B5B2C2;--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.drop-shadow-2xl{--tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / .15));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.input-box{width:100%;border-radius:.375rem;border-width:1.5px;--tw-border-opacity: 1;border-color:rgb(90 125 124 / var(--tw-border-opacity));padding:.25rem .5rem .25rem 2.75rem;--tw-text-opacity: 1;color:rgb(128 128 128 / var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px}.input-icon{position:absolute;left:2px;top:1px;border-right-width:1.5px;padding:.25rem;--tw-text-opacity: 1;color:rgb(35 44 51 / var(--tw-text-opacity))}.error-field{border-style:none;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity))}.active{text-decoration-line:underline}.table-col-title{white-space:nowrap;padding:.75rem 1.5rem;text-align:left;vertical-align:middle;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase}.table-col-data{white-space:nowrap;border-top-width:0px;border-left-width:0px;border-right-width:0px;padding:.25rem 1.5rem;vertical-align:middle;font-size:.75rem;line-height:1rem}@media (min-width: 640px){.table-col-data{padding:1rem}}.menu-active>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.menu-active .bar1{--tw-translate-y: .25rem;--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.menu-active .bar2{width:1.5rem!important;--tw-translate-y: -1.5px;--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.menu-active .bar3{display:none}.checked\:text-\[\#232C33\]:checked{--tw-text-opacity: 1;color:rgb(35 44 51 / var(--tw-text-opacity))}.focus\:border-\[\#232C33\]:focus{--tw-border-opacity: 1;border-color:rgb(35 44 51 / var(--tw-border-opacity))}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.has-\[\:checked\]\:border-2:has(:checked){border-width:2px}.has-\[\:checked\]\:border-\[\#232C33\]:has(:checked){--tw-border-opacity: 1;border-color:rgb(35 44 51 / var(--tw-border-opacity))}.has-\[\:checked\]\:bg-\[\#f2f1ee99\]:has(:checked){background-color:#f2f1ee99}.has-\[\:checked\]\:text-\[\#232C33\]:has(:checked){--tw-text-opacity: 1;color:rgb(35 44 51 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:bg-\[\#A0C1D1\]{--tw-bg-opacity: 1;background-color:rgb(160 193 209 / var(--tw-bg-opacity))}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:pb-8{padding-bottom:2rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 768px){.md\:relative{position:relative}.md\:top-0{top:0}.md\:mt-\[60px\]{margin-top:60px}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-fit{width:-moz-fit-content;width:fit-content}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-8{gap:2rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:pl-0{padding-left:0}.md\:pr-0{padding-right:0}}@media (min-width: 1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:pb-0{padding-bottom:0}}@media (min-width: 1280px){.xl\:px-16{padding-left:4rem;padding-right:4rem}} diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/istockphoto-1364551751-1024x1024-q3mg9aq5.jpg b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/istockphoto-1364551751-1024x1024-q3mg9aq5.jpg deleted file mode 100644 index 55c1177..0000000 Binary files a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/istockphoto-1364551751-1024x1024-q3mg9aq5.jpg and /dev/null differ diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/man-working-on-laptop (1)-VRfptPdn.png b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/man-working-on-laptop (1)-VRfptPdn.png new file mode 100644 index 0000000..c1a02d8 Binary files /dev/null and b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/assets/man-working-on-laptop (1)-VRfptPdn.png differ diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/business-tasklist.png b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/business-tasklist.png new file mode 100644 index 0000000..c75af06 Binary files /dev/null and b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/business-tasklist.png differ diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/index.html b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/index.html index 8855de2..649ff33 100644 --- a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/index.html +++ b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/index.html @@ -9,318 +9,312 @@ /> Employee Management System - - + + - +
-
- + +

EZEmployeeManager

+
- -
+ +
+
-

Fill Employee Details

-
-
- -
- - - - - - -
- -
- - - - - - -
- -
- - - - - - -
- -
- - - - - - -
- +
+ +
+ employee +
-
-
- - -
-
- -
- - - +
+
+

+ Please fill employee details! +

+ +
+ +
+ + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + +
+ +
+
+ + +
+
+ + +
+ + + + + + + + +
+
+ + + + +
- - - - - +
diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/man-working-on-laptop (1).png b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/man-working-on-laptop (1).png new file mode 100644 index 0000000..c1a02d8 Binary files /dev/null and b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/man-working-on-laptop (1).png differ diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/dist/man-working-on-laptop.png b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/man-working-on-laptop.png new file mode 100644 index 0000000..7500806 Binary files /dev/null and b/JavaScript/javaScriptDom/02-Employee-database-Management/dist/man-working-on-laptop.png differ diff --git a/JavaScript/javaScriptDom/02-Employee-database-Management/src/js/app.js b/JavaScript/javaScriptDom/02-Employee-database-Management/src/js/app.js index 2727eb1..76bb790 100644 --- a/JavaScript/javaScriptDom/02-Employee-database-Management/src/js/app.js +++ b/JavaScript/javaScriptDom/02-Employee-database-Management/src/js/app.js @@ -48,7 +48,7 @@ validateForm.onSuccess((e) => { setLocalStorage(empDetailsArr); - formEl.reset; + formEl.reset(); empDataListEl.innerHTML = "";