{"version":3,"sources":["webpack:///./@core/pages/recruit/forms/FitAndProper.vue?69a7","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./@core/components/AppModalV2.vue?7c6a","webpack:///./node_modules/randomstring/lib/randomstring.js","webpack:///./node_modules/randomstring/lib/charset.js","webpack:///./node_modules/randomstring/index.js","webpack:///./@core/components/AppModalV2.vue?f088","webpack:///./@core/components/AppModalV2.vue","webpack:///./@core/components/AppModalV2.vue?fb8c","webpack:///./@core/components/AppModalV2.vue?a451","webpack:///./@core/components/LoadingSpinner.vue?035a","webpack:///./@core/components/LoadingSpinner.vue","webpack:///./@core/components/LoadingSpinner.vue?2382","webpack:///./@core/components/LoadingSpinner.vue?9003","webpack:///./@core/model/recruit/AllForms.ts","webpack:///./@core/pages/recruit/forms/FormBaseMixin.ts","webpack:///./@core/components/LoadingSpinner.vue?81b0","webpack:///./@core/pages/recruit/forms/FitAndProper.vue?fef5","webpack:///./@core/pages/recruit/forms/FitAndProperMixin.ts","webpack:///./@core/pages/recruit/forms/FitAndProper.vue","webpack:///./@core/pages/recruit/forms/FitAndProper.vue?6f38","webpack:///./@core/pages/recruit/forms/FitAndProper.vue?09b2","webpack:///./@core/assets/myinfo-icon.svg","webpack:///./node_modules/randomstring/node_modules/randombytes/browser.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./@core/components/AppForm.vue?baa9","webpack:///./@core/components/AppDatatable.vue?fa4e","webpack:///./@core/components/AppDatatable.vue","webpack:///./@core/components/AppDatatable.vue?a0c0","webpack:///./@core/components/AppDatatable.vue?89f0","webpack:///./@core/components/AppCurrencyNA.vue?af5e","webpack:///./node_modules/randomstring/node_modules/array-uniq/index.js","webpack:///./@core/components/AppDatatable.vue?8f2d","webpack:///./@core/components/AppForm.vue?4190","webpack:///./@core/components/AppCurrencyNA.vue?2c19","webpack:///./@core/components/AppCurrencyNA.vue","webpack:///./@core/components/AppCurrencyNA.vue?4219","webpack:///./@core/components/AppCurrencyNA.vue?6502","webpack:///./@core/components/AppForm.vue","webpack:///./@core/components/AppForm.vue?cec5","webpack:///./@core/components/AppForm.vue?3db6"],"names":["module","exports","Object","is","x","y","randomBytes","Charset","unsafeRandomBytes","length","stack","i","push","Math","floor","random","readUInt8","index","safeRandomBytes","e","processString","buf","initialString","chars","reqLen","maxByte","string","randomByte","charAt","getAsyncString","cb","err","generatedString","generate","options","charset","setType","capitalization","setcapitalization","readable","removeUnreadable","removeDuplicates","charsLen","ceil","arrayUniq","this","prototype","type","numbers","charsLower","charsUpper","toUpperCase","hexChars","binaryChars","octalChars","unreadableChars","replace","toLowerCase","charMap","split","join","render","_vm","_h","$createElement","_c","_self","attrs","staticClass","class","show","showModal","_t","_v","on","$event","$emit","staticRenderFns","component","_s","msg","shared","Shared","personal","Personal","qualificationEmployment","QualificationEmployment","generalDeclaration","GeneralDeclaration","fitProper","FitAndProper","bdm","BDMAssessment","bis","BusinessInterestShareholding","cpf","CPFAuthorization","ec","EmployerConsent","lou","LetterOfUndertaking","nco","NameCardOrder","pei","PrevEmploymentInquiry","rma","RecruitManagerAssessment","rsr","RecruitSubsidyReimbursement","sd","SecuritiesDealing","tra","TransferRulesAcknowledgement","dc","DeclarationClauses","formType","FormBase","targetKey","keys","find","formKey","alert","forms","forEach","form","formModel","extractAndAssign","values","map","error","flat","target","FormsList","formConfig","model","label","displayName","value","filter","recruitFormStore","allForms","loading","showError","recruitDetails","getForm","formData","$router","currentRoute","params","recruitAccountOid","name","configs","formName","$store","getters","currentUser","se","formDataErrors","first","ele","document","getElementById","key","scrollIntoView","behavior","$api","update","then","res","setForms","finally","State","Mutation","components","AppForm","AppFormTable","AppDatatable","LoadingSpinner","AppModal","_e","fitProperStructure","data","financialSoundStructure","_m","staticStyle","bscStructure","bscGrading","repBscError","repBscCols","rep","svBscError","svBscCols","sv","additionalStructure","declarationConfig","optionCols","projectInfo","companyShortName","taxOffence","tip","fields","FormBaseMixin","oldBrowser","Error","crypto","global","msCrypto","size","rawBytes","Uint8Array","getRandomValues","bytes","Buffer","buffer","process","nextTick","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","undefined","RegExp","rx","S","done","previousLastIndex","lastIndex","result","directives","rawName","expression","ref","currentPageData","hasNoError","selectionKey","tableRowClassName","sortChange","rowClick","handleSelection","_l","column","field","sortable","scopedSlots","_u","fn","scope","row","modifiers","$$selectedVal","Array","o","selected","val","_value","$set","multiple","handleCustomEvent","option","domProps","_n","$forceUpdate","decimal","disabled","convertToCurrency","button","shouldDisabled","stopPropagation","infoFrom","infoTo","total","currentPage","pageSizesDisplay","pageSize","pageChange","handleSizeChange","pageSizes","sortBy","prop","order","sizes","lastSize","round","search","searchKeyword","trim","filters","JSON","stringify","includes","filteredData","sort","a","b","sortedData","slice","every","emit","redirect","window","location","href","rows","appdatatable","$refs","clearSelection","currencySymbol","Number","toLocaleString","minimumFractionDigits","maximumFractionDigits","clearCheckboxOnHeader","default","AppDecimalNumber","uniqNoSet","arr","ret","indexOf","uniqSet","seen","Set","el","has","add","uniqSetWithForEach","doesForEachActuallyWork","style","structure","shouldShow","getCustomClass","hasErrors","focusId","getId","focusInner","getTestId","labelModelValue","labelModel","get","set","labelKey","composing","tooltip","eidx","full","fullErr","slot","multiLimit","buttonName","cycleMode","displayDirection","setValue","blurHandler","getValue","checkboxColumnNo","compact","isMyInfo","getLabelId","setSelectValue","maxChar","currencyFormat","precision","futureDate","disabledFutureDate","isVertical","maxSize","columns","getValueForTable","remove","maxLength","counterMsg","isModernTheme","maxlength","numberAndNAOnly","onBlur","onFocus","onSelect","inputModal","textIsSelected","number","convertCurrencyToNumber","remainingChar","evt","event","charCode","which","keyCode","currentValue","isAlphabetN","isNonNumber","preventDefault","charCodeAt","isAlphabetA","formatValue","isNaN","source","useCurrency","currencyPrefix","currency","replaceAll","inputValue","minimal","structures","errors","charLeft","getCharLeft","getCounterMsg","gridTemplateColumns","projectSettings","theme","condition","readOnly","Function","input","oriValue","String","labelValue","selectedOption","selectedIndex","onChange","ex","uniqueID","snakeCaseKey","curAppForm","$el","hasOverflow","scrollWidth","clientWidth","eleId","focus","mc","classes","swe","s","block","arrangeCols","addEventListener","Date","now","deep","AppSmartSelect","AppCheckboxGroup","AppRadioSelection","AppDateInput","AppCurrencyNA","AppTooltip"],"mappings":"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","file":"js/chunk-157e343e.1cc65127.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FitAndProper.vue?vue&type=style&index=0&id=34a715b6&lang=scss&scoped=true&\"","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModalV2.vue?vue&type=style&index=0&id=49ecd951&lang=scss&scoped=true&\"","\"use strict\";\n\nvar randomBytes = require('randombytes');\nvar Charset = require('./charset.js');\n\n\nfunction unsafeRandomBytes(length) {\n var stack = [];\n for (var i = 0; i < length; i++) {\n stack.push(Math.floor(Math.random() * 255));\n }\n\n return {\n length,\n readUInt8: function (index) {\n return stack[index];\n }\n };\n}\n\nfunction safeRandomBytes(length) {\n try {\n return randomBytes(length);\n } catch (e) {\n /* React/React Native Fix + Eternal loop removed */\n return unsafeRandomBytes(length);\n }\n}\n\nfunction processString(buf, initialString, chars, reqLen, maxByte) {\n var string = initialString;\n for (var i = 0; i < buf.length && string.length < reqLen; i++) {\n var randomByte = buf.readUInt8(i);\n if (randomByte < maxByte) {\n string += chars.charAt(randomByte % chars.length);\n }\n }\n return string;\n}\n\nfunction getAsyncString(string, chars, length, maxByte, cb) {\n randomBytes(length, function(err, buf) {\n if (err) {\n // Since it is waiting for entropy, errors are legit and we shouldn't just keep retrying\n cb(err);\n }\n var generatedString = processString(buf, string, chars, length, maxByte);\n if (generatedString.length < length) {\n getAsyncString(generatedString, chars, length, maxByte, cb);\n } else {\n cb(null, generatedString);\n }\n })\n}\n\nexports.generate = function(options, cb) {\n var charset = new Charset();\n\n var length, chars, capitalization, string = '';\n\n // Handle options\n if (typeof options === 'object') {\n length = typeof options.length === 'number' ? options.length : 32;\n\n if (options.charset) {\n charset.setType(options.charset);\n }\n else {\n charset.setType('alphanumeric');\n }\n\n if (options.capitalization) {\n charset.setcapitalization(options.capitalization);\n }\n\n if (options.readable) {\n charset.removeUnreadable();\n }\n\n charset.removeDuplicates();\n }\n else if (typeof options === 'number') {\n length = options;\n charset.setType('alphanumeric');\n }\n else {\n length = 32;\n charset.setType('alphanumeric');\n }\n\n // Generate the string\n var charsLen = charset.chars.length;\n var maxByte = 256 - (256 % charsLen);\n\n if (!cb) {\n while (string.length < length) {\n var buf = safeRandomBytes(Math.ceil(length * 256 / maxByte));\n string = processString(buf, string, charset.chars, length, maxByte);\n }\n\n return string;\n }\n\n getAsyncString(string, charset.chars, length, maxByte, cb);\n\n};\n","var 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\");","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"modal-fade\"}},[_c('div',{staticClass:\"modal-mask\"},[_c('div',{staticClass:\"modal-wrapper\",attrs:{\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-container\",class:{ show : _vm.showModal }},[_c('div',{staticClass:\"modal-header\"},[_vm._t(\"header\",function(){return [_vm._v(\" default header \")]}),_c('button',{staticClass:\"btn-close\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('i',{staticClass:\"fas fa-times\"})])],2),_c('div',{staticClass:\"modal-body\"},[_vm._t(\"body\",function(){return [_vm._v(\" default body \")]})],2),_c('div',{staticClass:\"modal-footer\"},[_vm._t(\"footer\")],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\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class AppModal extends Vue {\n protected showModal = false\n\n mounted () {\n this.$emit('open')\n this.showModal = true\n }\n\n destroyed () {\n this.$emit('close')\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!./AppModalV2.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!./AppModalV2.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppModalV2.vue?vue&type=template&id=49ecd951&scoped=true&\"\nimport script from \"./AppModalV2.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppModalV2.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppModalV2.vue?vue&type=style&index=0&id=49ecd951&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 \"49ecd951\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loading-spinner\"},[_c('div',{staticClass:\"el-loading-mask\"},[_c('div',{staticClass:\"el-loading-spinner\"},[_c('svg',{staticClass:\"circular\",attrs:{\"viewBox\":\"25 25 50 50\"}},[_c('circle',{staticClass:\"path\",attrs:{\"cx\":\"50\",\"cy\":\"50\",\"r\":\"20\",\"fill\":\"none\"}})]),_c('div',[_vm._v(_vm._s(_vm.msg))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class LoadingSpinner extends Vue {\n @Prop() msg: string\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!./LoadingSpinner.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!./LoadingSpinner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoadingSpinner.vue?vue&type=template&id=2ca34d92&scoped=true&\"\nimport script from \"./LoadingSpinner.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoadingSpinner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoadingSpinner.vue?vue&type=style&index=0&id=2ca34d92&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 \"2ca34d92\",\n null\n \n)\n\nexport default component.exports","import { Shared } from './forms/Shared'\nimport { Application } from './forms/Application'\nimport { BDMAssessment } from './forms/BDMAssessment'\nimport { BusinessInterestShareholding } from './forms/BusinessInterestShareholding'\nimport { CPFAuthorization } from './forms/CPFAuthorization'\nimport { EmployerConsent } from './forms/EmployerConsent'\nimport { LetterOfUndertaking } from './forms/LetterOfUndertaking'\nimport { NameCardOrder } from './forms/NameCardOrder'\nimport { PrevEmploymentInquiry } from './forms/PrevEmploymentInquiry'\nimport { RecruitSubsidyReimbursement } from './forms/RecruitSubsidyReimbursement'\nimport { SecuritiesDealing } from './forms/SecuritiesDealing'\nimport { TransferRulesAcknowledgement } from './forms/TransferRulesAcknowledgement'\nimport { FormsList } from './FormsList'\nimport { FormBase } from './FormBase'\nimport { Personal } from './forms/Personal'\nimport { QualificationEmployment } from './forms/QualificationEmployment'\nimport { GeneralDeclaration } from './forms/GeneralDeclaration'\nimport { FitAndProper } from './forms/FitAndProper'\nimport { DeclarationClauses } from './forms/DeclarationClauses'\nimport { RecruitManagerAssessment } from './forms/RecruitManagerAssessment'\n\nexport class AllForms {\n shared = new Shared()\n personal = new Personal()\n qualificationEmployment = new QualificationEmployment()\n generalDeclaration = new GeneralDeclaration()\n fitProper = new FitAndProper()\n // app = new Application()\n bdm = new BDMAssessment()\n bis = new BusinessInterestShareholding()\n cpf = new CPFAuthorization()\n ec = new EmployerConsent()\n lou = new LetterOfUndertaking()\n nco = new NameCardOrder()\n pei = new PrevEmploymentInquiry()\n rma = new RecruitManagerAssessment()\n rsr = new RecruitSubsidyReimbursement()\n sd = new SecuritiesDealing()\n tra = new TransferRulesAcknowledgement()\n dc = new DeclarationClauses()\n\n getForm (formType: typeof FormBase): FormBase {\n if (!formType) return new FormBase()\n const targetKey = Object.keys(this).find((formKey) => {\n return this[formKey] instanceof formType\n })\n if (!targetKey) alert(`Unable to retrieve corresponding form for : ${formType}`)\n return this[targetKey]\n }\n\n extractAndAssign (forms: any[]) {\n // console.time('extractAndAssign AllForms')\n forms.forEach((form) => {\n Object.keys(this).forEach((formKey) => {\n const formModel = this[formKey]\n if (!(formModel instanceof FormBase)) return\n if (formModel.type !== form.type) return\n formModel.extractAndAssign(form)\n })\n })\n // console.timeEnd('extractAndAssign AllForms')\n }\n\n /**\n * compile and return errors from individual forms\n * TIP : add your inter-form validation (requiring values from 2 forms or more) here\n * @returns array of error messages\n */\n errors (): string[] {\n return Object.values(this).map((form) => {\n return form.error\n }).flat()\n }\n\n get asOptions (): { label: string; value: string }[] {\n return Object.keys(this).map((formKey) => {\n if (!(this[formKey] instanceof FormBase)) return null\n const target = FormsList.find(formConfig => this[formKey] instanceof formConfig.model)\n return target ? { label: target.displayName, value: this[formKey].type } : null\n }).filter(form => form !== null)\n }\n\n get configs (): any[] {\n return Object.keys(this).map((formKey) => {\n if (!(this[formKey] instanceof FormBase)) return null\n const target = FormsList.find(formConfig => this[formKey] instanceof formConfig.model)\n return target ? {\n ...target,\n ...this[formKey]\n } : null\n }).filter(form => form !== null)\n }\n}\n","/* eslint-disable @typescript-eslint/camelcase */\nimport { inject } from 'inversify-props'\nimport API from '@core/services/API'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport AppForm from '@core/components/AppForm.vue'\nimport AppFormTable from '@core/components/AppFormTable.vue'\nimport LoadingSpinner from '@core/components/LoadingSpinner.vue'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport AppModal from '@core/components/AppModalV2.vue'\nimport { IDateService } from '@master/services/IDateService'\nimport { FormBase } from '@core/model/recruit/FormBase'\nimport { AllForms } from '@core/model/recruit/AllForms'\nimport { namespace } from 'vuex-class'\nimport { IProjectInfo } from '@master/config/IProjectInfo'\n\nconst recruitFormStore = namespace('RecruitFormStore')\n@Component({\n components: {\n AppForm,\n AppFormTable,\n AppDatatable,\n LoadingSpinner,\n AppModal\n }\n})\nexport class FormBaseMixin extends Vue {\n @inject()\n protected dateService: IDateService\n\n @inject()\n protected projectInfo: IProjectInfo\n\n @inject()\n protected $api: API\n\n @recruitFormStore.State\n private forms: AllForms\n\n @recruitFormStore.Mutation\n private setForms\n\n protected type = null\n protected allForms: AllForms = new AllForms()\n protected loading = false\n protected showError = false\n protected recruitDetails = null\n\n get formData (): FormBase {\n return this.forms.getForm(this.type)\n }\n\n get formDataErrors () {\n return this.formData.error\n }\n\n get recruitAccountOid () {\n return this.$router.currentRoute.params.recruitAccountOid\n }\n\n get formName () {\n return this.$router.currentRoute.name\n }\n\n get formConfig () {\n return this.allForms.configs.find(form => form.name === this.formName)\n }\n\n get formType () {\n return this.formConfig?.type\n }\n\n get currentUser () {\n return this.$store.getters.currentUser\n }\n\n @Watch('showError')\n focusError (se) {\n if (!se) return\n if (!this.formDataErrors || !this.formDataErrors.length) return\n const first = this.formDataErrors[0]\n const ele = document.getElementById(first.key)\n if (!ele) return\n ele.scrollIntoView({ behavior: 'smooth' })\n }\n\n save () {\n // cannot save if already signed\n // if (this.formData.signed) return\n this.loading = true\n this.$api.forms.update(this.formData).then((res) => {\n if (res && res.error) return alert(res.error)\n this.setForms([res])\n }).finally(() => {\n this.loading = false\n })\n }\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingSpinner.vue?vue&type=style&index=0&id=2ca34d92&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-recruit-fit-proper\"},[(_vm.loading)?_c('LoadingSpinner'):_vm._e(),_c('div',{staticClass:\"header\"},[_vm._v(\"Fit and Proper Criteria\")]),_c('p',{staticClass:\"subtitle\"},[_vm._v(\" If the answer to any of the following questions is in the affirmative, please attach annexes and supporting documents, where appropriate, to provide all relevant details. \")]),_c('p',{staticClass:\"subtitle\"},[_vm._v(\"Please provide your replies in relation to the past 10 years.\")]),_c('div',{staticClass:\"header\"},[_vm._v(\"A. Honesty, Integrity and Reputation\")]),_c('AppForm',{attrs:{\"structures\":_vm.fitProperStructure,\"model\":_vm.formData.data,\"errors\":_vm.showError?_vm.formDataErrors:[]}}),_c('div',{staticClass:\"header\"},[_vm._v(\"B. Financial Soundness\")]),_c('AppForm',{attrs:{\"structures\":_vm.financialSoundStructure,\"model\":_vm.formData.data,\"errors\":_vm.showError?_vm.formDataErrors:[]}}),_vm._m(0),_vm._m(1),_c('div',{staticClass:\"header\",staticStyle:{\"padding-top\":\"2rem\"}},[_vm._v(\"Balanced Score Card (BSC) Grading\")]),_c('div',{staticClass:\"subtitle\"},[_vm._v(\"Please complete the tables below with the last 8 grades accorded to you.\")]),_c('AppForm',{attrs:{\"structures\":_vm.bscStructure,\"model\":_vm.formData.data.bscGrading,\"errors\":_vm.showError?_vm.formDataErrors:[]}}),_c('AppFormTable',{attrs:{\"errors\":_vm.showError?_vm.repBscError:[],\"fields\":_vm.repBscCols,\"data\":_vm.formData.data.bscGrading.rep}}),_c('AppFormTable',{attrs:{\"errors\":_vm.showError?_vm.svBscError:[],\"fields\":_vm.svBscCols,\"data\":_vm.formData.data.bscGrading.sv}}),_c('div',{staticClass:\"header\",staticStyle:{\"padding-top\":\"2rem\"}},[_vm._v(\"Additional Declarations\")]),_c('AppForm',{attrs:{\"structures\":_vm.additionalStructure,\"model\":_vm.formData.data,\"errors\":_vm.showError?_vm.formDataErrors:[]}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"note\"},[_vm._v(\" * Tax evasion offence refers to any form of fraudulent conduct which seeks to divert money from the public revenue, depriving it of money to which it is entitled. Tax evasion is characterized by dishonesty on the part of the taxpayer. That may be committed either by: \"),_c('ul',[_c('li',[_vm._v(\" a positive act – such as submitting false or misleading information or the deliberate concealment of assets or income, or \")]),_c('li',[_vm._v(\" by omission – such as failing to declare income on which tax is due, or failing to declare the sale of asset which would be subject to capital gains tax \")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"note\"},[_vm._v(\" ** Tax evasion facilitation offence is committed where you knowingly and dishonestly encourage or assist the commission of a tax evasion offence. That may be committed either by: \"),_c('ul',[_c('li',[_vm._v(\"a positive action\")]),_c('li',[_vm._v(\"failure to act when required to do so, or\")]),_c('li',[_vm._v(\"by wilful blindness\")])])])}]\n\nexport { render, staticRenderFns }","/* eslint-disable @typescript-eslint/camelcase */\nimport { Component } from 'vue-property-decorator'\nimport { Default, FormStructure, Options, TableFormStructure } from '@master/model/structure/FormStructure'\nimport { FormBaseMixin } from './FormBaseMixin'\nimport { BscGrade, BscGrading, FitAndProper, FitProperFields, SvBscGrade } from '@core/model/recruit/forms/FitAndProper'\nimport { DeclarationOptions } from '@core/model/recruit/forms/GeneralDeclaration'\nimport { getOptions } from '@core/annotation/Selection'\n\ntype DeclarationFieldTypes = FitProperFields | BscGrading\n\n@Component\nexport class FitAndProperMixin extends FormBaseMixin {\n protected type = FitAndProper\n private declarationConfig: Default | Options\n = { type: 'smart', optionCols: 4, options: DeclarationOptions }\n\n get fields () {\n return this.formData.data as FitProperFields\n }\n\n get companyName () {\n return this.projectInfo.companyShortName\n }\n\n get fitProperStructure (): FormStructure {\n return [\n {\n label: 'Have you been licensed, registered or approved under any law in any jurisdiction which requires licensing, registration or approval in relation to any regulated activity?',\n key: 1,\n ...this.declarationConfig\n },\n {\n label: 'Have you been refused the right or restricted in your right to carry on any trade, business or profession for which a specific licence, registration or other authorization is required by law in any jurisdiction?',\n key: 2,\n ...this.declarationConfig\n },\n {\n label: 'Have you been issued a prohibition order under any Act administered by Monetary Authority of Singapore or have you been prohibited from operating in any jurisdiction by any financial services regulatory authority?',\n key: 3,\n ...this.declarationConfig\n },\n {\n label: 'Have you been a shareholder of any corporation which holds membership of any class or description of any operator of a market or clearing facility in any jurisdiction?',\n key: 4,\n ...this.declarationConfig\n },\n {\n label: 'Have you been censured, disciplined, suspended or refused membership or registration by Monetary Authority of Singapore, any other regulatory authority, an operator of a market or clearing facility, any professional body or government agency, whether in Singapore or elsewhere?',\n key: 5,\n ...this.declarationConfig\n },\n {\n label: 'Have you been the subject of any complaint made reasonably and in good faith, relating to activities that are regulated by Monetary Authority of Singapore or under any law in any jurisdiction?',\n key: 6,\n ...this.declarationConfig\n },\n {\n label: 'Have you ever been reported to the MAS pursuant to Financial Advisers Act (FAA) Notice on Reporting of Misconduct of Representatives by Financial Advisers, or equivalent provisions under Securities & Futures Act (SFA), or any other Financial Services, Securities, Insurance or Banking Regulations?',\n key: 7,\n ...this.declarationConfig\n },\n {\n label: 'Have you been reported and/or issued Letter of Suspension/Warning/Advice by your past employers due to any misconducts or offences?',\n key: 8,\n ...this.declarationConfig\n },\n {\n label: 'Have you been the subject of any proceedings of a disciplinary or criminal nature or have you been notified of any potential proceedings or of any investigation which might lead to those proceedings, under any law in any jurisdiction?',\n key: 9,\n ...this.declarationConfig\n },\n {\n label: 'Have you been convicted of any offence or are you being subject to any pending proceedings which may lead to such a conviction, under any law in any jurisdiction?',\n key: 10,\n ...this.declarationConfig\n },\n {\n label: 'Have you had any judgment (in particular,that associated with a finding of fraud, misrepresentation or dishonesty) entered against you in any civil proceedings or a party to any pending proceedings which may lead to such a judgment, under any law in any jurisdiction?',\n key: 11,\n ...this.declarationConfig\n },\n {\n label: 'Have you accepted civil liability for fraud, misrepresentation or dishonesty under any law in any jurisdiction?',\n key: 12,\n ...this.declarationConfig\n },\n {\n label: 'Have you had any civil penalty enforcement action taken against you by Monetary Authority of Singapore or any other regulatory authority under any law in any jurisdiction?',\n key: 13,\n ...this.declarationConfig\n },\n {\n label: 'Have you contravened or abetted another person in breach of any laws or regulations, business rules or codes of conduct, whether in Singapore or elsewhere?',\n key: 14,\n ...this.declarationConfig\n },\n {\n label: 'Have you been the subject of any investigations or disciplinary proceedings or been issued a warning or reprimand by Monetary Authority of Singapore, any other regulatory authority, an operator of a market or clearing facility, any professional body or government agency, whether in Singapore or elsewhere?',\n key: 15,\n ...this.declarationConfig\n },\n {\n label: 'Have you been refused a fidelity or surety bond, whether in Singapore or elsewhere?',\n key: 16,\n ...this.declarationConfig\n },\n {\n label: 'Have you demonstrated an unwillingness to comply with any regulatory requirement or to uphold any professional and ethical standards, whether in Singapore or elsewhere?',\n key: 17,\n ...this.declarationConfig\n },\n {\n label: 'Have you been untruthful or provided false or misleading information to Monetary Authority of Singapore or been uncooperative in any dealings with Monetary Authority of Singapore or any other regulatory authority in any jurisdiction?',\n key: 18,\n ...this.declarationConfig\n },\n {\n label: 'Are you or have you been a director, partner, substantial shareholder or concerned in the management of a business that has been censured, disciplined, prosecuted or convicted of a criminal offence, or been the subject of any disciplinary or criminal investigation or proceeding, in Singapore or elsewhere, in relation to any matter that took place while you were a director, partner, substantial shareholder or concerned in the management of the business?',\n key: 19,\n ...this.declarationConfig\n },\n {\n label: 'Are you or have you been a director, partner, substantial shareholder or concerned in the management of a business that has been suspended or refused membership or registration by Monetary Authority of Singapore, any other regulatory authority, an operator of a market or clearing facility, any professional body or government agency, whether in Singapore or elsewhere?',\n key: 20,\n ...this.declarationConfig\n },\n {\n label: 'Have you been a director, partner, substantial shareholder or concerned in the management of a business that has gone into insolvency, liquidation or administration during the period when, or within a period of one year after, you were a director, partner, substantial shareholder or concerned in the management of the business, whether in Singapore or elsewhere?',\n key: 21,\n ...this.declarationConfig\n },\n {\n label: 'Have you been dismissed or asked to resign from office, employment, a position of trust or a fiduciary appointment or similar position, whether in Singapore or elsewhere?',\n key: 22,\n ...this.declarationConfig\n },\n {\n label: 'Are you or have you been subject to disciplinary proceedings by your current or former employer(s), whether in Singapore or elsewhere?',\n key: 23,\n ...this.declarationConfig\n },\n {\n label: 'Have you been disqualified from acting as a director or disqualified from acting in any managerial capacity, whether in Singapore or elsewhere?',\n key: 24,\n ...this.declarationConfig\n },\n {\n label: 'Have you been an officer found liable for an offence committed by a body corporate as a result of the offence having proved to have been committed with the consent or connivance of, or neglect attributable to you, whether in Singapore or elsewhere?',\n key: 25,\n ...this.declarationConfig\n },\n {\n label: 'Are you carrying on business in, or are you acting as a representative in respect of, providing credit rating services, are you or have you been in observance of the Code of Conduct for Credit Rating Agencies.',\n key: 26,\n ...this.declarationConfig\n }\n ]\n }\n\n get financialSoundStructure (): FormStructure {\n return [\n {\n label: 'Are you or have you been unable to fulfil any of your financial obligations, whether in Singapore or elsewhere?',\n key: 27,\n ...this.declarationConfig\n },\n {\n label: 'Have you been placed under the Debt Repayment Scheme (DRS), entered into a compromise or scheme of arrangement with your creditors or made an assignment for the benefit of your creditors, being a compromise, scheme of arrangement or assignment that is still in operation, whether in Singapore or elsewhere?',\n key: 28,\n ...this.declarationConfig\n },\n {\n label: 'Are you subject to a judgment debt which is unsatisfied, either in whole or in part, whether in Singapore or elsewhere?',\n key: 29,\n ...this.declarationConfig\n },\n {\n label: 'Are you or have you been the subject of a bankruptcy petition, whether in Singapore or elsewhere?',\n key: 30,\n ...this.declarationConfig\n },\n {\n label: 'Have you been adjudicated a bankrupt and the bankruptcy is undischarged, whether in Singapore or elsewhere?',\n key: 31,\n ...this.declarationConfig\n },\n {\n label: 'Are you or have you been subject to any other process outside Singapore that is similar to those referred to in Question 30 and 31?',\n key: 32,\n ...this.declarationConfig\n },\n {\n label: 'Have you been engaged in any activity, practice or conduct which would constitute tax evasion* or tax evasion facilitation offence**?',\n key: 'taxOffence',\n ...this.declarationConfig\n },\n {\n label: 'Please specify offence',\n key: 'taxOffenceSpecified',\n show: (this.formData as FitAndProper).data.taxOffence === 'yes'\n }\n ]\n }\n\n get bscStructure (): FormStructure {\n return [\n {\n label: 'Have you been accorded BSC Grade ‘E’ as a representative or “Unsatisfactory” as a supervisor?',\n key: 'unsatisfactory',\n ...this.declarationConfig\n }\n ]\n }\n\n get repBscCols (): TableFormStructure {\n return [\n { label: 'Quarter / Year', key: 'period', tip: 'e.g. Q1’17', type: 'text' },\n {\n label: 'Grade as a representative',\n key: 'grade',\n type: 'smart',\n optionCols: 6,\n options: getOptions(this.fields.bscGrading.rep[0], 'grade')\n }\n ]\n }\n\n get repBscError () {\n return []\n }\n\n get svBscCols (): TableFormStructure {\n return [\n { label: 'Quarter / Year', key: 'period', tip: 'e.g. Q1’17', type: 'text' },\n {\n label: 'Grade as a supervisor',\n key: 'grade',\n type: 'smart',\n optionCols: 4,\n options: getOptions(this.fields.bscGrading.sv[0], 'grade')\n }\n ]\n }\n\n get additionalStructure (): FormStructure {\n return [\n {\n label: 'If the answer to any of the above questions is in the affirmative, please provide more information below and supporting documents, if any',\n key: 'additional',\n type: 'textarea'\n }\n ]\n }\n\n get svBscError () {\n return []\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Mixins } from 'vue-property-decorator'\nimport { FitAndProperMixin } from './FitAndProperMixin'\n\nexport default class FitAndProper extends Mixins(FitAndProperMixin) {\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!./FitAndProper.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!./FitAndProper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FitAndProper.vue?vue&type=template&id=34a715b6&scoped=true&\"\nimport script from \"./FitAndProper.vue?vue&type=script&lang=ts&\"\nexport * from \"./FitAndProper.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FitAndProper.vue?vue&type=style&index=0&id=34a715b6&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 \"34a715b6\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/myinfo-icon.28e75045.svg\";","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\n\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > 65536) throw new Error('requested too many random bytes')\n // in case browserify isn't using the Uint8Array version\n var rawBytes = new global.Uint8Array(size)\n\n // This will not work in older browsers.\n // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n if (size > 0) { // getRandomValues fails on IE if size == 0\n crypto.getRandomValues(rawBytes)\n }\n // phantomjs doesn't like a buffer being passed here\n var bytes = new Buffer(rawBytes.buffer)\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=style&index=0&id=11928856&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"datatable\",class:{'active': _vm.show, 'inactive': !_vm.show}},[_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"appdatatable\",attrs:{\"data\":_vm.currentPageData,\"stripe\":_vm.hasNoError,\"size\":\"mini\",\"row-key\":_vm.selectionKey,\"row-class-name\":_vm.tableRowClassName,\"header-cell-class-name\":'cell-header'},on:{\"sort-change\":_vm.sortChange,\"row-click\":_vm.rowClick,\"selection-change\":_vm.handleSelection}},[(_vm.selectionKey)?_c('el-table-column',{attrs:{\"type\":\"selection\",\"reserve-selection\":true}}):_vm._e(),_vm._l((_vm.columns),function(column){return [(column.options)?_c('el-table-column',{key:column.field,attrs:{\"prop\":column.field,\"label\":column.label,\"align\":\"center\",\"sortable\":column.sortable === undefined ? true : column.sortable},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('select',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(scope.row[column.field]),expression:\"scope.row[column.field]\",modifiers:{\"lazy\":true}}],on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(scope.row, column.field, $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.handleCustomEvent(scope.row)}]}},_vm._l((column.options),function(option,index){return _c('option',{key:index,domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.label))])}),0)]}}],null,true)}):(column.type)?_c('el-table-column',{key:column.field,attrs:{\"prop\":column.field,\"label\":column.label,\"align\":\"center\",\"sortable\":column.sortable === undefined ? true : column.sortable},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(column.type==='number')?[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number.lazy\",value:(scope.row[column.field]),expression:\"scope.row[column.field]\",modifiers:{\"number\":true,\"lazy\":true}}],attrs:{\"type\":column.type},domProps:{\"value\":(scope.row[column.field])},on:{\"change\":[function($event){_vm.$set(scope.row, column.field, _vm._n($event.target.value))},function($event){return _vm.handleCustomEvent(scope.row)}],\"blur\":function($event){return _vm.$forceUpdate()}}})]:(column.type === 'decimal-number')?[_c('AppDecimalNumber',{attrs:{\"decimal\":column.decimal,\"inputValue\":scope.row[column.field],\"disabled\":column.disabled}})]:(column.type === 'currency')?[_c('label',[_vm._v(_vm._s(_vm.convertToCurrency(scope.row[column.field])))])]:(column.type === 'action')?_vm._t(\"action\",function(){return _vm._l((column.buttons),function(button,index){return _c('button',{key:index,on:{\"click\":function($event){return _vm.$emit(button, scope.row)}}},[_vm._v(_vm._s(button))])})}):(column.type === 'actionWithFeatures')?_vm._t(\"action\",function(){return _vm._l((column.buttons),function(button,index){return _c('button',{key:index,attrs:{\"disabled\":button.shouldDisabled},on:{\"click\":function($event){return _vm.$emit(button.label, scope.row)}}},[_vm._v(_vm._s(button.label))])})}):_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(scope.row[column.field]),expression:\"scope.row[column.field]\",modifiers:{\"lazy\":true}}],attrs:{\"type\":column.type},domProps:{\"value\":(scope.row[column.field])},on:{\"change\":[function($event){return _vm.$set(scope.row, column.field, $event.target.value)},function($event){return _vm.handleCustomEvent(scope.row)}]}})]}}],null,true)}):_c('el-table-column',{key:column.field,attrs:{\"prop\":column.field,\"label\":column.label,\"align\":\"center\",\"sortable\":column.sortable === undefined ? true : column.sortable,\"show-overflow-tooltip\":true},scopedSlots:_vm._u([{key:\"content\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(scope.row[column.field]))])]}}],null,true)})]}),(_vm.redirect)?_c('el-table-column',{key:'redirect',attrs:{\"prop\":'redirect',\"align\":\"center\",\"sortable\":false},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('redirect', scope.row)}}},[_c('i',{staticClass:\"fas fa-external-link-alt\"})])]}}],null,false,2100746354)}):_vm._e()],2),_c('div',{staticClass:\"table-footer\"},[_c('div',{staticClass:\"table-info\"},[_vm._v(\"Show \"+_vm._s(_vm.infoFrom)+\" to \"+_vm._s(_vm.infoTo)+\" of \"+_vm._s(_vm.total)+\" entries\")]),_c('el-pagination',{attrs:{\"current-page\":_vm.currentPage,\"total\":_vm.total,\"hide-on-single-page\":false,\"page-sizes\":_vm.pageSizesDisplay,\"page-size\":_vm.pageSize,\"layout\":\"sizes, prev, pager, next, jumper\",\"background\":\"\"},on:{\"current-change\":_vm.pageChange,\"size-change\":_vm.handleSizeChange}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { isUndefined } from 'lodash/fp'\nimport AppDecimalNumber from './AppDecimalNumber.vue'\n\nexport interface Column {\n label: string;\n field: string;\n sortable?: boolean;\n options: { label: string; value: string }[];\n}\n\ninterface Sort {\n prop: string;\n order: 'ascending' | 'decending';\n}\n\n@Component({\n components: {\n AppDecimalNumber\n }\n})\nexport default class TheDatatable extends Vue {\n @Prop() readonly loading!: boolean\n @Prop() readonly columns!: Array\n @Prop() readonly data!: Array\n @Prop() readonly filters: Array\n @Prop() readonly sort!: Sort\n @Prop() readonly search!: string\n @Prop({ default: true }) readonly show!: boolean\n @Prop({ default: false }) readonly redirect!: boolean\n @Prop() readonly selectionKey: string\n private pageSizes = [10, 50, 100, 500, 1000]\n private pageSize = 10\n private currentPage = 1\n private sortBy: Sort = {\n prop: this.data[0],\n order: 'ascending'\n }\n\n @Prop() clearSelection: boolean\n\n get pageSizesDisplay () {\n // return first size(10), if data total less than 10\n if (this.total < this.pageSizes[0]) return [this.pageSizes[0]]\n\n // get all the size that less than total\n const sizes = this.pageSizes.filter(size => size < this.total)\n\n // push last size\n const lastSize = (Math.round(this.total / 10) + 1) * 10\n sizes.push(lastSize)\n\n return sizes\n }\n\n get filteredData () {\n if (isUndefined(this.search)) return this.data\n\n const searchKeyword = this.search.trim().toLowerCase()\n const data = (this.filters && this.filters.length) ? this.filters : this.data\n return data.filter(value => {\n const result = JSON.stringify(value).toLowerCase().includes(searchKeyword)\n return result\n })\n }\n\n get sortedData () {\n const data = this.filteredData.sort((a, b) => {\n if (this.sortBy.order === 'ascending') {\n if (a[this.sortBy.prop] > b[this.sortBy.prop]) { return 1 }\n if (a[this.sortBy.prop] < b[this.sortBy.prop]) { return -1 }\n } else {\n if (a[this.sortBy.prop] > b[this.sortBy.prop]) { return -1 }\n if (a[this.sortBy.prop] < b[this.sortBy.prop]) { return 1 }\n }\n return 0\n })\n return data\n }\n\n get currentPageData () {\n return this.sortedData.slice((this.currentPage - 1) * this.pageSize, this.pageSize * this.currentPage)\n }\n\n get total () {\n return this.filteredData.length\n }\n\n get infoFrom () {\n if (this.currentPage !== 1) {\n return (this.currentPage - 1) * this.pageSize + 1\n } else {\n return this.filteredData.length ? 1 : 0\n }\n }\n\n get infoTo () {\n return this.currentPageData.length < this.pageSize\n ? this.pageSize * (this.currentPage - 1) + this.currentPageData.length\n : this.pageSize * this.currentPage\n }\n\n get hasNoError () {\n return this.data.every(e => e.error === undefined)\n }\n\n pageChange (currentPage: number): void {\n this.currentPage = currentPage\n this.$emit('pageChangeCustom', this.currentPage)\n }\n\n sortChange (sort: Sort): void {\n this.sortBy.prop = sort.prop\n this.sortBy.order = sort.order || 'ascending'\n }\n\n rowClick (row: any): void {\n if (row.emit) this.$emit('rowClickCustom', row)\n if (!row.redirect) return\n window.location.href = row.redirect\n }\n\n handleSelection (rows: any[]) {\n this.$emit('selectionChange', rows)\n }\n\n handleCustomEvent (row) {\n this.$emit('customEventSelect', row)\n }\n\n tableRowClassName ({ row }) {\n if (row.error) {\n return 'warning-row'\n } else {\n return ''\n }\n }\n\n clearCheckboxOnHeader () {\n const appdatatable = this.$refs.appdatatable as any\n if (this.selectionKey && appdatatable) {\n appdatatable.clearSelection()\n }\n }\n\n handleSizeChange (val) {\n this.pageSize = val\n }\n\n convertToCurrency (value, currencySymbol = '') {\n if (!value && value !== 0) return ''\n return currencySymbol + Number(value).toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n })\n }\n\n mounted () {\n this.sortBy = this.sort\n this.clearCheckboxOnHeader()\n }\n\n @Watch('clearSelection')\n clearSelectionCheckbox () {\n if (this.clearSelection) {\n this.clearCheckboxOnHeader()\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDatatable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDatatable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppDatatable.vue?vue&type=template&id=4b557606&scoped=true&\"\nimport script from \"./AppDatatable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppDatatable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppDatatable.vue?vue&type=style&index=0&id=4b557606&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4b557606\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=style&index=0&id=423a3b72&lang=scss&scoped=true&\"","'use strict';\n\n// there's 3 implementations written in increasing order of efficiency\n\n// 1 - no Set type is defined\nfunction uniqNoSet(arr) {\n\tvar ret = [];\n\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (ret.indexOf(arr[i]) === -1) {\n\t\t\tret.push(arr[i]);\n\t\t}\n\t}\n\n\treturn ret;\n}\n\n// 2 - a simple Set type is defined\nfunction uniqSet(arr) {\n\tvar seen = new Set();\n\treturn arr.filter(function (el) {\n\t\tif (!seen.has(el)) {\n\t\t\tseen.add(el);\n\t\t\treturn true;\n\t\t}\n\t});\n}\n\n// 3 - a standard Set type is defined and it has a forEach method\nfunction uniqSetWithForEach(arr) {\n\tvar ret = [];\n\n\t(new Set(arr)).forEach(function (el) {\n\t\tret.push(el);\n\t});\n\n\treturn ret;\n}\n\n// V8 currently has a broken implementation\n// https://github.com/joyent/node/issues/8449\nfunction doesForEachActuallyWork() {\n\tvar ret = false;\n\n\t(new Set([true])).forEach(function (el) {\n\t\tret = el;\n\t});\n\n\treturn ret === true;\n}\n\nif ('Set' in global) {\n\tif (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) {\n\t\tmodule.exports = uniqSetWithForEach;\n\t} else {\n\t\tmodule.exports = uniqSet;\n\t}\n} else {\n\tmodule.exports = uniqNoSet;\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDatatable.vue?vue&type=style&index=0&id=4b557606&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"column-group\",style:(_vm.gridStyle),attrs:{\"id\":\"app-form\"}},[_vm._l((_vm.structuresDetails),function(structure){return [(_vm.shouldShow(structure.show))?_c('div',{key:structure.key,staticClass:\"input-group-with-theme\",class:[{ 'input-disabled': _vm.shouldDisabled(structure.disabled)}, _vm.getCustomClass(structure)],attrs:{\"has-msg\":structure.hasErrors,\"focusing\":_vm.focusId == _vm.getId(structure.key),\"id\":(\"box-\" + (_vm.getId(structure.key)))},on:{\"click\":function($event){return _vm.focusInner(structure)}}},[[(structure.labelModel)?_c('input',{staticClass:\"label\",attrs:{\"type\":\"text\",\"placeholder\":structure.label,\"data-test\":(\"label-input:\" + (_vm.getTestId(structure.key)))},domProps:{\"value\":_vm.labelModelValue(structure.labelModel.get())},on:{\"input\":function($event){return structure.labelModel.set($event.target.value)}}}):(structure.labelKey)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model[structure.labelKey]),expression:\"model[structure.labelKey]\"}],staticClass:\"label\",attrs:{\"type\":\"text\",\"data-test\":(\"label-input:\" + (_vm.getTestId(structure.key)))},domProps:{\"value\":(_vm.model[structure.labelKey])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, structure.labelKey, $event.target.value)}}}):_vm._e(),(structure.labelModel || structure.labelKey)?_c('i',{staticClass:\"fa fa-pencil-alt right-sided\"}):(structure.type === 'single-checkbox')?_c('span'):_c('label',{attrs:{\"for\":_vm.getId(structure.key),\"id\":_vm.getId(structure.key) + '_label'},domProps:{\"innerHTML\":_vm._s(structure.label)}}),(structure.tooltip)?_c('AppTooltip',{attrs:{\"tooltipConfig\":structure.tooltip}}):_vm._e(),(_vm.isModernTheme)?_vm._l((structure.errors),function(ref,eidx){\nvar msg = ref.msg;\nreturn _c('div',{key:((structure.key) + \"-error-\" + eidx),staticClass:\"form-msg\",class:{\n full:\n eidx === 0 || _vm.fullErr === ((structure.key) + \"-error-\" + eidx),\n },on:{\"click\":function($event){_vm.fullErr = (structure.key) + \"-error-\" + eidx}}},[_c('el-tooltip',[_c('span',{staticClass:\"el-icon-warning\"}),_c('span',{attrs:{\"slot\":\"content\"},slot:\"content\"},[_vm._v(_vm._s(msg))])])],1)}):_vm._e()],(structure.options && structure.type === 'smart')?_c('AppSmartSelect',{attrs:{\"options\":structure.options,\"value\":_vm.model[structure.key],\"multiple\":structure.multiple,\"cols\":structure.optionCols,\"multiLimit\":structure.multiLimit,\"buttonName\":structure.buttonName,\"cycleMode\":structure.cycleMode,\"displayDirection\":structure.displayDirection,\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'single-checkbox')?_c('el-checkbox',{attrs:{\"value\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"change\":function($event){return _vm.setValue(structure, $event)}}},[_vm._v(\" \"+_vm._s(structure.label)+\" \")]):(structure.options && structure.type === 'checkbox')?_c('AppCheckboxGroup',{attrs:{\"structure\":structure,\"model\":_vm.model,\"column\":structure.checkboxColumnNo,\"compact\":structure.compact},on:{\"change\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.options && structure.type === 'radio')?_c('AppRadioSelection',{attrs:{\"options\":structure.options,\"value\":_vm.model[structure.key],\"buttonName\":structure.buttonName,\"displayDirection\":structure.displayDirection,\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'multi')?_c('el-select',{staticClass:\"form-multi-select\",attrs:{\"value\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled),\"multiple\":\"\",\"collapse-tags\":\"\",\"size\":'small',\"popper-class\":'wen-popper-class'},on:{\"change\":function($event){return _vm.setValue(structure, $event)}}},_vm._l((structure.options),function(option,index){return _c('el-option',{key:index,attrs:{\"value\":option.value,\"label\":option.label}})}),1):(structure.options)?_c('select',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"disabled\":_vm.shouldDisabled(structure.disabled)},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setSelectValue($event.target, structure)}}},_vm._l((structure.options),function(option,index){return _c('option',{key:index,domProps:{\"value\":option.value}},[_vm._v(\" \"+_vm._s(option.label)+\" \")])}),0):(structure.type === 'decimal-number')?[_c('AppDecimalNumber',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"decimal\":structure.decimal,\"inputValue\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"input\":function($event){return _vm.setValue(structure, $event)}}})]:(structure.type === 'number' || structure.type === 'time' || structure.type === 'password')?_c('input',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"type\":structure.type,\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxChar},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setValue(structure, $event.target.value)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'currency')?_c('currency-input',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"currency\":structure.currencyFormat,\"aria-labelledby\":_vm.getLabelId(structure.key),\"value\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled),\"precision\":structure.precision},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'date' || structure.type === 'month')?_c('AppDateInput',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"value\":_vm.getValue(structure),\"id\":_vm.getId(structure.key),\"input-type\":structure.type,\"data-test\":_vm.getTestId(structure.key),\"aria-label\":structure.label,\"disabled\":_vm.shouldDisabled(structure.disabled),\"futureDate\":structure.futureDate,\"disabledFutureDate\":structure.disabledFutureDate},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'textarea')?_c('textarea',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxChar,\"rows\":structure.rows || 10},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setValue(structure, $event.target.value)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'table')?_c('AppFormTable',{staticClass:\"inner-table\",attrs:{\"innerTable\":true,\"vertical\":structure.isVertical,\"maxSize\":structure.maxSize,\"fields\":structure.columns,\"data\":_vm.getValueForTable(structure)},on:{\"add\":structure.add,\"remove\":structure.remove}}):(structure.type==='na-currency')?[_c('AppCurrencyNA',{attrs:{\"inputValue\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxLength},on:{\"input\":function($event){return _vm.setValue(structure, $event)}}})]:_c('input',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"type\":\"text\",\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxChar},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setValue(structure, $event.target.value)},\"blur\":function($event){return _vm.blurHandler(structure, $event.target.value)}}}),(structure.isMyInfo)?_c('img',{staticClass:\"input-hint logo\",attrs:{\"src\":require(\"@core/assets/myinfo-icon.svg\")}}):_vm._e(),(structure.counterMsg && _vm.isModernTheme)?_c('div',{staticClass:\"char-counter\"},[_vm._v(\" \"+_vm._s(structure.counterMsg)+\" \")]):_vm._e()],2):_vm._e()]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputModal),expression:\"inputModal\"}],attrs:{\"maxlength\":_vm.maxlength,\"disabled\":_vm.disabled},domProps:{\"value\":(_vm.inputModal)},on:{\"keypress\":function($event){return _vm.numberAndNAOnly($event)},\"blur\":function($event){return _vm.onBlur()},\"focus\":function($event){return _vm.onFocus()},\"select\":function($event){return _vm.onSelect($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.inputModal=$event.target.value}}}),(!_vm.disabled)?_c('div',{staticClass:\"char-counter\"},[_vm._v(\" \"+_vm._s(_vm.counterMsg)+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { IProjectInfo } from '@master/config/IProjectInfo'\nimport { inject } from 'inversify-props'\n\n@Component\nexport default class AppCurrencyNA extends Vue {\n @Prop() inputValue\n @Prop({ default: true }) useCurrency!: boolean\n @Prop({ default: 10 }) maxlength?: number\n @Prop({ default: false }) disabled: boolean\n\n @inject()\n private projectInfo: IProjectInfo\n\n inputModal = ''\n textIsSelected = false\n\n get counterMsg () {\n if (typeof this.maxlength === 'undefined') return\n const number = this.convertCurrencyToNumber(this.inputModal)\n const remainingChar = this.maxlength - (number.toString().length || 0)\n return remainingChar > 0 ? `${remainingChar} letter(s) remaining` : 'Max character limit reached'\n }\n\n numberAndNAOnly (evt) {\n evt = (evt) || window.event\n const charCode = (evt.which) ? evt.which : evt.keyCode\n\n const currentValue = evt.target.value\n if (this.textIsSelected) {\n if (!this.isAlphabetN(charCode) && this.isNonNumber(charCode)) {\n evt.preventDefault()\n } else {\n this.textIsSelected = false\n }\n return true\n }\n\n // if current value is 'NA', cannot key in other character\n if (currentValue.toUpperCase() === 'NA') {\n evt.preventDefault()\n }\n\n // if current value is N, the followed char must be A\n if (this.isAlphabetN(currentValue.charCodeAt(0))) {\n if (this.isAlphabetA(charCode)) {\n return true\n }\n evt.preventDefault() // only can accept A\n }\n\n // if there is empty value, it can either key in char N or number only\n if (!currentValue) {\n if (this.isAlphabetN(charCode)) {\n return true\n }\n }\n\n // cannot key in non number value\n if (this.isNonNumber(charCode)) {\n evt.preventDefault()\n } else {\n return true\n }\n }\n\n isAlphabetN (charCode) {\n return charCode === 78 || charCode === 110\n }\n\n isAlphabetA (charCode) {\n return charCode === 65 || charCode === 97\n }\n\n isNonNumber (charCode) {\n return charCode > 31 && (charCode < 48 || charCode > 57)\n }\n\n onBlur () {\n if (!this.inputModal && this.inputModal !== '0') {\n this.inputModal = this.formatValue('')\n this.$emit('input', '')\n return\n }\n\n // format na to NA to display\n if (this.inputModal.toUpperCase() === 'NA') {\n this.inputModal = 'NA'\n this.$emit('input', 'NA')\n return\n }\n\n // in case only key in 'n' and on blur, format it to NA\n if (isNaN(Number(this.inputModal))) {\n this.inputModal = 'NA'\n this.$emit('input', 'NA')\n return\n }\n\n const number = this.convertCurrencyToNumber(this.inputModal)\n this.inputModal = this.formatValue(number)\n this.$emit('input', Number(number))\n }\n\n onFocus () {\n this.inputModal = this.convertCurrencyToNumber(this.inputModal)\n }\n\n onSelect () {\n this.textIsSelected = true\n }\n\n formatValue (source) {\n if (typeof source === 'string') {\n if (source.toUpperCase() === 'NA' || source === '') {\n return source\n }\n source = Number(source.replace('$', '').replace(',', ''))\n } else if (source === undefined || source == null) {\n source = ''\n }\n return this.useCurrency ? this.currencyPrefix + source?.toLocaleString('en-US') : source?.toLocaleString('en-US')\n }\n\n convertCurrencyToNumber (currency) {\n return currency.replaceAll(this.currencyPrefix, '').replaceAll(',', '')\n }\n\n get currencyPrefix () {\n return this.projectInfo.currency ?? 'SGD$'\n }\n\n @Watch('inputValue')\n inputValueOnChange () {\n if (this.inputValue || this.inputValue === '0' || Number(this.inputValue) === 0) {\n this.inputModal = this.formatValue(this.inputValue)\n } else {\n this.inputModal = this.formatValue('')\n }\n }\n\n mounted () {\n this.inputModal = this.formatValue(this.inputValue)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppCurrencyNA.vue?vue&type=template&id=423a3b72&scoped=true&\"\nimport script from \"./AppCurrencyNA.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppCurrencyNA.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppCurrencyNA.vue?vue&type=style&index=0&id=423a3b72&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"423a3b72\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Base } from '@master/model/Base'\nimport { FormStructure, Input, TableSetup } from '@master/model/structure/FormStructure'\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport AppCheckboxGroup from '@core/components/AppCheckboxGroup.vue'\nimport AppFormTable from '@core/components/AppFormTable.vue'\nimport AppRadioSelection from '@core/components/AppRadioSelection.vue'\nimport AppSmartSelect from '@core/components/AppSmartSelect.vue'\nimport { inject } from 'inversify-props'\nimport { IDateService } from '@master/services/IDateService'\nimport AppDateInput from './AppDateInput.vue'\nimport { getMaxChar } from '@master/annotation/MaxChar'\nimport { IProjectSettings } from '@master/config/IProjectSettings'\nimport { isUndefined } from 'lodash/fp'\nimport randomstring from 'randomstring'\nimport AppCurrencyNA from './AppCurrencyNA.vue'\nimport AppDecimalNumber from './AppDecimalNumber.vue'\nimport AppTooltip from './AppTooltip.vue'\n\n@Component({\n components: {\n AppSmartSelect,\n AppCheckboxGroup,\n AppRadioSelection,\n AppDateInput,\n AppFormTable,\n AppCurrencyNA,\n AppDecimalNumber,\n AppTooltip\n }\n})\n\nexport default class AppForm extends Vue {\n @Prop() readonly structures!: FormStructure[];\n @Prop() readonly model!: T;\n @Prop({ default: 1 }) readonly columns: number;\n @Prop() readonly errors?: { key: string; msg: string }[];\n @Prop({ default: () => { return Date.now() } })\n readonly uniqueID: string;\n\n @Prop({ default: false }) readonly readOnly: boolean;\n\n @inject()\n private dateService: IDateService;\n\n @inject()\n private projectSettings: IProjectSettings;\n\n private minimal = true;\n // private renderCnt = 0;\n private focusId = null;\n private fullErr = null;\n\n get structuresDetails () {\n return this.structures.map((structure) => {\n const key = (structure as any).key\n const errors = this.errors?.filter((err) => err.key === key) || []\n const maxChar = getMaxChar(this.model, key)\n const charLeft = this.getCharLeft(key)\n const counterMsg = this.getCounterMsg(maxChar, charLeft)\n return {\n errors,\n hasErrors: errors?.length > 0,\n maxChar,\n counterMsg,\n ...structure\n }\n })\n }\n\n get gridStyle () {\n return {\n gridTemplateColumns: `repeat(${this.columns}, minmax(0, 1fr))`\n }\n }\n\n get isModernTheme () {\n return this.projectSettings.theme === 'Modern'\n }\n\n getCounterMsg (maxChar, charLeft) {\n if (!this.isModernTheme) return '' // counterMsg only used in Modern Theme\n return maxChar ? charLeft > 0 ? `${charLeft} letters remaining` : 'Max character limit reached' : ''\n }\n\n shouldDisabled (condition: boolean | Function = false) {\n if (this.readOnly) return true\n if (condition === undefined) {\n return false\n } else if (condition instanceof Function) {\n return condition(this.model)\n } else {\n return condition\n }\n }\n\n shouldShow (condition: boolean | Function = true) {\n if (condition === undefined) {\n return false\n } else if (condition instanceof Function) {\n return condition(this.model)\n } else {\n return condition\n }\n }\n\n getValue (input: Input) {\n if (input.type === 'currency') {\n const oriValue = this.model[input.key]\n if (typeof oriValue === 'string' || oriValue instanceof String) {\n return Number(this.model[input.key])\n }\n }\n if (input.key) {\n return this.model[input.key]\n } else if (input.model) {\n return input.model.get()\n } else {\n throw new Error(\n `Invalid config for label ${input.label}: key or model is required`\n )\n }\n }\n\n /**\n * Return null as the label if it is empty so\n * that the placeholder will appear\n */\n labelModelValue (labelValue: string) {\n return !labelValue ? null : labelValue\n }\n\n getValueForTable (input: TableSetup) {\n if (input.key) {\n return this.model[input.key]\n } else if (input.data) {\n return input.data\n } else {\n throw new Error(\n `Invalid config for label ${input.label}: key or model is required`\n )\n }\n }\n\n // this is to resolve the issue of event.target.value is always passed as string, but our use cases might need number\n setSelectValue (event, structure) {\n const selectedOption = structure.options[event.selectedIndex]\n this.setValue(structure, selectedOption.value)\n }\n\n setValue (input: Input, _value: T[keyof T]) {\n const value: any = input.type === 'number' ? +_value || 0 : _value\n\n if (input.key) {\n if (input.onChange) {\n input.onChange(this.model[input.key], value)\n }\n // when only has getter (for currency input), sidestep the error\n try {\n this.model[input.key] = value\n } catch (ex) {}\n } else if (input.model) {\n if (input.onChange) {\n input.onChange(this.model[input.key], value)\n }\n return input.model.set(value)\n } else {\n throw new Error(`Invalid config for label ${input.label}: key or model is required`)\n }\n }\n\n getId (key: string) {\n if (this.model && 'snakeCaseKey' in this.model) {\n return `${this.uniqueID}_${this.model.snakeCaseKey(key)}`\n }\n\n if (isUndefined(key)) {\n key = randomstring.generate(6)\n }\n\n if (this.uniqueID) {\n return `${this.uniqueID}_${key}`\n }\n\n return `${key}`\n }\n\n getTestId (key: string) {\n if (this.model && 'snakeCaseKey' in this.model) {\n return `${this.model.snakeCaseKey(key)}`\n }\n return undefined\n }\n\n getLabelId (key: string) {\n return this.getId(key) + '_label'\n }\n\n arrangeCols () {\n const curAppForm = this.$el\n const hasOverflow = curAppForm.scrollWidth > curAppForm.clientWidth\n if (hasOverflow) this.minimal = true\n }\n\n blurHandler (input: Input, _value: T[keyof T]) {\n if (this.isModernTheme) {\n this.focusId = null\n }\n\n if (input && input?.onBlur) {\n input.onBlur(_value)\n }\n }\n\n // use to handle Modern theme\n focusInner (structure: any) {\n // this means label is also editable, thus do not auto focus input\n if (structure.labelModel || structure.labelKey || structure.model) return\n const eleId = this.getId(structure.key)\n this.focusId = eleId\n const ele = document.getElementById(eleId)\n if (ele) ele.focus()\n }\n\n getCharLeft (key: string) {\n const mc = getMaxChar(this.model, key)\n return mc ? mc - (this.model[key]?.length || 0) : mc\n }\n\n getCustomClass (structure) {\n return structure.classes ? [...structure.classes] : []\n }\n\n // @Watch('structures')\n // structuresUpdated () {\n // // this is to allow view to be updated when structures change\n // this.renderCnt++\n // }\n\n @Watch('structuresDetails', { deep: true })\n focusError (swe) {\n if (!this.isModernTheme) return // this is used for Modern Theme\n\n const first = swe.find((s) => 'msg' in s)\n if (!first) return\n const ele = document.getElementById(`box-${this.getId(first.key)}`)\n if (!ele) return\n ele.scrollIntoView({ behavior: 'smooth', block: 'end' })\n }\n\n updated () {\n this.arrangeCols()\n }\n\n mounted () {\n this.arrangeCols()\n window.addEventListener('resize', () => this.arrangeCols())\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppForm.vue?vue&type=template&id=11928856&scoped=true&\"\nimport script from \"./AppForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppForm.vue?vue&type=style&index=0&id=11928856&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11928856\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}