{"version":3,"sources":["webpack:///./src/views/kyc-form/section/about-you/ThePersonalDetails.vue?f963","webpack:///./src/views/kyc-form/section/about-you/ThePersonalDetails.vue","webpack:///./src/views/kyc-form/section/about-you/ThePersonalDetails.vue?bb22","webpack:///./src/views/kyc-form/section/about-you/ThePersonalDetails.vue?319c","webpack:///./@master/model/options/NationalityAndCountryOptions.ts","webpack:///./node_modules/randomstring/lib/randomstring.js","webpack:///./node_modules/randomstring/lib/charset.js","webpack:///./node_modules/randomstring/index.js","webpack:///./@core/assets/myinfo-icon.svg","webpack:///./node_modules/randomstring/node_modules/randombytes/browser.js","webpack:///./@core/components/AppForm.vue?baa9","webpack:///./@core/components/AppCurrencyNA.vue?af5e","webpack:///./@master/model/options/EmploymentStatusOptions.ts","webpack:///./node_modules/randomstring/node_modules/array-uniq/index.js","webpack:///./@core/components/AppForm.vue?4190","webpack:///./@core/components/AppCurrencyNA.vue?2c19","webpack:///./@core/components/AppCurrencyNA.vue","webpack:///./@core/components/AppCurrencyNA.vue?4219","webpack:///./@core/components/AppCurrencyNA.vue?6502","webpack:///./@core/components/AppForm.vue","webpack:///./@core/components/AppForm.vue?cec5","webpack:///./@core/components/AppForm.vue?3db6","webpack:///./src/views/kyc-form/section/about-you/ThePersonalDetails.vue?13e9"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","personalDetailsStructure1","model","currentSectionValidationErrors","personalDetailsStructure2","staticRenderFns","kycFormStore","computedValidationResult","client","clientIndex","errors","finalErrors","map","key","message","variableName","push","msg","index","kycForm","myInfo","lockedFields","keyIsLockedField","label","options","value","disabled","isLockedField","isMyInfo","type","disabledFutureDate","onChange","updateTrustedIndividual","resetIntendedRetirementAge","tooltip","content","nationalityOptions","show","showSpecifiedCitizenship","classes","countryOptions","familyMedical","EmploymentStatusOptions","showSpecifyPreviousOccupation","placement","showSpecifyActivities","compact","showSpokenLanguageSpecified","showWrittenLanguageSpecified","citizenship","employmentStatus","involvedInActivities","spokenLanguage","includes","writtenLanguage","trustedIndividual","updateAccompanied","client1","client2","intendedRetirementAge","undefined","citizenshipSpecified","citizenshipSpecified2","State","components","AppForm","AppClientForm","component","CountryOptions","Object","keys","sort","a","b","localeCompare","NationalityOptions","NationalityLabelToCode","randomBytes","Charset","unsafeRandomBytes","length","stack","i","Math","floor","random","readUInt8","safeRandomBytes","e","processString","buf","initialString","chars","reqLen","maxByte","string","randomByte","charAt","getAsyncString","cb","err","generatedString","exports","generate","charset","setType","capitalization","setcapitalization","readable","removeUnreadable","removeDuplicates","charsLen","ceil","arrayUniq","prototype","numbers","charsLower","charsUpper","toUpperCase","hexChars","binaryChars","octalChars","unreadableChars","replace","toLowerCase","charMap","split","join","module","oldBrowser","Error","crypto","global","msCrypto","size","rawBytes","Uint8Array","getRandomValues","bytes","Buffer","buffer","process","nextTick","PreviousOccupation","uniqNoSet","arr","ret","indexOf","uniqSet","seen","Set","filter","el","has","add","uniqSetWithForEach","forEach","doesForEachActuallyWork","style","_l","structure","shouldShow","class","shouldDisabled","getCustomClass","hasErrors","focusId","getId","on","$event","focusInner","getTestId","domProps","labelModelValue","labelModel","get","set","target","directives","name","rawName","labelKey","expression","composing","$set","_e","_s","ref","eidx","full","fullErr","slot","_v","multiple","optionCols","multiLimit","buttonName","cycleMode","displayDirection","setValue","blurHandler","getValue","checkboxColumnNo","option","getLabelId","setSelectValue","decimal","maxChar","currencyFormat","precision","futureDate","rows","isVertical","maxSize","columns","getValueForTable","remove","maxLength","counterMsg","isModernTheme","maxlength","numberAndNAOnly","onBlur","onFocus","onSelect","inputModal","textIsSelected","number","convertCurrencyToNumber","remainingChar","toString","evt","window","event","charCode","which","keyCode","currentValue","isAlphabetN","isNonNumber","preventDefault","charCodeAt","isAlphabetA","formatValue","$emit","isNaN","Number","source","useCurrency","currencyPrefix","toLocaleString","currency","replaceAll","projectInfo","inputValue","default","minimal","structures","charLeft","getCharLeft","getCounterMsg","gridTemplateColumns","projectSettings","theme","condition","readOnly","Function","input","oriValue","String","labelValue","data","selectedOption","selectedIndex","_value","ex","uniqueID","snakeCaseKey","curAppForm","$el","hasOverflow","scrollWidth","clientWidth","eleId","ele","document","getElementById","focus","mc","swe","first","find","s","scrollIntoView","behavior","block","arrangeCols","addEventListener","Date","now","deep","AppSmartSelect","AppCheckboxGroup","AppRadioSelection","AppDateInput","AppFormTable","AppCurrencyNA","AppDecimalNumber","AppTooltip"],"mappings":"yHAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,UAAU,CAACG,MAAM,CAAC,WAAaP,EAAIQ,0BAA0B,MAAQR,EAAIS,MAAM,OAAST,EAAIU,mCAAmC,GAAGN,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,UAAU,CAACG,MAAM,CAAC,WAAaP,EAAIW,0BAA0B,MAAQX,EAAIS,MAAM,OAAST,EAAIU,mCAAmC,MACrbE,EAAkB,G,iLCsBhBC,EAAe,eAAU,gBAQV,EAArB,8LAQE,WAAkC,QAChC,IAAI,qBAAQZ,KAAKa,0BAAjB,CAGA,IAAMC,EAA8B,IAArBd,KAAKe,YAAoB,WAAa,WAC/CC,EAAM,UAAGhB,KAAKa,gCAAR,iBAAG,EAAgC,2BAAnC,aAAG,EAAsDC,GAC/DG,EAA8C,GACpD,OAAKD,GACLA,EAAOE,KAAI,YAAqB,IAAlBC,EAAkB,EAAlBA,IAAKC,EAAa,EAAbA,QACjBD,EAAID,KAAI,SAAAG,GACNJ,EAAYK,KAAK,CACfH,IAAKE,EACLE,IAAKH,UAIJH,GATaA,KAfxB,2BA2BE,SAAeE,GACb,IAAMK,EAAQxB,KAAKe,YAAc,EAEjC,IAAI,yBAAYf,KAAKyB,QAAQ,SAAWD,GAAOE,OAAOC,cAGtD,OAAO3B,KAAKyB,QAAQ,SAAWD,GAAOE,OAAOE,iBAAiBT,KAjClE,kBAoCE,WACE,OAAOnB,KAAKQ,QArChB,qCAwCE,WAA6B,WAC3B,MAAO,CACL,CACEqB,MAAO,QACPV,IAAK,QACLW,QAAS,CACP,CAAED,MAAO,KAAME,MAAO,MACtB,CAAEF,MAAO,KAAME,MAAO,MACtB,CAAEF,MAAO,MAAOE,MAAO,OACvB,CAAEF,MAAO,MAAOE,MAAO,OACvB,CAAEF,MAAO,OAAQE,MAAO,UAEzB,CACDF,MAAO,sCACPV,IAAK,OACLa,SAAUhC,KAAKiC,cAAc,QAC7BC,SAAUlC,KAAKiC,cAAc,SAC5B,CACDJ,MAAO,wBACPV,IAAK,OACLa,SAAUhC,KAAKiC,cAAc,QAC7BC,SAAUlC,KAAKiC,cAAc,SAC5B,CACDJ,MAAO,6BACPV,IAAK,MACLgB,KAAM,OACNC,oBAAoB,EACpBJ,SAAUhC,KAAKiC,cAAc,OAC7BC,SAAUlC,KAAKiC,cAAc,OAC7BI,SAAU,WACR,EAAKC,0BACL,EAAKC,+BAEN,CACDV,MAAO,SACPV,IAAK,SACLW,QAAS,CACP,CAAED,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,OAAQE,MAAO,QACxB,CAAEF,MAAO,SAAUE,MAAO,WAE5BC,SAAUhC,KAAKiC,cAAc,UAC7BC,SAAUlC,KAAKiC,cAAc,UAC7BI,SAAU,WACR,EAAKE,+BAEN,CACDV,MAAO,cACPV,IAAK,cACLW,QAAS,CACP,CAAED,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,cAAeE,MAAO,eAC/B,CAAEF,MAAO,eAAgBE,MAAO,MAChC,CAAEF,MAAO,wBAAyBE,MAAO,eACzC,CAAEF,MAAO,oBAAqBE,MAAO,WAEvCC,SAAUhC,KAAKiC,cAAc,eAC7BC,SAAUlC,KAAKiC,cAAc,eAC7BO,QAAS,CACPC,QAAS,6GAEV,CACDZ,MAAO,6BACPV,IAAK,uBACLW,QAAS9B,KAAK0C,mBACdC,KAAM3C,KAAK4C,yBACXZ,SAAUhC,KAAKiC,cAAc,wBAC7BC,SAAUlC,KAAKiC,cAAc,yBAC5B,CACDJ,MAAO,eACPV,IAAK,cACLa,SAAUhC,KAAKiC,cAAc,eAC7BC,SAAUlC,KAAKiC,cAAc,gBAC5B,CACDJ,MAAO,iBACPV,IAAK,gBACLa,SAAUhC,KAAKiC,cAAc,iBAC7BC,SAAUlC,KAAKiC,cAAc,kBAC5B,CACDJ,MAAO,QACPV,IAAK,eACL0B,QAAS,CAAC,WACVb,SAAUhC,KAAKiC,cAAc,gBAC7BC,SAAUlC,KAAKiC,cAAc,iBAC5B,CACDJ,MAAO,sBACPV,IAAK,qBACL0B,QAAS,CAAC,WACVb,SAAUhC,KAAKiC,cAAc,sBAC7BC,SAAUlC,KAAKiC,cAAc,uBAC5B,CACDJ,MAAO,cACPV,IAAK,aACLa,SAAUhC,KAAKiC,cAAc,cAC7BC,SAAUlC,KAAKiC,cAAc,eAC5B,CACDJ,MAAO,sBACPV,IAAK,qBACLW,QAAS9B,KAAK8C,gBACb,CACDjB,MAAO,iBACPV,IAAK,gBACLW,QAAS,CACP,CAAED,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,SAAUE,MAAO,UAC1B,CAAEF,MAAO,UAAWE,MAAO,WAC3B,CAAEF,MAAO,WAAYE,MAAO,YAC5B,CAAEF,MAAO,UAAWE,MAAO,YAE7BC,SAAUhC,KAAKiC,cAAc,iBAC7BC,SAAUlC,KAAKiC,cAAc,kBAC5B,CACDJ,MAAO,SACPV,IAAK,SACLW,QAAS,CACP,CAAED,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,MAAOE,MAAO,OACvB,CAAEF,MAAO,KAAME,MAAO,OAExBC,SAAUhC,KAAKiC,cAAc,UAC7BC,SAAUlC,KAAKiC,cAAc,cAhKrC,qCAqKE,WAA6B,WAC3B,MAAO,CACL,CACEJ,MAAO,+GACPV,IAAK,gBACLW,QAAS,CACP,CAAED,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,MAAOE,MAAO,OACvB,CAAEF,MAAO,KAAME,MAAO,QAG1B,CACEF,MAAO,mCACPV,IAAK,yBACL0B,QAAS,CAAC,WACVF,KAAmC,QAA7B3C,KAAKQ,MAAMuC,eAEnB,CACElB,MAAO,oBACPV,IAAK,mBACLW,QAASkB,EAAA,KACTR,QAAS,CACPC,QAAS,0KAEV,CACDZ,MAAO,iBACPV,IAAK,qBACLwB,KAAM3C,KAAKiD,8BACXnB,QAAS,QACR,CACDD,MAAO,0BACPV,IAAK,sBACLgB,KAAM,UACL,CACDN,MAAO,2BACPV,IAAK,aACLa,SAAUhC,KAAKiC,cAAc,cAC7BC,SAAUlC,KAAKiC,cAAc,eAC5B,CACDJ,MAAO,0BACPV,IAAK,eACJ,CACDU,MAAO,eACPV,IAAK,cACL0B,QAAS,CAAC,WACVb,SAAUhC,KAAKiC,cAAc,eAC7BC,SAAUlC,KAAKiC,cAAc,gBAE/B,CACEJ,MAAO,0DACPV,IAAK,uBACLW,QAAS,CACP,CAAED,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,MAAOE,MAAO,OACvB,CAAEF,MAAO,KAAME,MAAO,OAExBS,QAAS,CACPU,UAAW,QACXT,QAAS,0rBAQV,CACDZ,MAAO,4BACPV,IAAK,sBACL0B,QAAS,CAAC,WACVF,KAAM3C,KAAKmD,uBACV,CACDtB,MAAO,qBACPV,IAAK,eACLW,QAAS,CACP,CAAED,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,WAAYE,MAAO,SAC5B,CAAEF,MAAO,kBAAmBE,MAAO,SACnC,CAAEF,MAAO,mBAAoBE,MAAO,SACpC,CAAEF,MAAO,oBAAqBE,MAAO,SACrC,CAAEF,MAAO,oBAAqBE,MAAO,SACrC,CAAEF,MAAO,YAAaE,MAAO,UAE/BC,SAAUhC,KAAKiC,cAAc,gBAC7BC,SAAUlC,KAAKiC,cAAc,iBAC5B,CACDJ,MAAO,oCACPV,IAAK,iBACLW,QAAS,CACP,CAAED,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,kBAAmBE,MAAO,mBACnC,CAAEF,MAAO,YAAaE,MAAO,aAC7B,CAAEF,MAAO,kBAAqBE,MAAO,cACrC,CAAEF,MAAO,WAAYE,MAAO,UAC5B,CAAEF,MAAO,UAAWE,MAAO,WAC3B,CAAEF,MAAO,SAAUE,MAAO,UAC1B,CAAEF,MAAO,gBAAiBE,MAAO,aAEnCC,SAAUhC,KAAKiC,cAAc,kBAC7BC,SAAUlC,KAAKiC,cAAc,kBAC7BI,SAAU,WACR,EAAKC,4BAEN,CACDT,MAAO,4CACPV,IAAK,iBACL0B,QAAS,CAAC,WACVV,KAAM,WACNiB,SAAS,EACTtB,QAAS,CACP,CAAED,MAAO,UAAWE,MAAO,WAC3B,CAAEF,MAAO,WAAYE,MAAO,YAC5B,CAAEF,MAAO,QAASE,MAAO,SACzB,CAAEF,MAAO,QAASE,MAAO,SACzB,CAAEF,MAAO,SAAUE,MAAO,WAE5BM,SAAU,WACR,EAAKC,4BAEN,CACDT,MAAO,0BACPV,IAAK,0BACL0B,QAAS,CAAC,WACVF,KAAM3C,KAAKqD,6BACV,CACDxB,MAAO,6CACPV,IAAK,kBACL0B,QAAS,CAAC,WACVV,KAAM,WACNiB,SAAS,EACTtB,QAAS,CACP,CAAED,MAAO,UAAWE,MAAO,WAC3B,CAAEF,MAAO,UAAWE,MAAO,WAC3B,CAAEF,MAAO,QAASE,MAAO,SACzB,CAAEF,MAAO,QAASE,MAAO,SACzB,CAAEF,MAAO,SAAUE,MAAO,WAE5BM,SAAU,WACR,EAAKC,4BAEN,CACDT,MAAO,2BACPV,IAAK,2BACL0B,QAAS,CAAC,WACVF,KAAM3C,KAAKsD,iCArTnB,8BA0TE,WACE,OAAO,SA3TX,0BA8TE,WACE,OAAO,SA/TX,sCAkUE,WACE,IAAMC,EAAcvD,KAAKQ,MAAM+C,YAC/B,MAAoB,WAAhBA,GAA4C,OAAhBA,GAAwC,gBAAhBA,IApU5D,2CA0UE,WACE,IAAMC,EAAmBxD,KAAKQ,MAAMgD,iBACpC,MAAyB,eAArBA,IA5UR,mCAkVE,WACE,IAAMC,EAAuBzD,KAAKQ,MAAMiD,qBACxC,MAA6B,QAAzBA,IApVR,yCA0VE,WACE,QAAIzD,KAAKQ,MAAMkD,eAAeC,SAAS,YA3V3C,0CAiWE,WACE,QAAI3D,KAAKQ,MAAMoD,gBAAgBD,SAAS,YAlW5C,qCAwWE,WACE3D,KAAKyB,QAAQoC,kBAAkBC,kBAAkB9D,KAAKyB,QAAQsC,QAAS/D,KAAKyB,QAAQuC,WAzWxF,wCA4WE,WACEhE,KAAKQ,MAAMyD,2BAAwBC,IA7WvC,iCAiXE,WACiC,gBAA3BlE,KAAKQ,MAAM+C,cACbvD,KAAKQ,MAAM2D,qBAAuB,GAClCnE,KAAKQ,MAAM4D,sBAAwB,QApXzC,GAAgD,QACtC,gBAAP,kB,4BACO,gBAAP,kB,8BACO,gBAAP,kB,kCAGD,gBADCxD,EAAayD,O,+CA4Wd,gBADC,eAAM,sB,kCAMN,MAtXkB,EAAkB,gBANtC,eAAU,CACTC,WAAY,CACVC,UAAA,KACAC,gBAAA,SAGiB,WC/B8a,I,wBCQ/bC,EAAY,eACd,EACA3E,EACAa,GACA,EACA,KACA,WACA,MAIa,aAAA8D,E,sOCbFC,EAA4BC,OAAOC,KAAK,GAAe1D,KAAI,SAAAC,GACtE,MAAO,CACLU,MAAO,EAAcV,GACrBY,MAAOZ,MAER0D,MAAK,SAACC,EAAGC,GACV,MAAgB,OAAZD,EAAE/C,OACI,EACa,OAAZgD,EAAEhD,MACJ,EACc,OAAZ+C,EAAE/C,OACH,EACa,OAAZgD,EAAEhD,MACJ,EAEA+C,EAAEjD,MAAMmD,cAAcD,EAAElD,UAItBoD,EAAgCN,OAAOC,KAAK,GAAmB1D,KAAI,SAAAC,GAC9E,MAAO,CACLU,MAAO,EAAkBV,GACzBY,MAAOZ,MAER0D,MAAK,SAACC,EAAGC,GACV,MAAgB,OAAZD,EAAE/C,OACI,EACa,OAAZgD,EAAEhD,MACJ,EACc,OAAZ+C,EAAE/C,OACH,EACa,OAAZgD,EAAEhD,MACJ,EAEA+C,EAAEjD,MAAMmD,cAAcD,EAAElD,UAKtBqD,EAAyB,G,+oQC3CtC,IAAIC,EAAc,EAAQ,QACtBC,EAAU,EAAQ,QAGtB,SAASC,EAAkBC,GAEzB,IADA,IAAIC,EAAQ,GACHC,EAAI,EAAGA,EAAIF,EAAQE,IAC1BD,EAAMjE,KAAKmE,KAAKC,MAAsB,IAAhBD,KAAKE,WAG7B,MAAO,CACLL,SACAM,UAAW,SAAUpE,GACnB,OAAO+D,EAAM/D,KAKnB,SAASqE,EAAgBP,GACvB,IACE,OAAOH,EAAYG,GACnB,MAAOQ,GAEP,OAAOT,EAAkBC,IAI7B,SAASS,EAAcC,EAAKC,EAAeC,EAAOC,EAAQC,GAExD,IADA,IAAIC,EAASJ,EACJT,EAAI,EAAGA,EAAIQ,EAAIV,QAAUe,EAAOf,OAASa,EAAQX,IAAK,CAC7D,IAAIc,EAAaN,EAAIJ,UAAUJ,GAC3Bc,EAAaF,IACfC,GAAUH,EAAMK,OAAOD,EAAaJ,EAAMZ,SAG9C,OAAOe,EAGT,SAASG,EAAeH,EAAQH,EAAOZ,EAAQc,EAASK,GACtDtB,EAAYG,GAAQ,SAASoB,EAAKV,GAC5BU,GAEFD,EAAGC,GAEL,IAAIC,EAAkBZ,EAAcC,EAAKK,EAAQH,EAAOZ,EAAQc,GAC5DO,EAAgBrB,OAASA,EAC3BkB,EAAeG,EAAiBT,EAAOZ,EAAQc,EAASK,GAExDA,EAAG,KAAME,MAKfC,EAAQC,SAAW,SAAS/E,EAAS2E,GACnC,IAEInB,EAFAwB,EAAU,IAAI1B,EAEiBiB,EAAS,GAGrB,kBAAZvE,GACTwD,EAAmC,kBAAnBxD,EAAQwD,OAAsBxD,EAAQwD,OAAS,GAE3DxD,EAAQgF,QACVA,EAAQC,QAAQjF,EAAQgF,SAGxBA,EAAQC,QAAQ,gBAGdjF,EAAQkF,gBACVF,EAAQG,kBAAkBnF,EAAQkF,gBAGhClF,EAAQoF,UACVJ,EAAQK,mBAGVL,EAAQM,oBAEkB,kBAAZtF,GACdwD,EAASxD,EACTgF,EAAQC,QAAQ,kBAGhBzB,EAAS,GACTwB,EAAQC,QAAQ,iBAIlB,IAAIM,EAAWP,EAAQZ,MAAMZ,OACzBc,EAAU,IAAO,IAAMiB,EAE3B,IAAKZ,EAAI,CACP,MAAOJ,EAAOf,OAASA,EAAQ,CAC7B,IAAIU,EAAMH,EAAgBJ,KAAK6B,KAAc,IAAThC,EAAec,IACnDC,EAASN,EAAcC,EAAKK,EAAQS,EAAQZ,MAAOZ,EAAQc,GAG7D,OAAOC,EAGTG,EAAeH,EAAQS,EAAQZ,MAAOZ,EAAQc,EAASK,K,8CCvGzD,IAAIc,EAAY,EAAQ,QAExB,SAASnC,IACPpF,KAAKkG,MAAQ,GAGfd,EAAQoC,UAAUT,QAAU,SAAS5E,GACnC,IAAI+D,EAEAuB,EAAc,aACdC,EAAc,6BACdC,EAAcD,EAAWE,cACzBC,EAAc,SACdC,EAAc,KACdC,EAAc,WAGhB7B,EADW,iBAAT/D,EACMsF,EAAUC,EAAaC,EAEf,YAATxF,EACCsF,EAEQ,eAATtF,EACCuF,EAAaC,EAEL,QAATxF,EACCsF,EAAUI,EAEF,WAAT1F,EACC2F,EAEQ,UAAT3F,EACC4F,EAGA5F,EAGVnC,KAAKkG,MAAQA,GAGfd,EAAQoC,UAAUL,iBAAmB,WACnC,IAAIa,EAAkB,UACtBhI,KAAKkG,MAAQlG,KAAKkG,MAAM+B,QAAQD,EAAiB,KAGnD5C,EAAQoC,UAAUP,kBAAoB,SAASD,GACtB,cAAnBA,EACFhH,KAAKkG,MAAQlG,KAAKkG,MAAM0B,cAEE,cAAnBZ,IACPhH,KAAKkG,MAAQlG,KAAKkG,MAAMgC,gBAI5B9C,EAAQoC,UAAUJ,iBAAmB,WACnC,IAAIe,EAAUnI,KAAKkG,MAAMkC,MAAM,IAC/BD,EAAUZ,EAAUY,GACpBnI,KAAKkG,MAAQiC,EAAQE,KAAK,KAG5BC,EAAO1B,QAAoBxB,G,qBC7D3BkD,EAAO1B,QAAU,EAAQ,S,uBCAzB0B,EAAO1B,QAAU,IAA0B,gC,qCCA3C,gBAEA,SAAS2B,IACP,MAAM,IAAIC,MAAM,8GAGlB,IAAIC,EAASC,EAAOD,QAAUC,EAAOC,SAQrC,SAASxD,EAAayD,EAAMnC,GAE1B,GAAImC,EAAO,MAAO,MAAM,IAAIJ,MAAM,mCAElC,IAAIK,EAAW,IAAIH,EAAOI,WAAWF,GAIjCA,EAAO,GACTH,EAAOM,gBAAgBF,GAGzB,IAAIG,EAAQ,IAAIC,EAAOJ,EAASK,QAEhC,MAAkB,oBAAPzC,EACF0C,EAAQC,UAAS,WACtB3C,EAAG,KAAMuC,MAINA,EA1BLP,GAAUA,EAAOM,gBACnBT,EAAO1B,QAAUzB,EAEjBmD,EAAO1B,QAAU2B,I,iwHCXnB,W,o/ICAA,W,yDCAA,oEAAO,IAAMvF,EAA0B,CACrC,CAAEnB,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,YAAaE,MAAO,YAC7B,CAAEF,MAAO,gBAAiBE,MAAO,gBACjC,CAAEF,MAAO,YAAaE,MAAO,YAC7B,CAAEF,MAAO,eAAgBE,MAAO,eAGrBsH,EAAqB,CAChC,CAAExH,MAAO,GAAIE,MAAO,IACpB,CAAEF,MAAO,YAAaE,MAAO,aAC7B,CAAEF,MAAO,UAAWE,MAAO,WAC3B,CAAEF,MAAO,UAAWE,MAAO,WAC3B,CAAEF,MAAO,aAAcE,MAAO,cAC9B,CAAEF,MAAO,SAAUE,MAAO,Y,mCCd5B,YAKA,SAASuH,EAAUC,GAGlB,IAFA,IAAIC,EAAM,GAEDhE,EAAI,EAAGA,EAAI+D,EAAIjE,OAAQE,KACF,IAAzBgE,EAAIC,QAAQF,EAAI/D,KACnBgE,EAAIlI,KAAKiI,EAAI/D,IAIf,OAAOgE,EAIR,SAASE,EAAQH,GAChB,IAAII,EAAO,IAAIC,IACf,OAAOL,EAAIM,QAAO,SAAUC,GAC3B,IAAKH,EAAKI,IAAID,GAEb,OADAH,EAAKK,IAAIF,IACF,KAMV,SAASG,EAAmBV,GAC3B,IAAIC,EAAM,GAMV,OAJA,IAAKI,IAAIL,GAAMW,SAAQ,SAAUJ,GAChCN,EAAIlI,KAAKwI,MAGHN,EAKR,SAASW,IACR,IAAIX,GAAM,EAMV,OAJA,IAAKI,IAAI,EAAC,IAAQM,SAAQ,SAAUJ,GACnCN,EAAMM,MAGQ,IAARN,EAGJ,QAASd,EACyB,oBAA1BkB,IAAIpC,UAAU0C,SAA0BC,IAClD7B,EAAO1B,QAAUqD,EAEjB3B,EAAO1B,QAAU8C,EAGlBpB,EAAO1B,QAAU0C,I,wDC1DlB,IAAIxJ,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,eAAe+J,MAAOrK,EAAa,UAAEO,MAAM,CAAC,GAAK,aAAa,CAACP,EAAIsK,GAAItK,EAAqB,mBAAE,SAASuK,GAAW,MAAO,CAAEvK,EAAIwK,WAAWD,EAAU3H,MAAOxC,EAAG,MAAM,CAACgB,IAAImJ,EAAUnJ,IAAId,YAAY,yBAAyBmK,MAAM,CAAC,CAAE,iBAAkBzK,EAAI0K,eAAeH,EAAUtI,WAAYjC,EAAI2K,eAAeJ,IAAYhK,MAAM,CAAC,UAAUgK,EAAUK,UAAU,SAAW5K,EAAI6K,SAAW7K,EAAI8K,MAAMP,EAAUnJ,KAAK,GAAM,OAAUpB,EAAI8K,MAAMP,EAAUnJ,MAAQ2J,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAIiL,WAAWV,MAAc,CAAC,CAAEA,EAAoB,WAAEnK,EAAG,QAAQ,CAACE,YAAY,QAAQC,MAAM,CAAC,KAAO,OAAO,YAAcgK,EAAUzI,MAAM,YAAa,eAAkB9B,EAAIkL,UAAUX,EAAUnJ,MAAQ+J,SAAS,CAAC,MAAQnL,EAAIoL,gBAAgBb,EAAUc,WAAWC,QAAQP,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOT,EAAUc,WAAWE,IAAIP,EAAOQ,OAAOxJ,WAAYuI,EAAkB,SAAEnK,EAAG,QAAQ,CAACqL,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU3J,MAAOhC,EAAIS,MAAM8J,EAAUqB,UAAWC,WAAW,8BAA8BvL,YAAY,QAAQC,MAAM,CAAC,KAAO,OAAO,YAAa,eAAkBP,EAAIkL,UAAUX,EAAUnJ,MAAQ+J,SAAS,CAAC,MAASnL,EAAIS,MAAM8J,EAAUqB,WAAYb,GAAG,CAAC,MAAQ,SAASC,GAAWA,EAAOQ,OAAOM,WAAqB9L,EAAI+L,KAAK/L,EAAIS,MAAO8J,EAAUqB,SAAUZ,EAAOQ,OAAOxJ,WAAWhC,EAAIgM,KAAMzB,EAAUc,YAAcd,EAAUqB,SAAUxL,EAAG,IAAI,CAACE,YAAY,iCAAqD,oBAAnBiK,EAAUnI,KAA4BhC,EAAG,QAAQA,EAAG,QAAQ,CAACG,MAAM,CAAC,IAAMP,EAAI8K,MAAMP,EAAUnJ,KAAK,GAAKpB,EAAI8K,MAAMP,EAAUnJ,KAAO,UAAU+J,SAAS,CAAC,UAAYnL,EAAIiM,GAAG1B,EAAUzI,UAAWyI,EAAiB,QAAEnK,EAAG,aAAa,CAACG,MAAM,CAAC,cAAgBgK,EAAU9H,WAAWzC,EAAIgM,KAAMhM,EAAiB,cAAEA,EAAIsK,GAAIC,EAAgB,QAAE,SAAS2B,EAAIC,GACxzD,IAAI3K,EAAM0K,EAAI1K,IACd,OAAOpB,EAAG,MAAM,CAACgB,IAAMmJ,EAAa,IAAI,UAAY4B,EAAM7L,YAAY,WAAWmK,MAAM,CACzE2B,KACW,IAATD,GAAcnM,EAAIqM,UAAc9B,EAAa,IAAI,UAAY4B,GAC/DpB,GAAG,CAAC,MAAQ,SAASC,GAAQhL,EAAIqM,QAAW9B,EAAa,IAAI,UAAY4B,KAAQ,CAAC/L,EAAG,aAAa,CAACA,EAAG,OAAO,CAACE,YAAY,oBAAoBF,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,WAAW+L,KAAK,WAAW,CAACtM,EAAIuM,GAAGvM,EAAIiM,GAAGzK,SAAW,MAAKxB,EAAIgM,MAAOzB,EAAUxI,SAA8B,UAAnBwI,EAAUnI,KAAkBhC,EAAG,iBAAiB,CAACG,MAAM,CAAC,QAAUgK,EAAUxI,QAAQ,MAAQ/B,EAAIS,MAAM8J,EAAUnJ,KAAK,SAAWmJ,EAAUiC,SAAS,KAAOjC,EAAUkC,WAAW,WAAalC,EAAUmC,WAAW,WAAanC,EAAUoC,WAAW,UAAYpC,EAAUqC,UAAU,iBAAmBrC,EAAUsC,iBAAiB,SAAW7M,EAAI0K,eAAeH,EAAUtI,WAAW8I,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,IAAS,KAAO,SAASA,GAAQ,OAAOhL,EAAI+M,kBAAsC,oBAAnBxC,EAAUnI,KAA4BhC,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQP,EAAIgN,SAASzC,GAAW,SAAWvK,EAAI0K,eAAeH,EAAUtI,WAAW8I,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,MAAW,CAAChL,EAAIuM,GAAG,IAAIvM,EAAIiM,GAAG1B,EAAUzI,OAAO,OAAQyI,EAAUxI,SAA8B,aAAnBwI,EAAUnI,KAAqBhC,EAAG,mBAAmB,CAACG,MAAM,CAAC,UAAYgK,EAAU,MAAQvK,EAAIS,MAAM,OAAS8J,EAAU0C,iBAAiB,QAAU1C,EAAUlH,SAAS0H,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,IAAS,KAAO,SAASA,GAAQ,OAAOhL,EAAI+M,kBAAmBxC,EAAUxI,SAA8B,UAAnBwI,EAAUnI,KAAkBhC,EAAG,oBAAoB,CAACG,MAAM,CAAC,QAAUgK,EAAUxI,QAAQ,MAAQ/B,EAAIS,MAAM8J,EAAUnJ,KAAK,WAAamJ,EAAUoC,WAAW,iBAAmBpC,EAAUsC,iBAAiB,SAAW7M,EAAI0K,eAAeH,EAAUtI,WAAW8I,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,IAAS,KAAO,SAASA,GAAQ,OAAOhL,EAAI+M,kBAAsC,UAAnBxC,EAAUnI,KAAkBhC,EAAG,YAAY,CAACE,YAAY,oBAAoBC,MAAM,CAAC,MAAQP,EAAIgN,SAASzC,GAAW,SAAWvK,EAAI0K,eAAeH,EAAUtI,UAAU,SAAW,GAAG,gBAAgB,GAAG,KAAO,QAAQ,eAAe,oBAAoB8I,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,MAAWhL,EAAIsK,GAAIC,EAAiB,SAAE,SAAS2C,EAAOzL,GAAO,OAAOrB,EAAG,YAAY,CAACgB,IAAIK,EAAMlB,MAAM,CAAC,MAAQ2M,EAAOlL,MAAM,MAAQkL,EAAOpL,YAAW,GAAIyI,EAAiB,QAAEnK,EAAG,SAAS,CAACqK,MAAM,CAAE,kBAAmBF,EAAUpI,UAAW5B,MAAM,CAAC,GAAKP,EAAI8K,MAAMP,EAAUnJ,KAAK,YAAYpB,EAAIkL,UAAUX,EAAUnJ,KAAK,kBAAkBpB,EAAImN,WAAW5C,EAAUnJ,KAAK,SAAWpB,EAAI0K,eAAeH,EAAUtI,WAAWkJ,SAAS,CAAC,MAAQnL,EAAIgN,SAASzC,IAAYQ,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAIoN,eAAepC,EAAOQ,OAAQjB,MAAcvK,EAAIsK,GAAIC,EAAiB,SAAE,SAAS2C,EAAOzL,GAAO,OAAOrB,EAAG,SAAS,CAACgB,IAAIK,EAAM0J,SAAS,CAAC,MAAQ+B,EAAOlL,QAAQ,CAAChC,EAAIuM,GAAG,IAAIvM,EAAIiM,GAAGiB,EAAOpL,OAAO,UAAS,GAAuB,mBAAnByI,EAAUnI,KAA2B,CAAChC,EAAG,mBAAmB,CAACqK,MAAM,CAAE,kBAAmBF,EAAUpI,UAAW5B,MAAM,CAAC,QAAUgK,EAAU8C,QAAQ,WAAarN,EAAIgN,SAASzC,GAAW,SAAWvK,EAAI0K,eAAeH,EAAUtI,WAAW8I,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAYS,QAAiC,WAAnBT,EAAUnI,MAAwC,SAAnBmI,EAAUnI,MAAsC,aAAnBmI,EAAUnI,KAAqBhC,EAAG,QAAQ,CAACqK,MAAM,CAAE,kBAAmBF,EAAUpI,UAAW5B,MAAM,CAAC,GAAKP,EAAI8K,MAAMP,EAAUnJ,KAAK,YAAYpB,EAAIkL,UAAUX,EAAUnJ,KAAK,kBAAkBpB,EAAImN,WAAW5C,EAAUnJ,KAAK,KAAOmJ,EAAUnI,KAAK,SAAWpC,EAAI0K,eAAeH,EAAUtI,UAAU,UAAYsI,EAAU+C,SAASnC,SAAS,CAAC,MAAQnL,EAAIgN,SAASzC,IAAYQ,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,EAAOQ,OAAOxJ,QAAQ,KAAO,SAASgJ,GAAQ,OAAOhL,EAAI+M,kBAAsC,aAAnBxC,EAAUnI,KAAqBhC,EAAG,iBAAiB,CAACqK,MAAM,CAAE,kBAAmBF,EAAUpI,UAAW5B,MAAM,CAAC,GAAKP,EAAI8K,MAAMP,EAAUnJ,KAAK,YAAYpB,EAAIkL,UAAUX,EAAUnJ,KAAK,SAAWmJ,EAAUgD,eAAe,kBAAkBvN,EAAImN,WAAW5C,EAAUnJ,KAAK,MAAQpB,EAAIgN,SAASzC,GAAW,SAAWvK,EAAI0K,eAAeH,EAAUtI,UAAU,UAAYsI,EAAUiD,WAAWzC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,IAAS,KAAO,SAASA,GAAQ,OAAOhL,EAAI+M,kBAAsC,SAAnBxC,EAAUnI,MAAsC,UAAnBmI,EAAUnI,KAAkBhC,EAAG,eAAe,CAACqK,MAAM,CAAE,kBAAmBF,EAAUpI,UAAW5B,MAAM,CAAC,MAAQP,EAAIgN,SAASzC,GAAW,GAAKvK,EAAI8K,MAAMP,EAAUnJ,KAAK,aAAamJ,EAAUnI,KAAK,YAAYpC,EAAIkL,UAAUX,EAAUnJ,KAAK,aAAamJ,EAAUzI,MAAM,SAAW9B,EAAI0K,eAAeH,EAAUtI,UAAU,WAAasI,EAAUkD,WAAW,mBAAqBlD,EAAUlI,oBAAoB0I,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,IAAS,KAAO,SAASA,GAAQ,OAAOhL,EAAI+M,kBAAsC,aAAnBxC,EAAUnI,KAAqBhC,EAAG,WAAW,CAACqK,MAAM,CAAE,kBAAmBF,EAAUpI,UAAW5B,MAAM,CAAC,GAAKP,EAAI8K,MAAMP,EAAUnJ,KAAK,YAAYpB,EAAIkL,UAAUX,EAAUnJ,KAAK,kBAAkBpB,EAAImN,WAAW5C,EAAUnJ,KAAK,SAAWpB,EAAI0K,eAAeH,EAAUtI,UAAU,UAAYsI,EAAU+C,QAAQ,KAAO/C,EAAUmD,MAAQ,IAAIvC,SAAS,CAAC,MAAQnL,EAAIgN,SAASzC,IAAYQ,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,EAAOQ,OAAOxJ,QAAQ,KAAO,SAASgJ,GAAQ,OAAOhL,EAAI+M,kBAAsC,UAAnBxC,EAAUnI,KAAkBhC,EAAG,eAAe,CAACE,YAAY,cAAcC,MAAM,CAAC,YAAa,EAAK,SAAWgK,EAAUoD,WAAW,QAAUpD,EAAUqD,QAAQ,OAASrD,EAAUsD,QAAQ,KAAO7N,EAAI8N,iBAAiBvD,IAAYQ,GAAG,CAAC,IAAMR,EAAUN,IAAI,OAASM,EAAUwD,UAA4B,gBAAjBxD,EAAUnI,KAAsB,CAAChC,EAAG,gBAAgB,CAACG,MAAM,CAAC,WAAaP,EAAIgN,SAASzC,GAAW,SAAWvK,EAAI0K,eAAeH,EAAUtI,UAAU,UAAYsI,EAAUyD,WAAWjD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,QAAa5K,EAAG,QAAQ,CAACqK,MAAM,CAAE,kBAAmBF,EAAUpI,UAAW5B,MAAM,CAAC,GAAKP,EAAI8K,MAAMP,EAAUnJ,KAAK,YAAYpB,EAAIkL,UAAUX,EAAUnJ,KAAK,kBAAkBpB,EAAImN,WAAW5C,EAAUnJ,KAAK,KAAO,OAAO,SAAWpB,EAAI0K,eAAeH,EAAUtI,UAAU,UAAYsI,EAAU+C,SAASnC,SAAS,CAAC,MAAQnL,EAAIgN,SAASzC,IAAYQ,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhL,EAAI8M,SAASvC,EAAWS,EAAOQ,OAAOxJ,QAAQ,KAAO,SAASgJ,GAAQ,OAAOhL,EAAI+M,YAAYxC,EAAWS,EAAOQ,OAAOxJ,WAAYuI,EAAkB,SAAEnK,EAAG,MAAM,CAACE,YAAY,kBAAkBC,MAAM,CAAC,IAAM,EAAQ,WAAmCP,EAAIgM,KAAMzB,EAAU0D,YAAcjO,EAAIkO,cAAe9N,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACN,EAAIuM,GAAG,IAAIvM,EAAIiM,GAAG1B,EAAU0D,YAAY,OAAOjO,EAAIgM,MAAM,GAAGhM,EAAIgM,UAAS,IAC5zMpL,EAAkB,G,mRCNlB,EAAS,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACqL,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU3J,MAAOhC,EAAc,WAAE6L,WAAW,eAAetL,MAAM,CAAC,UAAYP,EAAImO,UAAU,SAAWnO,EAAIiC,UAAUkJ,SAAS,CAAC,MAASnL,EAAc,YAAG+K,GAAG,CAAC,SAAW,SAASC,GAAQ,OAAOhL,EAAIoO,gBAAgBpD,IAAS,KAAO,SAASA,GAAQ,OAAOhL,EAAIqO,UAAU,MAAQ,SAASrD,GAAQ,OAAOhL,EAAIsO,WAAW,OAAS,SAAStD,GAAQ,OAAOhL,EAAIuO,SAASvD,IAAS,MAAQ,SAASA,GAAWA,EAAOQ,OAAOM,YAAqB9L,EAAIwO,WAAWxD,EAAOQ,OAAOxJ,WAAYhC,EAAIiC,SAA0FjC,EAAIgM,KAApF5L,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACN,EAAIuM,GAAG,IAAIvM,EAAIiM,GAAGjM,EAAIiO,YAAY,UACnsB,EAAkB,GCiBD,G,wCAArB,yG,0BASG,EAAAO,WAAa,GACb,EAAAC,gBAAiB,EAVpB,iDAYG,WACE,GAA8B,qBAAnBxO,KAAKkO,UAAhB,CACA,IAAMO,EAASzO,KAAK0O,wBAAwB1O,KAAKuO,YAC3CI,EAAgB3O,KAAKkO,WAAaO,EAAOG,WAAWtJ,QAAU,GACpE,OAAOqJ,EAAgB,EAAhB,UAAuBA,EAAvB,wBAA6D,iCAhBzE,6BAmBG,SAAiBE,GACfA,EAAOA,GAAQC,OAAOC,MACtB,IAAMC,EAAYH,EAAII,MAASJ,EAAII,MAAQJ,EAAIK,QAEzCC,EAAeN,EAAItD,OAAOxJ,MAChC,GAAI/B,KAAKwO,eAMP,OALKxO,KAAKoP,YAAYJ,IAAahP,KAAKqP,YAAYL,GAClDH,EAAIS,iBAEJtP,KAAKwO,gBAAiB,GAEjB,EAST,GALmC,OAA/BW,EAAavH,eACfiH,EAAIS,iBAIFtP,KAAKoP,YAAYD,EAAaI,WAAW,IAAK,CAChD,GAAIvP,KAAKwP,YAAYR,GACnB,OAAO,EAETH,EAAIS,iBAIN,QAAKH,IACCnP,KAAKoP,YAAYJ,OAMnBhP,KAAKqP,YAAYL,SACnBH,EAAIS,oBAvDX,yBA6DG,SAAaN,GACX,OAAoB,KAAbA,GAAgC,MAAbA,IA9D/B,yBAiEG,SAAaA,GACX,OAAoB,KAAbA,GAAgC,KAAbA,IAlE/B,yBAqEG,SAAaA,GACX,OAAOA,EAAW,KAAOA,EAAW,IAAMA,EAAW,MAtE1D,oBAyEG,WACE,IAAKhP,KAAKuO,YAAkC,MAApBvO,KAAKuO,WAG3B,OAFAvO,KAAKuO,WAAavO,KAAKyP,YAAY,SACnCzP,KAAK0P,MAAM,QAAS,IAKtB,GAAsC,OAAlC1P,KAAKuO,WAAW3G,cAGlB,OAFA5H,KAAKuO,WAAa,UAClBvO,KAAK0P,MAAM,QAAS,MAKtB,GAAIC,MAAMC,OAAO5P,KAAKuO,aAGpB,OAFAvO,KAAKuO,WAAa,UAClBvO,KAAK0P,MAAM,QAAS,MAItB,IAAMjB,EAASzO,KAAK0O,wBAAwB1O,KAAKuO,YACjDvO,KAAKuO,WAAavO,KAAKyP,YAAYhB,GACnCzO,KAAK0P,MAAM,QAASE,OAAOnB,MAhGhC,qBAmGG,WACEzO,KAAKuO,WAAavO,KAAK0O,wBAAwB1O,KAAKuO,cApGzD,sBAuGG,WACEvO,KAAKwO,gBAAiB,IAxG3B,yBA2GG,SAAaqB,GAAM,QACjB,GAAsB,kBAAXA,EAAqB,CAC9B,GAA6B,OAAzBA,EAAOjI,eAAqC,KAAXiI,EACnC,OAAOA,EAETA,EAASD,OAAOC,EAAO5H,QAAQ,IAAK,IAAIA,QAAQ,IAAK,eACjC/D,IAAX2L,GAAkC,MAAVA,IACjCA,EAAS,IAEX,OAAO7P,KAAK8P,YAAc9P,KAAK+P,gBAAL,UAAsBF,SAAtB,aAAsB,EAAQG,eAAe,UAAhE,UAA2EH,SAA3E,aAA2E,EAAQG,eAAe,WApH9G,qCAuHG,SAAyBC,GACvB,OAAOA,EAASC,WAAWlQ,KAAK+P,eAAgB,IAAIG,WAAW,IAAK,MAxHzE,0BA2HG,WAAkB,MAChB,iBAAOlQ,KAAKmQ,YAAYF,gBAAxB,QAAoC,SA5HzC,gCAgIG,WACMjQ,KAAKoQ,YAAkC,MAApBpQ,KAAKoQ,YAAkD,IAA5BR,OAAO5P,KAAKoQ,YAC5DpQ,KAAKuO,WAAavO,KAAKyP,YAAYzP,KAAKoQ,YAExCpQ,KAAKuO,WAAavO,KAAKyP,YAAY,MApI1C,qBAwIE,WACEzP,KAAKuO,WAAavO,KAAKyP,YAAYzP,KAAKoQ,gBAzI5C,GAA2C,SACjC,gBAAP,kB,iCACwB,gBAAxB,eAAK,CAAEC,SAAS,K,kCACM,gBAAtB,eAAK,CAAEA,QAAS,M,gCACS,gBAAzB,eAAK,CAAEA,SAAS,K,+BAGjB,gBADE,uB,kCA0HD,gBADA,eAAM,e,iCAOL,MAtIiB,EAAa,gBADjC,QACoB,WClBmX,I,wBCQpY5L,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,gCCgQM,EAArB,yG,0BAgBU,EAAA6L,SAAU,EAEV,EAAA1F,QAAU,KACV,EAAAwB,QAAU,KAnBpB,wDAqBE,WAAqB,WACnB,OAAOpM,KAAKuQ,WAAWrP,KAAI,SAACoJ,GAAa,MACjCnJ,EAAOmJ,EAAkBnJ,IACzBH,GAAS,YAAKA,cAAL,eAAa6I,QAAO,SAACnD,GAAD,OAASA,EAAIvF,MAAQA,OAAQ,GAC1DkM,EAAU,eAAW,EAAK7M,MAAOW,GACjCqP,EAAW,EAAKC,YAAYtP,GAC5B6M,EAAa,EAAK0C,cAAcrD,EAASmD,GAC/C,uBACExP,SACA2J,WAAiB,OAAN3J,QAAM,IAANA,OAAA,EAAAA,EAAQsE,QAAS,EAC5B+H,UACAW,cACG1D,QAjCX,qBAsCE,WACE,MAAO,CACLqG,oBAAqB,UAAF,OAAY3Q,KAAK4N,QAAjB,wBAxCzB,yBA4CE,WACE,MAAsC,WAA/B5N,KAAK4Q,gBAAgBC,QA7ChC,2BAgDE,SAAexD,EAASmD,GACtB,OAAKxQ,KAAKiO,eACHZ,EAAUmD,EAAW,EAAX,UAAkBA,EAAlB,sBAAiD,8BADlC,KAjDpC,4BAqDE,WAAqD,IAArCM,EAAqC,wDACnD,QAAI9Q,KAAK+Q,eACS7M,IAAd4M,IAEOA,aAAqBE,SACvBF,EAAU9Q,KAAKQ,OAEfsQ,KA5Db,wBAgEE,WAAgD,IAApCA,IAAoC,yDAC9C,YAAkB5M,IAAd4M,IAEOA,aAAqBE,SACvBF,EAAU9Q,KAAKQ,OAEfsQ,KAtEb,sBA0EE,SAAUG,GACR,GAAmB,aAAfA,EAAM9O,KAAqB,CAC7B,IAAM+O,EAAWlR,KAAKQ,MAAMyQ,EAAM9P,KAClC,GAAwB,kBAAb+P,GAAyBA,aAAoBC,OACtD,OAAOvB,OAAO5P,KAAKQ,MAAMyQ,EAAM9P,MAGnC,GAAI8P,EAAM9P,IACR,OAAOnB,KAAKQ,MAAMyQ,EAAM9P,KACnB,GAAI8P,EAAMzQ,MACf,OAAOyQ,EAAMzQ,MAAM6K,MAEnB,MAAM,IAAI7C,MAAJ,mCACwByI,EAAMpP,MAD9B,iCAtFZ,6BAgGE,SAAiBuP,GACf,OAAQA,GAAa,OAjGzB,8BAoGE,SAAkBH,GAChB,GAAIA,EAAM9P,IACR,OAAOnB,KAAKQ,MAAMyQ,EAAM9P,KACnB,GAAI8P,EAAMI,KACf,OAAOJ,EAAMI,KAEb,MAAM,IAAI7I,MAAJ,mCACwByI,EAAMpP,MAD9B,iCA1GZ,4BAiHE,SAAgBkN,EAAOzE,GACrB,IAAMgH,EAAiBhH,EAAUxI,QAAQiN,EAAMwC,eAC/CvR,KAAK6M,SAASvC,EAAWgH,EAAevP,SAnH5C,sBAsHE,SAAUkP,EAAiBO,GACzB,IAAMzP,EAA4B,WAAfkP,EAAM9O,MAAqBqP,GAAU,EAAIA,EAE5D,IAAIP,EAAM9P,IAQH,IAAI8P,EAAMzQ,MAIf,OAHIyQ,EAAM5O,UACR4O,EAAM5O,SAASrC,KAAKQ,MAAMyQ,EAAM9P,KAAMY,GAEjCkP,EAAMzQ,MAAM8K,IAAIvJ,GAEvB,MAAM,IAAIyG,MAAJ,mCAAsCyI,EAAMpP,MAA5C,+BAbFoP,EAAM5O,UACR4O,EAAM5O,SAASrC,KAAKQ,MAAMyQ,EAAM9P,KAAMY,GAGxC,IACE/B,KAAKQ,MAAMyQ,EAAM9P,KAAOY,EACxB,MAAO0P,OAhIf,mBA2IE,SAAOtQ,GACL,OAAInB,KAAKQ,OAAS,iBAAkBR,KAAKQ,MACvC,UAAUR,KAAK0R,SAAf,YAA2B1R,KAAKQ,MAAMmR,aAAaxQ,KAGjD,yBAAYA,KACdA,EAAM,IAAa0F,SAAS,IAG1B7G,KAAK0R,SACP,UAAU1R,KAAK0R,SAAf,YAA2BvQ,GAG7B,UAAUA,MAxJd,uBA2JE,SAAWA,GACT,GAAInB,KAAKQ,OAAS,iBAAkBR,KAAKQ,MACvC,gBAAUR,KAAKQ,MAAMmR,aAAaxQ,MA7JxC,wBAkKE,SAAYA,GACV,OAAOnB,KAAK6K,MAAM1J,GAAO,WAnK7B,yBAsKE,WACE,IAAMyQ,EAAa5R,KAAK6R,IAClBC,EAAcF,EAAWG,YAAcH,EAAWI,YACpDF,IAAa9R,KAAKsQ,SAAU,KAzKpC,yBA4KE,SAAaW,EAAiBO,GACxBxR,KAAKiO,gBACPjO,KAAK4K,QAAU,MAGbqG,GAAK,OAAIA,QAAJ,IAAIA,KAAO7C,QAClB6C,EAAM7C,OAAOoD,KAlLnB,wBAuLE,SAAYlH,GAEV,KAAIA,EAAUc,YAAcd,EAAUqB,UAAYrB,EAAU9J,OAA5D,CACA,IAAMyR,EAAQjS,KAAK6K,MAAMP,EAAUnJ,KACnCnB,KAAK4K,QAAUqH,EACf,IAAMC,EAAMC,SAASC,eAAeH,GAChCC,GAAKA,EAAIG,WA7LjB,yBAgME,SAAalR,GAAW,MAChBmR,EAAK,eAAWtS,KAAKQ,MAAOW,GAClC,OAAOmR,EAAKA,IAAM,UAAAtS,KAAKQ,MAAMW,UAAX,eAAiBmE,SAAU,GAAKgN,IAlMtD,4BAqME,SAAgBhI,GACd,OAAOA,EAAUzH,QAAV,eAAwByH,EAAUzH,SAAW,KAtMxD,wBAgNE,SAAY0P,GACV,GAAKvS,KAAKiO,cAAV,CAEA,IAAMuE,EAAQD,EAAIE,MAAK,SAACC,GAAD,MAAO,QAASA,KACvC,GAAKF,EAAL,CACA,IAAMN,EAAMC,SAASC,eAAT,cAA+BpS,KAAK6K,MAAM2H,EAAMrR,OACvD+Q,GACLA,EAAIS,eAAe,CAAEC,SAAU,SAAUC,MAAO,YAvNpD,qBA0NE,WACE7S,KAAK8S,gBA3NT,qBA8NE,WAAO,WACL9S,KAAK8S,cACLhE,OAAOiE,iBAAiB,UAAU,kBAAM,EAAKD,qBAhOjD,GAAqD,QAC3C,gBAAP,kB,iCACO,gBAAP,kB,4BACqB,gBAArB,eAAK,CAAEzC,QAAS,K,8BACT,gBAAP,kB,6BAED,gBADC,eAAK,CAAEA,QAAS,WAAQ,OAAO2C,KAAKC,U,+BAGX,gBAAzB,eAAK,CAAE5C,SAAS,K,+BAGjB,gBADC,uB,kCAID,gBADC,uB,sCAmMD,gBADC,eAAM,oBAAqB,CAAE6C,MAAM,K,yBASnC,MAxNkB,EAAO,gBAb3B,eAAU,CACT5O,WAAY,CACV6O,iBAAA,KACAC,mBAAA,KACAC,oBAAA,KACAC,eAAA,KACAC,eAAA,KACAC,cAAA,EACAC,mBAAA,KACAC,aAAA,SAIiB,WCnR6W,ICQ9X,G,UAAY,eACd,EACA5T,EACAa,GACA,EACA,KACA,WACA,OAIa,S,2CCnBf","file":"js/chunk-6393c487.2ea3eaac.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"form-body\"},[_c('AppForm',{attrs:{\"structures\":_vm.personalDetailsStructure1,\"model\":_vm.model,\"errors\":_vm.currentSectionValidationErrors}})],1),_c('div',{staticClass:\"form-body\"},[_c('AppForm',{attrs:{\"structures\":_vm.personalDetailsStructure2,\"model\":_vm.model,\"errors\":_vm.currentSectionValidationErrors}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { isEmpty, isUndefined } from 'lodash/fp'\nimport AppForm from '@core/components/AppForm.vue'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport PersonalDetails from '@company-common/model/kyc-form/PersonalDetails'\nimport AppClientForm from '@core/components/AppClientForm.vue'\nimport KYCForm from '@company-common/model/kyc-form/KYCForm'\nimport { namespace } from 'vuex-class'\nimport { CountryOptions, NationalityOptions } from '@master/model/options/NationalityAndCountryOptions'\nimport { EmploymentStatusOptions, PreviousOccupation } from '@master/model/options/EmploymentStatusOptions'\n\nconst kycFormStore = namespace('KYCFormStore')\n\n@Component({\n components: {\n AppForm,\n AppClientForm\n }\n})\nexport default class ThePersonalDetails extends Vue {\n @Prop() model!: PersonalDetails\n @Prop() kycForm!: KYCForm\n @Prop() clientIndex!: 0 | 1\n\n @kycFormStore.State\n private computedValidationResult\n\n get currentSectionValidationErrors () {\n if (isEmpty(this.computedValidationResult)) {\n return\n }\n const client = this.clientIndex === 1 ? 'Client 2' : 'Client 1'\n const errors = this.computedValidationResult?.['Personal Details']?.[client]\n const finalErrors: { key: string; msg: string }[] = []\n if (!errors) return finalErrors\n errors.map(({ key, message }) => {\n key.map(variableName => {\n finalErrors.push({\n key: variableName,\n msg: message\n })\n })\n })\n return finalErrors\n }\n\n isLockedField (key) {\n const index = this.clientIndex + 1 // because in kycform, it is client1, client2\n\n if (isUndefined(this.kycForm['client' + index].myInfo.lockedFields)) {\n return\n }\n return this.kycForm['client' + index].myInfo.keyIsLockedField(key)\n }\n\n get client () {\n return this.model\n }\n\n get personalDetailsStructure1 (): FormStructure {\n return [\n {\n label: 'Title',\n key: 'title',\n options: [\n { label: 'Dr', value: 'dr' },\n { label: 'Mr', value: 'mr' },\n { label: 'Mrs', value: 'mrs' },\n { label: 'Mdm', value: 'mdm' },\n { label: 'Miss', value: 'miss' }\n ]\n }, {\n label: 'Name (as per NRIC/FIN/Passport No.)',\n key: 'name',\n disabled: this.isLockedField('name'),\n isMyInfo: this.isLockedField('name')\n }, {\n label: 'NRIC/FIN/Passport No.',\n key: 'nric',\n disabled: this.isLockedField('nric'),\n isMyInfo: this.isLockedField('nric')\n }, {\n label: 'Date of Birth (dd/mm/yyyy)',\n key: 'dob',\n type: 'date',\n disabledFutureDate: true,\n disabled: this.isLockedField('dob'),\n isMyInfo: this.isLockedField('dob'),\n onChange: () => {\n this.updateTrustedIndividual()\n this.resetIntendedRetirementAge() // reset to calculate the retirement age\n }\n }, {\n label: 'Gender',\n key: 'gender',\n options: [\n { label: '', value: '' },\n { label: 'Male', value: 'male' },\n { label: 'Female', value: 'female' }\n ],\n disabled: this.isLockedField('gender'),\n isMyInfo: this.isLockedField('gender'),\n onChange: () => {\n this.resetIntendedRetirementAge() // reset to calculate the retirement age\n }\n }, {\n label: 'Citizenship',\n key: 'citizenship',\n options: [\n { label: '', value: '' },\n { label: 'Singaporean', value: 'singaporean' },\n { label: 'Singapore PR', value: 'pr' },\n { label: 'Singapore Pass Holder', value: 'passholders' },\n { label: 'Other Citizenship', value: 'others' }\n ],\n disabled: this.isLockedField('citizenship'),\n isMyInfo: this.isLockedField('citizenship'),\n tooltip: {\n content: 'Please indicate nationality if \"Singapore Pass Holder\", \"Singapore PR\" or \"Other Citizenship\" is ticked.'\n }\n }, {\n label: 'Please specify Nationality',\n key: 'citizenshipSpecified',\n options: this.nationalityOptions,\n show: this.showSpecifiedCitizenship,\n disabled: this.isLockedField('citizenshipSpecified'),\n isMyInfo: this.isLockedField('citizenshipSpecified')\n }, {\n label: 'Contact Home',\n key: 'contactHome',\n disabled: this.isLockedField('contactHome'),\n isMyInfo: this.isLockedField('contactHome')\n }, {\n label: 'Contact Mobile',\n key: 'contactMobile',\n disabled: this.isLockedField('contactMobile'),\n isMyInfo: this.isLockedField('contactMobile')\n }, {\n label: 'Email',\n key: 'contactEmail',\n classes: ['colspan'],\n disabled: this.isLockedField('contactEmail'),\n isMyInfo: this.isLockedField('contactEmail')\n }, {\n label: 'Residential Address',\n key: 'residentialAddress',\n classes: ['colspan'],\n disabled: this.isLockedField('residentialAddress'),\n isMyInfo: this.isLockedField('residentialAddress')\n }, {\n label: 'Postal Code',\n key: 'postalCode',\n disabled: this.isLockedField('postalCode'),\n isMyInfo: this.isLockedField('postalCode')\n }, {\n label: 'Residential Country',\n key: 'residentialCountry',\n options: this.countryOptions\n }, {\n label: 'Marital Status',\n key: 'maritalStatus',\n options: [\n { label: '', value: '' },\n { label: 'Single', value: 'single' },\n { label: 'Married', value: 'married' },\n { label: 'Divorced', value: 'divorced' },\n { label: 'Widowed', value: 'widowed' }\n ],\n disabled: this.isLockedField('maritalStatus'),\n isMyInfo: this.isLockedField('maritalStatus')\n }, {\n label: 'Smoker',\n key: 'smoker',\n options: [\n { label: '', value: '' },\n { label: 'Yes', value: 'yes' },\n { label: 'No', value: 'no' }\n ],\n disabled: this.isLockedField('smoker'),\n isMyInfo: this.isLockedField('smoker')\n }\n ]\n }\n\n get personalDetailsStructure2 (): FormStructure {\n return [\n {\n label: 'Do you or any family members have any medical condition that requires regular attention from clinic/hospital',\n key: 'familyMedical',\n options: [\n { label: '', value: '' },\n { label: 'Yes', value: 'yes' },\n { label: 'No', value: 'no' }\n ]\n },\n {\n label: 'Please Specify Medical Condition',\n key: 'familyMedicalSpecified',\n classes: ['colspan'],\n show: this.model.familyMedical === 'yes'\n },\n {\n label: 'Employment Status',\n key: 'employmentStatus',\n options: EmploymentStatusOptions,\n tooltip: {\n content: 'For Homemakers, Retirees or Students, please indicate accordingly under “Please Specify”.
Where applicable, please provide details of previous/ last employment.'\n }\n }, {\n label: 'Please specify',\n key: 'previousOccupation',\n show: this.showSpecifyPreviousOccupation,\n options: PreviousOccupation\n }, {\n label: 'Intended Retirement Age',\n key: 'customRetirementAge',\n type: 'number'\n }, {\n label: 'Occupation / Designation',\n key: 'occupation',\n disabled: this.isLockedField('occupation'),\n isMyInfo: this.isLockedField('occupation')\n }, {\n label: 'Exact Duties / Function',\n key: 'exactDuties'\n }, {\n label: 'Company Name',\n key: 'companyName',\n classes: ['colspan'],\n disabled: this.isLockedField('companyName'),\n isMyInfo: this.isLockedField('companyName')\n },\n {\n label: 'Are you involved in any of the activities listed below?',\n key: 'involvedInActivities',\n options: [\n { label: '', value: '' },\n { label: 'Yes', value: 'yes' },\n { label: 'No', value: 'no' }\n ],\n tooltip: {\n placement: 'right',\n content: '
Money changer, remittance agent, casino, pawnbroker, moneylender, senior management or equivalent of' +\n 'non-profit organization, precious stones & metal dealer, virtual currency (eg.bitcoins, precious metal' +\n 'backed digital currency etc), antique trader, owner of cash-intensive (eg. hawker, convenience store,' +\n 'second-hand dealer, coffeeshop operator etc), activities related to production / distribution of arms' +\n 'related products, trading of oil and natural gas (eg. crude oil, processed oil), agriculture (eg. wheat,' +\n 'barley, livestock, fruit, cotton), mineral resource trader (eg. phosphate mines, salt mines, cement plants,' +\n 'sulphuric manufacturer).
'\n }\n }, {\n label: 'Please Specify Activities',\n key: 'activitiesSpecified',\n classes: ['colspan'],\n show: this.showSpecifyActivities\n }, {\n label: 'Annual Income (S$)',\n key: 'annualIncome',\n options: [\n { label: '', value: '' },\n { label: '< 30,000', value: 'tier1' },\n { label: '30,000 - 50,000', value: 'tier2' },\n { label: '50,001 - 100,000', value: 'tier3' },\n { label: '100,001 - 150,000', value: 'tier4' },\n { label: '150,001 - 300,000', value: 'tier5' },\n { label: '> 300,000', value: 'tier6' }\n ],\n disabled: this.isLockedField('annualIncome'),\n isMyInfo: this.isLockedField('annualIncome')\n }, {\n label: 'Highest Education Level Completed',\n key: 'educationLevel',\n options: [\n { label: '', value: '' },\n { label: 'Primary & below', value: 'primaryandbelow' },\n { label: 'Secondary', value: 'secondary' },\n { label: 'GCE \\'O/N\\' Level', value: 'gceonlevel' },\n { label: 'Pre-U/JC', value: 'preujc' },\n { label: 'Diploma', value: 'diploma' },\n { label: 'Degree', value: 'degree' },\n { label: 'Post Graduate', value: 'postgrad' }\n ],\n disabled: this.isLockedField('educationLevel'),\n isMyInfo: this.isLockedField('educationLevel'),\n onChange: () => {\n this.updateTrustedIndividual()\n }\n }, {\n label: 'Spoken Language
(Tick all that apply)',\n key: 'spokenLanguage',\n classes: ['colspan'],\n type: 'checkbox',\n compact: true,\n options: [\n { label: 'English', value: 'english' },\n { label: 'Mandarin', value: 'mandarin' },\n { label: 'Malay', value: 'malay' },\n { label: 'Tamil', value: 'tamil' },\n { label: 'Others', value: 'others' }\n ],\n onChange: () => {\n this.updateTrustedIndividual()\n }\n }, {\n label: 'Specify Spoken Language',\n key: 'spokenLanguageSpecified',\n classes: ['colspan'],\n show: this.showSpokenLanguageSpecified\n }, {\n label: 'Written Language
(Tick all that apply)',\n key: 'writtenLanguage',\n classes: ['colspan'],\n type: 'checkbox',\n compact: true,\n options: [\n { label: 'English', value: 'english' },\n { label: 'Chinese', value: 'chinese' },\n { label: 'Malay', value: 'malay' },\n { label: 'Tamil', value: 'tamil' },\n { label: 'Others', value: 'others' }\n ],\n onChange: () => {\n this.updateTrustedIndividual()\n }\n }, {\n label: 'Specify Written Language',\n key: 'writtenLanguageSpecified',\n classes: ['colspan'],\n show: this.showWrittenLanguageSpecified\n }\n ]\n }\n\n get nationalityOptions () {\n return NationalityOptions\n }\n\n get countryOptions () {\n return CountryOptions\n }\n\n showSpecifiedCitizenship () {\n const citizenship = this.model.citizenship\n if (citizenship === 'others' || citizenship === 'pr' || citizenship === 'passholders') {\n return true\n }\n return false\n }\n\n showSpecifyPreviousOccupation () {\n const employmentStatus = this.model.employmentStatus\n if (employmentStatus === 'unemployed') {\n return true\n }\n return false\n }\n\n showSpecifyActivities () {\n const involvedInActivities = this.model.involvedInActivities\n if (involvedInActivities === 'yes') {\n return true\n }\n return false\n }\n\n showSpokenLanguageSpecified () {\n if (this.model.spokenLanguage.includes('others')) {\n return true\n }\n return false\n }\n\n showWrittenLanguageSpecified () {\n if (this.model.writtenLanguage.includes('others')) {\n return true\n }\n return false\n }\n\n updateTrustedIndividual () {\n this.kycForm.trustedIndividual.updateAccompanied(this.kycForm.client1, this.kycForm.client2)\n }\n\n resetIntendedRetirementAge () {\n this.model.intendedRetirementAge = undefined\n }\n\n @Watch('model.citizenship')\n citizenshipOnChange () {\n if (this.model.citizenship === 'singaporean') {\n this.model.citizenshipSpecified = ''\n this.model.citizenshipSpecified2 = ''\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThePersonalDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThePersonalDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ThePersonalDetails.vue?vue&type=template&id=4c5525d4&scoped=true&\"\nimport script from \"./ThePersonalDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./ThePersonalDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ThePersonalDetails.vue?vue&type=style&index=0&id=4c5525d4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c5525d4\",\n null\n \n)\n\nexport default component.exports","import CodeToNationality from '@master/config/nationality-code-to-label.json'\nimport CodeToCountry from '@master/config/country-code-to-label.json'\nimport LabelToCodeCountry from '@master/config/country-label-to-code.json'\nimport LabelToCodeNationality from '@master/config/nationality-label-to-code.json'\nimport { options } from './Options'\n\nexport const CountryOptions: options[] = Object.keys(CodeToCountry).map(key => {\n return {\n label: CodeToCountry[key],\n value: key\n }\n}).sort((a, b) => {\n if (a.value === 'SG') {\n return -1\n } else if (b.value === 'SG') {\n return 1\n } else if (a.value === 'MY') {\n return -1\n } else if (b.value === 'MY') {\n return 1\n } else {\n return a.label.localeCompare(b.label)\n }\n}) // sort by Singapore, Malaysia, and the rest of countries\n\nexport const NationalityOptions: options[] = Object.keys(CodeToNationality).map(key => {\n return {\n label: CodeToNationality[key],\n value: key\n }\n}).sort((a, b) => {\n if (a.value === 'SG') {\n return -1\n } else if (b.value === 'SG') {\n return 1\n } else if (a.value === 'MY') {\n return -1\n } else if (b.value === 'MY') {\n return 1\n } else {\n return a.label.localeCompare(b.label)\n }\n}) // sort by Singapore, Malaysia, and the rest of nationalities\n\nexport const CountryLabelToCode = LabelToCodeCountry\nexport const NationalityLabelToCode = LabelToCodeNationality\n","\"use strict\";\n\nvar randomBytes = require('randombytes');\nvar Charset = require('./charset.js');\n\n\nfunction unsafeRandomBytes(length) {\n var stack = [];\n for (var i = 0; i < length; i++) {\n stack.push(Math.floor(Math.random() * 255));\n }\n\n return {\n length,\n readUInt8: function (index) {\n return stack[index];\n }\n };\n}\n\nfunction safeRandomBytes(length) {\n try {\n return randomBytes(length);\n } catch (e) {\n /* React/React Native Fix + Eternal loop removed */\n return unsafeRandomBytes(length);\n }\n}\n\nfunction processString(buf, initialString, chars, reqLen, maxByte) {\n var string = initialString;\n for (var i = 0; i < buf.length && string.length < reqLen; i++) {\n var randomByte = buf.readUInt8(i);\n if (randomByte < maxByte) {\n string += chars.charAt(randomByte % chars.length);\n }\n }\n return string;\n}\n\nfunction getAsyncString(string, chars, length, maxByte, cb) {\n randomBytes(length, function(err, buf) {\n if (err) {\n // Since it is waiting for entropy, errors are legit and we shouldn't just keep retrying\n cb(err);\n }\n var generatedString = processString(buf, string, chars, length, maxByte);\n if (generatedString.length < length) {\n getAsyncString(generatedString, chars, length, maxByte, cb);\n } else {\n cb(null, generatedString);\n }\n })\n}\n\nexports.generate = function(options, cb) {\n var charset = new Charset();\n\n var length, chars, capitalization, string = '';\n\n // Handle options\n if (typeof options === 'object') {\n length = typeof options.length === 'number' ? options.length : 32;\n\n if (options.charset) {\n charset.setType(options.charset);\n }\n else {\n charset.setType('alphanumeric');\n }\n\n if (options.capitalization) {\n charset.setcapitalization(options.capitalization);\n }\n\n if (options.readable) {\n charset.removeUnreadable();\n }\n\n charset.removeDuplicates();\n }\n else if (typeof options === 'number') {\n length = options;\n charset.setType('alphanumeric');\n }\n else {\n length = 32;\n charset.setType('alphanumeric');\n }\n\n // Generate the string\n var charsLen = charset.chars.length;\n var maxByte = 256 - (256 % charsLen);\n\n if (!cb) {\n while (string.length < length) {\n var buf = safeRandomBytes(Math.ceil(length * 256 / maxByte));\n string = processString(buf, string, charset.chars, length, maxByte);\n }\n\n return string;\n }\n\n getAsyncString(string, charset.chars, length, maxByte, cb);\n\n};\n","var arrayUniq = require('array-uniq');\n\nfunction Charset() {\n this.chars = '';\n}\n\nCharset.prototype.setType = function(type) {\n var chars;\n\n var numbers = '0123456789';\n var charsLower = 'abcdefghijklmnopqrstuvwxyz';\n var charsUpper = charsLower.toUpperCase();\n var hexChars = 'abcdef';\n var binaryChars = '01';\n var octalChars = '01234567';\n\n if (type === 'alphanumeric') {\n chars = numbers + charsLower + charsUpper;\n }\n else if (type === 'numeric') {\n chars = numbers;\n }\n else if (type === 'alphabetic') {\n chars = charsLower + charsUpper;\n }\n else if (type === 'hex') {\n chars = numbers + hexChars;\n }\n else if (type === 'binary') {\n chars = binaryChars;\n }\n else if (type === 'octal') {\n chars = octalChars;\n }\n else {\n chars = type;\n }\n\n this.chars = chars;\n}\n\nCharset.prototype.removeUnreadable = function() {\n var unreadableChars = /[0OIl]/g;\n this.chars = this.chars.replace(unreadableChars, '');\n}\n\nCharset.prototype.setcapitalization = function(capitalization) {\n if (capitalization === 'uppercase') {\n this.chars = this.chars.toUpperCase();\n }\n else if (capitalization === 'lowercase') {\n this.chars = this.chars.toLowerCase();\n }\n}\n\nCharset.prototype.removeDuplicates = function() {\n var charMap = this.chars.split('');\n charMap = arrayUniq(charMap);\n this.chars = charMap.join('');\n}\n\nmodule.exports = exports = Charset;\n","module.exports = require(\"./lib/randomstring\");","module.exports = __webpack_public_path__ + \"img/myinfo-icon.28e75045.svg\";","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\n\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > 65536) throw new Error('requested too many random bytes')\n // in case browserify isn't using the Uint8Array version\n var rawBytes = new global.Uint8Array(size)\n\n // This will not work in older browsers.\n // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n if (size > 0) { // getRandomValues fails on IE if size == 0\n crypto.getRandomValues(rawBytes)\n }\n // phantomjs doesn't like a buffer being passed here\n var bytes = new Buffer(rawBytes.buffer)\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=style&index=0&id=11928856&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=style&index=0&id=423a3b72&lang=scss&scoped=true&\"","export const EmploymentStatusOptions = [\n { label: '', value: '' },\n { label: 'Full Time', value: 'fulltime' },\n { label: 'Self Employed', value: 'selfemployed' },\n { label: 'Part Time', value: 'parttime' },\n { label: 'Not Employed', value: 'unemployed' }\n]\n\nexport const PreviousOccupation = [\n { label: '', value: '' },\n { label: 'Homemaker', value: 'homemaker' },\n { label: 'Retiree', value: 'retiree' },\n { label: 'Student', value: 'student' },\n { label: 'Unemployed', value: 'unemployed' },\n { label: 'Others', value: 'others' }\n]\n","'use strict';\n\n// there's 3 implementations written in increasing order of efficiency\n\n// 1 - no Set type is defined\nfunction uniqNoSet(arr) {\n\tvar ret = [];\n\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (ret.indexOf(arr[i]) === -1) {\n\t\t\tret.push(arr[i]);\n\t\t}\n\t}\n\n\treturn ret;\n}\n\n// 2 - a simple Set type is defined\nfunction uniqSet(arr) {\n\tvar seen = new Set();\n\treturn arr.filter(function (el) {\n\t\tif (!seen.has(el)) {\n\t\t\tseen.add(el);\n\t\t\treturn true;\n\t\t}\n\t});\n}\n\n// 3 - a standard Set type is defined and it has a forEach method\nfunction uniqSetWithForEach(arr) {\n\tvar ret = [];\n\n\t(new Set(arr)).forEach(function (el) {\n\t\tret.push(el);\n\t});\n\n\treturn ret;\n}\n\n// V8 currently has a broken implementation\n// https://github.com/joyent/node/issues/8449\nfunction doesForEachActuallyWork() {\n\tvar ret = false;\n\n\t(new Set([true])).forEach(function (el) {\n\t\tret = el;\n\t});\n\n\treturn ret === true;\n}\n\nif ('Set' in global) {\n\tif (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) {\n\t\tmodule.exports = uniqSetWithForEach;\n\t} else {\n\t\tmodule.exports = uniqSet;\n\t}\n} else {\n\tmodule.exports = uniqNoSet;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"column-group\",style:(_vm.gridStyle),attrs:{\"id\":\"app-form\"}},[_vm._l((_vm.structuresDetails),function(structure){return [(_vm.shouldShow(structure.show))?_c('div',{key:structure.key,staticClass:\"input-group-with-theme\",class:[{ 'input-disabled': _vm.shouldDisabled(structure.disabled)}, _vm.getCustomClass(structure)],attrs:{\"has-msg\":structure.hasErrors,\"focusing\":_vm.focusId == _vm.getId(structure.key),\"id\":(\"box-\" + (_vm.getId(structure.key)))},on:{\"click\":function($event){return _vm.focusInner(structure)}}},[[(structure.labelModel)?_c('input',{staticClass:\"label\",attrs:{\"type\":\"text\",\"placeholder\":structure.label,\"data-test\":(\"label-input:\" + (_vm.getTestId(structure.key)))},domProps:{\"value\":_vm.labelModelValue(structure.labelModel.get())},on:{\"input\":function($event){return structure.labelModel.set($event.target.value)}}}):(structure.labelKey)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model[structure.labelKey]),expression:\"model[structure.labelKey]\"}],staticClass:\"label\",attrs:{\"type\":\"text\",\"data-test\":(\"label-input:\" + (_vm.getTestId(structure.key)))},domProps:{\"value\":(_vm.model[structure.labelKey])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, structure.labelKey, $event.target.value)}}}):_vm._e(),(structure.labelModel || structure.labelKey)?_c('i',{staticClass:\"fa fa-pencil-alt right-sided\"}):(structure.type === 'single-checkbox')?_c('span'):_c('label',{attrs:{\"for\":_vm.getId(structure.key),\"id\":_vm.getId(structure.key) + '_label'},domProps:{\"innerHTML\":_vm._s(structure.label)}}),(structure.tooltip)?_c('AppTooltip',{attrs:{\"tooltipConfig\":structure.tooltip}}):_vm._e(),(_vm.isModernTheme)?_vm._l((structure.errors),function(ref,eidx){\nvar msg = ref.msg;\nreturn _c('div',{key:((structure.key) + \"-error-\" + eidx),staticClass:\"form-msg\",class:{\n full:\n eidx === 0 || _vm.fullErr === ((structure.key) + \"-error-\" + eidx),\n },on:{\"click\":function($event){_vm.fullErr = (structure.key) + \"-error-\" + eidx}}},[_c('el-tooltip',[_c('span',{staticClass:\"el-icon-warning\"}),_c('span',{attrs:{\"slot\":\"content\"},slot:\"content\"},[_vm._v(_vm._s(msg))])])],1)}):_vm._e()],(structure.options && structure.type === 'smart')?_c('AppSmartSelect',{attrs:{\"options\":structure.options,\"value\":_vm.model[structure.key],\"multiple\":structure.multiple,\"cols\":structure.optionCols,\"multiLimit\":structure.multiLimit,\"buttonName\":structure.buttonName,\"cycleMode\":structure.cycleMode,\"displayDirection\":structure.displayDirection,\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'single-checkbox')?_c('el-checkbox',{attrs:{\"value\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"change\":function($event){return _vm.setValue(structure, $event)}}},[_vm._v(\" \"+_vm._s(structure.label)+\" \")]):(structure.options && structure.type === 'checkbox')?_c('AppCheckboxGroup',{attrs:{\"structure\":structure,\"model\":_vm.model,\"column\":structure.checkboxColumnNo,\"compact\":structure.compact},on:{\"change\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.options && structure.type === 'radio')?_c('AppRadioSelection',{attrs:{\"options\":structure.options,\"value\":_vm.model[structure.key],\"buttonName\":structure.buttonName,\"displayDirection\":structure.displayDirection,\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'multi')?_c('el-select',{staticClass:\"form-multi-select\",attrs:{\"value\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled),\"multiple\":\"\",\"collapse-tags\":\"\",\"size\":'small',\"popper-class\":'wen-popper-class'},on:{\"change\":function($event){return _vm.setValue(structure, $event)}}},_vm._l((structure.options),function(option,index){return _c('el-option',{key:index,attrs:{\"value\":option.value,\"label\":option.label}})}),1):(structure.options)?_c('select',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"disabled\":_vm.shouldDisabled(structure.disabled)},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setSelectValue($event.target, structure)}}},_vm._l((structure.options),function(option,index){return _c('option',{key:index,domProps:{\"value\":option.value}},[_vm._v(\" \"+_vm._s(option.label)+\" \")])}),0):(structure.type === 'decimal-number')?[_c('AppDecimalNumber',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"decimal\":structure.decimal,\"inputValue\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"input\":function($event){return _vm.setValue(structure, $event)}}})]:(structure.type === 'number' || structure.type === 'time' || structure.type === 'password')?_c('input',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"type\":structure.type,\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxChar},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setValue(structure, $event.target.value)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'currency')?_c('currency-input',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"currency\":structure.currencyFormat,\"aria-labelledby\":_vm.getLabelId(structure.key),\"value\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled),\"precision\":structure.precision},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'date' || structure.type === 'month')?_c('AppDateInput',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"value\":_vm.getValue(structure),\"id\":_vm.getId(structure.key),\"input-type\":structure.type,\"data-test\":_vm.getTestId(structure.key),\"aria-label\":structure.label,\"disabled\":_vm.shouldDisabled(structure.disabled),\"futureDate\":structure.futureDate,\"disabledFutureDate\":structure.disabledFutureDate},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'textarea')?_c('textarea',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxChar,\"rows\":structure.rows || 10},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setValue(structure, $event.target.value)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'table')?_c('AppFormTable',{staticClass:\"inner-table\",attrs:{\"innerTable\":true,\"vertical\":structure.isVertical,\"maxSize\":structure.maxSize,\"fields\":structure.columns,\"data\":_vm.getValueForTable(structure)},on:{\"add\":structure.add,\"remove\":structure.remove}}):(structure.type==='na-currency')?[_c('AppCurrencyNA',{attrs:{\"inputValue\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxLength},on:{\"input\":function($event){return _vm.setValue(structure, $event)}}})]:_c('input',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"type\":\"text\",\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxChar},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setValue(structure, $event.target.value)},\"blur\":function($event){return _vm.blurHandler(structure, $event.target.value)}}}),(structure.isMyInfo)?_c('img',{staticClass:\"input-hint logo\",attrs:{\"src\":require(\"@core/assets/myinfo-icon.svg\")}}):_vm._e(),(structure.counterMsg && _vm.isModernTheme)?_c('div',{staticClass:\"char-counter\"},[_vm._v(\" \"+_vm._s(structure.counterMsg)+\" \")]):_vm._e()],2):_vm._e()]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputModal),expression:\"inputModal\"}],attrs:{\"maxlength\":_vm.maxlength,\"disabled\":_vm.disabled},domProps:{\"value\":(_vm.inputModal)},on:{\"keypress\":function($event){return _vm.numberAndNAOnly($event)},\"blur\":function($event){return _vm.onBlur()},\"focus\":function($event){return _vm.onFocus()},\"select\":function($event){return _vm.onSelect($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.inputModal=$event.target.value}}}),(!_vm.disabled)?_c('div',{staticClass:\"char-counter\"},[_vm._v(\" \"+_vm._s(_vm.counterMsg)+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { IProjectInfo } from '@master/config/IProjectInfo'\nimport { inject } from 'inversify-props'\n\n@Component\nexport default class AppCurrencyNA extends Vue {\n @Prop() inputValue\n @Prop({ default: true }) useCurrency!: boolean\n @Prop({ default: 10 }) maxlength?: number\n @Prop({ default: false }) disabled: boolean\n\n @inject()\n private projectInfo: IProjectInfo\n\n inputModal = ''\n textIsSelected = false\n\n get counterMsg () {\n if (typeof this.maxlength === 'undefined') return\n const number = this.convertCurrencyToNumber(this.inputModal)\n const remainingChar = this.maxlength - (number.toString().length || 0)\n return remainingChar > 0 ? `${remainingChar} letter(s) remaining` : 'Max character limit reached'\n }\n\n numberAndNAOnly (evt) {\n evt = (evt) || window.event\n const charCode = (evt.which) ? evt.which : evt.keyCode\n\n const currentValue = evt.target.value\n if (this.textIsSelected) {\n if (!this.isAlphabetN(charCode) && this.isNonNumber(charCode)) {\n evt.preventDefault()\n } else {\n this.textIsSelected = false\n }\n return true\n }\n\n // if current value is 'NA', cannot key in other character\n if (currentValue.toUpperCase() === 'NA') {\n evt.preventDefault()\n }\n\n // if current value is N, the followed char must be A\n if (this.isAlphabetN(currentValue.charCodeAt(0))) {\n if (this.isAlphabetA(charCode)) {\n return true\n }\n evt.preventDefault() // only can accept A\n }\n\n // if there is empty value, it can either key in char N or number only\n if (!currentValue) {\n if (this.isAlphabetN(charCode)) {\n return true\n }\n }\n\n // cannot key in non number value\n if (this.isNonNumber(charCode)) {\n evt.preventDefault()\n } else {\n return true\n }\n }\n\n isAlphabetN (charCode) {\n return charCode === 78 || charCode === 110\n }\n\n isAlphabetA (charCode) {\n return charCode === 65 || charCode === 97\n }\n\n isNonNumber (charCode) {\n return charCode > 31 && (charCode < 48 || charCode > 57)\n }\n\n onBlur () {\n if (!this.inputModal && this.inputModal !== '0') {\n this.inputModal = this.formatValue('')\n this.$emit('input', '')\n return\n }\n\n // format na to NA to display\n if (this.inputModal.toUpperCase() === 'NA') {\n this.inputModal = 'NA'\n this.$emit('input', 'NA')\n return\n }\n\n // in case only key in 'n' and on blur, format it to NA\n if (isNaN(Number(this.inputModal))) {\n this.inputModal = 'NA'\n this.$emit('input', 'NA')\n return\n }\n\n const number = this.convertCurrencyToNumber(this.inputModal)\n this.inputModal = this.formatValue(number)\n this.$emit('input', Number(number))\n }\n\n onFocus () {\n this.inputModal = this.convertCurrencyToNumber(this.inputModal)\n }\n\n onSelect () {\n this.textIsSelected = true\n }\n\n formatValue (source) {\n if (typeof source === 'string') {\n if (source.toUpperCase() === 'NA' || source === '') {\n return source\n }\n source = Number(source.replace('$', '').replace(',', ''))\n } else if (source === undefined || source == null) {\n source = ''\n }\n return this.useCurrency ? this.currencyPrefix + source?.toLocaleString('en-US') : source?.toLocaleString('en-US')\n }\n\n convertCurrencyToNumber (currency) {\n return currency.replaceAll(this.currencyPrefix, '').replaceAll(',', '')\n }\n\n get currencyPrefix () {\n return this.projectInfo.currency ?? 'SGD$'\n }\n\n @Watch('inputValue')\n inputValueOnChange () {\n if (this.inputValue || this.inputValue === '0' || Number(this.inputValue) === 0) {\n this.inputModal = this.formatValue(this.inputValue)\n } else {\n this.inputModal = this.formatValue('')\n }\n }\n\n mounted () {\n this.inputModal = this.formatValue(this.inputValue)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppCurrencyNA.vue?vue&type=template&id=423a3b72&scoped=true&\"\nimport script from \"./AppCurrencyNA.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppCurrencyNA.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppCurrencyNA.vue?vue&type=style&index=0&id=423a3b72&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"423a3b72\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Base } from '@master/model/Base'\nimport { FormStructure, Input, TableSetup } from '@master/model/structure/FormStructure'\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport AppCheckboxGroup from '@core/components/AppCheckboxGroup.vue'\nimport AppFormTable from '@core/components/AppFormTable.vue'\nimport AppRadioSelection from '@core/components/AppRadioSelection.vue'\nimport AppSmartSelect from '@core/components/AppSmartSelect.vue'\nimport { inject } from 'inversify-props'\nimport { IDateService } from '@master/services/IDateService'\nimport AppDateInput from './AppDateInput.vue'\nimport { getMaxChar } from '@master/annotation/MaxChar'\nimport { IProjectSettings } from '@master/config/IProjectSettings'\nimport { isUndefined } from 'lodash/fp'\nimport randomstring from 'randomstring'\nimport AppCurrencyNA from './AppCurrencyNA.vue'\nimport AppDecimalNumber from './AppDecimalNumber.vue'\nimport AppTooltip from './AppTooltip.vue'\n\n@Component({\n components: {\n AppSmartSelect,\n AppCheckboxGroup,\n AppRadioSelection,\n AppDateInput,\n AppFormTable,\n AppCurrencyNA,\n AppDecimalNumber,\n AppTooltip\n }\n})\n\nexport default class AppForm extends Vue {\n @Prop() readonly structures!: FormStructure[];\n @Prop() readonly model!: T;\n @Prop({ default: 1 }) readonly columns: number;\n @Prop() readonly errors?: { key: string; msg: string }[];\n @Prop({ default: () => { return Date.now() } })\n readonly uniqueID: string;\n\n @Prop({ default: false }) readonly readOnly: boolean;\n\n @inject()\n private dateService: IDateService;\n\n @inject()\n private projectSettings: IProjectSettings;\n\n private minimal = true;\n // private renderCnt = 0;\n private focusId = null;\n private fullErr = null;\n\n get structuresDetails () {\n return this.structures.map((structure) => {\n const key = (structure as any).key\n const errors = this.errors?.filter((err) => err.key === key) || []\n const maxChar = getMaxChar(this.model, key)\n const charLeft = this.getCharLeft(key)\n const counterMsg = this.getCounterMsg(maxChar, charLeft)\n return {\n errors,\n hasErrors: errors?.length > 0,\n maxChar,\n counterMsg,\n ...structure\n }\n })\n }\n\n get gridStyle () {\n return {\n gridTemplateColumns: `repeat(${this.columns}, minmax(0, 1fr))`\n }\n }\n\n get isModernTheme () {\n return this.projectSettings.theme === 'Modern'\n }\n\n getCounterMsg (maxChar, charLeft) {\n if (!this.isModernTheme) return '' // counterMsg only used in Modern Theme\n return maxChar ? charLeft > 0 ? `${charLeft} letters remaining` : 'Max character limit reached' : ''\n }\n\n shouldDisabled (condition: boolean | Function = false) {\n if (this.readOnly) return true\n if (condition === undefined) {\n return false\n } else if (condition instanceof Function) {\n return condition(this.model)\n } else {\n return condition\n }\n }\n\n shouldShow (condition: boolean | Function = true) {\n if (condition === undefined) {\n return false\n } else if (condition instanceof Function) {\n return condition(this.model)\n } else {\n return condition\n }\n }\n\n getValue (input: Input) {\n if (input.type === 'currency') {\n const oriValue = this.model[input.key]\n if (typeof oriValue === 'string' || oriValue instanceof String) {\n return Number(this.model[input.key])\n }\n }\n if (input.key) {\n return this.model[input.key]\n } else if (input.model) {\n return input.model.get()\n } else {\n throw new Error(\n `Invalid config for label ${input.label}: key or model is required`\n )\n }\n }\n\n /**\n * Return null as the label if it is empty so\n * that the placeholder will appear\n */\n labelModelValue (labelValue: string) {\n return !labelValue ? null : labelValue\n }\n\n getValueForTable (input: TableSetup) {\n if (input.key) {\n return this.model[input.key]\n } else if (input.data) {\n return input.data\n } else {\n throw new Error(\n `Invalid config for label ${input.label}: key or model is required`\n )\n }\n }\n\n // this is to resolve the issue of event.target.value is always passed as string, but our use cases might need number\n setSelectValue (event, structure) {\n const selectedOption = structure.options[event.selectedIndex]\n this.setValue(structure, selectedOption.value)\n }\n\n setValue (input: Input, _value: T[keyof T]) {\n const value: any = input.type === 'number' ? +_value || 0 : _value\n\n if (input.key) {\n if (input.onChange) {\n input.onChange(this.model[input.key], value)\n }\n // when only has getter (for currency input), sidestep the error\n try {\n this.model[input.key] = value\n } catch (ex) {}\n } else if (input.model) {\n if (input.onChange) {\n input.onChange(this.model[input.key], value)\n }\n return input.model.set(value)\n } else {\n throw new Error(`Invalid config for label ${input.label}: key or model is required`)\n }\n }\n\n getId (key: string) {\n if (this.model && 'snakeCaseKey' in this.model) {\n return `${this.uniqueID}_${this.model.snakeCaseKey(key)}`\n }\n\n if (isUndefined(key)) {\n key = randomstring.generate(6)\n }\n\n if (this.uniqueID) {\n return `${this.uniqueID}_${key}`\n }\n\n return `${key}`\n }\n\n getTestId (key: string) {\n if (this.model && 'snakeCaseKey' in this.model) {\n return `${this.model.snakeCaseKey(key)}`\n }\n return undefined\n }\n\n getLabelId (key: string) {\n return this.getId(key) + '_label'\n }\n\n arrangeCols () {\n const curAppForm = this.$el\n const hasOverflow = curAppForm.scrollWidth > curAppForm.clientWidth\n if (hasOverflow) this.minimal = true\n }\n\n blurHandler (input: Input, _value: T[keyof T]) {\n if (this.isModernTheme) {\n this.focusId = null\n }\n\n if (input && input?.onBlur) {\n input.onBlur(_value)\n }\n }\n\n // use to handle Modern theme\n focusInner (structure: any) {\n // this means label is also editable, thus do not auto focus input\n if (structure.labelModel || structure.labelKey || structure.model) return\n const eleId = this.getId(structure.key)\n this.focusId = eleId\n const ele = document.getElementById(eleId)\n if (ele) ele.focus()\n }\n\n getCharLeft (key: string) {\n const mc = getMaxChar(this.model, key)\n return mc ? mc - (this.model[key]?.length || 0) : mc\n }\n\n getCustomClass (structure) {\n return structure.classes ? [...structure.classes] : []\n }\n\n // @Watch('structures')\n // structuresUpdated () {\n // // this is to allow view to be updated when structures change\n // this.renderCnt++\n // }\n\n @Watch('structuresDetails', { deep: true })\n focusError (swe) {\n if (!this.isModernTheme) return // this is used for Modern Theme\n\n const first = swe.find((s) => 'msg' in s)\n if (!first) return\n const ele = document.getElementById(`box-${this.getId(first.key)}`)\n if (!ele) return\n ele.scrollIntoView({ behavior: 'smooth', block: 'end' })\n }\n\n updated () {\n this.arrangeCols()\n }\n\n mounted () {\n this.arrangeCols()\n window.addEventListener('resize', () => this.arrangeCols())\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppForm.vue?vue&type=template&id=11928856&scoped=true&\"\nimport script from \"./AppForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppForm.vue?vue&type=style&index=0&id=11928856&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11928856\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThePersonalDetails.vue?vue&type=style&index=0&id=4c5525d4&lang=scss&scoped=true&\""],"sourceRoot":""}