{"version":3,"sources":["webpack:///./@master/model/options/NationalityAndCountryOptions.ts","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:///./@core/pages/intermediary/Payee.vue?9630","webpack:///./@core/model/common/PayeeFullMeta.ts","webpack:///./@core/model/common/PayeeFullMetaList.ts","webpack:///./@core/pages/intermediary/PayeeMixin.ts","webpack:///./@core/pages/intermediary/Payee.vue","webpack:///./@core/pages/intermediary/Payee.vue?1725","webpack:///./@core/pages/intermediary/Payee.vue?1cad","webpack:///./node_modules/randomstring/node_modules/randombytes/browser.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./@core/pages/intermediary/Payee.vue?4088","webpack:///./@core/components/AppForm.vue?baa9","webpack:///./@core/components/AppDatatable.vue?fa4e","webpack:///./@core/components/AppDatatable.vue","webpack:///./@core/components/AppDatatable.vue?a0c0","webpack:///./@core/components/AppDatatable.vue?89f0","webpack:///./@core/components/AppCurrencyNA.vue?af5e","webpack:///./@core/services/CSVService.ts","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":["CountryOptions","Object","keys","map","key","label","value","sort","a","b","localeCompare","NationalityOptions","NationalityLabelToCode","module","exports","is","x","y","randomBytes","Charset","unsafeRandomBytes","length","stack","i","push","Math","floor","random","readUInt8","index","safeRandomBytes","e","processString","buf","initialString","chars","reqLen","maxByte","string","randomByte","charAt","getAsyncString","cb","err","generatedString","generate","options","charset","setType","capitalization","setcapitalization","readable","removeUnreadable","removeDuplicates","charsLen","ceil","arrayUniq","this","prototype","type","numbers","charsLower","charsUpper","toUpperCase","hexChars","binaryChars","octalChars","unreadableChars","replace","toLowerCase","charMap","split","join","render","_vm","_h","$createElement","_c","_self","staticClass","_v","attrs","on","addNewPayee","$event","exportCSV","openModalImport","directives","name","rawName","expression","modifiers","domProps","target","composing","txtSearch","trim","$forceUpdate","columns","list","prop","order","editPayee","showPayeeModal","slot","_s","mode","payee","payeeStructure","upsertPayee","_e","showImportModal","onCSVFileSelected","txtSearchModal","newRecordsColumn","newRecordsDataList","importCSV","staticRenderFns","PayeeFullMetaHeaders","oid","payeeFullname","undefined","payeeEmail","payeeNric","payeeCompanyCode","payeeContact","payeeDob","payeePob","payeeAddress","payeePostalCode","payeeCountry","payeeBankName","payeeBank","payeeSwiftCode","keyToConvert","convertNested","raw","dateService","get","IDateService","assign","payee_dob","format","Meta","RawKey","data","MetaList","existingPayeeOidList","payeeList","uploadedCSVTableData","uploadReady","projectInfo","companyShortName","classes","companyName","field","payeeMeta","emit","Date","$api","headers","JSON","stringify","res","update","_oid","meta","convertToRawData","fetchPayeeList","uiService","alert","show","message","$nextTick","column","mapRawKeytoFormatKey","file","callBack","result","evt","files","processCSVFile","setUploadedCSVTableData","isCreate","forEach","newPayee","includes","savePayee","sharedVariable","components","AppForm","AppDialog","AppDatatable","component","oldBrowser","Error","crypto","global","msCrypto","size","rawBytes","Uint8Array","getRandomValues","bytes","Buffer","buffer","process","nextTick","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","RegExp","rx","S","done","previousLastIndex","lastIndex","class","ref","currentPageData","hasNoError","selectionKey","tableRowClassName","sortChange","rowClick","handleSelection","_l","sortable","scopedSlots","_u","fn","scope","row","$$selectedVal","Array","filter","o","selected","val","_value","$set","multiple","handleCustomEvent","option","_n","decimal","disabled","convertToCurrency","_t","button","$emit","shouldDisabled","stopPropagation","infoFrom","infoTo","total","currentPage","pageSizesDisplay","pageSize","pageChange","handleSizeChange","pageSizes","sortBy","sizes","lastSize","round","search","searchKeyword","filters","filteredData","sortedData","slice","every","error","redirect","window","location","href","rows","appdatatable","$refs","clearSelection","currencySymbol","Number","toLocaleString","minimumFractionDigits","maximumFractionDigits","clearCheckboxOnHeader","default","AppDecimalNumber","downloadCSVFile","fileName","csvData","fields","quotes","blob","Blob","filename","parseCsvFile","header","complete","SharedVariable","errors","stringerror","resArray","rowData","parseObj","skipEmptyLines","transform","delimitersToGuess","uniqNoSet","arr","ret","indexOf","uniqSet","seen","Set","el","has","add","uniqSetWithForEach","doesForEachActuallyWork","style","structure","shouldShow","getCustomClass","hasErrors","focusId","getId","focusInner","getTestId","labelModelValue","labelModel","set","model","labelKey","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","event","charCode","which","keyCode","currentValue","isAlphabetN","isNonNumber","preventDefault","charCodeAt","isAlphabetA","formatValue","isNaN","source","useCurrency","currencyPrefix","currency","replaceAll","inputValue","minimal","structures","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","find","s","scrollIntoView","behavior","block","arrangeCols","addEventListener","now","deep","AppSmartSelect","AppCheckboxGroup","AppRadioSelection","AppDateInput","AppFormTable","AppCurrencyNA","AppTooltip"],"mappings":"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","file":"js/chunk-a46e85a4.457e77be.js","sourcesContent":["import CodeToNationality from '@master/config/nationality-code-to-label.json'\nimport CodeToCountry from '@master/config/country-code-to-label.json'\nimport LabelToCodeCountry from '@master/config/country-label-to-code.json'\nimport LabelToCodeNationality from '@master/config/nationality-label-to-code.json'\nimport { options } from './Options'\n\nexport const CountryOptions: options[] = Object.keys(CodeToCountry).map(key => {\n return {\n label: CodeToCountry[key],\n value: key\n }\n}).sort((a, b) => {\n if (a.value === 'SG') {\n return -1\n } else if (b.value === 'SG') {\n return 1\n } else if (a.value === 'MY') {\n return -1\n } else if (b.value === 'MY') {\n return 1\n } else {\n return a.label.localeCompare(b.label)\n }\n}) // sort by Singapore, Malaysia, and the rest of countries\n\nexport const NationalityOptions: options[] = Object.keys(CodeToNationality).map(key => {\n return {\n label: CodeToNationality[key],\n value: key\n }\n}).sort((a, b) => {\n if (a.value === 'SG') {\n return -1\n } else if (b.value === 'SG') {\n return 1\n } else if (a.value === 'MY') {\n return -1\n } else if (b.value === 'MY') {\n return 1\n } else {\n return a.label.localeCompare(b.label)\n }\n}) // sort by Singapore, Malaysia, and the rest of nationalities\n\nexport const CountryLabelToCode = LabelToCodeCountry\nexport const NationalityLabelToCode = LabelToCodeNationality\n","// `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\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page\"},[_c('div',{staticClass:\"tab-top\"},[_c('div',{staticClass:\"tab-header\"},[_c('div',{staticClass:\"tab-links tab-first active\"},[_vm._v(\" Intermediary List \"),_c('span',{staticClass:\"add-client\",attrs:{\"aria-label\":\"By Course\"},on:{\"click\":_vm.addNewPayee}},[_c('i',{staticClass:\"fas fa-plus\"})])]),_c('div',{staticClass:\"toolbar\"},[_c('button',{staticClass:\"btn-default\",on:{\"click\":function($event){return _vm.exportCSV()}}},[_vm._v(\".CSV Export\")]),_c('button',{staticClass:\"btn-default\",on:{\"click\":function($event){return _vm.openModalImport()}}},[_vm._v(\".CSV Import\")])]),_c('div',{staticClass:\"search-wrapper\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.txtSearch),expression:\"txtSearch\",modifiers:{\"trim\":true}}],staticClass:\"txt-search\",attrs:{\"type\":\"search\",\"data-test\":\"payee-search-keyword\"},domProps:{\"value\":(_vm.txtSearch)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.txtSearch=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}})])]),_c('AppDatatable',{attrs:{\"columns\":_vm.columns,\"data\":_vm.list,\"sort\":{prop: 'payeeFullname', order: 'ascending'},\"search\":_vm.txtSearch,\"show\":true},on:{\"rowClickCustom\":_vm.editPayee}})],1),(_vm.showPayeeModal)?_c('AppDialog',{attrs:{\"id\":\"add-payee-form\"},on:{\"close\":function($event){_vm.showPayeeModal=false}}},[_c('template',{slot:\"header\"},[_vm._v(_vm._s(_vm.mode === 'edit' ? (\"Edit Intermediary : \" + (_vm.payee.payeeFullname)): 'Create Intermediary'))]),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('AppForm',{attrs:{\"structures\":_vm.payeeStructure,\"model\":_vm.payee}})],1),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn-default\",on:{\"click\":_vm.upsertPayee}},[_vm._v(\" Submit \")])])],2):_vm._e(),(_vm.showImportModal)?_c('AppDialog',{attrs:{\"size\":'large'},on:{\"close\":function($event){_vm.showImportModal = false}}},[_c('template',{slot:\"header\"},[_vm._v(\"Import CSV\")]),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('div',{staticClass:\"file-picker-div\"},[(_vm.uploadReady)?_c('input',{attrs:{\"type\":\"file\",\"data-test\":\"file-uploader\",\"accept\":\".csv\"},on:{\"change\":_vm.onCSVFileSelected}}):_vm._e()]),_c('div',{staticClass:\"search-wrapper\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.txtSearchModal),expression:\"txtSearchModal\",modifiers:{\"trim\":true}}],staticClass:\"txt-search\",attrs:{\"type\":\"search\",\"data-test\":\"user-search-keyword\"},domProps:{\"value\":(_vm.txtSearchModal)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.txtSearchModal=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('AppDatatable',{attrs:{\"columns\":_vm.newRecordsColumn,\"data\":_vm.newRecordsDataList,\"sort\":{prop: 'systemrole', order: 'ascending'},\"search\":_vm.txtSearchModal,\"show\":true}})],1),_c('span',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"btn-default\",attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.importCSV()}}},[_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'\nimport { IDateService } from '@master/services/IDateService'\nimport { cid, container } from 'inversify-props'\n\nexport const PayeeFullMetaHeaders = [\n '_oid',\n 'payee_fullname',\n 'payee_email',\n 'payee_nric',\n 'payee_company_code',\n 'payee_contact',\n 'payee_dob',\n 'payee_pob',\n 'payee_address',\n 'payee_postal_code',\n 'payee_country',\n 'payee_bank_name',\n 'payee_bank',\n 'payee_swift_code'\n]\n\nexport class PayeeFullMeta extends Meta {\n @RawKey('_oid')\n oid = ''\n\n payeeFullname = undefined\n payeeEmail = undefined\n payeeNric = undefined\n payeeCompanyCode = undefined\n payeeContact = undefined\n payeeDob = undefined\n payeePob = undefined\n payeeAddress = undefined\n payeePostalCode = undefined\n payeeCountry = undefined\n payeeBankName = undefined\n payeeBank = undefined\n payeeSwiftCode = undefined\n\n convertToRawData (keyToConvert?: string[], convertNested = false) {\n const raw = super.convertToRawData(keyToConvert, convertNested) as any\n const dateService = container.get(cid.IDateService)\n Object.assign(raw, { payee_dob: dateService.format(raw.payee_dob, 'YYYY-MM-DD') }) // eslint-disable-line @typescript-eslint/camelcase\n return raw\n }\n}\n","import { sortBy } from 'lodash/fp'\nimport { MetaList } from '@master/model/common/MetaList'\nimport { PayeeFullMeta, PayeeFullMetaHeaders } from './PayeeFullMeta'\n\nexport class PayeeFullMetaList extends MetaList {\n list: PayeeFullMeta[]\n\n constructor (data: (string | number)[][]) {\n super(PayeeFullMetaHeaders, data, PayeeFullMeta)\n // sort product based on name\n this.list = sortBy((payee) => payee.payeeFullname, this.list)\n }\n}\n","/* eslint-disable @typescript-eslint/camelcase */\nimport { inject } from 'inversify-props'\nimport API from '@core/services/API'\nimport { Component, Vue } from 'vue-property-decorator'\nimport AppForm from '@core/components/AppForm.vue'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport { IDateService } from '@master/services/IDateService'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport { UIService } from '@core/services/UIService'\nimport { SharedVariable } from '@core/model/SharedVariable'\nimport { PayeeFullMeta, PayeeFullMetaHeaders } from '@core/model/common/PayeeFullMeta'\nimport { PayeeFullMetaList } from '@core/model/common/PayeeFullMetaList'\nimport { camelCase } from 'lodash/fp'\nimport { downloadCSVFile, parseCsvFile } from '@core/services/CSVService'\nimport { CountryOptions } from '@master/model/options/NationalityAndCountryOptions'\nimport { IProjectInfo } from '@master/config/IProjectInfo'\n\n@Component({\n components: {\n AppForm,\n AppDialog,\n AppDatatable\n }\n})\nexport class PayeeMixin 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 @inject()\n private projectInfo: IProjectInfo\n\n protected showPayeeModal = false\n protected txtSearch = ''\n protected mode: 'edit' | 'create' = 'create'\n\n protected payee: PayeeFullMeta = new PayeeFullMeta()\n protected existingPayeeOidList = []\n protected payeeList: PayeeFullMetaList = null\n protected showImportModal = false\n protected uploadedCSVTableData: PayeeFullMetaList = null\n protected txtSearchModal = ''\n protected uploadReady = true\n\n get companyName () {\n return `${this.projectInfo.companyShortName} Code` ?? 'Company Code'\n }\n\n get payeeStructure (): FormStructure {\n return [\n {\n label: 'Full Name',\n key: 'payeeFullname',\n classes: ['colspan']\n },\n {\n label: 'NRIC/FIN/Passport/UEN No.',\n key: 'payeeNric'\n },\n {\n label: this.companyName,\n key: 'payeeCompanyCode'\n },\n {\n label: 'Contact',\n key: 'payeeContact'\n },\n {\n label: 'Email',\n key: 'payeeEmail'\n },\n {\n label: 'Date of Birth/ Incorporation',\n key: 'payeeDob',\n type: 'date'\n },\n {\n label: 'Place of Birth/ Incorporation',\n key: 'payeePob'\n },\n {\n label: 'Residential/ Registered Address',\n key: 'payeeAddress'\n },\n {\n label: 'Postal Code',\n key: 'payeePostalCode'\n },\n {\n label: 'Country',\n key: 'payeeCountry',\n options: CountryOptions\n },\n {\n label: 'Bank Name',\n key: 'payeeBankName',\n classes: ['colspan']\n },\n {\n label: 'Bank Account No',\n key: 'payeeBank'\n },\n {\n label: 'SWIFT Code',\n key: 'payeeSwiftCode'\n }\n ]\n }\n\n get columns (): {label: string; field: keyof PayeeFullMeta}[] {\n return [\n { label: 'Full Name', field: 'payeeFullname' },\n { label: 'NRIC', field: 'payeeNric' },\n { label: 'Email Address', field: 'payeeEmail' }\n ]\n }\n\n get list () {\n return !this.payeeList ? [] : this.payeeList.list.map(payeeMeta => {\n return {\n ...payeeMeta,\n emit: true\n }\n })\n }\n\n get newRecordsDataList () {\n return !this.uploadedCSVTableData ? [] : this.uploadedCSVTableData.list\n }\n\n get newRecordsColumn () {\n return [\n { label: 'oID', field: 'oid' },\n { label: 'Fullname', field: 'payeeFullname' },\n { label: 'Email', field: 'payeeEmail' },\n { label: 'NRIC/FIN/Passport/UEN No.', field: 'payeeNric' },\n { label: this.companyName, field: 'payeeCompanyCode' },\n { label: 'Contact', field: 'payeeContact' },\n { label: 'DOB/ Incorporation', field: 'payeeDob' },\n { label: 'POB/ Incorporation', field: 'payeePob' },\n { label: 'Residential/ Registered Address', field: 'payeeAddress' },\n { label: 'Postal Code', field: 'payeePostalCode' },\n { label: 'Country', field: 'payeeCountry' },\n { label: 'Bank Name', field: 'payeeBankName' },\n { label: 'Bank', field: 'payeeBank' },\n { label: 'Swift Code', field: 'payeeSwiftCode' }\n ]\n }\n\n addNewPayee () {\n this.payee = new PayeeFullMeta()\n this.mode = 'create'\n this.showPayeeModal = true\n }\n\n editPayee (payee: any) {\n this.payee = new PayeeFullMeta()\n this.mode = 'edit'\n Object.assign(this.payee, payee)\n // convert DOB from string to date\n this.payee.payeeDob = new Date(this.payee.payeeDob)\n this.showPayeeModal = true\n }\n\n async fetchPayeeList () {\n const res = await this.$api.payee.list({\n headers: JSON.stringify(PayeeFullMetaHeaders)\n })\n this.payeeList = new PayeeFullMetaList(res.data)\n this.existingPayeeOidList = this.payeeList.list.map(payee => payee.oid)\n }\n\n async upsertPayee () {\n await this.$api.payee.update({\n _oid: this.mode === 'create' ? 'new' : this.payee.oid,\n meta: this.payee.convertToRawData()\n })\n this.fetchPayeeList()\n await this.uiService.alert.show({\n type: 'success',\n message: 'Saved successfully!'\n })\n this.showPayeeModal = false\n }\n\n openModalImport () {\n this.showImportModal = true\n this.uploadedCSVTableData = null\n\n // Reset input file\n this.uploadReady = false\n this.$nextTick(() => {\n this.uploadReady = true\n })\n }\n\n mapRawKeytoFormatKey (list: string[]) {\n return list.map(key => {\n return camelCase(key)\n })\n }\n\n exportCSV () {\n const column = this.mapRawKeytoFormatKey(PayeeFullMetaHeaders)\n downloadCSVFile(column, this.list, 'payee-list')\n }\n\n processCSVFile (file, callBack) {\n if (file) {\n parseCsvFile(file[0], callBack)\n }\n }\n\n setUploadedCSVTableData (result) {\n this.uploadedCSVTableData = new PayeeFullMetaList(result)\n }\n\n onCSVFileSelected (evt) {\n const file = evt.target.files\n if (file) {\n this.processCSVFile(file, this.setUploadedCSVTableData)\n }\n }\n\n async savePayee (payee, isCreate) {\n await this.$api.payee.update({\n _oid: isCreate ? 'new' : payee.oid,\n meta: payee.convertToRawData()\n })\n }\n\n async importCSV () {\n if (this.newRecordsDataList.length === 0 || !this.newRecordsDataList) {\n await this.uiService.alert.show({\n type: 'warning',\n message: 'No file selected'\n })\n return false\n }\n\n this.newRecordsDataList.forEach((newPayee) => {\n if (this.existingPayeeOidList.includes(newPayee.oid)) {\n this.savePayee(newPayee, false)\n } else {\n this.savePayee(newPayee, true)\n }\n })\n this.showImportModal = false\n await this.uiService.alert.show({\n type: 'success',\n message: 'CSV Imported successfully!'\n })\n await this.fetchPayeeList()\n }\n\n async mounted () {\n // take injected UIService and set it to local\n this.uiService = this.sharedVariable.uiService\n await this.fetchPayeeList()\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 { PayeeMixin } from './PayeeMixin'\n\nexport default class Payee extends Mixins(PayeeMixin) {\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!./Payee.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!./Payee.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Payee.vue?vue&type=template&id=44ab5ca6&scoped=true&\"\nimport script from \"./Payee.vue?vue&type=script&lang=ts&\"\nexport * from \"./Payee.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Payee.vue?vue&type=style&index=0&id=44ab5ca6&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 \"44ab5ca6\",\n null\n \n)\n\nexport default component.exports","'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!./Payee.vue?vue&type=style&index=0&id=44ab5ca6&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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&\"","import { parse, unparse, download, RECORD_SEP, UNIT_SEP } from 'papaparse'\nimport { SharedVariable } from './../model/SharedVariable'\nimport { cid, container } from 'inversify-props'\n\nexport function downloadCSVFile (column: string[], data: Array, fileName: string) {\n const csvData = unparse({\n fields: column, // column names\n data: data\n }, {\n quotes: false\n })\n\n const blob = new Blob([csvData], { type: 'text/csv' })\n const filename = fileName\n download(blob, filename)\n}\n\nexport function parseCsvFile (file, callBack) {\n parse(file, {\n header: true,\n complete: function (res) {\n const sharedVariable = container.get(cid.SharedVariable)\n const { uiService } = sharedVariable\n\n if (res.errors.length > 0) {\n let stringerror = 'The following errors were encountered.\\n\\n'\n res.errors.forEach((error, index) => {\n stringerror += 'Row ' + (index) + ': ' + error.message + '.\\n'\n })\n uiService.alert.show({\n type: 'error',\n message: stringerror\n })\n return\n }\n const resArray = []\n // if no error\n res.data.forEach(rowData => {\n const parseObj = []\n Object.keys(rowData).forEach(key => {\n parseObj.push(rowData[key])\n })\n resArray.push(parseObj)\n })\n callBack(resArray)\n },\n error: undefined,\n skipEmptyLines: 'greedy',\n transform: undefined,\n delimitersToGuess: [',', 't', '|', ';', RECORD_SEP, UNIT_SEP]\n })\n}\n","'use strict';\n\n// there's 3 implementations written in increasing order of efficiency\n\n// 1 - no Set type is defined\nfunction uniqNoSet(arr) {\n\tvar ret = [];\n\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (ret.indexOf(arr[i]) === -1) {\n\t\t\tret.push(arr[i]);\n\t\t}\n\t}\n\n\treturn ret;\n}\n\n// 2 - a simple Set type is defined\nfunction uniqSet(arr) {\n\tvar seen = new Set();\n\treturn arr.filter(function (el) {\n\t\tif (!seen.has(el)) {\n\t\t\tseen.add(el);\n\t\t\treturn true;\n\t\t}\n\t});\n}\n\n// 3 - a standard Set type is defined and it has a forEach method\nfunction uniqSetWithForEach(arr) {\n\tvar ret = [];\n\n\t(new Set(arr)).forEach(function (el) {\n\t\tret.push(el);\n\t});\n\n\treturn ret;\n}\n\n// V8 currently has a broken implementation\n// https://github.com/joyent/node/issues/8449\nfunction doesForEachActuallyWork() {\n\tvar ret = false;\n\n\t(new Set([true])).forEach(function (el) {\n\t\tret = el;\n\t});\n\n\treturn ret === true;\n}\n\nif ('Set' in global) {\n\tif (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) {\n\t\tmodule.exports = uniqSetWithForEach;\n\t} else {\n\t\tmodule.exports = uniqSet;\n\t}\n} else {\n\tmodule.exports = uniqNoSet;\n}\n","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":""}