{"version":3,"sources":["webpack:///./node_modules/randomstring/lib/randomstring.js","webpack:///./@core/pages/userProfile/sections/UserCommissionStructure.vue?c9c8","webpack:///./@core/model/common/CommissionStructureMeta.ts","webpack:///./@core/pages/userProfile/sections/UserCommissionStructure.vue","webpack:///./@core/pages/userProfile/sections/UserCommissionStructure.vue?d8eb","webpack:///./@core/pages/userProfile/sections/UserCommissionStructure.vue?2434","webpack:///./node_modules/randomstring/lib/charset.js","webpack:///./node_modules/randomstring/index.js","webpack:///./@core/assets/myinfo-icon.svg","webpack:///./node_modules/randomstring/node_modules/randombytes/browser.js","webpack:///./@core/components/AppForm.vue?baa9","webpack:///./@core/components/AppCurrencyNA.vue?af5e","webpack:///./@core/pages/userProfile/sections/UserCommissionStructure.vue?b5f4","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":["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","exports","generate","options","charset","setType","capitalization","setcapitalization","readable","removeUnreadable","removeDuplicates","charsLen","ceil","render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","allLevelAvailable","_e","directives","name","rawName","value","expression","on","$event","openModal","_m","_l","commissionStructure","key","_s","getFullname","receiverOid","cisPct","giPct","giRenewPct","ebPct","otherServicesPct","lifePct","loanPct","paraPlanningPct","attrs","totalByKey","isModalVisible","slot","CommissionStructureForm","newCommissionStructure","level","staticStyle","deleteCommission","saveCommission","staticRenderFns","pky","undefined","Meta","commissionStructureList","userList","openedModalIndex","nameOptions","errors","$api","getCommissionStructure","_oid","userOid","res","data","map","assignData","Object","keys","values","$route","params","$store","getters","currentUser","accountID","isSuperUser","getAllUsers","fetchCommissionStructure","headers","account","list","groupStatus","JSON","stringify","response","user","UserMeta","label","fullname","names","oid","find","disabled","type","uiService","confirm","show","message","isConfirm","deleteCommissionStructure","filter","Number","validateCommission","alert","join","saveCommissionLevel","commission_level","convertToRawData","saveMode","total","forEach","commission","components","AppForm","AppDialog","component","arrayUniq","prototype","numbers","charsLower","charsUpper","toUpperCase","hexChars","binaryChars","octalChars","unreadableChars","replace","toLowerCase","charMap","split","module","oldBrowser","Error","crypto","global","msCrypto","size","rawBytes","Uint8Array","getRandomValues","bytes","Buffer","buffer","process","nextTick","uniqNoSet","arr","ret","indexOf","uniqSet","seen","Set","el","has","add","uniqSetWithForEach","doesForEachActuallyWork","style","structure","shouldShow","class","shouldDisabled","getCustomClass","hasErrors","focusId","getId","focusInner","getTestId","domProps","labelModelValue","labelModel","get","set","target","model","labelKey","composing","$set","tooltip","ref","eidx","msg","full","fullErr","multiple","optionCols","multiLimit","buttonName","cycleMode","displayDirection","setValue","blurHandler","getValue","checkboxColumnNo","compact","option","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","window","event","charCode","which","keyCode","currentValue","isAlphabetN","isNonNumber","preventDefault","charCodeAt","isAlphabetA","formatValue","$emit","isNaN","source","useCurrency","currencyPrefix","toLocaleString","currency","replaceAll","projectInfo","inputValue","default","minimal","structures","charLeft","getCharLeft","getCounterMsg","gridTemplateColumns","projectSettings","theme","condition","readOnly","Function","input","oriValue","String","labelValue","selectedOption","selectedIndex","_value","onChange","ex","uniqueID","snakeCaseKey","curAppForm","$el","hasOverflow","scrollWidth","clientWidth","eleId","ele","document","getElementById","focus","mc","classes","swe","first","s","scrollIntoView","behavior","block","arrangeCols","addEventListener","Date","now","deep","AppSmartSelect","AppCheckboxGroup","AppRadioSelection","AppDateInput","AppFormTable","AppCurrencyNA","AppDecimalNumber","AppTooltip"],"mappings":"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","file":"js/chunk-cf2b6880.8f12753b.js","sourcesContent":["\"use strict\";\n\nvar randomBytes = require('randombytes');\nvar Charset = require('./charset.js');\n\n\nfunction unsafeRandomBytes(length) {\n var stack = [];\n for (var i = 0; i < length; i++) {\n stack.push(Math.floor(Math.random() * 255));\n }\n\n return {\n length,\n readUInt8: function (index) {\n return stack[index];\n }\n };\n}\n\nfunction safeRandomBytes(length) {\n try {\n return randomBytes(length);\n } catch (e) {\n /* React/React Native Fix + Eternal loop removed */\n return unsafeRandomBytes(length);\n }\n}\n\nfunction processString(buf, initialString, chars, reqLen, maxByte) {\n var string = initialString;\n for (var i = 0; i < buf.length && string.length < reqLen; i++) {\n var randomByte = buf.readUInt8(i);\n if (randomByte < maxByte) {\n string += chars.charAt(randomByte % chars.length);\n }\n }\n return string;\n}\n\nfunction getAsyncString(string, chars, length, maxByte, cb) {\n randomBytes(length, function(err, buf) {\n if (err) {\n // Since it is waiting for entropy, errors are legit and we shouldn't just keep retrying\n cb(err);\n }\n var generatedString = processString(buf, string, chars, length, maxByte);\n if (generatedString.length < length) {\n getAsyncString(generatedString, chars, length, maxByte, cb);\n } else {\n cb(null, generatedString);\n }\n })\n}\n\nexports.generate = function(options, cb) {\n var charset = new Charset();\n\n var length, chars, capitalization, string = '';\n\n // Handle options\n if (typeof options === 'object') {\n length = typeof options.length === 'number' ? options.length : 32;\n\n if (options.charset) {\n charset.setType(options.charset);\n }\n else {\n charset.setType('alphanumeric');\n }\n\n if (options.capitalization) {\n charset.setcapitalization(options.capitalization);\n }\n\n if (options.readable) {\n charset.removeUnreadable();\n }\n\n charset.removeDuplicates();\n }\n else if (typeof options === 'number') {\n length = options;\n charset.setType('alphanumeric');\n }\n else {\n length = 32;\n charset.setType('alphanumeric');\n }\n\n // Generate the string\n var charsLen = charset.chars.length;\n var maxByte = 256 - (256 % charsLen);\n\n if (!cb) {\n while (string.length < length) {\n var buf = safeRandomBytes(Math.ceil(length * 256 / maxByte));\n string = processString(buf, string, charset.chars, length, maxByte);\n }\n\n return string;\n }\n\n getAsyncString(string, charset.chars, length, maxByte, cb);\n\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"commission-structure\"},[_c('div',{staticClass:\"title\"},[_vm._v(\" Commission Structure \"),(!_vm.allLevelAvailable)?_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isSuperUser),expression:\"isSuperUser\"}],staticClass:\"btn-default\",on:{\"click\":function($event){return _vm.openModal(null)}}},[_vm._v(\" Add New Commission Structure \")]):_vm._e()]),_c('table',{staticClass:\"bordered\"},[_vm._m(0),_c('tbody',[_vm._l((_vm.commissionStructureList),function(commissionStructure,index){return _c('tr',{key:index,on:{\"click\":function($event){return _vm.openModal(index)}}},[_c('td',[_vm._v(_vm._s(index + 1))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.getFullname(commissionStructure.receiverOid))+\" \")]),_c('td',[_vm._v(_vm._s(commissionStructure.cisPct))]),_c('td',[_vm._v(_vm._s(commissionStructure.giPct))]),_c('td',[_vm._v(_vm._s(commissionStructure.giRenewPct))]),_c('td',[_vm._v(_vm._s(commissionStructure.ebPct))]),_c('td',[_vm._v(_vm._s(commissionStructure.otherServicesPct))]),_c('td',[_vm._v(_vm._s(commissionStructure.lifePct))]),_c('td',[_vm._v(_vm._s(commissionStructure.loanPct))]),_c('td',[_vm._v(_vm._s(commissionStructure.paraPlanningPct))])])}),_c('tr',[_c('td',{staticClass:\"title\",attrs:{\"colspan\":\"2\"}},[_vm._v(\"Percentage (%)\")]),_c('td',[_vm._v(_vm._s(_vm.totalByKey(\"cisPct\", false)))]),_c('td',[_vm._v(_vm._s(_vm.totalByKey(\"giPct\", false)))]),_c('td',[_vm._v(_vm._s(_vm.totalByKey(\"giRenewPct\", false)))]),_c('td',[_vm._v(_vm._s(_vm.totalByKey(\"ebPct\", false)))]),_c('td',[_vm._v(_vm._s(_vm.totalByKey(\"otherServicesPct\", false)))]),_c('td',[_vm._v(_vm._s(_vm.totalByKey(\"lifePct\", false)))]),_c('td',[_vm._v(_vm._s(_vm.totalByKey(\"loanPct\", false)))]),_c('td',[_vm._v(_vm._s(_vm.totalByKey(\"paraPlanningPct\", false)))])])],2)]),_c('div',{staticClass:\"note\"},[_vm._v(\" Click on each row to define the commission structure for this user. \")]),(_vm.isModalVisible)?_c('AppDialog',{on:{\"close\":function($event){_vm.isModalVisible = false}}},[_c('template',{slot:\"header\"},[_vm._v(\"Add Commission Structure\")]),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('AppForm',{attrs:{\"structures\":_vm.CommissionStructureForm,\"model\":_vm.newCommissionStructure}})],1),_c('template',{slot:\"footer\"},[(_vm.newCommissionStructure.level !== 1)?_c('button',{staticClass:\"btn-default\",staticStyle:{\"margin-right\":\"1.5rem\"},on:{\"click\":function($event){return _vm.deleteCommission()}}},[_vm._v(\" Delete \")]):_vm._e(),_c('button',{staticClass:\"btn-default\",on:{\"click\":function($event){return _vm.saveCommission()}}},[_vm._v(\"Save\")])])],2):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Level\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"CIS\")]),_c('th',[_vm._v(\"GI\")]),_c('th',[_vm._v(\"GI Renew\")]),_c('th',[_vm._v(\"EB\")]),_c('th',[_vm._v(\"Other Services\")]),_c('th',[_vm._v(\"Life\")]),_c('th',[_vm._v(\"Loan\")]),_c('th',[_vm._v(\"Para Planning\")])])])}]\n\nexport { render, staticRenderFns }","import { Meta } from '@master/model/common/Meta'\n\nexport class CommissionStructureMeta extends Meta {\n pky: number = undefined\n receiverOid = ''\n cisPct: number = undefined\n giPct: number = undefined\n giRenewPct: number = undefined\n ebPct: number = undefined\n otherServicesPct: number = undefined\n lifePct: number = undefined\n loanPct: number = undefined\n paraPlanningPct: number = undefined\n level: number = undefined\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* eslint-disable @typescript-eslint/camelcase */\nimport { Component, Vue } from 'vue-property-decorator'\nimport AppForm from '@core/components/AppForm.vue'\nimport { isUndefined, isNull } from 'lodash/fp'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport { inject } from 'inversify-props'\nimport API from '@core/services/API'\nimport { UIService } from '@core/services/UIService'\nimport { UserMeta } from '@core/model/common/UserMeta'\nimport { CommissionStructureMeta } from '@core/model/common/CommissionStructureMeta'\nimport AppDialog from '@core/components/AppDialog.vue'\n\n@Component({\n components: {\n AppForm,\n AppDialog\n }\n})\nexport default class UserCommissionStructure extends Vue {\n @inject()\n private $api: API\n\n uiService: UIService\n\n private commissionStructureList: CommissionStructureMeta[] = []\n\n async fetchCommissionStructure () {\n const res = await this.$api.commissionStructure.getCommissionStructure({ _oid: this.userOid })\n this.commissionStructureList = res.data.map(e => {\n const newCommissionStructure = new CommissionStructureMeta()\n newCommissionStructure.assignData(Object.keys(e), Object.values(e))\n return newCommissionStructure\n })\n }\n\n private userList: UserMeta[] = []\n\n get userOid (): string {\n return this.$route.params.userOid as string || this.$store.getters.currentUser.accountID\n }\n\n get isSuperUser () {\n return this.$store.getters.currentUser.isSuperUser\n }\n\n private isModalVisible = false;\n private openedModalIndex = null;\n private nameOptions = [];\n private newCommissionStructure: CommissionStructureMeta = new CommissionStructureMeta()\n\n private errors = [];\n\n async mounted () {\n await this.getAllUsers()\n await this.fetchCommissionStructure()\n }\n\n get allLevelAvailable () {\n return this.commissionStructureList.length >= 4\n }\n\n async getAllUsers () {\n const headers = ['_oid', 'names', 'fullname', 'email']\n\n const response = await this.$api.account.list({\n groupStatus: 'user',\n headers: JSON.stringify(headers)\n })\n\n this.userList = response.data.map(e => {\n const user = new UserMeta()\n user.assignData(headers, e)\n return user\n })\n\n this.nameOptions = this.userList.map(e => {\n return {\n label: e.fullname + ' (' + e.names + ')',\n value: e.oid\n }\n })\n }\n\n getFullname (receiverOid) {\n if (!receiverOid) return ''\n const user = this.userList.find(e => e.oid === receiverOid)\n return user?.fullname + ' ' + user?.names\n }\n\n async openModal (index: number | null) {\n this.openedModalIndex = index\n this.isModalVisible = true\n\n this.newCommissionStructure = new CommissionStructureMeta()\n if (!isNull(index) || isUndefined(index)) {\n this.newCommissionStructure = this.commissionStructureList[index]\n }\n\n if (index === null) { // null is when user click on `Add New Commission`\n this.newCommissionStructure.receiverOid = this.userOid\n this.newCommissionStructure.level = this.commissionStructureList.length + 1\n }\n }\n\n get CommissionStructureForm (): FormStructure {\n return [\n {\n label: 'Name',\n key: 'receiverOid',\n options: this.nameOptions,\n disabled: this.newCommissionStructure.level === 1\n },\n {\n label: 'CIS',\n key: 'cisPct',\n type: 'number'\n },\n {\n label: 'GI',\n key: 'giPct',\n type: 'number'\n },\n {\n label: 'GI Renew',\n key: 'giRenewPct',\n type: 'number'\n },\n {\n label: 'EB',\n key: 'ebPct',\n type: 'number'\n },\n {\n label: 'Other Services',\n key: 'otherServicesPct',\n type: 'number'\n },\n {\n label: 'Life',\n key: 'lifePct',\n type: 'number'\n },\n {\n label: 'Loan',\n key: 'loanPct',\n type: 'number'\n },\n {\n label: 'Para Planning',\n key: 'paraPlanningPct',\n type: 'number'\n }\n ]\n }\n\n async deleteCommission () {\n const isConfirm = await this.uiService.confirm.show({\n type: 'warning',\n message: 'Remove user from the Commission Structure table?'\n })\n if (isConfirm) {\n await this.$api.commissionStructure.deleteCommissionStructure({\n pky: this.newCommissionStructure.pky\n })\n this.isModalVisible = false\n this.commissionStructureList = this.commissionStructureList.filter(e => e.pky !== this.newCommissionStructure.pky)\n }\n }\n\n validateCommission (): void {\n this.errors = []\n\n if (\n Number(this.newCommissionStructure.cisPct) > 100 ||\n Number(this.newCommissionStructure.giPct) > 100 ||\n Number(this.newCommissionStructure.giRenewPct) > 100 ||\n Number(this.newCommissionStructure.ebPct) > 100 ||\n Number(this.newCommissionStructure.otherServicesPct) > 100 ||\n Number(this.newCommissionStructure.lifePct) > 100 ||\n Number(this.newCommissionStructure.loanPct) > 100 ||\n Number(this.newCommissionStructure.paraPlanningPct) > 100\n ) {\n this.errors.push('No fields should be above 100%')\n }\n if (this.totalByKey('cisPct', true) > 100) {\n this.errors.push('CIS percentage is more than 100%')\n this.newCommissionStructure.cisPct = null\n }\n if (this.totalByKey('giPct', true) > 100) {\n this.errors.push('GI percentage is more than 100%')\n this.newCommissionStructure.giPct = null\n }\n if (this.totalByKey('giRenewPct', true) > 100) {\n this.errors.push('GI Renew percentage is more than 100%')\n this.newCommissionStructure.giRenewPct = null\n }\n if (this.totalByKey('ebPct', true) > 100) {\n this.errors.push('EB percentage is more than 100%')\n this.newCommissionStructure.ebPct = null\n }\n if (this.totalByKey('otherServicesPct', true) > 100) {\n this.errors.push('Other services percentage is more than 100%')\n this.newCommissionStructure.otherServicesPct = null\n }\n if (this.totalByKey('lifePct', true) > 100) {\n this.errors.push('Life percentage is more than 100%')\n this.newCommissionStructure.lifePct = null\n }\n if (this.totalByKey('loanPct', true) > 100) {\n this.errors.push('Loan percentage is more than 100%')\n this.newCommissionStructure.loanPct = null\n }\n if (this.totalByKey('paraPlanningPct', true) > 100) {\n this.errors.push('Para planning percentage is more than 100%')\n this.newCommissionStructure.paraPlanningPct = null\n }\n }\n\n async saveCommission () {\n this.validateCommission()\n if (this.errors.length) {\n await this.uiService.alert.show({\n type: 'warning',\n message: this.errors.join('\\n')\n })\n return\n }\n\n await this.$api.commissionStructure.saveCommissionLevel({\n _oid: this.userOid,\n commission_level: this.newCommissionStructure.level,\n data: JSON.stringify(this.newCommissionStructure.convertToRawData())\n })\n await this.fetchCommissionStructure()\n this.isModalVisible = false\n }\n\n totalByKey (key: keyof CommissionStructureMeta, saveMode: boolean) {\n let total = 0\n if (!this.commissionStructureList) return\n this.commissionStructureList.forEach((commission) => {\n total += Number(commission[key]) ? Number(commission[key]) : 0\n })\n if (saveMode) {\n total += Number(this.newCommissionStructure[key])\n ? Number(this.newCommissionStructure[key])\n : 0\n }\n return total\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!./UserCommissionStructure.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!./UserCommissionStructure.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserCommissionStructure.vue?vue&type=template&id=7de3de40&scoped=true&\"\nimport script from \"./UserCommissionStructure.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserCommissionStructure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserCommissionStructure.vue?vue&type=style&index=0&id=7de3de40&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 \"7de3de40\",\n null\n \n)\n\nexport default component.exports","var arrayUniq = require('array-uniq');\n\nfunction Charset() {\n this.chars = '';\n}\n\nCharset.prototype.setType = function(type) {\n var chars;\n\n var numbers = '0123456789';\n var charsLower = 'abcdefghijklmnopqrstuvwxyz';\n var charsUpper = charsLower.toUpperCase();\n var hexChars = 'abcdef';\n var binaryChars = '01';\n var octalChars = '01234567';\n\n if (type === 'alphanumeric') {\n chars = numbers + charsLower + charsUpper;\n }\n else if (type === 'numeric') {\n chars = numbers;\n }\n else if (type === 'alphabetic') {\n chars = charsLower + charsUpper;\n }\n else if (type === 'hex') {\n chars = numbers + hexChars;\n }\n else if (type === 'binary') {\n chars = binaryChars;\n }\n else if (type === 'octal') {\n chars = octalChars;\n }\n else {\n chars = type;\n }\n\n this.chars = chars;\n}\n\nCharset.prototype.removeUnreadable = function() {\n var unreadableChars = /[0OIl]/g;\n this.chars = this.chars.replace(unreadableChars, '');\n}\n\nCharset.prototype.setcapitalization = function(capitalization) {\n if (capitalization === 'uppercase') {\n this.chars = this.chars.toUpperCase();\n }\n else if (capitalization === 'lowercase') {\n this.chars = this.chars.toLowerCase();\n }\n}\n\nCharset.prototype.removeDuplicates = function() {\n var charMap = this.chars.split('');\n charMap = arrayUniq(charMap);\n this.chars = charMap.join('');\n}\n\nmodule.exports = exports = Charset;\n","module.exports = require(\"./lib/randomstring\");","module.exports = __webpack_public_path__ + \"img/myinfo-icon.28e75045.svg\";","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\n\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > 65536) throw new Error('requested too many random bytes')\n // in case browserify isn't using the Uint8Array version\n var rawBytes = new global.Uint8Array(size)\n\n // This will not work in older browsers.\n // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n if (size > 0) { // getRandomValues fails on IE if size == 0\n crypto.getRandomValues(rawBytes)\n }\n // phantomjs doesn't like a buffer being passed here\n var bytes = new Buffer(rawBytes.buffer)\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","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&\"","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!./UserCommissionStructure.vue?vue&type=style&index=0&id=7de3de40&lang=scss&scoped=true&\"","'use strict';\n\n// there's 3 implementations written in increasing order of efficiency\n\n// 1 - no Set type is defined\nfunction uniqNoSet(arr) {\n\tvar ret = [];\n\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (ret.indexOf(arr[i]) === -1) {\n\t\t\tret.push(arr[i]);\n\t\t}\n\t}\n\n\treturn ret;\n}\n\n// 2 - a simple Set type is defined\nfunction uniqSet(arr) {\n\tvar seen = new Set();\n\treturn arr.filter(function (el) {\n\t\tif (!seen.has(el)) {\n\t\t\tseen.add(el);\n\t\t\treturn true;\n\t\t}\n\t});\n}\n\n// 3 - a standard Set type is defined and it has a forEach method\nfunction uniqSetWithForEach(arr) {\n\tvar ret = [];\n\n\t(new Set(arr)).forEach(function (el) {\n\t\tret.push(el);\n\t});\n\n\treturn ret;\n}\n\n// V8 currently has a broken implementation\n// https://github.com/joyent/node/issues/8449\nfunction doesForEachActuallyWork() {\n\tvar ret = false;\n\n\t(new Set([true])).forEach(function (el) {\n\t\tret = el;\n\t});\n\n\treturn ret === true;\n}\n\nif ('Set' in global) {\n\tif (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) {\n\t\tmodule.exports = uniqSetWithForEach;\n\t} else {\n\t\tmodule.exports = uniqSet;\n\t}\n} else {\n\tmodule.exports = uniqNoSet;\n}\n","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":""}