{"version":3,"sources":["webpack:///./@core/pages/new-business-register/components/policy/TaggedKycSection.vue?03cc","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./@core/pages/new-business-register/components/policy/UploadApplicationDocumentSection.vue?9518","webpack:///./node_modules/randomstring/lib/randomstring.js","webpack:///./@core/pages/new-business-register/components/policy/page/SubmittedDocumentPage.vue?845e","webpack:///./@core/pages/new-business-register/components/policy/TaggedKycSection.vue?cd93","webpack:///./@core/pages/new-business-register/components/policy/TaggedKycSection.vue","webpack:///./@core/pages/new-business-register/components/policy/TaggedKycSection.vue?afee","webpack:///./@core/pages/new-business-register/components/policy/TaggedKycSection.vue?5128","webpack:///./@core/pages/new-business-register/components/policy/UploadApplicationDocumentSection.vue?4327","webpack:///./@core/pages/new-business-register/model/PolicyDocumentMeta.ts","webpack:///./@core/pages/new-business-register/components/policy/UploadApplicationDocumentSection.vue","webpack:///./@core/pages/new-business-register/components/policy/UploadApplicationDocumentSection.vue?1d89","webpack:///./@core/pages/new-business-register/components/policy/UploadApplicationDocumentSection.vue?33af","webpack:///./@core/pages/new-business-register/components/policy/ExistingDocumentSection.vue?b0d6","webpack:///./@core/pages/new-business-register/components/policy/ExistingDocumentSection.vue","webpack:///./@core/pages/new-business-register/components/policy/ExistingDocumentSection.vue?a1a6","webpack:///./@core/pages/new-business-register/components/policy/ExistingDocumentSection.vue?e9c0","webpack:///./@core/pages/new-business-register/components/policy/page/SubmittedDocumentPage.vue","webpack:///./@core/pages/new-business-register/components/policy/page/SubmittedDocumentPage.vue?fcc7","webpack:///./@core/pages/new-business-register/components/policy/page/SubmittedDocumentPage.vue?62b0","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:///./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"],"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","render","_vm","this","_h","$createElement","_c","_self","policy","mainOwner","attrs","_e","staticRenderFns","staticClass","_v","directives","name","rawName","value","expression","creationType","isDisabled","on","$event","$$selectedVal","Array","prototype","filter","call","target","o","selected","map","val","_value","$set","multiple","_l","kyc","key","domProps","_s","label","tagableKycPdf","$route","query","policy_oid","$store","getters","currentUser","systemrole","clientDataSnapshot","nric","headers","$api","kycPdf","list","queryArgs","JSON","stringify","res","data","forEach","row","kycPdfOid","plans","Set","rcmd","add","plan_name","riders","rider","planExistInThisKycPdf","plan","planNameComparator","approvedDateFormatted","dateService","format","planName1","planName2","parsedStr1","replace","parsedStr2","fetchTagableKycPdf","components","AppDatatable","AppDialog","AppForm","component","openNewDocumentModal","disableDeleteDocumentsButton","deletePolicyDocuments","policyDocumentsColumns","policyDocumentsData","prop","order","handleDocumentSelection","handleDocumentClick","newDocumentModal","slot","documentUploadedChange","files","newDocumentFormStructure","newPolicyDocument","createNewDocument","oid","policyOid","fileName","documentType","ctm","undefined","Meta","RawKey","clientPolicyStore","policyDocuments","selectedPolicyDocuments","submittedDocument","FormData","projectInfo","personalFinancialReview","classes","field","dateUploaded","emit","rows","downloadDocument","clientPolicy","policyDocumentsList","doc","policyDoc","assignData","documentOid","link","window","open","file","append","size","toString","fileSizeInString","get","fileSizeInMB","Number","uiService","alert","show","type","message","uploadNewPolicyDocument","fetchPolicyDocuments","Promise","all","deletePolicyDocument","document_oid","sharedVariable","State","existingDocumentsColumns","existingDocumentsData","downloadExistingDocument","existingDocuments","fileUrl","getTaggedKycDocuments","profile_policy_oid","fetchExistingDocuments","policyIndividuals","find","individual","isMainOwner","TaggedKycSection","UploadApplicationDocumentSection","ExistingDocumentSection","arrayUniq","numbers","charsLower","charsUpper","toUpperCase","hexChars","binaryChars","octalChars","unreadableChars","toLowerCase","charMap","split","join","oldBrowser","Error","crypto","global","msCrypto","rawBytes","Uint8Array","getRandomValues","bytes","Buffer","buffer","process","nextTick","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","RegExp","rx","S","done","previousLastIndex","lastIndex","result","class","ref","currentPageData","hasNoError","selectionKey","tableRowClassName","sortChange","rowClick","handleSelection","column","sortable","scopedSlots","_u","fn","scope","modifiers","handleCustomEvent","option","_n","$forceUpdate","decimal","disabled","convertToCurrency","_t","button","$emit","shouldDisabled","stopPropagation","infoFrom","infoTo","total","currentPage","pageSizesDisplay","pageSize","pageChange","handleSizeChange","pageSizes","sortBy","sizes","lastSize","round","search","searchKeyword","trim","filters","includes","filteredData","sort","a","b","sortedData","slice","every","error","redirect","location","href","appdatatable","$refs","clearSelection","currencySymbol","toLocaleString","minimumFractionDigits","maximumFractionDigits","clearCheckboxOnHeader","default","AppDecimalNumber","uniqNoSet","arr","ret","indexOf","uniqSet","seen","el","has","uniqSetWithForEach","doesForEachActuallyWork","style","structure","shouldShow","getCustomClass","hasErrors","focusId","getId","focusInner","getTestId","labelModelValue","labelModel","set","model","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","columns","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","inputValue","minimal","structures","errors","charLeft","getCharLeft","getCounterMsg","gridTemplateColumns","projectSettings","theme","condition","readOnly","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","Date","now","deep","AppSmartSelect","AppCheckboxGroup","AppRadioSelection","AppDateInput","AppFormTable","AppCurrencyNA","AppTooltip"],"mappings":"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","file":"js/chunk-674387c2.98d2aaa0.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!./TaggedKycSection.vue?vue&type=style&index=0&id=3b326d04&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","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!./UploadApplicationDocumentSection.vue?vue&type=style&index=0&id=200ba50e&lang=scss&scoped=true&\"","\"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 render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.policy && _vm.mainOwner)?_c('TaggedKycSection',{attrs:{\"policy\":_vm.policy,\"mainOwner\":_vm.mainOwner}}):_vm._e(),_c('UploadApplicationDocumentSection'),(_vm.policy)?_c('ExistingDocumentSection',{attrs:{\"policy\":_vm.policy}}):_vm._e()],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',{staticClass:\"submitted-documents\"},[_c('div',[_c('div',{staticClass:\"title\"},[_vm._v(\"Tagged KYC\")]),_c('div',{staticClass:\"form-body\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.policy.taggedKyc),expression:\"policy.taggedKyc\"}],staticClass:\"tagable-kyc\",attrs:{\"disabled\":_vm.policy.creationType === 'auto' || _vm.isDisabled},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(_vm.policy, \"taggedKyc\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.tagableKycPdf),function(kyc){return _c('option',{key:kyc.value,domProps:{\"value\":kyc.value}},[_vm._v(_vm._s(kyc.label))])}),0)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport API from '@core/services/API'\nimport { IDateService } from '@master/services/IDateService'\nimport { inject } from 'inversify-props'\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport AppForm from '@core/components/AppForm.vue'\nimport { ClientPolicyDto } from '../../api'\nimport { PolicyIndividualDTO } from '@core/pages/CommissionModule/api'\n\n@Component({\n components: {\n AppDatatable,\n AppDialog,\n AppForm\n }\n})\nexport default class SubmittedDocuments extends Vue {\n @Prop() policy: ClientPolicyDto\n @Prop() mainOwner: PolicyIndividualDTO\n\n @inject()\n private $api: API\n\n @inject()\n private dateService: IDateService\n\n private tagableKycPdf: Array<{ value: string; label: string }> = []\n\n get policyOid () {\n return this.$route.query.policy_oid\n }\n\n get isDisabled () {\n return this.$store.getters.currentUser.systemrole !== 'ops-staff'\n }\n\n async fetchTagableKycPdf () {\n const { nric } = this.mainOwner?.clientDataSnapshot\n if (!this.mainOwner?.clientDataSnapshot.nric) {\n return\n }\n\n const headers = [\n '_oid',\n 'supervisor_fullname',\n 'date_ops_decide',\n 'rcmd'\n ]\n\n const res: { data: Array } = await this.$api.kycPdf.list({\n query: '(ma_nric = ? OR ja_nric = ?) AND pdf_status = ?',\n queryArgs: JSON.stringify([nric, nric, 'submission-accepted']),\n headers: JSON.stringify(headers)\n })\n\n res.data.forEach(row => {\n const kycPdfOid = row[0]\n const plans: Set = new Set()\n\n row[3].forEach(rcmd => {\n plans.add(rcmd.plan_name)\n rcmd.riders.forEach(rider => {\n plans.add(rider.plan_name)\n })\n })\n\n const planExistInThisKycPdf = [...plans].filter(plan => this.planNameComparator(this.policy.name, plan)).length > 0\n\n if (planExistInThisKycPdf) {\n const approvedDateFormatted = this.dateService.format(row[2], 'YYYY-MM-DD, HH:mm')\n const label = `Supervisor: ${row[1]}, Approved Date: ${approvedDateFormatted}`\n\n this.tagableKycPdf.push({\n value: kycPdfOid,\n label\n })\n }\n })\n }\n\n planNameComparator (planName1: string, planName2: string): boolean {\n const parsedStr1 = planName1 ? planName1.replace(/&/g, '&').replace(/amp;/g, '') : planName1\n const parsedStr2 = planName2 ? planName2.replace(/&/g, '&').replace(/amp;/g, '') : planName2\n return parsedStr1 === parsedStr2\n }\n\n async mounted () {\n await this.fetchTagableKycPdf()\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!./TaggedKycSection.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!./TaggedKycSection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TaggedKycSection.vue?vue&type=template&id=3b326d04&scoped=true&\"\nimport script from \"./TaggedKycSection.vue?vue&type=script&lang=ts&\"\nexport * from \"./TaggedKycSection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TaggedKycSection.vue?vue&type=style&index=0&id=3b326d04&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 \"3b326d04\",\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:\"submitted-documents\"},[_c('div',[_c('div',{staticClass:\"upload-document-title\"},[_c('p',[_vm._v(\"Upload Application Documents\")]),_c('button',{staticClass:\"btn-default\",attrs:{\"disabled\":_vm.isDisabled},on:{\"click\":_vm.openNewDocumentModal}},[_vm._v(\"New Document\")]),_c('button',{staticClass:\"btn-danger\",attrs:{\"disabled\":_vm.disableDeleteDocumentsButton || _vm.isDisabled},on:{\"click\":_vm.deletePolicyDocuments}},[_vm._v(\"Delete Documents\")])]),_c('div',{staticClass:\"form-body\"},[_c('AppDatatable',{attrs:{\"selectionKey\":\"oid\",\"columns\":_vm.policyDocumentsColumns,\"data\":_vm.policyDocumentsData,\"sort\":{prop: 'dateUploaded', order: 'descending'}},on:{\"selectionChange\":_vm.handleDocumentSelection,\"rowClickCustom\":_vm.handleDocumentClick}})],1)]),(_vm.newDocumentModal)?_c('AppDialog',{attrs:{\"id\":\"add-recruit-form\"},on:{\"close\":function($event){_vm.newDocumentModal = false}}},[_c('template',{slot:\"header\"},[_vm._v(\"New Document\")]),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('div',{staticClass:\"upload\"},[_c('label',{attrs:{\"for\":\"new-policy-document\"}},[_vm._v(\"Document\")]),_c('input',{staticClass:\"form-control-file\",attrs:{\"type\":\"file\",\"id\":\"new-policy-document\"},on:{\"change\":function($event){return _vm.documentUploadedChange($event.target.files)}}})]),_c('AppForm',{attrs:{\"structures\":_vm.newDocumentFormStructure,\"model\":_vm.newPolicyDocument}})],1),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn-default\",on:{\"click\":_vm.createNewDocument}},[_vm._v(\" Submit \")])])],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { RawKey } from '@master/annotation/RawKey'\nimport { Meta } from '@master/model/common/Meta'\n\nexport class PolicyDocumentMeta extends Meta {\n @RawKey('_oid')\n oid = ''\n\n policyOid = ''\n fileName = ''\n documentType = ''\n ctm: number = undefined\n}\n","\n\n\n\n\n\n\n\n\n\n\n\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 API from '@core/services/API'\nimport { IDateService } from '@master/services/IDateService'\nimport { inject } from 'inversify-props'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport AppForm from '@core/components/AppForm.vue'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport { ClientPolicyDto } from '../../api'\nimport { PolicyClientMeta } from '../../model/PolicyClientMeta'\nimport { PolicyDocumentMeta } from '../../model/PolicyDocumentMeta'\nimport { IProjectInfo } from '@master/config/IProjectInfo'\nimport { UIService } from '@core/services/UIService'\nimport { SharedVariable } from '@core/model/SharedVariable'\n\nconst clientPolicyStore = namespace('ClientPolicyStore')\n\n@Component({\n components: {\n AppDatatable,\n AppDialog,\n AppForm\n }\n})\nexport default class SubmittedDocuments extends Vue {\n @inject()\n private $api: API\n\n @inject()\n private dateService: IDateService\n\n @inject()\n private projectInfo: IProjectInfo\n\n uiService: UIService\n\n @inject()\n private sharedVariable: SharedVariable\n\n @clientPolicyStore.State\n policy: ClientPolicyDto\n\n private newPolicyDocument = new PolicyDocumentMeta()\n private policyDocuments: PolicyDocumentMeta[] = []\n private selectedPolicyDocuments: PolicyDocumentMeta[] = []\n private disableDeleteDocumentsButton = true\n private newDocumentModal = false\n private submittedDocument: FormData = new FormData()\n\n get policyOid () {\n return this.$route.query.policy_oid\n }\n\n get isDisabled () {\n return this.$store.getters.currentUser.systemrole !== 'ops-staff'\n }\n\n get personalFinancialReview () {\n return this.projectInfo.personalFinancialReview ?? 'Personal Financial Review'\n }\n\n get newDocumentFormStructure (): FormStructure {\n return [\n {\n label: 'Document Type',\n options: [\n { value: 'NRIC', label: '1. NRIC (New Business)' },\n { value: 'Application Forms', label: '2. Application Forms (New Business)' },\n { value: 'Policy Illustration', label: '3. Policy Illustration (New Business)' },\n { value: 'Personal Financial Review', label: '4. Personal Financial Review (New Business)' },\n { value: 'Birth Certificate', label: '5. Birth Certificate (New Business)' },\n { value: 'Medical Reports', label: '6. Medical Reports (New Business)' },\n { value: 'Cheque Image', label: '7. Cheque Image (New Business)' },\n { value: 'Terms and Conditions', label: '8. Terms & Conditions (New Business)' },\n { value: 'Others', label: '9. Others (New Business)' },\n { value: 'ECDD Form', label: '10. ECDD Form (New Business)' },\n { value: 'Replacement Form', label: '11. Replacement Form (New Business)' },\n { value: `${this.personalFinancialReview} Supp Form`, label: `12. ${this.personalFinancialReview} Supp Form (New Business)` },\n { value: 'Service Recovery', label: '1. Service Recovery (Follow Up)' },\n { value: 'Claims', label: '2. Claims (Follow Up)' },\n { value: 'Change of FAR', label: '3. Change of FAR (Follow Up)' },\n { value: 'Nomination Form', label: '4. Nomination Form (Follow Up)' }\n ],\n key: 'documentType',\n classes: ['colspan']\n }\n ]\n }\n\n get policyDocumentsColumns (): Array<{ label: string; field: string }> {\n return [\n { label: 'File Name', field: 'fileName' },\n { label: 'Document Type', field: 'documentType' },\n { label: 'Date Uploaded', field: 'dateUploaded' }\n ]\n }\n\n get policyDocumentsData () {\n return this.policyDocuments.map(e => {\n const dateUploaded = this.dateService.format(e.ctm * 1000, 'YYYY-MM-DD')\n return {\n ...e,\n dateUploaded,\n emit: true\n }\n })\n }\n\n openNewDocumentModal () {\n this.newDocumentModal = true\n this.newPolicyDocument = new PolicyDocumentMeta()\n }\n\n handleDocumentSelection (rows: PolicyDocumentMeta[]) {\n this.selectedPolicyDocuments = rows\n }\n\n handleDocumentClick (row: PolicyDocumentMeta) {\n this.downloadDocument(row.oid, row.fileName)\n }\n\n @Watch('selectedPolicyDocuments')\n selectedPolicyDocumentsOnChange (val: PolicyDocumentMeta[]) {\n this.disableDeleteDocumentsButton = val.length === 0\n }\n\n async fetchPolicyDocuments () {\n const headers = [\n '_oid',\n 'policy_oid',\n 'file_name',\n 'document_type',\n 'ctm'\n ]\n\n const res: { data: Array } = await this.$api.clientPolicy.policyDocumentsList({\n headers: JSON.stringify(headers),\n query: 'policy_oid = ?',\n queryArgs: JSON.stringify([this.policy.oid])\n })\n\n this.policyDocuments = res.data.map(doc => {\n const policyDoc = new PolicyDocumentMeta()\n policyDoc.assignData(headers, doc)\n return policyDoc\n })\n }\n\n downloadDocument (documentOid, fileName) {\n const link = `/live/getPolicyDocument?fileType=submitted&documentOid=${documentOid}&fileName=${fileName}`\n window.open(link, '_blank')\n }\n\n documentUploadedChange (files) {\n const file = files[0]\n const data = new FormData()\n data.append('policy_profile_oid', this.policy.oid)\n data.append('uploaded_policy_document', file)\n data.append('file_name', file.name)\n data.append('fileSizeInString', file.size.toString())\n this.submittedDocument = data\n }\n\n async createNewDocument () {\n // check if file size exist 20MB, not allowed to upload\n const fileSizeInString = this.submittedDocument.get('fileSizeInString')\n const fileSizeInMB = Number(fileSizeInString)\n\n if (fileSizeInMB === 0) {\n await this.uiService.alert.show({\n type: 'warning',\n message: 'No file is selected'\n })\n return\n }\n if (fileSizeInMB > 20000000) {\n await this.uiService.alert.show({\n type: 'warning',\n message: 'Size of document cannot more than 20MB'\n })\n return\n }\n\n this.submittedDocument.append('document_type', this.newPolicyDocument.documentType)\n await this.$api.clientPolicy.uploadNewPolicyDocument(this.submittedDocument)\n await this.fetchPolicyDocuments()\n this.newDocumentModal = false\n }\n\n async deletePolicyDocuments () {\n await Promise.all(this.selectedPolicyDocuments.map(async (e) => {\n await this.$api.clientPolicy.deletePolicyDocument({\n /* eslint-disable @typescript-eslint/camelcase */\n document_oid: e.oid\n })\n }))\n await this.fetchPolicyDocuments()\n }\n\n async mounted () {\n await this.fetchPolicyDocuments()\n this.uiService = this.sharedVariable.uiService\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!./UploadApplicationDocumentSection.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!./UploadApplicationDocumentSection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UploadApplicationDocumentSection.vue?vue&type=template&id=200ba50e&scoped=true&\"\nimport script from \"./UploadApplicationDocumentSection.vue?vue&type=script&lang=ts&\"\nexport * from \"./UploadApplicationDocumentSection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UploadApplicationDocumentSection.vue?vue&type=style&index=0&id=200ba50e&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 \"200ba50e\",\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(\"Existing Documents\")]),_c('div',{staticClass:\"form-body\"},[_c('AppDatatable',{attrs:{\"columns\":_vm.existingDocumentsColumns,\"data\":_vm.existingDocumentsData,\"sort\":{prop: 'fileName', order: 'ascending'}},on:{\"rowClickCustom\":_vm.downloadExistingDocument}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport API from '@core/services/API'\nimport { inject } from 'inversify-props'\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport AppForm from '@core/components/AppForm.vue'\nimport { ClientPolicyDto } from '../../api'\n\n@Component({\n components: {\n AppDatatable,\n AppDialog,\n AppForm\n }\n})\nexport default class SubmittedDocuments extends Vue {\n @Prop() policy: ClientPolicyDto\n\n @inject()\n private $api: API\n\n private existingDocuments: Array<{\n fileName: string;\n fileUrl: string;\n fileType: string;\n }> = []\n\n get policyOid () {\n return this.$route.query.policy_oid\n }\n\n get isDisabled () {\n return this.$store.getters.currentUser.systemrole !== 'ops-staff'\n }\n\n get existingDocumentsColumns (): Array<{ label: string; field: string }> {\n return [\n { label: 'File Name', field: 'fileName' },\n { label: 'File Type', field: 'fileType' }\n ]\n }\n\n get existingDocumentsData () {\n return this.existingDocuments.map(e => {\n return {\n ...e,\n emit: true\n }\n })\n }\n\n downloadDocument (documentOid, fileName) {\n const link = `/live/getPolicyDocument?fileType=submitted&documentOid=${documentOid}&fileName=${fileName}`\n window.open(link, '_blank')\n }\n\n downloadExistingDocument (file: {\n fileName: string;\n fileUrl: string;\n fileType: string;\n }) {\n const link = `/live/${file.fileUrl}`\n window.open(link, '_blank')\n }\n\n async fetchExistingDocuments () {\n /* eslint-disable @typescript-eslint/camelcase */\n const res = await this.$api.clientPolicy.getTaggedKycDocuments({ profile_policy_oid: this.policy.oid })\n this.existingDocuments = res.data\n }\n\n async mounted () {\n await this.fetchExistingDocuments()\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!./ExistingDocumentSection.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!./ExistingDocumentSection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ExistingDocumentSection.vue?vue&type=template&id=b6236a98&scoped=true&\"\nimport script from \"./ExistingDocumentSection.vue?vue&type=script&lang=ts&\"\nexport * from \"./ExistingDocumentSection.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 \"b6236a98\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport TaggedKycSection from '../TaggedKycSection.vue'\nimport UploadApplicationDocumentSection from '../UploadApplicationDocumentSection.vue'\nimport ExistingDocumentSection from '../ExistingDocumentSection.vue'\nimport { namespace } from 'vuex-class'\nimport { ClientPolicyDto, PolicyIndividualDTO } from '@core/pages/CommissionModule/api'\n\nconst clientPolicyStore = namespace('ClientPolicyStore')\n\n@Component({\n components: {\n TaggedKycSection,\n UploadApplicationDocumentSection,\n ExistingDocumentSection\n }\n})\nexport default class SubmittedDocumentPage extends Vue {\n @clientPolicyStore.State\n policy: ClientPolicyDto\n\n @clientPolicyStore.State\n policyIndividuals: PolicyIndividualDTO[]\n\n get mainOwner () {\n return this.policyIndividuals.find(individual => individual.isMainOwner)\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!./SubmittedDocumentPage.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!./SubmittedDocumentPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmittedDocumentPage.vue?vue&type=template&id=6c3bf947&\"\nimport script from \"./SubmittedDocumentPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmittedDocumentPage.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 null,\n null\n \n)\n\nexport default component.exports","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","'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"],"sourceRoot":""}