{"version":3,"sources":["webpack:///./src/views/kyc-form/section/your-finances/CashFlowView.vue?710b","webpack:///./src/views/kyc-form/section/your-finances/CashFlowView.vue","webpack:///./src/views/kyc-form/section/your-finances/CashFlowView.vue?8700","webpack:///./src/views/kyc-form/section/your-finances/CashFlowView.vue?4bb6","webpack:///./node_modules/randomstring/lib/randomstring.js","webpack:///./node_modules/randomstring/lib/charset.js","webpack:///./node_modules/randomstring/index.js","webpack:///./src/views/kyc-form/component/AppSwitch.vue?c1c6","webpack:///./@core/assets/myinfo-icon.svg","webpack:///./node_modules/randomstring/node_modules/randombytes/browser.js","webpack:///./@core/components/AppForm.vue?baa9","webpack:///./@core/components/AppCurrencyNA.vue?af5e","webpack:///./src/views/kyc-form/component/AppSwitch.vue?1944","webpack:///./src/views/kyc-form/component/AppSwitch.vue","webpack:///./src/views/kyc-form/component/AppSwitch.vue?625d","webpack:///./src/views/kyc-form/component/AppSwitch.vue?5bd2","webpack:///./node_modules/randomstring/node_modules/array-uniq/index.js","webpack:///./@core/components/AppForm.vue?4190","webpack:///./@core/components/AppCurrencyNA.vue?2c19","webpack:///./@core/components/AppCurrencyNA.vue","webpack:///./@core/components/AppCurrencyNA.vue?4219","webpack:///./@core/components/AppCurrencyNA.vue?6502","webpack:///./@core/components/AppForm.vue","webpack:///./@core/components/AppForm.vue?cec5","webpack:///./@core/components/AppForm.vue?3db6"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","attrs","selectedClient","on","clientOptionSelected","label","value","sharedCashFlowAttributes","cashFlowPlanning","model","callback","$$v","$set","expression","cashFlowIncomeStructure","editingClient","cashFlowSectionErrors","frequency","_e","cashFlowExpensesStructure","cashFlowChanges","staticRenderFns","kycFormStore","computedValidationResult","errors","sectionErrors","finalErrors","map","key","message","variableName","push","msg","kycForm","client1","cashFlow","client2","option","isClient2Included","window","alert","personalDetails","included","newValue","cashFlowPlanningReasons","cashFlowChangesReasons","type","labelModel","get","others10Text","set","others11Text","others12Text","State","components","AppSwitch","AppRadioSelection","AppForm","component","randomBytes","Charset","unsafeRandomBytes","length","stack","i","Math","floor","random","readUInt8","index","safeRandomBytes","e","processString","buf","initialString","chars","reqLen","maxByte","string","randomByte","charAt","getAsyncString","cb","err","generatedString","exports","generate","options","charset","setType","capitalization","setcapitalization","readable","removeUnreadable","removeDuplicates","charsLen","ceil","arrayUniq","prototype","numbers","charsLower","charsUpper","toUpperCase","hexChars","binaryChars","octalChars","unreadableChars","replace","toLowerCase","charMap","split","join","module","oldBrowser","Error","crypto","global","msCrypto","size","rawBytes","Uint8Array","getRandomValues","bytes","Buffer","buffer","process","nextTick","_l","class","selected","$event","optionSelected","_s","uniqNoSet","arr","ret","indexOf","uniqSet","seen","Set","filter","el","has","add","uniqSetWithForEach","forEach","doesForEachActuallyWork","style","structure","shouldShow","show","shouldDisabled","disabled","getCustomClass","hasErrors","focusId","getId","focusInner","getTestId","domProps","labelModelValue","target","directives","name","rawName","labelKey","composing","tooltip","ref","eidx","full","fullErr","slot","multiple","optionCols","multiLimit","buttonName","cycleMode","displayDirection","setValue","blurHandler","getValue","checkboxColumnNo","compact","isMyInfo","getLabelId","setSelectValue","decimal","maxChar","currencyFormat","precision","futureDate","disabledFutureDate","rows","isVertical","maxSize","columns","getValueForTable","remove","maxLength","counterMsg","isModernTheme","maxlength","numberAndNAOnly","onBlur","onFocus","onSelect","inputModal","textIsSelected","number","convertCurrencyToNumber","remainingChar","toString","evt","event","charCode","which","keyCode","currentValue","isAlphabetN","isNonNumber","preventDefault","charCodeAt","isAlphabetA","formatValue","$emit","isNaN","Number","source","undefined","useCurrency","currencyPrefix","toLocaleString","currency","replaceAll","projectInfo","inputValue","default","minimal","structures","charLeft","getCharLeft","getCounterMsg","gridTemplateColumns","projectSettings","theme","condition","readOnly","Function","input","oriValue","String","labelValue","data","selectedOption","selectedIndex","_value","onChange","ex","uniqueID","snakeCaseKey","curAppForm","$el","hasOverflow","scrollWidth","clientWidth","eleId","ele","document","getElementById","focus","mc","classes","swe","first","find","s","scrollIntoView","behavior","block","arrangeCols","addEventListener","Date","now","deep","AppSmartSelect","AppCheckboxGroup","AppDateInput","AppFormTable","AppCurrencyNA","AppDecimalNumber","AppTooltip"],"mappings":"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","file":"js/chunk-28e2d911.e481a779.js","sourcesContent":["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(\" Cash Flow \"),_c('AppSwitch',{attrs:{\"options\":['Client 1', 'Client 2'],\"selected\":_vm.selectedClient},on:{\"option-selected\":_vm.clientOptionSelected}})],1),_c('div',{staticClass:\"form-body\"},[_c('p',[_vm._v(\"This information helps to ascertain the affordability of the recommendation(s) and plan(s) for your financial needs.\")]),_c('p',[_vm._v(\"Would you like your Cash Flow to be taken into consideration for this financial review?\")]),_c('AppRadioSelection',{attrs:{\"options\":[{label:'Yes, please complete the details below', value:'yes'},\n {label:'No, please provide reasons:', value:'no'}],\"selected\":_vm.sharedCashFlowAttributes.cashFlowPlanning,\"buttonName\":'cash-flow'},model:{value:(_vm.sharedCashFlowAttributes.cashFlowPlanning),callback:function ($$v) {_vm.$set(_vm.sharedCashFlowAttributes, \"cashFlowPlanning\", $$v)},expression:\"sharedCashFlowAttributes.cashFlowPlanning\"}}),_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"disabled\":_vm.sharedCashFlowAttributes.cashFlowPlanning != 'no'},model:{value:(_vm.sharedCashFlowAttributes.cashFlowPlanningReasons),callback:function ($$v) {_vm.$set(_vm.sharedCashFlowAttributes, \"cashFlowPlanningReasons\", $$v)},expression:\"sharedCashFlowAttributes.cashFlowPlanningReasons\"}})],1),(_vm.sharedCashFlowAttributes.cashFlowPlanning === 'yes')?[_c('div',{staticClass:\"title\"},[_vm._v(\"Income Calculation (Annual)\")]),_c('div',{staticClass:\"form-body\"},[_c('AppForm',{attrs:{\"structures\":_vm.cashFlowIncomeStructure,\"model\":_vm.editingClient,\"errors\":_vm.cashFlowSectionErrors}}),_c('div',{staticClass:\"column-group\"},[_c('hr',{staticClass:\"dash\"}),(_vm.editingClient.frequency === 'monthly')?_c('div',{staticClass:\"result-group\"},[_c('label',[_vm._v(\"Total Monthly Income (iii)\")]),_c('currency-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.editingClient.totalIncome),callback:function ($$v) {_vm.$set(_vm.editingClient, \"totalIncome\", $$v)},expression:\"editingClient.totalIncome\"}})],1):_vm._e(),_c('div',{staticClass:\"result-group\"},[_c('label',[_vm._v(\"Total Annual Income (iii)\")]),_c('currency-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.editingClient.totalAnnualIncome),callback:function ($$v) {_vm.$set(_vm.editingClient, \"totalAnnualIncome\", $$v)},expression:\"editingClient.totalAnnualIncome\"}})],1)])],1),_c('div',{staticClass:\"title\"},[_vm._v(\"Expenses Calculation (Annual)\")]),_c('div',{staticClass:\"form-body\"},[_c('AppForm',{attrs:{\"structures\":_vm.cashFlowExpensesStructure,\"model\":_vm.editingClient,\"errors\":_vm.cashFlowSectionErrors}}),_c('div',{staticClass:\"column-group\"},[_c('hr',{staticClass:\"dash\"}),(_vm.editingClient.frequency === 'monthly')?_c('div',{staticClass:\"result-group\"},[_c('label',[_vm._v(\"Total Monthly Expenses (iv)\")]),_c('currency-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.editingClient.totalExpenses),callback:function ($$v) {_vm.$set(_vm.editingClient, \"totalExpenses\", $$v)},expression:\"editingClient.totalExpenses\"}})],1):_vm._e(),_c('div',{staticClass:\"result-group\"},[_c('label',[_vm._v(\"Total Annual Expenses (iv)\")]),_c('currency-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.editingClient.totalAnnualExpenses),callback:function ($$v) {_vm.$set(_vm.editingClient, \"totalAnnualExpenses\", $$v)},expression:\"editingClient.totalAnnualExpenses\"}})],1)])],1),(_vm.editingClient.frequency === 'monthly')?_c('div',{staticClass:\"final-result\"},[_c('label',[_vm._v(\"Monthly Surplus / Shortfall (iii - iv)\")]),_c('currency-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.editingClient.surplusShortfall),callback:function ($$v) {_vm.$set(_vm.editingClient, \"surplusShortfall\", $$v)},expression:\"editingClient.surplusShortfall\"}})],1):_vm._e(),_c('div',{staticClass:\"final-result\"},[_c('label',[_vm._v(\"Annual Surplus / Shortfall (iii - iv)\")]),_c('currency-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.editingClient.surplusAnnualShortfall),callback:function ($$v) {_vm.$set(_vm.editingClient, \"surplusAnnualShortfall\", $$v)},expression:\"editingClient.surplusAnnualShortfall\"}})],1)]:_vm._e(),[_c('div',{staticClass:\"title\"},[_vm._v(\"Changes to Cash Flow\")]),_c('div',{staticClass:\"form-body\"},[_c('p',[_vm._v(\"Do you have any plans or are there any factors within the next 12 months which may significantly increase or decrease your current income, expenditure positions and budget (e.g. receiving an inheritance or borrowing money for investment or purchased a house, etc.)?\")]),_c('AppRadioSelection',{attrs:{\"options\":[{label:'No', value:'no'},\n {label:'Yes, please provide reasons below:', value:'yes'}],\"selected\":_vm.editingClient.cashFlowChanges,\"buttonName\":'cash-flow-changes'},model:{value:(_vm.editingClient.cashFlowChanges),callback:function ($$v) {_vm.$set(_vm.editingClient, \"cashFlowChanges\", $$v)},expression:\"editingClient.cashFlowChanges\"}}),_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"disabled\":_vm.editingClient.cashFlowChanges != 'yes'},model:{value:(_vm.editingClient.cashFlowChangesReasons),callback:function ($$v) {_vm.$set(_vm.editingClient, \"cashFlowChangesReasons\", $$v)},expression:\"editingClient.cashFlowChangesReasons\"}})],1),_c('div',{staticClass:\"title\"},[_vm._v(\"Additional Notes\")]),_c('div',{staticClass:\"form-body\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5},model:{value:(_vm.sharedCashFlowAttributes.cashFlowAdditionalNotes),callback:function ($$v) {_vm.$set(_vm.sharedCashFlowAttributes, \"cashFlowAdditionalNotes\", $$v)},expression:\"sharedCashFlowAttributes.cashFlowAdditionalNotes\"}})],1)]],2)}\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\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport AppSwitch from '@/views/kyc-form/component/AppSwitch.vue'\nimport { namespace } from 'vuex-class'\nimport KYCForm from '@company-common/model/kyc-form/KYCForm'\nimport AppRadioSelection from '@core/components/AppRadioSelection.vue'\nimport AppForm from '@core/components/AppForm.vue'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport CashFlow from '@company-common/model/kyc-form/finances/JParaCashFlow'\n\nconst kycFormStore = namespace('KYCFormStore')\n\n@Component({\n components: {\n AppSwitch,\n AppRadioSelection,\n AppForm\n }\n})\nexport default class CashFlowView extends Vue {\n selectedClient = 'Client 1';\n\n @kycFormStore.State\n private kycForm!: KYCForm;\n\n @kycFormStore.State\n private computedValidationResult: any\n\n get sectionErrors () {\n return this.computedValidationResult['Cash Flow'] || {}\n }\n\n get cashFlowSectionErrors () {\n const errors = this.sectionErrors[this.selectedClient] || []\n const finalErrors: { key: string; msg: string }[] = []\n errors.map(({ key, message }) => {\n key.map(variableName => {\n finalErrors.push({\n key: variableName,\n msg: message\n })\n })\n })\n return finalErrors\n }\n\n get sharedCashFlowAttributes () {\n return this.kycForm.client1.cashFlow\n }\n\n get editingClient () {\n if (this.selectedClient === 'Client 1') {\n return this.kycForm.client1.cashFlow\n } else {\n return this.kycForm.client2.cashFlow\n }\n }\n\n clientOptionSelected (option: string): void {\n if (option === 'Client 2' && !this.isClient2Included()) {\n window.alert(\n 'Client 2 is not included in this KYC Form. To include, go to \"Client Summary\" page and enable the checkbox.'\n )\n return\n }\n this.selectedClient = option\n }\n\n isClient2Included () {\n return this.kycForm.client2.personalDetails.included\n }\n\n @Watch('sharedCashFlowAttributes.cashFlowPlanning')\n planningChanged (newValue: string) {\n if (newValue === 'yes') {\n this.sharedCashFlowAttributes.cashFlowPlanningReasons = ''\n }\n }\n\n @Watch('editingClient.cashFlowChanges')\n cashFlowChanged (newValue: string) {\n if (newValue === 'no') {\n this.editingClient.cashFlowChangesReasons = ''\n }\n }\n\n get cashFlowIncomeStructure (): FormStructure {\n return [\n {\n label: 'Employment (less CPF)',\n key: 'employment',\n type: 'currency'\n }, {\n label: 'Business',\n key: 'business',\n type: 'currency'\n }, {\n label: 'Investment Income',\n key: 'investmentIncome',\n type: 'currency'\n }, {\n label: 'Dividends',\n key: 'dividends',\n type: 'currency'\n }, {\n label: 'Rental Income',\n key: 'rentalIncome',\n type: 'currency'\n }, {\n label: 'Click to add income source',\n labelModel: {\n get: () => this.sharedCashFlowAttributes.others10Text,\n set: (value) => { this.sharedCashFlowAttributes.others10Text = value as string }\n },\n key: 'others10',\n type: 'currency'\n }, {\n label: 'Click to add income source',\n labelModel: {\n get: () => this.sharedCashFlowAttributes.others11Text,\n set: (value) => { this.sharedCashFlowAttributes.others11Text = value as string }\n },\n key: 'others11',\n type: 'currency'\n }\n ]\n }\n\n get cashFlowExpensesStructure (): FormStructure {\n return [\n {\n label: 'Mortgage Loan',\n key: 'mortgageLoan',\n type: 'currency'\n }, {\n label: 'Car/Other Loans',\n key: 'carLoan',\n type: 'currency'\n }, {\n label: 'Insurance Premiums',\n key: 'insurancePremiums',\n type: 'currency'\n }, {\n label: 'Savings (FD/Investments)',\n key: 'regularSavings',\n type: 'currency'\n }, {\n label: 'Family (Dependents/ Groceries/ Utilities/ etc.)',\n key: 'parentalSupport',\n type: 'currency'\n }, {\n label: 'Personal (Grooming/ Clothing/ Transportation/ etc.)',\n key: 'personalExpenses',\n type: 'currency'\n }, {\n label: 'Lifestyle (Entertainment/ Vacation/ Country Clubs/ etc.)',\n key: 'lifestyleExpenses',\n type: 'currency'\n }, {\n label: 'Click to add expense',\n labelModel: {\n get: () => this.sharedCashFlowAttributes.others12Text,\n set: (value) => { this.sharedCashFlowAttributes.others12Text = value as string }\n },\n key: 'others12',\n type: 'currency'\n }\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!./CashFlowView.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!./CashFlowView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CashFlowView.vue?vue&type=template&id=f39dd9aa&scoped=true&\"\nimport script from \"./CashFlowView.vue?vue&type=script&lang=ts&\"\nexport * from \"./CashFlowView.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 \"f39dd9aa\",\n null\n \n)\n\nexport default component.exports","\"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\");","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!./AppSwitch.vue?vue&type=style&index=0&id=7447554a&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/myinfo-icon.28e75045.svg\";","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\n\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > 65536) throw new Error('requested too many random bytes')\n // in case browserify isn't using the Uint8Array version\n var rawBytes = new global.Uint8Array(size)\n\n // This will not work in older browsers.\n // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n if (size > 0) { // getRandomValues fails on IE if size == 0\n crypto.getRandomValues(rawBytes)\n }\n // phantomjs doesn't like a buffer being passed here\n var bytes = new Buffer(rawBytes.buffer)\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=style&index=0&id=11928856&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=style&index=0&id=423a3b72&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"switch\"}},[_vm._l((_vm.options),function(option,index){return [(index != 0)?_c('span',{key:index}):_vm._e(),_c('a',{key:option,staticClass:\"option\",class:{ selected: _vm.selected == option },on:{\"click\":function($event){return _vm.optionSelected(option)}}},[_vm._v(\" \"+_vm._s(option)+\" \")])]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Emit } from 'vue-property-decorator'\n\n@Component\nexport default class AppSwitch extends Vue {\n @Prop() readonly options!: string[]\n @Prop() readonly selected!: string\n\n @Emit()\n optionSelected (option: string) {\n return option\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!./AppSwitch.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!./AppSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSwitch.vue?vue&type=template&id=7447554a&scoped=true&\"\nimport script from \"./AppSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppSwitch.vue?vue&type=style&index=0&id=7447554a&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 \"7447554a\",\n null\n \n)\n\nexport default component.exports","'use strict';\n\n// there's 3 implementations written in increasing order of efficiency\n\n// 1 - no Set type is defined\nfunction uniqNoSet(arr) {\n\tvar ret = [];\n\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (ret.indexOf(arr[i]) === -1) {\n\t\t\tret.push(arr[i]);\n\t\t}\n\t}\n\n\treturn ret;\n}\n\n// 2 - a simple Set type is defined\nfunction uniqSet(arr) {\n\tvar seen = new Set();\n\treturn arr.filter(function (el) {\n\t\tif (!seen.has(el)) {\n\t\t\tseen.add(el);\n\t\t\treturn true;\n\t\t}\n\t});\n}\n\n// 3 - a standard Set type is defined and it has a forEach method\nfunction uniqSetWithForEach(arr) {\n\tvar ret = [];\n\n\t(new Set(arr)).forEach(function (el) {\n\t\tret.push(el);\n\t});\n\n\treturn ret;\n}\n\n// V8 currently has a broken implementation\n// https://github.com/joyent/node/issues/8449\nfunction doesForEachActuallyWork() {\n\tvar ret = false;\n\n\t(new Set([true])).forEach(function (el) {\n\t\tret = el;\n\t});\n\n\treturn ret === true;\n}\n\nif ('Set' in global) {\n\tif (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) {\n\t\tmodule.exports = uniqSetWithForEach;\n\t} else {\n\t\tmodule.exports = uniqSet;\n\t}\n} else {\n\tmodule.exports = uniqNoSet;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"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":""}