{"version":3,"sources":["webpack:///./@core/pages/myinfo/data/MyInfoDataStructure.ts","webpack:///./@master/model/options/NationalityAndCountryOptions.ts","webpack:///./@core/components/AppNewClientSingpass.vue?accf","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/randomstring/lib/randomstring.js","webpack:///./node_modules/randomstring/lib/charset.js","webpack:///./@core/pages/myinfo/TheMyInfoView.vue?1a7b","webpack:///./@core/pages/myinfo/TheMyInfoView.vue","webpack:///./@core/pages/myinfo/TheMyInfoView.vue?d308","webpack:///./@core/pages/myinfo/TheMyInfoView.vue?8454","webpack:///./@core/components/AppInfoLabelForm.vue?9d73","webpack:///./node_modules/randomstring/index.js","webpack:///./@core/pages/myinfo/TheMyInfoView.vue?31c1","webpack:///./@core/assets/myinfo-icon.svg","webpack:///./node_modules/randomstring/node_modules/randombytes/browser.js","webpack:///./@core/assets/singpass_logo.png","webpack:///./src/views/kyc-form/section/ClientSummaryView.vue?b3bd","webpack:///./@core/assets/request_myinfo.svg","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./@core/components/AppForm.vue?baa9","webpack:///./@core/components/AppDatatable.vue?fa4e","webpack:///./@core/components/AppDatatable.vue","webpack:///./@core/components/AppDatatable.vue?a0c0","webpack:///./@core/components/AppDatatable.vue?89f0","webpack:///./@core/components/AppCurrencyNA.vue?af5e","webpack:///./@core/components/AppNewClientSingpass.vue?084f","webpack:///./@core/components/AppNewClientSingpass.vue","webpack:///./@core/components/AppNewClientSingpass.vue?a0f7","webpack:///./@core/components/AppNewClientSingpass.vue?fc20","webpack:///./src/views/kyc-form/section/ClientSummaryView.vue?7c46","webpack:///./src/views/kyc-form/section/ClientSummaryView.vue","webpack:///./src/views/kyc-form/section/ClientSummaryView.vue?e7e4","webpack:///./src/views/kyc-form/section/ClientSummaryView.vue?f1ca","webpack:///./node_modules/randomstring/node_modules/array-uniq/index.js","webpack:///./@core/components/AppInfoLabelForm.vue?f860","webpack:///./@core/components/AppInfoLabelForm.vue","webpack:///./@core/components/AppInfoLabelForm.vue?84c3","webpack:///./@core/components/AppInfoLabelForm.vue?d26b","webpack:///./@core/components/AppDatatable.vue?8f2d","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"],"names":["PERSONAL_DATA_STRUCTURE","label","key","type","mapWith","FINANCIAL_DATA_STRUCTURE","category","group","PROPERTY_DATA_STRUCTURE","CountryOptions","Object","keys","map","value","sort","a","b","localeCompare","NationalityOptions","NationalityLabelToCode","module","exports","is","x","y","randomBytes","Charset","unsafeRandomBytes","length","stack","i","push","Math","floor","random","readUInt8","index","safeRandomBytes","e","processString","buf","initialString","chars","reqLen","maxByte","string","randomByte","charAt","getAsyncString","cb","err","generatedString","generate","options","charset","setType","capitalization","setcapitalization","readable","removeUnreadable","removeDuplicates","charsLen","ceil","arrayUniq","this","prototype","numbers","charsLower","charsUpper","toUpperCase","hexChars","binaryChars","octalChars","unreadableChars","replace","toLowerCase","charMap","split","join","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","companyLogo","_v","_e","myInfoIsValid","_m","_l","info","fIndex","hasGroupElement","class","_s","data","financialIndex","propertyInfoList","pIndex","_obj","selectedPropIdx","selected","on","$event","selectProperty","rejectDialogVisible","confirmDialogVisible","slot","proceed","cancel","alertDialogVisible","alertMsg","staticRenderFns","staticStyle","fetching","personalInfoList","financialInfoList","systemDefaultLockedFields","userSelectedLockedFields","myInfoData","myInfoPropData","isCancel","isProceed","console","log","updateMyInfoData","target","isFromClientSummary","fetchConfirmPersonInfo","personalOid","$route","query","personInfoOid","fetchUnconfirmPersonInfo","getPersonalInfoList","getFinancialInfoList","getPropertyInfoList","$api","myInfo","fetchComfirmedPersonInfo","params","response","property","Number","defaultLockedFields","lockedFields","error","oid","targetKey","includes","some","ele","filter","isDefaultLockedField","isSystemDefaultLockFieldElement","convertTimestamptoDateString","found","find","option","isNeedIncluded","isLockedField","lockSwitch","disabled","newObj","assign","props","display","isSelected","fields","attr","config","ds","timeStamp","readableDate","dateService","format","linkPersonInfo","postClientConfirmDecision","postClientRejectDecision","linked","shouldLinked","clientIndex","propertyIdx","lockedField","getUserSelectedLockField","postClientDecision","clientDecision","lockedPersonalInfo","getLockedField","lockedFinancialInfo","getFinancialLockedField","concat","JSON","stringify","result","personInfo","kycform_oid","shouldRedirect","$router","path","list","lockList","forEach","groupEle","default","components","AppInfoLabelForm","component","oldBrowser","Error","crypto","global","msCrypto","size","rawBytes","Uint8Array","getRandomValues","bytes","Buffer","buffer","process","nextTick","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","undefined","RegExp","rx","S","res","done","previousLastIndex","lastIndex","show","directives","name","rawName","expression","ref","currentPageData","hasNoError","selectionKey","tableRowClassName","sortChange","rowClick","handleSelection","column","field","sortable","scopedSlots","_u","fn","scope","row","modifiers","$$selectedVal","Array","o","val","_value","$set","multiple","handleCustomEvent","domProps","_n","$forceUpdate","decimal","convertToCurrency","_t","button","$emit","shouldDisabled","stopPropagation","infoFrom","infoTo","total","currentPage","pageSizesDisplay","pageSize","pageChange","handleSizeChange","pageSizes","sortBy","prop","order","sizes","lastSize","round","search","searchKeyword","trim","filters","filteredData","sortedData","slice","every","emit","redirect","window","location","href","rows","appdatatable","$refs","clearSelection","currencySymbol","toLocaleString","minimumFractionDigits","maximumFractionDigits","clearCheckboxOnHeader","AppDecimalNumber","mailTo","companyMyInfoEmail","composing","indexOf","_k","keyCode","sendEmail","email","myInfoAttributes","setValue","uiOptionsService","get","IUIOptionsService","myinfoAttributeOptions","isShowName","uiService","alert","message","attributeSet","projectSettings","useMyinfoProperty","clientEmail","kycFormOid","formOid","sendAuthorizationEmail","success","projectInfo","myInfoSentEmail","sharedVariable","AppDialog","AppRadioSelection","AppSmartSelect","getPersonalDetailStructure","client1PersonalDetails","currentSection1ValidationErrors","requestMyInfo","client1IsLinked","linkMyInfo","unlinkMyInfo","myInfoStatus","syncMyInfo","kycForm","trustedIndividual","updateAccompanied","client1","client2","model","client2PersonalDetails","callback","$$v","currentSection2ValidationErrors","disabledMyInfoButton","client2IsLinked","clientDeclarationStructure","clientDeclaration","loadingpdfHistory","txtSearch","pdfHistoryColumns","pdfHistoryRows","showMyInfoView","linkPersonParam","needLinkPersonInfo","showMyInfoRequestDialog","clientTag","kycFormStore","pdfHistoryKeys","keyIsLockedField","personalDetails","included","isMyInfo","infoLinked","computedValidationResult","sectionErrors","errors","finalErrors","variableName","msg","newList","keyValues","newKey","kycPdf","queryArgs","headers","then","renameObjectKeys","history","date_pdf_submission","date_supervisor_decide","date_ops_decide","pdf_status","adviser_finalised","consolidatedStatus","_oid","keyword","values","catch","startCheckMyInfoUpdate","checkMyInfoUpdate","infoUpdateTimeout","setTimeout","clearTimeout","action","loadKYCForm","unlinkPersonInfo","hasClient2","State","Action","AppDatatable","AppForm","TheMyInfoView","AppNewClientSingpass","uniqNoSet","arr","ret","uniqSet","seen","Set","el","has","add","uniqSetWithForEach","doesForEachActuallyWork","style","structure","shouldShow","getCustomClass","hasErrors","focusId","getId","focusInner","getTestId","labelModelValue","labelModel","set","labelKey","tooltip","eidx","full","fullErr","optionCols","multiLimit","buttonName","cycleMode","displayDirection","blurHandler","getValue","checkboxColumnNo","compact","getLabelId","setSelectValue","maxChar","currencyFormat","precision","futureDate","disabledFutureDate","isVertical","maxSize","columns","getValueForTable","remove","maxLength","counterMsg","isModernTheme","maxlength","numberAndNAOnly","onBlur","onFocus","onSelect","inputModal","textIsSelected","number","convertCurrencyToNumber","remainingChar","evt","event","charCode","which","currentValue","isAlphabetN","isNonNumber","preventDefault","charCodeAt","isAlphabetA","formatValue","isNaN","source","useCurrency","currencyPrefix","currency","replaceAll","inputValue","minimal","structures","charLeft","getCharLeft","getCounterMsg","gridTemplateColumns","theme","condition","readOnly","Function","input","oriValue","String","labelValue","selectedOption","selectedIndex","onChange","ex","uniqueID","snakeCaseKey","curAppForm","$el","hasOverflow","scrollWidth","clientWidth","eleId","document","getElementById","focus","mc","classes","swe","first","s","scrollIntoView","behavior","block","arrangeCols","addEventListener","Date","now","deep","AppCheckboxGroup","AppDateInput","AppFormTable","AppCurrencyNA","AppTooltip"],"mappings":"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","file":"js/chunk-3eb4b8ca.0c154ce5.js","sourcesContent":["// This file is used to store MyInfo mapping, where it return correspond display label correspond to the key\n// It is imported by MyInfoView.vue;\n// By using this data structure, MyInfoView can generate array list that has attributes of\n// 'label, key, included, isLockFieldElement' and displayed on UI accordingly\nimport { CountryOptions, NationalityOptions } from '@master/model/options/NationalityAndCountryOptions'\n\nexport const PERSONAL_DATA_STRUCTURE = [{\n label: 'Name',\n key: 'name'\n}, {\n label: 'NRIC',\n key: 'nric'\n}, {\n label: 'Sex',\n key: 'gender'\n}, {\n label: 'Date of Birth',\n key: 'dob',\n type: 'timeStamp'\n}, {\n label: 'Citizenship',\n key: 'citizenship'\n}, {\n label: 'Nationality',\n key: 'citizenship_specified',\n mapWith: NationalityOptions\n}, {\n label: 'Marital Status',\n key: 'marital_status'\n}, {\n label: 'Race',\n key: 'race'\n}, {\n label: 'Country of Birth',\n key: 'country_of_birth',\n mapWith: CountryOptions\n}, {\n label: 'Mobile Number',\n key: 'contact_mobile'\n}, {\n label: 'Home Contact',\n key: 'contact_home'\n}, {\n label: 'Email',\n key: 'contact_email'\n}, {\n label: 'Postcode',\n key: 'postal_code'\n}, {\n label: 'Address',\n key: 'residential_address'\n}, {\n label: 'Employer\\'s Name',\n key: 'company_name'\n}, {\n label: 'Occupation',\n key: 'occupation'\n}, {\n label: 'Education Level',\n key: 'education_level'\n}]\n\nexport const FINANCIAL_DATA_STRUCTURE = [{\n category: 'CPF',\n group: [{\n label: 'CPF (OA)',\n key: 'cpf_ordinary'\n }, {\n label: 'CPF (SA)',\n key: 'cpf_special'\n }, {\n label: 'CPF (MA)',\n key: 'cpf_medisave'\n }, {\n label: 'CPF (RA)',\n key: 'cpf_retirement'\n }]\n}, {\n category: 'Notice Of Assessment',\n group: [{\n label: 'Annual Income',\n key: 'annual_income'\n }, {\n label: 'Year of Assessment',\n key: 'noa_yearofassessment'\n }, {\n label: 'Employment',\n key: 'employment'\n }, {\n label: 'Business',\n key: 'business'\n }, {\n label: 'Rent',\n key: 'rental_income'\n }, {\n label: 'Dividends',\n key: 'dividends'\n }]\n}, {\n category: 'household',\n group: [{\n label: 'Monthly HouseHold Income',\n key: 'monthly_household_income'\n }]\n}]\n\nexport const PROPERTY_DATA_STRUCTURE = [\n {\n label: 'Date of Purchase',\n key: 'prop_financing_date_of_purchase',\n type: 'timeStamp'\n }, {\n label: 'Original Loan Repayment Period',\n key: 'prop_financing_original_loan_period'\n }, {\n label: 'Monthly Loan Instalment',\n key: 'prop_financing_monthly_instalment_total'\n }, {\n label: 'Housing Loan Outstanding',\n key: 'prop_financing_housing_loan_outstanding'\n }, {\n label: 'Balance Loan Repayment Period',\n key: 'prop_financing_remaining_housing_loan_term_years'\n }, {\n label: 'Address',\n key: 'prop_financing_address'\n }, {\n label: 'Type of HDB Dwelling',\n key: 'prop_financing_type_of_property'\n }\n]\n","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","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!./AppNewClientSingpass.vue?vue&type=style&index=0&id=ef69963c&lang=scss&scoped=true&\"","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my-info\"},[_c('div',{attrs:{\"id\":\"my-info\"}},[_c('div',{staticClass:\"header-container\"},[_c('div',{staticClass:\"logo-container\"},[_c('div',{staticClass:\"singpass-logo\"},[_c('img',{attrs:{\"src\":_vm.companyLogo}})])])]),_vm._v(\" \"),(_vm.isCancel)?_c('div',{staticClass:\"invalid-container\"},[_c('label',[_vm._v(\"Singpass Request has been canceled, you may close this tab.\")])]):_vm._e(),(_vm.isProceed)?_c('div',{staticClass:\"invalid-container\"},[_c('label',[_vm._v(\"Thank you.\")])]):(_vm.fetching)?_c('div',{staticClass:\"invalid-container\"},[_c('label',[_vm._v(\"--- Loading Singpass Data --- \")])]):(!_vm.myInfoIsValid)?_c('div',{staticClass:\"invalid-container\"},[_c('label',[_vm._v(\"--- Singpass Data Unavailable --- \")])]):_c('div',{staticClass:\"col2\"},[_vm._m(0),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"sub-content\"},[_vm._l((_vm.personalInfoList),function(info,index){return [_c('AppInfoLabelForm',{key:index,attrs:{\"info\":info}})]})],2),_c('div',{staticClass:\"sub-content\"},[_vm._l((_vm.financialInfoList),function(info,fIndex){return [(info.group.length > 1 && _vm.hasGroupElement(fIndex))?_c('div',{key:info.category,staticClass:\"bordered-box\",class:info.class},[_c('div',{staticClass:\"header\"},[_vm._v(_vm._s(info.category))]),_vm._l((info.group),function(data,financialIndex){return [(data.value)?_c('AppInfoLabelForm',{key:\"section_\"+financialIndex,staticClass:\"section-row\",attrs:{\"info\":data}}):_vm._e()]})],2):[(info.group[0].value)?_c('div',{key:info.category},[_c('AppInfoLabelForm',{attrs:{\"info\":info.group[0]}})],1):_vm._e()]]})],2),(_vm.propertyInfoList.length>0)?_c('div',{staticClass:\"sub-content bordered-box\"},[_c('div',{staticClass:\"header\"},[_vm._v(\"Property (Click to select either one)\")]),_vm._l((_vm.propertyInfoList),function(info,pIndex){\nvar _obj;\nreturn [_c('div',{key:(\"prop-\" + pIndex),staticClass:\"property-item\",class:( _obj = {}, _obj[info.class] = info.class, _obj['has-selected'] = _vm.selectedPropIdx !== pIndex, _obj.selected = _vm.selectedPropIdx === pIndex, _obj ),on:{\"click\":function($event){return _vm.selectProperty(pIndex)}}},[_vm._m(1,true),_vm._l((info.fields),function(data){return _c('div',{key:(\"prop-\" + pIndex + \"-\" + (data.key)),staticClass:\"property-fields\"},[_c('span',[_vm._v(_vm._s(data.label))]),_c('span',[_vm._v(_vm._s(data.value))])])})],2)]})],2):_vm._e(),_c('div',{staticClass:\"button-toolbox\"},[_c('button',{staticClass:\"cancel-btn\",on:{\"click\":function($event){_vm.rejectDialogVisible = true}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"proceed-btn\",on:{\"click\":function($event){_vm.confirmDialogVisible = true}}},[_vm._v(\"Proceed\")])])])])]),_c('el-dialog',{staticClass:\"dialog\",attrs:{\"visible\":_vm.confirmDialogVisible,\"title\":\"Confimation\"},on:{\"update:visible\":function($event){_vm.confirmDialogVisible=$event}}},[_c('span',[_vm._v(\"Clicking \\\"\"),_c('b',[_vm._v(\"I Agree\")]),_vm._v(\"\\\" permits this digital service to use the received data from the form.\"),_c('br'),_vm._v(\"Are you sure you want to continue?\")]),_c('span',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"dialog-default-btn\",on:{\"click\":function($event){_vm.confirmDialogVisible = false}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-primary-btn\",attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.proceed()}}},[_vm._v(\"I Agree\")])])]),_c('el-dialog',{staticClass:\"dialog\",attrs:{\"visible\":_vm.rejectDialogVisible,\"title\":\"Cancel Link\"},on:{\"update:visible\":function($event){_vm.rejectDialogVisible=$event}}},[_c('span',[_vm._v(\"By cancelling, this digital service will not be able to use the received data from Singpass.\"),_c('br'),_vm._v(\"Are you sure you want to continue?\")]),_c('span',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"dialog-default-btn\",on:{\"click\":function($event){_vm.rejectDialogVisible = false}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-primary-btn\",attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.cancel()}}},[_vm._v(\"Confirm\")])])]),_c('el-dialog',{attrs:{\"visible\":_vm.alertDialogVisible},on:{\"update:visible\":function($event){_vm.alertDialogVisible=$event}}},[_c('span',[_vm._v(_vm._s(_vm.alertMsg))]),_c('span',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"dialog-primary-btn\",attrs:{\"type\":\"primary\"},on:{\"click\":function($event){_vm.alertDialogVisible = false}}},[_vm._v(\"OK\")])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b',[_vm._v(\"Confirmation on the Retrieval of Myinfo Data!\")]),_c('ul',{staticStyle:{\"margin-top\":\"12px\"}},[_c('li',[_vm._v(\" Click \\\"\"),_c('b',[_vm._v(\"PROCEED\")]),_vm._v(\"\\\" if all Myinfo data is correct. \")]),_c('li',[_vm._v(\" For (1) Email, (2) Marital Status, and (3) Mobile Number, you may \\\"\"),_c('b',[_vm._v(\"DESELECT\")]),_vm._v(\"\\\" to retrieve this data from Myinfo, and you would need to input this data manually in the form. \")]),_c('li',[_vm._v(\" Click \\\"\"),_c('b',[_vm._v(\"CANCEL\")]),_vm._v(\"\\\" if you do not wish to proceed or any of the data is incorrect, and you would need to input all data manually in the form. \")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"property-select\"},[_c('span',{staticClass:\"selected-msg\"},[_vm._v(\" This property is selected. \"),_c('span',{staticClass:\"el-icon-success\"})])])}]\n\nexport { render, staticRenderFns }","\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 { Component, Vue, Prop, Emit, Watch } from 'vue-property-decorator'\nimport AppInfoLabelForm from '@core/components/AppInfoLabelForm.vue'\nimport { PERSONAL_DATA_STRUCTURE, FINANCIAL_DATA_STRUCTURE, PROPERTY_DATA_STRUCTURE } from './data/MyInfoDataStructure'\nimport { inject } from 'inversify-props'\nimport { IDateService } from '@master/services/IDateService'\nimport API from '@core/services/API'\nimport MyInfoLogo from '@core/assets/singpass_logo.png'\nimport CompanyLogoSvg from '@/assets/logo.png'\nimport { options } from '@master/model/options/Options'\n\ninterface MyInfo {\n key: string;\n label: string;\n value?: string;\n disabled?: boolean;\n isLockedField?: boolean;\n isNeedIncluded?: boolean;\n type?: string;\n mapWith?: options[];\n}\n\n@Component({\n components: {\n AppInfoLabelForm\n }\n})\nexport default class TheMyInfoView extends Vue {\n/* eslint-disable @typescript-eslint/camelcase */\n @Prop() readonly isFromClientSummary\n @Prop() readonly params\n @Prop({ default: false }) shouldRedirect: boolean\n\n private fetching = false\n private personalInfoList = []\n private financialInfoList = []\n private propertyInfoList = []\n private personalOid\n private confirmDialogVisible = false\n private rejectDialogVisible = false\n private alertDialogVisible = false\n private alertMsg = ''\n private systemDefaultLockedFields = []\n private userSelectedLockedFields = []\n private selectedPropIdx = -1\n private myInfoData = {}\n private myInfoPropData = []\n private myInfoIsValid = false\n private isCancel = false\n private isProceed = false\n\n @inject()\n private dateService: IDateService\n\n @inject()\n private $api: API\n\n get myInfoLogo () {\n return MyInfoLogo\n }\n\n get companyLogo () {\n return CompanyLogoSvg\n }\n\n async created () {\n console.log('created')\n await this.updateMyInfoData()\n }\n\n selectProperty (target) {\n if (this.selectedPropIdx === -1 || this.selectedPropIdx !== target) {\n this.selectedPropIdx = target\n } else if (this.selectedPropIdx === target) this.selectedPropIdx = -1\n }\n\n async updateMyInfoData () {\n if (this.isFromClientSummary) {\n // if it is accessed via kycform client summary button\n console.log('client summary')\n await this.fetchConfirmPersonInfo()\n } else {\n // if it is accessed via email link\n console.log('not client summary')\n this.personalOid = this.$route.query.personInfoOid\n await this.fetchUnconfirmPersonInfo(this.personalOid)\n }\n\n if (Object.keys(this.myInfoData).length) {\n this.personalInfoList = this.getPersonalInfoList(this.myInfoData)\n this.financialInfoList = this.getFinancialInfoList(this.myInfoData)\n this.propertyInfoList = this.getPropertyInfoList(this.myInfoPropData)\n // auto select first one\n if (this.propertyInfoList.length > 0) this.selectedPropIdx = 0\n this.myInfoIsValid = true\n }\n }\n\n async fetchConfirmPersonInfo () {\n try {\n this.fetching = true\n const response = await this.$api.myInfo.fetchComfirmedPersonInfo(this.params)\n if (response.property?.selected !== -1) this.selectedPropIdx = Number(response.property?.selected) ?? -1\n this.myInfoData = response.data\n if (response.property) { // Only if property exists, then get its data\n this.myInfoPropData = response.property.data\n }\n this.systemDefaultLockedFields = response.defaultLockedFields\n this.userSelectedLockedFields = response.lockedFields\n } catch (error) {\n console.error('TheMyInfoView: Exception', error)\n this.myInfoIsValid = false\n this.alertDialogVisible = true\n this.alertMsg = error\n } finally {\n this.fetching = false\n }\n }\n\n async fetchUnconfirmPersonInfo (oid) {\n try {\n this.fetching = true\n const response = await this.$api.myInfo.fetchUnconfirmPersonInfo({\n personInfoOid: oid\n })\n if (response.error || !response.data) {\n throw response.error || 'Data is unavailable'\n } else {\n this.myInfoData = response.data\n if (response.property) { // Only if property exists, then get its data\n this.myInfoPropData = response.property.data\n }\n this.systemDefaultLockedFields = response.defaultLockedFields\n }\n } catch (error) {\n console.error('TheMyInfoView: Exception', error)\n this.myInfoIsValid = false\n this.alertDialogVisible = true\n this.alertMsg = error\n } finally {\n this.fetching = false\n }\n }\n\n // isUserSelectedLockFieldElement (targetKey) {\n // return this.userSelectedLockedFields.includes(targetKey)\n // }\n\n isSystemDefaultLockFieldElement (targetKey) {\n return this.systemDefaultLockedFields.includes(targetKey)\n }\n\n hasGroupElement (index) {\n return this.financialInfoList[index].group.some((ele: MyInfo) => {\n return ele.value\n })\n }\n\n getPersonalInfoList (info) {\n return PERSONAL_DATA_STRUCTURE.filter((ele) => {\n return info[ele.key] // to return element that have value in api return data\n }).map((ele: MyInfo) => {\n const isDefaultLockedField = this.isSystemDefaultLockFieldElement(ele.key)\n let value = ele.type === 'timeStamp' ? this.convertTimestamptoDateString(info[ele.key]) : info[ele.key]\n if (ele.mapWith) {\n const found = ele.mapWith.find(option => option.value === info[ele.key])\n if (found) { value = found.label }\n }\n const isNeedIncluded = value && value !== '-'\n return {\n isLockedField: isDefaultLockedField,\n isNeedIncluded: isNeedIncluded,\n value: value,\n lockSwitch: isDefaultLockedField,\n disabled: isDefaultLockedField,\n ...ele\n }\n })\n }\n\n getFinancialInfoList (info) {\n return FINANCIAL_DATA_STRUCTURE.filter((ele) => {\n return ele.group.filter((group) => {\n return info[group.key]\n }).map((newObj: MyInfo) => {\n const isDefaultLockedField = this.isSystemDefaultLockFieldElement(newObj.key)\n const value = newObj.type === 'timeStamp' ? this.convertTimestamptoDateString(info[newObj.key]) : info[newObj.key]\n const isNeedIncluded = value && value !== '-'\n return Object.assign(newObj, { // to add additional key to the element\n isLockedField: isDefaultLockedField,\n isNeedIncluded: isNeedIncluded,\n value: value,\n lockSwitch: isDefaultLockedField,\n disabled: isDefaultLockedField || value === '-'\n })\n }).length > 0\n })\n }\n\n getPropertyInfoList (props) {\n if (!props) return []\n return props.map((property) => {\n const display = { isSelected: false, fields: [] }\n const attrs = Object.keys(property)\n display.fields = attrs.map((attr) => {\n const config = PROPERTY_DATA_STRUCTURE.find(ds => ds.key === attr)\n const isDefaultLockedField = this.isSystemDefaultLockFieldElement(config.key)\n const value = config.type === 'timeStamp' ? this.convertTimestamptoDateString(property[config.key]) : property[config.key]\n return {\n isLockedField: isDefaultLockedField,\n isNeedIncluded: isDefaultLockedField,\n value: value,\n disabled: true,\n ...config\n }\n })\n return display\n })\n }\n\n convertTimestamptoDateString (timeStamp) {\n const readableDate = this.dateService.format(Number(timeStamp), 'DD/MM/YYYY')\n // timeStamp can be `-` after backend processing\n return readableDate === 'Invalid Date' ? timeStamp : readableDate\n }\n\n proceed () {\n this.confirmDialogVisible = false\n if (this.isFromClientSummary) {\n this.linkPersonInfo(true)\n } else {\n this.postClientConfirmDecision()\n }\n }\n\n cancel () {\n this.rejectDialogVisible = false\n if (this.isFromClientSummary) {\n this.linkPersonInfo(false)\n } else {\n this.postClientRejectDecision()\n }\n }\n\n @Emit('link-person-info')\n linkPersonInfo (linked) {\n return {\n shouldLinked: linked,\n clientIndex: this.params.clientIndex,\n propertyIdx: this.selectedPropIdx,\n lockedField: this.getUserSelectedLockField()\n }\n }\n\n postClientRejectDecision () {\n try {\n this.$api.myInfo.postClientDecision({\n personInfoOid: this.personalOid,\n clientDecision: false,\n lockedFields: []\n })\n this.alertMsg = 'Cancel Link Singpass Success'\n } catch (error) {\n console.error('error in postClientDecision ', error)\n this.alertMsg = error\n } finally {\n this.alertDialogVisible = true\n this.isCancel = true\n }\n }\n\n getUserSelectedLockField () {\n const lockedPersonalInfo = this.getLockedField(this.personalInfoList)\n const lockedFinancialInfo = this.getFinancialLockedField(this.financialInfoList)\n\n return lockedPersonalInfo.concat(lockedFinancialInfo)\n }\n\n async postClientConfirmDecision () {\n try {\n const result = await this.$api.myInfo.postClientDecision({\n personInfoOid: this.personalOid,\n clientDecision: true,\n propertyIdx: this.selectedPropIdx,\n lockedFields: JSON.stringify(this.getUserSelectedLockField())\n })\n this.alertMsg = 'Success'\n this.isProceed = true\n\n if (result.personInfo?.kycform_oid && this.shouldRedirect) {\n this.$router.push({ path: '/kyc-form/' + result.personInfo?.kycform_oid })\n }\n } catch (error) {\n console.error('error in postClientDecision ', error)\n this.alertMsg = error\n } finally {\n this.alertDialogVisible = true\n }\n }\n\n getLockedField (list) {\n return list.filter(ele => {\n return ele.isNeedIncluded\n }).map(ele => {\n return ele.key\n })\n }\n\n getFinancialLockedField (list) {\n let lockList = []\n list.forEach(ele => {\n const x = ele.group.filter(groupEle => {\n return groupEle.isNeedIncluded\n }).map(groupEle => {\n return groupEle.key\n })\n lockList = lockList.concat(x)\n })\n return lockList\n }\n\n // when we close the dialog (via link singpass button), it didnt rerender this component\n // old data is display instead of the new data\n // (exp: if client 2 is open before client 1, then client 2 data is displayed although is client 1 trigger this component)\n // therefore add a watcher to the param Input to make sure the input fields is updated\n @Watch('params')\n async paramsOnChange () {\n await this.updateMyInfoData()\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!./TheMyInfoView.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!./TheMyInfoView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheMyInfoView.vue?vue&type=template&id=293c0e72&scoped=true&\"\nimport script from \"./TheMyInfoView.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheMyInfoView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheMyInfoView.vue?vue&type=style&index=0&id=293c0e72&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 \"293c0e72\",\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!./AppInfoLabelForm.vue?vue&type=style&index=0&id=ac0639c0&lang=scss&scoped=true&\"","module.exports = require(\"./lib/randomstring\");","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!./TheMyInfoView.vue?vue&type=style&index=0&id=293c0e72&lang=scss&scoped=true&\"","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","module.exports = __webpack_public_path__ + \"img/singpass_logo.7b9d1f46.png\";","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!./ClientSummaryView.vue?vue&type=style&index=0&id=5f656986&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/request_myinfo.337dfed1.svg\";","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\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&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"datatable\",class:{'active': _vm.show, 'inactive': !_vm.show}},[_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"appdatatable\",attrs:{\"data\":_vm.currentPageData,\"stripe\":_vm.hasNoError,\"size\":\"mini\",\"row-key\":_vm.selectionKey,\"row-class-name\":_vm.tableRowClassName,\"header-cell-class-name\":'cell-header'},on:{\"sort-change\":_vm.sortChange,\"row-click\":_vm.rowClick,\"selection-change\":_vm.handleSelection}},[(_vm.selectionKey)?_c('el-table-column',{attrs:{\"type\":\"selection\",\"reserve-selection\":true}}):_vm._e(),_vm._l((_vm.columns),function(column){return [(column.options)?_c('el-table-column',{key:column.field,attrs:{\"prop\":column.field,\"label\":column.label,\"align\":\"center\",\"sortable\":column.sortable === undefined ? true : column.sortable},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('select',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(scope.row[column.field]),expression:\"scope.row[column.field]\",modifiers:{\"lazy\":true}}],on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(scope.row, column.field, $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.handleCustomEvent(scope.row)}]}},_vm._l((column.options),function(option,index){return _c('option',{key:index,domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.label))])}),0)]}}],null,true)}):(column.type)?_c('el-table-column',{key:column.field,attrs:{\"prop\":column.field,\"label\":column.label,\"align\":\"center\",\"sortable\":column.sortable === undefined ? true : column.sortable},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(column.type==='number')?[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number.lazy\",value:(scope.row[column.field]),expression:\"scope.row[column.field]\",modifiers:{\"number\":true,\"lazy\":true}}],attrs:{\"type\":column.type},domProps:{\"value\":(scope.row[column.field])},on:{\"change\":[function($event){_vm.$set(scope.row, column.field, _vm._n($event.target.value))},function($event){return _vm.handleCustomEvent(scope.row)}],\"blur\":function($event){return _vm.$forceUpdate()}}})]:(column.type === 'decimal-number')?[_c('AppDecimalNumber',{attrs:{\"decimal\":column.decimal,\"inputValue\":scope.row[column.field],\"disabled\":column.disabled}})]:(column.type === 'currency')?[_c('label',[_vm._v(_vm._s(_vm.convertToCurrency(scope.row[column.field])))])]:(column.type === 'action')?_vm._t(\"action\",function(){return _vm._l((column.buttons),function(button,index){return _c('button',{key:index,on:{\"click\":function($event){return _vm.$emit(button, scope.row)}}},[_vm._v(_vm._s(button))])})}):(column.type === 'actionWithFeatures')?_vm._t(\"action\",function(){return _vm._l((column.buttons),function(button,index){return _c('button',{key:index,attrs:{\"disabled\":button.shouldDisabled},on:{\"click\":function($event){return _vm.$emit(button.label, scope.row)}}},[_vm._v(_vm._s(button.label))])})}):_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(scope.row[column.field]),expression:\"scope.row[column.field]\",modifiers:{\"lazy\":true}}],attrs:{\"type\":column.type},domProps:{\"value\":(scope.row[column.field])},on:{\"change\":[function($event){return _vm.$set(scope.row, column.field, $event.target.value)},function($event){return _vm.handleCustomEvent(scope.row)}]}})]}}],null,true)}):_c('el-table-column',{key:column.field,attrs:{\"prop\":column.field,\"label\":column.label,\"align\":\"center\",\"sortable\":column.sortable === undefined ? true : column.sortable,\"show-overflow-tooltip\":true},scopedSlots:_vm._u([{key:\"content\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(scope.row[column.field]))])]}}],null,true)})]}),(_vm.redirect)?_c('el-table-column',{key:'redirect',attrs:{\"prop\":'redirect',\"align\":\"center\",\"sortable\":false},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('redirect', scope.row)}}},[_c('i',{staticClass:\"fas fa-external-link-alt\"})])]}}],null,false,2100746354)}):_vm._e()],2),_c('div',{staticClass:\"table-footer\"},[_c('div',{staticClass:\"table-info\"},[_vm._v(\"Show \"+_vm._s(_vm.infoFrom)+\" to \"+_vm._s(_vm.infoTo)+\" of \"+_vm._s(_vm.total)+\" entries\")]),_c('el-pagination',{attrs:{\"current-page\":_vm.currentPage,\"total\":_vm.total,\"hide-on-single-page\":false,\"page-sizes\":_vm.pageSizesDisplay,\"page-size\":_vm.pageSize,\"layout\":\"sizes, prev, pager, next, jumper\",\"background\":\"\"},on:{\"current-change\":_vm.pageChange,\"size-change\":_vm.handleSizeChange}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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 { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { isUndefined } from 'lodash/fp'\nimport AppDecimalNumber from './AppDecimalNumber.vue'\n\nexport interface Column {\n label: string;\n field: string;\n sortable?: boolean;\n options: { label: string; value: string }[];\n}\n\ninterface Sort {\n prop: string;\n order: 'ascending' | 'decending';\n}\n\n@Component({\n components: {\n AppDecimalNumber\n }\n})\nexport default class TheDatatable extends Vue {\n @Prop() readonly loading!: boolean\n @Prop() readonly columns!: Array\n @Prop() readonly data!: Array\n @Prop() readonly filters: Array\n @Prop() readonly sort!: Sort\n @Prop() readonly search!: string\n @Prop({ default: true }) readonly show!: boolean\n @Prop({ default: false }) readonly redirect!: boolean\n @Prop() readonly selectionKey: string\n private pageSizes = [10, 50, 100, 500, 1000]\n private pageSize = 10\n private currentPage = 1\n private sortBy: Sort = {\n prop: this.data[0],\n order: 'ascending'\n }\n\n @Prop() clearSelection: boolean\n\n get pageSizesDisplay () {\n // return first size(10), if data total less than 10\n if (this.total < this.pageSizes[0]) return [this.pageSizes[0]]\n\n // get all the size that less than total\n const sizes = this.pageSizes.filter(size => size < this.total)\n\n // push last size\n const lastSize = (Math.round(this.total / 10) + 1) * 10\n sizes.push(lastSize)\n\n return sizes\n }\n\n get filteredData () {\n if (isUndefined(this.search)) return this.data\n\n const searchKeyword = this.search.trim().toLowerCase()\n const data = (this.filters && this.filters.length) ? this.filters : this.data\n return data.filter(value => {\n const result = JSON.stringify(value).toLowerCase().includes(searchKeyword)\n return result\n })\n }\n\n get sortedData () {\n const data = this.filteredData.sort((a, b) => {\n if (this.sortBy.order === 'ascending') {\n if (a[this.sortBy.prop] > b[this.sortBy.prop]) { return 1 }\n if (a[this.sortBy.prop] < b[this.sortBy.prop]) { return -1 }\n } else {\n if (a[this.sortBy.prop] > b[this.sortBy.prop]) { return -1 }\n if (a[this.sortBy.prop] < b[this.sortBy.prop]) { return 1 }\n }\n return 0\n })\n return data\n }\n\n get currentPageData () {\n return this.sortedData.slice((this.currentPage - 1) * this.pageSize, this.pageSize * this.currentPage)\n }\n\n get total () {\n return this.filteredData.length\n }\n\n get infoFrom () {\n if (this.currentPage !== 1) {\n return (this.currentPage - 1) * this.pageSize + 1\n } else {\n return this.filteredData.length ? 1 : 0\n }\n }\n\n get infoTo () {\n return this.currentPageData.length < this.pageSize\n ? this.pageSize * (this.currentPage - 1) + this.currentPageData.length\n : this.pageSize * this.currentPage\n }\n\n get hasNoError () {\n return this.data.every(e => e.error === undefined)\n }\n\n pageChange (currentPage: number): void {\n this.currentPage = currentPage\n this.$emit('pageChangeCustom', this.currentPage)\n }\n\n sortChange (sort: Sort): void {\n this.sortBy.prop = sort.prop\n this.sortBy.order = sort.order || 'ascending'\n }\n\n rowClick (row: any): void {\n if (row.emit) this.$emit('rowClickCustom', row)\n if (!row.redirect) return\n window.location.href = row.redirect\n }\n\n handleSelection (rows: any[]) {\n this.$emit('selectionChange', rows)\n }\n\n handleCustomEvent (row) {\n this.$emit('customEventSelect', row)\n }\n\n tableRowClassName ({ row }) {\n if (row.error) {\n return 'warning-row'\n } else {\n return ''\n }\n }\n\n clearCheckboxOnHeader () {\n const appdatatable = this.$refs.appdatatable as any\n if (this.selectionKey && appdatatable) {\n appdatatable.clearSelection()\n }\n }\n\n handleSizeChange (val) {\n this.pageSize = val\n }\n\n convertToCurrency (value, currencySymbol = '') {\n if (!value && value !== 0) return ''\n return currencySymbol + Number(value).toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n })\n }\n\n mounted () {\n this.sortBy = this.sort\n this.clearCheckboxOnHeader()\n }\n\n @Watch('clearSelection')\n clearSelectionCheckbox () {\n if (this.clearSelection) {\n this.clearCheckboxOnHeader()\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!./AppDatatable.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!./AppDatatable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppDatatable.vue?vue&type=template&id=4b557606&scoped=true&\"\nimport script from \"./AppDatatable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppDatatable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppDatatable.vue?vue&type=style&index=0&id=4b557606&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 \"4b557606\",\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!./AppCurrencyNA.vue?vue&type=style&index=0&id=423a3b72&lang=scss&scoped=true&\"","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('p',[_vm._v(\"An email will be sent from <\"),_c('a',{attrs:{\"href\":_vm.mailTo}},[_vm._v(_vm._s(_vm.companyMyInfoEmail))]),_vm._v(\"> to the client to authorize the retrieval of Myinfo data for form-filling purpose.\")]),(_vm.isShowName)?_c('div',{staticClass:\"column-group\"},[_c('div',{staticClass:\"input-group\"},[_c('label',{attrs:{\"for\":\"name\"}},[_vm._v(\"Name\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.name),expression:\"name\"}],attrs:{\"data-test\":\"singpass_name\",\"id\":\"name\"},domProps:{\"value\":(_vm.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.name=$event.target.value}}})])]):_vm._e(),_c('div',{staticClass:\"column-group\"},[_c('div',{staticClass:\"input-group\"},[_c('label',{attrs:{\"for\":\"email\"}},[_vm._v(\"Email\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.email),expression:\"email\"}],attrs:{\"data-test\":\"singpass_email\",\"id\":\"email\"},domProps:{\"value\":(_vm.email)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.sendEmail()},\"input\":function($event){if($event.target.composing){ return; }_vm.email=$event.target.value}}})])]),_c('div',{staticClass:\"wrapper-select\"},[_c('p',[_vm._v(\"Select information to request\")]),_c('AppSmartSelect',{attrs:{\"options\":_vm.options,\"value\":_vm.myInfoAttributes,\"cols\":2,\"buttonName\":'myInfoAttributes'},on:{\"input\":function($event){return _vm.setValue($event)}}})],1)]),_c('div',{staticClass:\"btn-wrapper\"},[_c('button',{staticClass:\"btn-default\",on:{\"click\":function($event){return _vm.sendEmail()}}},[_vm._v(\"Submit\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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 { Component, Prop, Vue } from 'vue-property-decorator'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport AppRadioSelection from '@core/components/AppRadioSelection.vue'\nimport AppSmartSelect from '@core/components/AppSmartSelect.vue'\nimport API from '@core/services/API'\nimport { cid, container, inject } from 'inversify-props'\nimport { UIService } from '@core/services/UIService'\nimport { SharedVariable } from '@core/model/SharedVariable'\nimport { IProjectSettings } from '@master/config/IProjectSettings'\nimport { IUIOptionsService } from '@master/services/IUIOptionsService'\nimport { IProjectInfo } from '@master/config/IProjectInfo'\n\ninterface Email {\n clientEmail: string;\n name?: string;\n kycFormOid: string;\n clientIndex: 0 | 1;\n attributeSet: AttributeSet[];\n}\n\ntype AttributeSet = 'personal' | 'financial' | 'property'\n\n@Component({\n components: {\n AppDialog,\n AppRadioSelection,\n AppSmartSelect\n }\n})\nexport default class AppNewClientSingpass extends Vue {\n @Prop() readonly isShowName!: boolean\n @Prop() readonly clientIndex: 0 | 1\n\n private name = ''\n private email = ''\n private myInfoAttributes = 1\n\n uiService: UIService\n\n @inject()\n private sharedVariable: SharedVariable\n\n @inject()\n private $api: API\n\n @inject()\n private projectSettings: IProjectSettings\n\n @inject()\n private projectInfo: IProjectInfo\n\n get options () {\n const uiOptionsService = container.get(cid.IUIOptionsService)\n return uiOptionsService.myinfoAttributeOptions()\n }\n\n setValue (value) {\n if (!value) { // to disable re-select option\n return\n }\n this.myInfoAttributes = value\n }\n\n async sendEmail () {\n if (this.isShowName && this.name.length === 0) {\n await this.uiService.alert.show({\n type: 'warning',\n message: 'Please key in name'\n })\n return\n }\n\n if (this.email.length === 0) {\n await this.uiService.alert.show({\n type: 'warning',\n message: 'Please key in email'\n })\n return\n }\n\n const attributeSet: AttributeSet[] = ['personal']\n\n if (this.myInfoAttributes === 1) {\n if (this.projectSettings.useMyinfoProperty) {\n attributeSet.push('property')\n }\n attributeSet.push('financial')\n }\n\n const data: Email = {\n clientEmail: this.email,\n kycFormOid: this.isShowName ? 'new' : this.$route.params.formOid,\n clientIndex: this.isShowName ? 0 : this.clientIndex,\n attributeSet: attributeSet\n }\n if (this.isShowName) {\n data.name = this.name\n }\n const { success, error } = await this.$api.myInfo.sendAuthorizationEmail(data)\n\n if (error) {\n await this.uiService.alert.show({\n type: 'error',\n message: error\n })\n return\n }\n await this.uiService.alert.show({\n type: 'success',\n message: success\n })\n this.$emit('close')\n }\n\n get companyMyInfoEmail () {\n return this.projectInfo?.myInfoSentEmail || 'do-not-reply@wenconsulting.com'\n }\n\n get mailTo () {\n return 'mailto:' + this.companyMyInfoEmail\n }\n\n async mounted () {\n // take injected UIService and set it to local\n this.uiService = this.sharedVariable.uiService\n this.myInfoAttributes = this.options.length > 0 ? Number(this.options[0].value) : 1\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!./AppNewClientSingpass.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!./AppNewClientSingpass.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppNewClientSingpass.vue?vue&type=template&id=ef69963c&scoped=true&\"\nimport script from \"./AppNewClientSingpass.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppNewClientSingpass.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppNewClientSingpass.vue?vue&type=style&index=0&id=ef69963c&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 \"ef69963c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"client-summary\"}},[_c('div',{staticClass:\"title\"},[_vm._v(\"Client Summary\")]),_c('div',{staticClass:\"form-body\"},[_c('p',[_vm._v(\"Client 1\")]),_c('AppForm',{attrs:{\"structures\":_vm.getPersonalDetailStructure(0),\"model\":_vm.client1PersonalDetails,\"errors\":_vm.currentSection1ValidationErrors}}),_c('div',{staticClass:\"button-container\"},[_c('a',{staticClass:\"myinfo-a\",on:{\"click\":function($event){return _vm.requestMyInfo(0)}}},[_c('img',{directives:[{name:\"svg-inline\",rawName:\"v-svg-inline\"}],attrs:{\"src\":require(\"@core/assets/request_myinfo.svg\"),\"alt\":\"svg image\"}})]),(_vm.client1IsLinked === false)?_c('button',{staticClass:\"btn-default\",on:{\"click\":function($event){return _vm.linkMyInfo(0)}}},[_vm._v(\"Link Singpass\")]):_vm._e(),(_vm.client1IsLinked)?_c('button',{staticClass:\"btn-default\",on:{\"click\":function($event){return _vm.unlinkMyInfo(0)}}},[_vm._v(\"Unlink Singpass\")]):_vm._e(),(_vm.myInfoStatus.haveNewInfoClient1)?_c('button',{staticClass:\"btn-default\",on:{\"click\":function($event){return _vm.syncMyInfo(0)}}},[_vm._v(\"Sync Singpass\")]):_vm._e()]),_c('div',{staticClass:\"subject\"},[_vm._v(\" Client 2 \"),_c('el-switch',{attrs:{\"active-text\":\"Include\",\"change\":_vm.kycForm.trustedIndividual.updateAccompanied(_vm.kycForm.client1, _vm.kycForm.client2)},model:{value:(_vm.client2PersonalDetails.included),callback:function ($$v) {_vm.$set(_vm.client2PersonalDetails, \"included\", $$v)},expression:\"client2PersonalDetails.included\"}})],1),_c('AppForm',{attrs:{\"structures\":_vm.getPersonalDetailStructure(1),\"model\":_vm.client2PersonalDetails,\"errors\":_vm.currentSection2ValidationErrors}}),_c('div',{staticClass:\"button-container\"},[_c('a',{staticClass:\"myinfo-a\",class:_vm.disabledMyInfoButton()? 'myinfo-disabled': 'myinfo-enabled',on:{\"click\":function($event){return _vm.requestMyInfo(1)}}},[_c('img',{directives:[{name:\"svg-inline\",rawName:\"v-svg-inline\"}],attrs:{\"src\":require(\"@core/assets/request_myinfo.svg\"),\"alt\":\"svg image\"}})]),(_vm.client2IsLinked === false)?_c('button',{staticClass:\"btn-default\",attrs:{\"disabled\":_vm.disabledMyInfoButton()},on:{\"click\":function($event){return _vm.linkMyInfo(1)}}},[_vm._v(\"Link Singpass\")]):_vm._e(),(_vm.client2IsLinked)?_c('button',{staticClass:\"btn-default\",attrs:{\"disabled\":_vm.disabledMyInfoButton()},on:{\"click\":function($event){return _vm.unlinkMyInfo(1)}}},[_vm._v(\"Unlink Singpass\")]):_vm._e(),(_vm.myInfoStatus.haveNewInfoClient2)?_c('button',{staticClass:\"btn-default\",attrs:{\"disabled\":_vm.disabledMyInfoButton()},on:{\"click\":function($event){return _vm.syncMyInfo(1)}}},[_vm._v(\"Sync Singpass\")]):_vm._e()]),_c('AppForm',{attrs:{\"structures\":_vm.clientDeclarationStructure,\"model\":_vm.clientDeclaration}})],1),_c('div',{staticClass:\"title\"},[_vm._v(\" PDF History \"),_c('div',{staticClass:\"search-wrapper\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.txtSearch),expression:\"txtSearch\"}],staticClass:\"txt-search\",attrs:{\"type\":\"search\",\"readonly\":_vm.loadingpdfHistory},domProps:{\"value\":(_vm.txtSearch)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.txtSearch=$event.target.value}}})])]),_c('AppDatatable',{attrs:{\"loading\":_vm.loadingpdfHistory,\"columns\":_vm.pdfHistoryColumns,\"data\":_vm.pdfHistoryRows,\"sort\":{prop: 'date_pdf_submission', order: 'descending'},\"search\":_vm.txtSearch}}),(_vm.showMyInfoView)?_c('el-dialog',{attrs:{\"visible\":_vm.showMyInfoView,\"width\":\"80%\"},on:{\"update:visible\":function($event){_vm.showMyInfoView=$event}}},[_c('TheMyInfoView',{attrs:{\"isFromClientSummary\":true,\"params\":_vm.linkPersonParam},on:{\"link-person-info\":function($event){return _vm.needLinkPersonInfo($event)}}})],1):_vm._e(),(_vm.showMyInfoRequestDialog)?_c('AppDialog',{attrs:{\"size\":'small',\"hideFooter\":true},on:{\"close\":function($event){_vm.showMyInfoRequestDialog = false}}},[_c('template',{slot:\"header\"},[_vm._v(\"Request Singpass\")]),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('AppNewClientSingpass',{attrs:{\"isShowName\":false,\"clientIndex\":_vm.clientTag},on:{\"close\":function($event){_vm.showMyInfoRequestDialog = false}}})],1)],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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/* eslint-disable @typescript-eslint/camelcase */\nimport { Component, Vue } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport { isUndefined } from 'lodash/fp'\nimport KYCForm from '@company-common/model/kyc-form/KYCForm'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport AppForm from '@core/components/AppForm.vue'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport PersonalDetails from '@master/model/kyc-form/PersonalDetails'\nimport ClientDeclaration from '@master/model/kyc-form/ClientDeclaration'\nimport TheMyInfoView from '@core/pages/myinfo/TheMyInfoView.vue'\nimport AppRadioSelection from '@core/components/AppRadioSelection.vue'\nimport { inject } from 'inversify-props'\nimport { IDateService } from '@master/services/IDateService'\nimport API from '@core/services/API'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport AppNewClientSingpass from '@core/components/AppNewClientSingpass.vue'\n\nconst kycFormStore = namespace('KYCFormStore')\n\ninterface PdfHistory {\n _oid: string;\n adviser_name: string;\n supervisor_fullname: string;\n date_pdf_submission: string;\n date_supervisor_decide: string;\n date_ops_decide: string;\n pdf_status: string;\n consolidatedStatus: string;\n adviser_finalised: string | boolean;\n redirect: string;\n keyword: string;\n}\n@Component({\n components: {\n AppDatatable,\n AppForm,\n TheMyInfoView,\n AppRadioSelection,\n AppDialog,\n AppNewClientSingpass\n }\n})\nexport default class ClientSummary extends Vue {\n @kycFormStore.State\n private kycForm!: KYCForm;\n\n @kycFormStore.State\n private myInfoStatus: {}\n\n @kycFormStore.Action\n private checkMyInfoUpdate!: (formOid: string) => void\n\n @kycFormStore.Action\n public loadKYCForm!: (formOid: string) => void\n\n @kycFormStore.State\n private computedValidationResult\n\n infoUpdateInterval\n infoUpdateTimeout\n\n private loadingpdfHistory = true;\n private pdfHistoryColumns: Array = [\n { label: 'Adviser Name', field: 'adviser_name' },\n { label: 'Assigned Supervisor', field: 'supervisor_fullname' },\n { label: 'Date of Submission', field: 'date_pdf_submission' },\n { label: 'Date of A/R (Sup)', field: 'date_supervisor_decide' },\n { label: 'Date of A/R (Ops)', field: 'date_ops_decide' },\n { label: 'PDF Status', field: 'pdf_status' },\n { label: 'E-Submission Status', field: 'consolidatedStatus' },\n { label: 'Adviser Finalised', field: 'adviser_finalised' }\n ];\n\n private pdfHistoryKeys = [\n '_oid',\n 'adviser_name',\n 'supervisor_fullname',\n 'date_pdf_submission',\n 'date_supervisor_decide',\n 'date_ops_decide',\n 'pdf_status',\n 'consolidatedStatus',\n 'adviser_finalised'\n ];\n\n private txtSearch = '';\n private pdfHistoryRows: PdfHistory[] = [];\n\n private showMyInfoView = false\n private showMyInfoRequestDialog = false\n private kycFormOid = ''\n private linkPersonParam = {}\n private clientTag\n\n @inject()\n private dateService: IDateService\n\n @inject()\n private $api: API\n\n isLockedField (key, clientIndex) {\n const index = clientIndex + 1 // because in kycform, it is client1, client2\n\n if (isUndefined(this.kycForm['client' + index].myInfo.lockedFields)) {\n return\n }\n\n return this.kycForm['client' + index].myInfo.keyIsLockedField(key)\n }\n\n getPersonalDetailStructure (clientIndex): 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 disabled: (personalDetails) => personalDetails.included !== true\n },\n {\n label: 'Name',\n key: 'name',\n disabled: (personalDetails) => personalDetails.included !== true || this.isLockedField('name', clientIndex),\n isMyInfo: this.isLockedField('name', clientIndex)\n },\n {\n label: 'NRIC/FIN/Passport No.',\n key: 'nric',\n disabled: (personalDetails) => personalDetails.included !== true || this.isLockedField('nric', clientIndex),\n isMyInfo: this.isLockedField('nric', clientIndex)\n },\n {\n label: 'Contact Mobile',\n key: 'contactMobile',\n disabled: (personalDetails) => personalDetails.included !== true || this.isLockedField('contactMobile', clientIndex),\n isMyInfo: this.isLockedField('contactMobile', clientIndex)\n }\n ]\n }\n\n get clientDeclarationStructure (): FormStructure {\n return [\n {\n label: 'Date of First Appointment',\n key: 'reviewDate',\n type: 'date'\n }\n ]\n }\n\n get client1PersonalDetails () {\n return this.kycForm.client1.personalDetails\n }\n\n get client2PersonalDetails () {\n return this.kycForm.client2.personalDetails\n }\n\n get clientDeclaration () {\n return this.kycForm.clientDeclaration\n }\n\n get client1IsLinked () {\n return this.kycForm.client1.myInfo.infoLinked\n }\n\n get client2IsLinked () {\n return this.kycForm.client2.myInfo.infoLinked\n }\n\n get sectionErrors () {\n return this.computedValidationResult['Client Summary'] || {}\n }\n\n get currentSection1ValidationErrors () {\n console.log(this.sectionErrors)\n const errors = this.sectionErrors['Client 1'] ? this.sectionErrors['Client 1'] : []\n const finalErrors: { key: string; msg: string }[] = []\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 get currentSection2ValidationErrors () {\n const errors = this.sectionErrors['Client 2'] ? this.sectionErrors['Client 2'] : []\n const finalErrors: { key: string; msg: string }[] = []\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 renameObjectKeys (list: Array, keys: Array): Array {\n const newList = list.map(function (data) {\n const keyValues = Object.keys(data).map(function (key) {\n const newKey = keys[key]\n return { [newKey]: data[key] }\n })\n return Object.assign({}, ...keyValues)\n })\n return newList\n }\n\n mounted () {\n this.kycFormOid = this.$route.params.formOid\n this.$api.kycPdf\n .list({\n query: 'kyc_id = ?',\n queryArgs: JSON.stringify([this.kycFormOid]),\n headers: JSON.stringify(this.pdfHistoryKeys)\n })\n .then((response) => {\n this.pdfHistoryRows = this.renameObjectKeys(\n response.data,\n this.pdfHistoryKeys\n ) as PdfHistory[]\n this.pdfHistoryRows.map((history) => {\n history.date_pdf_submission = this.dateService.format(history.date_pdf_submission, 'YYYY-MM-DD')\n history.date_supervisor_decide = history.date_supervisor_decide\n ? this.dateService.format(history.date_supervisor_decide, 'YYYY-MM-DD')\n : '-'\n history.date_ops_decide = history.date_ops_decide\n ? this.dateService.format(history.date_ops_decide, 'YYYY-MM-DD')\n : '-'\n if (history.pdf_status === 'adviser-confirmed') {\n history.pdf_status = 'Not Signed'\n } else if (\n history.pdf_status === 'adviser-signed' &&\n history.adviser_finalised\n ) {\n history.pdf_status = 'Not Finalised'\n } else if (\n history.pdf_status === 'adviser-signed' &&\n !history.adviser_finalised\n ) {\n history.pdf_status = 'Pending Supervisor'\n } else if (history.pdf_status === 'adviser-cancelled') {\n history.pdf_status = 'Adviser Cancelled'\n } else if (history.pdf_status === 'supervisor-approved') {\n history.pdf_status = 'Supervisor Approved'\n } else if (history.pdf_status === 'supervisor-rejected') {\n history.pdf_status = 'Supervisor Rejected'\n } else if (history.pdf_status === 'submission-accepted') {\n history.pdf_status = 'Submission Accepted'\n } else if (history.pdf_status === 'submission-rejected') {\n history.pdf_status = 'Submission Rejected'\n }\n if (history.consolidatedStatus === 'Pending') {\n history.consolidatedStatus = 'Not Submitted'\n } else if (history.consolidatedStatus === 'Completed') {\n history.consolidatedStatus = 'Submitted'\n }\n history.adviser_finalised = history.adviser_finalised ? 'Yes' : 'No'\n history.redirect = '/live/kyc-pdf/' + history._oid\n history.keyword = Object.values(history).join(',').toLowerCase()\n return history\n })\n this.loadingpdfHistory = false\n })\n .catch((error) => {\n console.error('ClientSummary.js: Exception', error)\n alert('ClientSummary.js' + error)\n this.loadingpdfHistory = false\n })\n\n this.startCheckMyInfoUpdate()\n }\n\n startCheckMyInfoUpdate () {\n this.checkMyInfoUpdate(this.kycFormOid)\n this.infoUpdateTimeout = setTimeout(this.startCheckMyInfoUpdate, 30000)\n }\n\n beforeDestroy () {\n clearTimeout(this.infoUpdateTimeout)\n }\n\n requestMyInfo (clientIndex: 0 | 1) {\n this.showMyInfoRequestDialog = true\n this.clientTag = clientIndex\n }\n\n async syncMyInfo (clientIndex: 0 | 1) {\n const params = {\n kycFormOid: this.kycFormOid,\n clientIndex: clientIndex,\n action: 'sync'\n }\n const { success, error } = await this.$api.myInfo.syncMyInfo(params)\n if (success) {\n alert('sync success')\n await this.loadKYCForm(this.kycFormOid)\n } else {\n console.log(error)\n alert(error)\n }\n }\n\n linkMyInfo (clientIndex: 0 | 1) {\n this.linkPersonParam = {\n kycFormOid: this.kycFormOid,\n clientIndex: clientIndex\n }\n this.showMyInfoView = true\n }\n\n async needLinkPersonInfo (result) {\n this.showMyInfoView = false\n if (result.shouldLinked) {\n const params = {\n kycFormOid: this.kycFormOid,\n clientIndex: result.clientIndex,\n lockedFields: result.lockedField,\n action: 'link'\n }\n const { success, error } = await this.$api.myInfo.linkPersonInfo(params)\n if (success) {\n alert('Link success')\n await this.loadKYCForm(this.kycFormOid)\n } else {\n console.log(error)\n alert(error)\n }\n }\n }\n\n async unlinkMyInfo (clientIndex: 0 | 1) {\n const params = {\n kycFormOid: this.kycFormOid,\n clientIndex: clientIndex,\n action: 'unlink'\n }\n const { success, error } = await this.$api.myInfo.unlinkPersonInfo(params)\n if (success) {\n alert('Unlink success')\n await this.loadKYCForm(this.kycFormOid)\n } else {\n console.log(error)\n alert(error)\n }\n }\n\n disabledMyInfoButton () {\n return !this.kycForm.hasClient2\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!./ClientSummaryView.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!./ClientSummaryView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientSummaryView.vue?vue&type=template&id=5f656986&scoped=true&\"\nimport script from \"./ClientSummaryView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientSummaryView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClientSummaryView.vue?vue&type=style&index=0&id=5f656986&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 \"5f656986\",\n null\n \n)\n\nexport default component.exports","'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:\"container\",class:{disabled: _vm.info.disabled}},[_c('div',{class:{ 'gray-bg-label': _vm.info.disabled && !_vm.info.isLockedField }},[_vm._v(_vm._s(_vm.info.label))]),_c('div',[_vm._v(_vm._s(_vm.info.value))]),_c('div',{staticClass:\"action\"},[_c('el-switch',{attrs:{\"disabled\":_vm.info.disabled},model:{value:(_vm.info.isNeedIncluded),callback:function ($$v) {_vm.$set(_vm.info, \"isNeedIncluded\", $$v)},expression:\"info.isNeedIncluded\"}}),(_vm.info.lockSwitch)?_c('span',{staticClass:\"el-icon-lock\"}):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class AppInfoLabelForm extends Vue {\n @Prop() readonly info\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!./AppInfoLabelForm.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!./AppInfoLabelForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppInfoLabelForm.vue?vue&type=template&id=ac0639c0&scoped=true&\"\nimport script from \"./AppInfoLabelForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppInfoLabelForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppInfoLabelForm.vue?vue&type=style&index=0&id=ac0639c0&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 \"ac0639c0\",\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!./AppDatatable.vue?vue&type=style&index=0&id=4b557606&lang=scss&scoped=true&\"","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"],"sourceRoot":""}