{"version":3,"sources":["webpack:///./@core/pages/clientManagement-v2/views/Screenings.vue?034e","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/randomstring/lib/randomstring.js","webpack:///./node_modules/randomstring/lib/charset.js","webpack:///./node_modules/randomstring/index.js","webpack:///./@core/assets/myinfo-icon.svg","webpack:///./node_modules/randomstring/node_modules/randombytes/browser.js","webpack:///./@core/pages/clientManagement-v2/views/ClientRisks.vue?f65f","webpack:///./@core/pages/clientManagement-v2/views/AIOICKA.vue?93d8","webpack:///./@core/pages/clientManagement-v2/mixins/AIOICKAMixin.ts","webpack:///./@core/pages/clientManagement-v2/views/AIOICKA.vue","webpack:///./@core/pages/clientManagement-v2/views/AIOICKA.vue?9dec","webpack:///./@core/pages/clientManagement-v2/views/AIOICKA.vue?bf98","webpack:///./@core/pages/clientManagement-v2/views/F2FVerify.vue?dd2d","webpack:///./@core/pages/clientManagement-v2/mixins/F2FVerifyMixin.ts","webpack:///./@core/pages/clientManagement-v2/views/F2FVerify.vue","webpack:///./@core/pages/clientManagement-v2/views/F2FVerify.vue?aa61","webpack:///./@core/pages/clientManagement-v2/views/F2FVerify.vue?e3f1","webpack:///./@core/pages/clientManagement-v2/views/Screenings.vue?6b09","webpack:///./@core/pages/client-management/model/ClientScreening.ts","webpack:///./@core/pages/new-business-register/model/ClientPolicyMeta.ts","webpack:///./@core/pages/clientManagement-v2/mixins/ScreeningsMixin.ts","webpack:///./@core/pages/clientManagement-v2/views/Screenings.vue","webpack:///./@core/pages/clientManagement-v2/views/Screenings.vue?bea5","webpack:///./@core/pages/clientManagement-v2/views/Screenings.vue?505e","webpack:///./@master/model/options/HRCRoleOptions.ts","webpack:///./@master/model/kyc-form/Recommendation.ts","webpack:///./@master/model/kyc-form/AML.ts","webpack:///./@core/pages/clientManagement-v2/mixins/ClientRisksMixin.ts","webpack:///./@core/pages/clientManagement-v2/views/ClientRisks.vue","webpack:///./@core/pages/clientManagement-v2/views/ClientRisks.vue?9282","webpack:///./@core/pages/clientManagement-v2/views/ClientRisks.vue?3329","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:///./node_modules/randomstring/node_modules/array-uniq/index.js","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","webpack:///./@core/pages/clientManagement-v2/views/AIOICKA.vue?9846"],"names":["module","exports","Object","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","type","numbers","charsLower","charsUpper","toUpperCase","hexChars","binaryChars","octalChars","unreadableChars","replace","toLowerCase","charMap","split","join","oldBrowser","Error","crypto","global","msCrypto","size","rawBytes","Uint8Array","getRandomValues","bytes","Buffer","buffer","process","nextTick","render","_vm","_h","$createElement","_c","_self","staticClass","readOnly","_e","on","save","_v","attrs","hrcStructure","clientDto","staticRenderFns","model","value","callback","$$v","$set","expression","clientInfoStore","unixTime","dateService","format","Number","$store","getters","currentUser","curUser","isSuperUser","$route","params","policyOid","clientOid","State","component","f2fStructure","label","key","classes","components","AppForm","createScreening","columns","filteredScreening","newScreens","prop","order","oldScreens","policyColumns","clientPolicies","$event","showScreeningForm","slot","screeningStructure","newScreening","ScreeningTypeOptions","OutcomeOptions","RiskAssessmentOptions","DDTypeOptions","undefined","screeningOid","ddTypeConducted","outcome","performedBy","remarks","riskAssessment","screeningDate","ClientInfoBase","Ignore","oid","adviserOid","introducerOid","introducerPct","introducerIfam","servicingOid","servicingPct","servicingIfam","vestingOid","vestingPct","vestingIfam","ownersOid","ownersName","ownersNric","insuredTitle","insuredName","insuredNric","insuredTitleTwo","insuredNameTwo","insuredNricTwo","productOid","name","productTypeDetailed","productCategory","taggedKyc","policyNumber","businessId","principal","status","applicationDate","opsApprovalDate","approvedDate","startDate","endDate","bscClawbackStatus","bscClawbackAmount","clientRebateStatus","clientRebateAmount","clientAiStatus","productMetadata","clientMetadata","PolicyClientMeta","creationType","faceToFace","policyProfileRemarks","level1ComOid","level2ComOid","level3ComOid","level4ComOid","level1ComPct","level2ComPct","level3ComPct","level4ComPct","faceToFaceSpecified","Meta","RawKey","MetaClass","screenings","field","forEach","screen","sameType","find","ns","isLatestIncluded","curIdx","findIndex","splice","$api","clientScreenings","get","client_oid","response","data","cs","extractAndAssignData","queryHeaders","clientPolicy","list","wildcardMode","orderBy","headers","JSON","stringify","query","queryArgs","res","map","policyMeta","policy","assignData","rawNewScreening","convertToRawData","values","some","alert","new","updated","fetchScreeningData","fetchClientPolicies","AppDatatable","AppDialog","HRCRoleOptions","riskRatingService","rcmd","hasClient2","filter","prod","clientIndex","flatMap","basicProduct","riders","allProducts","isCustom","getProductsForClient","element","basic","BasicProduct","assign","extractData","rawArray","product_reasons","productReasons","product_limitations","productLimitations","reduce","total","includes","clientChoice","totalAnnualisedPremium","totalSinglePremium","getReasons","getLimitations","isNtuc","totalAnnualizedPremiumForClient","totalSinglePremiumForClient","rmd","accepted","covered","productNeedsCovered","categorized","Base","Pointer","RiskRatingOptions","customType","adverseDBChecks","redFlag","sanctioned","financialFlowHighRisk","pepAssociated","transactValueBelowThreshold","applyMedicalProduct","presenceAccOpen","comments","riskRating","dateOfAssessment","isSingaporean","isHighRiskPR","isHighRiskForeign","transactThreshold","rawKycForm","defineProperty","c1hasMedical","c2hasMedical","set","tv","c1TransactValue","c2TransactValue","Date","now","results","keys","highRisk","isHighRisk","medRisk","lowRisk","uiService","sharedVariable","personalInfoJson","amlRiskRating","val","op","ftfPerformedBy","ftfDateOfVerification","show","message","updateClientDTOV2","Action","AIOICKA","F2FVerify","Screenings","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","RegExp","rx","S","done","previousLastIndex","lastIndex","result","class","directives","rawName","ref","currentPageData","hasNoError","selectionKey","tableRowClassName","sortChange","rowClick","handleSelection","_l","column","sortable","scopedSlots","_u","fn","scope","row","modifiers","$$selectedVal","Array","target","o","selected","_value","multiple","handleCustomEvent","option","domProps","_s","_n","$forceUpdate","decimal","disabled","convertToCurrency","_t","button","$emit","shouldDisabled","stopPropagation","infoFrom","infoTo","currentPage","pageSizesDisplay","pageSize","pageChange","handleSizeChange","pageSizes","sortBy","sizes","lastSize","round","search","searchKeyword","trim","filters","filteredData","sort","a","b","sortedData","slice","every","error","emit","redirect","window","location","href","rows","appdatatable","$refs","clearSelection","currencySymbol","toLocaleString","minimumFractionDigits","maximumFractionDigits","clearCheckboxOnHeader","default","AppDecimalNumber","uniqNoSet","arr","ret","indexOf","uniqSet","seen","Set","el","has","add","uniqSetWithForEach","doesForEachActuallyWork","style","structure","shouldShow","getCustomClass","hasErrors","focusId","getId","focusInner","getTestId","labelModelValue","labelModel","labelKey","composing","tooltip","eidx","msg","full","fullErr","optionCols","multiLimit","buttonName","cycleMode","displayDirection","setValue","blurHandler","getValue","checkboxColumnNo","compact","isMyInfo","getLabelId","setSelectValue","maxChar","currencyFormat","precision","futureDate","disabledFutureDate","isVertical","maxSize","getValueForTable","remove","maxLength","counterMsg","isModernTheme","maxlength","numberAndNAOnly","onBlur","onFocus","onSelect","inputModal","textIsSelected","number","convertCurrencyToNumber","remainingChar","evt","event","charCode","which","keyCode","currentValue","isAlphabetN","isNonNumber","preventDefault","charCodeAt","isAlphabetA","formatValue","isNaN","source","useCurrency","currencyPrefix","currency","replaceAll","projectInfo","inputValue","minimal","structures","errors","charLeft","getCharLeft","getCounterMsg","gridTemplateColumns","projectSettings","theme","condition","Function","input","oriValue","String","labelValue","selectedOption","selectedIndex","onChange","ex","uniqueID","snakeCaseKey","curAppForm","$el","hasOverflow","scrollWidth","clientWidth","eleId","ele","document","getElementById","focus","mc","swe","first","s","scrollIntoView","behavior","block","arrangeCols","addEventListener","deep","AppSmartSelect","AppCheckboxGroup","AppRadioSelection","AppDateInput","AppFormTable","AppCurrencyNA","AppTooltip"],"mappings":"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","file":"js/chunk-0455faa8.8d7dbaec.js","sourcesContent":["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!./Screenings.vue?vue&type=style&index=0&id=0a9db58c&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","module.exports = require(\"./lib/randomstring\");","module.exports = __webpack_public_path__ + \"img/myinfo-icon.28e75045.svg\";","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\n\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > 65536) throw new Error('requested too many random bytes')\n // in case browserify isn't using the Uint8Array version\n var rawBytes = new global.Uint8Array(size)\n\n // This will not work in older browsers.\n // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n if (size > 0) { // getRandomValues fails on IE if size == 0\n crypto.getRandomValues(rawBytes)\n }\n // phantomjs doesn't like a buffer being passed here\n var bytes = new Buffer(rawBytes.buffer)\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"back-navi\"}),_c('div',{staticClass:\"center\"}),_c('div',{staticClass:\"right-btns\"},[(!_vm.readOnly)?_c('button',{staticClass:\"btn-default\",on:{\"click\":_vm.save}},[_vm._v(\"Save\")]):_vm._e()])]),_c('AIOICKA'),_c('div',[_c('div',{staticClass:\"title\"},[_vm._v(\"HRT Tagging\")]),_c('div',{staticClass:\"content\"},[_c('AppForm',{attrs:{\"readOnly\":_vm.readOnly,\"structures\":_vm.hrcStructure,\"model\":_vm.clientDto,\"columns\":2}})],1)]),_c('F2FVerify')],1)}\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('div',{staticClass:\"title\"},[_vm._v(\"Accredited Investor / Overseas Investor / CKA\")]),_c('div',{staticClass:\"content\"},[(_vm.clientDto)?_c('div',{staticClass:\"subcontent\"},[_c('el-switch',{attrs:{\"disabled\":_vm.readOnly,\"active-text\":\"Accredited Investor\",\"active-value\":true,\"inactive-value\":false},model:{value:(_vm.clientDto.isAccreditedInvestor),callback:function ($$v) {_vm.$set(_vm.clientDto, \"isAccreditedInvestor\", $$v)},expression:\"clientDto.isAccreditedInvestor\"}}),_c('el-switch',{attrs:{\"disabled\":_vm.readOnly,\"active-text\":\"Overseas Investor\",\"active-value\":true,\"inactive-value\":false},model:{value:(_vm.clientDto.isOverseasInvestor),callback:function ($$v) {_vm.$set(_vm.clientDto, \"isOverseasInvestor\", $$v)},expression:\"clientDto.isOverseasInvestor\"}}),_c('el-switch',{attrs:{\"disabled\":_vm.readOnly,\"active-text\":\"Passed CKA\",\"active-value\":true,\"inactive-value\":false},model:{value:(_vm.clientDto.passedCka),callback:function ($$v) {_vm.$set(_vm.clientDto, \"passedCka\", $$v)},expression:\"clientDto.passedCka\"}})],1):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable @typescript-eslint/camelcase */\nimport { Component, Vue } from 'vue-property-decorator'\nimport { inject } from 'inversify-props'\nimport API from '@core/services/API'\nimport { IDateService } from '@master/services/IDateService'\nimport { namespace } from 'vuex-class'\nimport { ClientDto } from '@core/pages/client-management/api'\n\nconst clientInfoStore = namespace('ClientInfoStore')\n\n@Component({})\nexport class AIOICKAMixin extends Vue {\n @inject()\n protected dateService: IDateService\n\n @inject()\n protected $api: API\n\n @clientInfoStore.State\n private clientDto: ClientDto\n\n @clientInfoStore.State\n private readOnly\n\n formattedDate (unixTime: number | string) {\n return this.dateService.format(Number(unixTime), 'YYYY-MM-DD')\n }\n\n get curUser () {\n return this.$store.getters.currentUser\n }\n\n get isSuperUser () {\n return this.curUser?.isSuperUser || false\n }\n\n get policyOid () {\n return this.$route.params.policyOid\n }\n\n get clientOid () {\n return this.$route.params.clientOid\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Mixins } from 'vue-property-decorator'\nimport { AIOICKAMixin } from '../mixins/AIOICKAMixin'\n\nexport default class AIOICKA extends Mixins(AIOICKAMixin) {\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!./AIOICKA.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!./AIOICKA.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AIOICKA.vue?vue&type=template&id=2f28a033&scoped=true&\"\nimport script from \"./AIOICKA.vue?vue&type=script&lang=ts&\"\nexport * from \"./AIOICKA.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AIOICKA.vue?vue&type=style&index=0&id=2f28a033&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 \"2f28a033\",\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',[_c('div',{staticClass:\"title\"},[_vm._v(\"Face-to-Face Verification\")]),_c('div',{staticClass:\"content\"},[_c('AppForm',{attrs:{\"readOnly\":_vm.readOnly,\"structures\":_vm.f2fStructure,\"model\":_vm.clientDto,\"columns\":2}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable @typescript-eslint/camelcase */\nimport { Component, Vue } from 'vue-property-decorator'\nimport { inject } from 'inversify-props'\nimport API from '@core/services/API'\nimport AppForm from '@core/components/AppForm.vue'\nimport { IDateService } from '@master/services/IDateService'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport { namespace } from 'vuex-class'\nimport { ClientDto } from '@core/pages/client-management/api'\n\nconst clientInfoStore = namespace('ClientInfoStore')\n\n@Component({\n components: {\n AppForm\n }\n})\nexport class F2FVerifyMixin extends Vue {\n @inject()\n protected dateService: IDateService\n\n @inject()\n protected $api: API\n\n @clientInfoStore.State\n private clientDto: ClientDto\n\n @clientInfoStore.State\n private readOnly\n\n formattedDate (unixTime: number | string) {\n return this.dateService.format(Number(unixTime), 'YYYY-MM-DD')\n }\n\n get curUser () {\n return this.$store.getters.currentUser\n }\n\n get isSuperUser () {\n return this.curUser?.isSuperUser || false\n }\n\n get policyOid () {\n return this.$route.params.policyOid\n }\n\n get clientOid () {\n return this.$route.params.clientOid\n }\n\n get f2fStructure (): FormStructure {\n return [\n {\n label: 'Date of Verification',\n key: 'ftfDateOfVerification',\n type: 'date'\n },\n {\n label: 'Performed By',\n key: 'ftfPerformedBy'\n },\n {\n label: 'Job Role',\n key: 'ftfJobRole'\n },\n {\n label: 'Remarks',\n key: 'ftfRemarks',\n type: 'textarea',\n classes: ['colspan']\n }\n ]\n }\n}\n","\n\n\n\n\n\n\n\n\n\nimport { Mixins } from 'vue-property-decorator'\nimport { F2FVerifyMixin } from '../mixins/F2FVerifyMixin'\n\nexport default class F2FVerify extends Mixins(F2FVerifyMixin) {\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!./F2FVerify.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!./F2FVerify.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./F2FVerify.vue?vue&type=template&id=f5642c44&scoped=true&\"\nimport script from \"./F2FVerify.vue?vue&type=script&lang=ts&\"\nexport * from \"./F2FVerify.vue?vue&type=script&lang=ts&\"\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 \"f5642c44\",\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',{staticClass:\"content\"},[_c('div',{staticClass:\"content-header\"},[_vm._v(\" Client's Current Screening \"),(!_vm.readOnly)?_c('button',{staticClass:\"btn-default new-screen\",on:{\"click\":_vm.createScreening}},[_vm._v(\"Add New Screening\")]):_vm._e()]),_c('AppDatatable',{attrs:{\"columns\":_vm.columns,\"data\":_vm.filteredScreening.newScreens,\"sort\":{prop: 'screeningDate', order: 'ascending'},\"show\":true}}),_c('div',{staticClass:\"content-header\"},[_vm._v(\"Client's Past Screening\")]),_c('AppDatatable',{attrs:{\"columns\":_vm.columns,\"data\":_vm.filteredScreening.oldScreens,\"sort\":{prop: 'screeningDate', order: 'ascending'},\"show\":true}}),_c('div',{staticClass:\"content-header\"},[_vm._v(\"New Business Application Screening\")]),_c('AppDatatable',{attrs:{\"columns\":_vm.policyColumns,\"data\":_vm.clientPolicies,\"sort\":{prop: 'businessId', order: 'ascending'},\"show\":true}}),(_vm.showScreeningForm)?_c('AppDialog',{on:{\"close\":function($event){_vm.showScreeningForm = false}}},[_c('template',{slot:\"header\"},[_vm._v(\"Create New Screening Record\")]),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('AppForm',{attrs:{\"structures\":_vm.screeningStructure,\"model\":_vm.newScreening,\"columns\":2}})],1),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn-default\",on:{\"click\":_vm.save}},[_vm._v(\"Add\")])])],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Ignore } from '@master/annotation/Ignore'\nimport { IDateService } from '@master/services/IDateService'\nimport { inject } from 'inversify-props'\nimport { ClientInfoBase } from './ClientInfoBase'\n\nexport const ScreeningTypeOptions = [\n { label: '', value: '' },\n { label: 'World Check', value: 'World Check' }\n]\nexport const OutcomeOptions = [\n { label: '', value: '' },\n { label: 'Standard', value: 'standard' },\n { label: 'PEP', value: 'PEP' },\n { label: 'HRC', value: 'HRC' },\n { label: 'High Risk Jurisdiction (from high risk countries)', value: 'High Risk Jurisdiction' },\n { label: 'Others', value: 'Others' }\n]\nexport const RiskAssessmentOptions = [\n { label: '', value: '' },\n { label: 'Low Risk Person', value: 'Low Risk Person' },\n { label: 'High Risk Person', value: 'High Risk Person' }\n]\nexport const DDTypeOptions = [\n { label: '', value: '' },\n { label: 'Simplified', value: 'Simplified' },\n { label: 'Enchanced', value: 'Enchanced' },\n { label: 'Rejected', value: 'Rejected' },\n { label: 'None', value: 'None' }\n]\nexport class ClientScreening extends ClientInfoBase {\n @Ignore()\n @inject()\n protected dateService: IDateService\n\n @Ignore()\n clientOid = undefined\n\n @Ignore()\n screeningOid = undefined\n\n ddTypeConducted = undefined\n outcome = undefined\n performedBy = undefined\n remarks = undefined\n riskAssessment = undefined\n screeningDate = undefined\n type = undefined\n\n @Ignore()\n get screenDateDisplay () {\n return this.dateService.format(Number(this.screeningDate), 'YYYY-MM-DD')\n }\n}\n","import { MetaClass } from '@master/annotation/MetaClass'\nimport { RawKey } from '@master/annotation/RawKey'\nimport { Meta } from '@master/model/common/Meta'\nimport { PolicyClientMeta } from './PolicyClientMeta'\n\nexport class ClientPolicyMeta extends Meta {\n @RawKey('_oid')\n oid = ''\n\n clientOid = ''\n adviserOid = ''\n introducerOid = ''\n introducerPct = ''\n introducerIfam: boolean = undefined\n servicingOid = ''\n servicingPct: number = undefined\n servicingIfam: boolean = undefined\n vestingOid = ''\n vestingPct: number = undefined\n vestingIfam: boolean = undefined\n ownersOid = ''\n ownersName = ''\n ownersNric = ''\n insuredTitle = ''\n insuredName = ''\n insuredNric = ''\n insuredTitleTwo = ''\n insuredNameTwo = ''\n insuredNricTwo = ''\n productOid = ''\n name = ''\n productTypeDetailed = ''\n productCategory = ''\n taggedKyc = ''\n type = ''\n policyNumber = ''\n businessId = ''\n principal = ''\n status = ''\n applicationDate: number = undefined\n opsApprovalDate: number = undefined\n approvedDate: number = undefined\n startDate: number = undefined\n endDate: number = undefined\n bscClawbackStatus = ''\n bscClawbackAmount: number = undefined\n clientRebateStatus = ''\n clientRebateAmount: number = undefined\n clientAiStatus: number = undefined\n productMetadata = ''\n\n @MetaClass(PolicyClientMeta)\n clientMetadata: PolicyClientMeta = new PolicyClientMeta()\n\n creationType = ''\n faceToFace: number = undefined\n policyProfileRemarks = ''\n level1ComOid = ''\n level2ComOid = ''\n level3ComOid = ''\n level4ComOid = ''\n level1ComPct: number = undefined\n level2ComPct: number = undefined\n level3ComPct: number = undefined\n level4ComPct: number = undefined\n faceToFaceSpecified = ''\n}\n","/* eslint-disable @typescript-eslint/camelcase */\nimport { Component, Vue } from 'vue-property-decorator'\nimport { inject } from 'inversify-props'\nimport API from '@core/services/API'\nimport AppForm from '@core/components/AppForm.vue'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport { IDateService } from '@master/services/IDateService'\nimport { ClientScreening, DDTypeOptions, OutcomeOptions, RiskAssessmentOptions, ScreeningTypeOptions } from '@core/pages/client-management/model/ClientScreening'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport { ClientProfile } from '../model/ClientProfile'\nimport { namespace } from 'vuex-class'\nimport { ClientPolicyMeta } from '@core/pages/new-business-register/model/ClientPolicyMeta'\nimport AppDialog from '@core/components/AppDialog.vue'\n\nconst clientInfoStore = namespace('ClientInfoStore')\n\n@Component({\n components: {\n AppForm,\n AppDatatable,\n AppDialog\n }\n})\nexport class ScreeningsMixin extends Vue {\n @inject()\n protected dateService: IDateService\n\n @inject()\n protected $api: API\n\n @clientInfoStore.State\n private clientProfile: ClientProfile\n\n @clientInfoStore.State\n private readOnly\n\n protected screenings: ClientScreening[] = []\n protected newScreening = new ClientScreening()\n protected showScreeningForm = false\n private clientPolicies: ClientPolicyMeta[] = []\n\n formattedDate (unixTime: number | string) {\n return this.dateService.format(Number(unixTime), 'YYYY-MM-DD')\n }\n\n get curUser () {\n return this.$store.getters.currentUser\n }\n\n get isSuperUser () {\n return this.curUser?.isSuperUser || false\n }\n\n get policyOid () {\n return this.$route.params.policyOid\n }\n\n get clientOid () {\n return this.$route.params.clientOid\n }\n\n get columns (): {label: string; field: keyof ClientScreening}[] {\n return [\n { label: 'Type of Screening', field: 'type' },\n { label: 'Date Screened', field: 'screenDateDisplay' },\n { label: 'Performed By', field: 'performedBy' },\n { label: 'Outcome', field: 'outcome' },\n { label: 'Risk Assessment', field: 'riskAssessment' },\n { label: 'DD Type Conducted', field: 'ddTypeConducted' },\n { label: 'Remarks', field: 'remarks' }\n ]\n }\n\n get policyColumns () {\n return [\n { label: 'New Business ID', field: 'businessId' },\n { label: 'High Risk', field: 'clientMetadata.highRisk' },\n { label: 'Performed By', field: 'clientMetadata.amlScreeningDoneBy' },\n { label: 'Resolution Status', field: 'clientMetadata.resolutionStatus' },\n { label: 'Risk Status', field: 'clientMetadata.riskStatus' },\n { label: 'Reason', field: 'clientMetadata.reason' },\n { label: 'Notes', field: 'clientMetadata.notes' }\n ]\n }\n\n get screeningStructure (): FormStructure {\n return [\n {\n label: 'Type of Screening',\n key: 'type',\n options: ScreeningTypeOptions\n },\n {\n label: 'Date Screened',\n key: 'screeningDate',\n type: 'date'\n },\n {\n label: 'Performed By',\n key: 'performedBy'\n },\n {\n label: 'Outcome',\n key: 'outcome',\n options: OutcomeOptions\n },\n {\n label: 'Risk Assessment',\n key: 'riskAssessment',\n options: RiskAssessmentOptions\n },\n {\n label: 'DD Type Conducted',\n key: 'ddTypeConducted',\n options: DDTypeOptions\n },\n {\n label: 'Remarks',\n key: 'remarks',\n type: 'textarea',\n classes: ['colspan']\n }\n ]\n }\n\n get filteredScreening () {\n const newScreens = []\n const oldScreens = []\n this.screenings.forEach((screen) => {\n const sameType = newScreens.find(ns => ns.type === screen.type)\n if (!sameType) {\n newScreens.push(screen)\n return\n }\n const isLatestIncluded = sameType.screeningDate >= screen.screeningDate\n if (!isLatestIncluded) {\n oldScreens.push(sameType)\n const curIdx = newScreens.findIndex(ns => ns.type === screen.type)\n newScreens.splice(curIdx, 1, screen)\n }\n })\n return { newScreens, oldScreens }\n }\n\n createScreening () {\n this.newScreening = new ClientScreening()\n this.showScreeningForm = true\n }\n\n async fetchScreeningData () {\n const response = await this.$api.clientScreenings.get({\n client_oid: this.clientOid\n })\n response.data.forEach((cs) => {\n const newScreening = new ClientScreening()\n newScreening.extractAndAssignData(cs)\n this.screenings.push(newScreening)\n })\n }\n\n async fetchClientPolicies () {\n const queryHeaders = [\n '_oid',\n 'client_oid',\n 'business_id',\n 'owners_name',\n 'owners_nric',\n 'principal',\n 'name',\n 'application_date',\n 'ops_approval_date',\n 'status',\n 'type',\n 'policy_number',\n 'creation_type',\n 'client_metadata'\n ]\n\n const res: { data: Array } = await this.$api.clientPolicy.list({\n wildcardMode: 'suffix,prefix',\n orderBy: 'application_date',\n headers: JSON.stringify(queryHeaders),\n query: 'client_oid = ? AND status != ?',\n queryArgs: JSON.stringify([this.clientOid, 'deleted'])\n })\n\n this.clientPolicies = res.data.map(policyMeta => {\n const policy = new ClientPolicyMeta()\n policy.assignData(queryHeaders, policyMeta)\n return policy\n })\n }\n\n async save () {\n const rawNewScreening = this.newScreening.convertToRawData()\n\n if (Object.values(rawNewScreening).some(e => !e)) {\n alert('Please fill up all fields!')\n return\n }\n\n await this.$api.clientScreenings.new({\n client_oid: this.clientOid,\n data: rawNewScreening\n })\n this.showScreeningForm = false\n const updated = new ClientScreening()\n updated.extractAndAssignData(rawNewScreening)\n this.screenings.push(updated)\n }\n\n async created () {\n await this.fetchScreeningData()\n await this.fetchClientPolicies()\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 { Mixins } from 'vue-property-decorator'\nimport { ScreeningsMixin } from '../mixins/ScreeningsMixin'\n\nexport default class Screenings extends Mixins(ScreeningsMixin) {\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!./Screenings.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!./Screenings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Screenings.vue?vue&type=template&id=0a9db58c&scoped=true&\"\nimport script from \"./Screenings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Screenings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Screenings.vue?vue&type=style&index=0&id=0a9db58c&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 \"0a9db58c\",\n null\n \n)\n\nexport default component.exports","import { options } from './Options'\n\nexport const HRCRoleOptions: options[] = [\n { label: '01', value: '1' },\n { label: '02', value: '2' },\n { label: '03', value: '3' },\n { label: '04', value: '4' },\n { label: '05', value: '5' },\n { label: '06', value: '6' },\n { label: '07', value: '7' },\n { label: '08', value: '8' },\n { label: '09', value: '9' },\n { label: '10', value: '10' },\n { label: '11', value: '11' },\n { label: '12', value: '12' },\n { label: '13', value: '13' }\n]\n","import { IRiskRatingService } from '@master/services/IRiskRatingService'\nimport { Base } from '../Base'\nimport BasicProduct from '@master/model/kyc-form/product/BasicProduct'\nimport { Ignore } from '@master/annotation/Ignore'\nimport { Pointer } from '@master/annotation/Pointer'\nexport default class Recommendation extends Base {\n rcmd: BasicProduct[] = []\n @Ignore()\n riskRatingService: IRiskRatingService\n\n @Ignore()\n @Pointer('ROOT', 'hasClient2')\n hasClient2?: boolean = false\n\n constructor (riskRatingService: IRiskRatingService) {\n super()\n this.riskRatingService = riskRatingService\n }\n\n get allProducts () {\n return this.rcmd.filter(prod => {\n if (!this.hasClient2 && prod.clientIndex === 1) {\n return false\n }\n\n return true\n }).flatMap(basicProduct => {\n return [\n basicProduct,\n ...basicProduct.riders\n ]\n })\n }\n\n getProductsForClient (clientIndex) {\n return this.rcmd.filter(prod => prod.clientIndex === clientIndex).flatMap(basicProduct => {\n return [\n basicProduct,\n ...basicProduct.riders\n ]\n })\n }\n\n get hasCustomProduct () {\n return this.allProducts.some(prod => {\n return prod.isCustom\n })\n }\n\n hasCustomProductForClient (clientIndex) {\n return this.getProductsForClient(clientIndex).some(prod => {\n return prod.isCustom\n })\n }\n\n afterExtractData (data: { rcmd: any[] }) {\n const rcmd = data.rcmd || []\n data.rcmd = rcmd.map((element) => {\n const basic = new BasicProduct(this.riskRatingService)\n Object.assign(basic, basic.extractData(element))\n return basic\n })\n return data\n }\n\n // to get back the raw data for saving to backend\n convertToRawData () {\n const rawArray = this.rcmd.map(basicProduct => basicProduct.convertToRawData())\n\n return {\n rcmd: rawArray,\n // eslint-disable-next-line @typescript-eslint/camelcase\n product_reasons: this.productReasons,\n // eslint-disable-next-line @typescript-eslint/camelcase\n product_limitations: this.productLimitations\n }\n }\n\n totalAnnualizedPremiumForClient (clientIndex: 0|1) {\n return this.rcmd.reduce((total, prod) => {\n if (clientIndex === prod.clientIndex && ['accept', 'ownchoice'].includes(prod.clientChoice)) {\n return total + prod.totalAnnualisedPremium\n }\n return total\n }, 0)\n }\n\n totalSinglePremiumForClient (clientIndex: 0|1) {\n return this.rcmd.reduce((total, prod) => {\n if (clientIndex === prod.clientIndex && ['accept', 'ownchoice'].includes(prod.clientChoice)) {\n return total + prod.totalSinglePremium\n }\n return total\n }, 0)\n }\n\n get productReasons (): string {\n return this.allProducts.filter(prod => !prod.isCustom).map(prod => {\n if (prod instanceof BasicProduct) {\n if (!this.hasClient2 && prod.clientIndex === 1) {\n return ''\n }\n }\n return prod.getReasons()\n }).join('\\n\\n')\n }\n\n get productLimitations (): string {\n return this.allProducts.filter(prod => !prod.isCustom).map(prod => {\n if (prod instanceof BasicProduct) {\n if (!this.hasClient2 && prod.clientIndex === 1) {\n return ''\n }\n }\n return prod.getLimitations()\n }).join('\\n\\n')\n }\n\n get hasNtuc (): boolean {\n return this.rcmd.some(prod => {\n return prod.isNtuc()\n })\n }\n\n get c1TransactValue () {\n return this.totalAnnualizedPremiumForClient(0) + this.totalSinglePremiumForClient(0)\n }\n\n get c2TransactValue () {\n return this.totalAnnualizedPremiumForClient(1) + this.totalSinglePremiumForClient(1)\n }\n\n get c1hasMedical () {\n return this.allProducts.filter((rmd) => {\n return rmd.clientIndex === 0\n }).some((rmd) => {\n const accepted = rmd.clientChoice === 'accept' || rmd.clientChoice === 'ownchoice'\n const covered = rmd.productNeedsCovered ? rmd.productNeedsCovered.includes('Hospitalisation Expenses') : null\n const categorized = ['Health Insurance', 'Hospital Cash Insurance'].includes(rmd.productCategory)\n return accepted && (covered || categorized)\n }) ? 'yes' : 'no'\n }\n\n get c2hasMedical () {\n return this.allProducts.filter((rmd) => {\n return rmd.clientIndex === 1\n }).some((rmd) => {\n const accepted = rmd.clientChoice === 'accept' || rmd.clientChoice === 'ownchoice'\n const covered = rmd.productNeedsCovered ? rmd.productNeedsCovered.includes('Hospitalisation Expenses') : null\n const categorized = ['Health Insurance', 'Hospital Cash Insurance'].includes(rmd.productCategory)\n return accepted && (covered || categorized)\n }) ? 'yes' : 'no'\n }\n}\n","import { Base } from '@master/model/Base'\nimport { Ignore } from '@master/annotation/Ignore'\nimport { Pointer } from '@master/annotation/Pointer'\nimport Recommendation from '@master/model/kyc-form/Recommendation'\n\nexport const RiskRatingOptions = ['LOW', 'MEDIUM', 'HIGH', 'REJECTED/STR'] as const\nexport default class AML extends Base {\n @Ignore()\n customType = ''\n\n adverseDBChecks = ''\n redFlag = ''\n sanctioned = ''\n financialFlowHighRisk = ''\n pepAssociated = ''\n transactValueBelowThreshold = '' // set by custom pointer\n applyMedicalProduct = '' // set by custom pointer\n\n presenceAccOpen = ''\n comments = ''\n\n riskRating: typeof RiskRatingOptions[number] = 'LOW'\n\n dateOfAssessment: string | number = ''\n\n @Ignore()\n @Pointer('ROOT', 'recommendations')\n rcmd: Recommendation = new Recommendation(null)\n\n @Ignore()\n @Pointer('personalDetails', 'isSingaporean')\n isSingaporean = 'no'\n\n @Ignore()\n @Pointer('personalDetails', 'isHighRiskPR')\n isHighRiskPR = 'no'\n\n @Ignore()\n @Pointer('personalDetails', 'isHighRiskForeign')\n isHighRiskForeign = 'no'\n\n @Ignore()\n transactThreshold = 30000\n\n constructor (type: 'client_0' | 'client_1' = 'client_0') {\n super()\n this.customType = type + '_aml'\n }\n\n get transactionValue () {\n const clientIndex = this.customType === 'client_0_aml' ? 1 : 2\n return this.rcmd['c' + clientIndex + 'TransactValue']\n }\n\n // custom method to extract since aml is a single object packed with the properties\n extractData (rawKycForm) {\n return super.extractData(rawKycForm[this.customType])\n }\n\n afterExtractData (data: any) {\n Object.defineProperty(this, 'applyMedicalProduct', {\n get: () => {\n return this.customType === 'client_0_aml' ? this.rcmd.c1hasMedical : this.rcmd.c2hasMedical // TODO: tmp disable\n },\n set: () => {\n // inserted here to resolve issue when admin approve\n // error : 'Cannot set Property which has only a Getter'\n }\n })\n Object.defineProperty(this, 'transactValueBelowThreshold', { // TODO: tmp disable\n get: () => {\n const tv = this.customType === 'client_0_aml' ? this.rcmd.c1TransactValue : this.rcmd.c2TransactValue\n return tv <= this.transactThreshold ? 'yes' : 'no'\n }\n })\n return data\n }\n\n convertToRawData () {\n this.dateOfAssessment = Date.now()\n const results = super.convertToRawData()\n return {\n [this.customType]: results\n }\n }\n\n get isHighRisk () {\n return Object.keys(this).some(key => {\n return ['adverseDBChecks', 'redFlag', 'sanctioned', 'financialFlowHighRisk', 'pepAssociated'].includes(key) && this[key] === 'yes'\n })\n }\n\n // allow user to edit the risk rating\n @Ignore()\n get suggestedRiskRating (): (typeof RiskRatingOptions[number] | '')[] {\n const highRisk = this.isHighRisk\n if (highRisk) return ['HIGH', 'REJECTED/STR']\n const medRisk = this.isHighRiskPR === 'yes' || this.isHighRiskForeign === 'yes'\n if (medRisk) return ['MEDIUM']\n const lowRisk = this.transactValueBelowThreshold === 'yes' || this.applyMedicalProduct === 'yes' || this.isSingaporean === 'yes'\n if (lowRisk) return ['LOW'] // otherwise is always low\n }\n}\n","/* eslint-disable @typescript-eslint/camelcase */\nimport { Component, Vue } from 'vue-property-decorator'\nimport { inject } from 'inversify-props'\nimport API from '@core/services/API'\nimport AppForm from '@core/components/AppForm.vue'\nimport { IDateService } from '@master/services/IDateService'\nimport AIOICKA from '../views/AIOICKA.vue'\nimport F2FVerify from '../views/F2FVerify.vue'\nimport Screenings from '../views/Screenings.vue'\nimport { namespace } from 'vuex-class'\nimport { UIService } from '@core/services/UIService'\nimport { SharedVariable } from '@core/model/SharedVariable'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport { HRCRoleOptions } from '@master/model/options/HRCRoleOptions'\nimport { ClientDto } from '@core/pages/client-management/api'\nimport { RiskRatingOptions } from '@master/model/kyc-form/AML'\n\nconst clientInfoStore = namespace('ClientInfoStore')\n@Component({\n components: {\n AppForm,\n AIOICKA,\n F2FVerify,\n Screenings\n }\n})\nexport class ClientRisksMixin extends Vue {\n @inject()\n protected dateService: IDateService\n\n @inject()\n protected $api: API\n\n uiService: UIService\n\n @inject()\n private sharedVariable: SharedVariable\n\n @clientInfoStore.State\n private clientDto: ClientDto\n\n @clientInfoStore.Action\n private updateClientDTOV2\n\n @clientInfoStore.State\n private readOnly\n\n mounted () {\n // take injected UIService and set it to local\n this.uiService = this.sharedVariable.uiService\n }\n\n formattedDate (unixTime: number | string) {\n return this.dateService.format(Number(unixTime), 'YYYY-MM-DD')\n }\n\n get curUser () {\n return this.$store.getters.currentUser\n }\n\n get isSuperUser () {\n return this.curUser?.isSuperUser || false\n }\n\n get policyOid () {\n return this.$route.params.policyOid\n }\n\n get clientOid () {\n return this.$route.params.clientOid\n }\n\n get hrcStructure (): FormStructure {\n return [\n {\n label: 'HRT',\n key: 'hrcRoles',\n type: 'multi',\n options: HRCRoleOptions\n },\n {\n label: 'AML Risk Rating',\n model: {\n get: () => {\n return this.clientDto.personalInfoJson.amlRiskRating\n },\n set: (val) => {\n this.clientDto.personalInfoJson.amlRiskRating = val\n }\n },\n options: RiskRatingOptions.map(op => {\n return {\n label: op,\n value: op\n }\n })\n }\n ]\n }\n\n async save () {\n if (this.clientDto.ftfPerformedBy && !this.clientDto.ftfDateOfVerification) {\n await this.uiService.alert.show({\n type: 'warning',\n message: 'Please include a date for the face-to-face verification.'\n })\n return\n }\n await this.updateClientDTOV2(this.clientDto)\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Mixins } from 'vue-property-decorator'\nimport { ClientRisksMixin } from '../mixins/ClientRisksMixin'\n\nexport default class ClientRisks extends Mixins(ClientRisksMixin) {\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!./ClientRisks.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!./ClientRisks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientRisks.vue?vue&type=template&id=676ef1da&scoped=true&\"\nimport script from \"./ClientRisks.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientRisks.vue?vue&type=script&lang=ts&\"\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 \"676ef1da\",\n null\n \n)\n\nexport default component.exports","'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&\"","'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","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","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!./AIOICKA.vue?vue&type=style&index=0&id=2f28a033&lang=scss&scoped=true&\""],"sourceRoot":""}