{"version":3,"sources":["webpack:///./@core/pages/userProfile/sections/UserProfileSummary.vue?fb3f","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/randomstring/lib/randomstring.js","webpack:///./node_modules/randomstring/lib/charset.js","webpack:///./@core/pages/userProfile/sections/UserProfileSummary.vue?5008","webpack:///./@core/pages/userProfile/sections/UserProfileSummary.vue","webpack:///./@core/pages/userProfile/sections/UserProfileSummary.vue?7028","webpack:///./@core/pages/userProfile/sections/UserProfileSummary.vue?97f3","webpack:///./node_modules/randomstring/index.js","webpack:///./@core/components/AppSignatureBox.vue?242e","webpack:///./@master/model/options/SystemRoleOptions.ts","webpack:///./@core/components/TheUserNavi.vue?9188","webpack:///./@core/components/TheUserNavi.vue","webpack:///./@core/components/TheUserNavi.vue?c344","webpack:///./@core/components/TheUserNavi.vue?3deb","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/pages/userProfile/api/services/AccountStructureMemberService.ts","webpack:///./@core/components/AppForm.vue?baa9","webpack:///./@core/components/TheUserNavi.vue?81fc","webpack:///./@core/components/AppDatatable.vue?fa4e","webpack:///./@core/components/AppDatatable.vue","webpack:///./@core/components/AppDatatable.vue?a0c0","webpack:///./@core/components/AppDatatable.vue?89f0","webpack:///./@core/components/AppCurrencyNA.vue?af5e","webpack:///./@core/components/AppSignatureBox.vue?a3b5","webpack:///./@core/pages/signatures/api/services/SignaturesService.ts","webpack:///./@core/components/AppSignatureBox.vue","webpack:///./@core/components/AppSignatureBox.vue?a2e4","webpack:///./@core/components/AppSignatureBox.vue?bc82","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","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///./node_modules/signature_pad/src/point.ts","webpack:///./node_modules/signature_pad/src/throttle.ts","webpack:///./node_modules/signature_pad/src/bezier.ts","webpack:///./@core/tools/CustomSignaturePad.ts"],"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","staticClass","_v","errors","_l","error","key","_s","_e","isCurrentUser","isUserSignatureEnabled","on","$event","showSignPad","attrs","userStructure","user","systemStructure","userSystem","loading","productPrincipalColumns","productPrincipalRows","rowClick","userGroupsColumns","userGroupsRows","isModalVisible","slot","productPrincipalStructure","productPrincipal","saveAdviserCode","staticRenderFns","userStore","PrincipalMeta","label","field","representativeBranch","$route","params","userOid","$store","getters","currentUser","accountID","sharedVariable","sysInfo","user_signature","_oid","isSuperUser","productPrincipals","getFullList","map","emit","disabled","value","tooltip","placement","class","effect","style","content","icon","model","get","projectSettings","useNewCommissionModule","adviserBranch","set","val","classes","others","adviserProducts","includes","SystemRoleOptions","saveProductPrincipal","groups","userGroup","accountId","names","role","redirect","oldPassword","newPassword","systemrole","confirmPassword","row","sign","$api","signature","upsert","then","res","alert","catch","validatePassword","saveUser","savePassword","findMemberInStructure","fetchPrincipalList","fetchRepresentativeBranch","$parent","$on","onSubmit","State","Action","components","AppForm","AppRadioSelection","AppSignatureBox","AppDatatable","TheUserNavi","AppDialog","component","fullname","email","isBscReviewer","section","path","name","oid","scopedSlots","_u","fn","ref","href","isActive","$router","required","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","requestBody","method","body","memberId","accountOid","show","directives","rawName","expression","currentPageData","hasNoError","selectionKey","tableRowClassName","sortChange","handleSelection","column","sortable","scope","modifiers","$$selectedVal","Array","filter","target","o","selected","_value","$set","multiple","handleCustomEvent","option","domProps","_n","$forceUpdate","decimal","convertToCurrency","_t","button","$emit","shouldDisabled","stopPropagation","infoFrom","infoTo","total","currentPage","pageSizesDisplay","pageSize","pageChange","handleSizeChange","pageSizes","sortBy","prop","data","order","sizes","lastSize","round","search","searchKeyword","trim","filters","JSON","stringify","filteredData","sort","a","b","sortedData","slice","every","window","location","rows","appdatatable","$refs","clearSelection","currencySymbol","Number","toLocaleString","minimumFractionDigits","maximumFractionDigits","clearCheckboxOnHeader","default","AppDecimalNumber","_m","footerBtn","hasOwnProperty","clearSignature","triggerSave","signaturePad","userSignature","clear","noSigned","isEmpty","uiService","message","signatureData","toDataURL","canvas","document","querySelector","maxWidth","addEventListener","ev","detail","setSignature","fetchUserSignature","retrieveUserSignature","signData","fromDataURL","console","log","findOne","uniqNoSet","arr","ret","indexOf","uniqSet","seen","Set","el","has","add","uniqSetWithForEach","forEach","doesForEachActuallyWork","structure","shouldShow","getCustomClass","hasErrors","focusId","getId","focusInner","getTestId","labelModelValue","labelModel","labelKey","composing","eidx","msg","full","fullErr","optionCols","multiLimit","buttonName","cycleMode","displayDirection","setValue","blurHandler","getValue","checkboxColumnNo","compact","isMyInfo","getLabelId","setSelectValue","maxChar","currencyFormat","precision","futureDate","disabledFutureDate","isVertical","maxSize","columns","getValueForTable","remove","maxLength","counterMsg","isModernTheme","maxlength","numberAndNAOnly","onBlur","onFocus","onSelect","inputModal","textIsSelected","number","convertCurrencyToNumber","remainingChar","evt","event","charCode","which","keyCode","currentValue","isAlphabetN","isNonNumber","preventDefault","charCodeAt","isAlphabetA","formatValue","isNaN","source","useCurrency","currencyPrefix","currency","replaceAll","projectInfo","inputValue","minimal","structures","charLeft","getCharLeft","getCounterMsg","gridTemplateColumns","theme","condition","readOnly","Function","input","oriValue","String","labelValue","selectedOption","selectedIndex","onChange","ex","uniqueID","snakeCaseKey","curAppForm","$el","hasOverflow","scrollWidth","clientWidth","eleId","ele","getElementById","focus","mc","swe","first","find","s","scrollIntoView","behavior","block","arrangeCols","Date","now","deep","AppSmartSelect","AppCheckboxGroup","AppDateInput","AppFormTable","AppCurrencyNA","AppTooltip","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","isArray","unsupportedIterableToArray","F","n","f","TypeError","normalCompletion","didErr","step","next","_e2","time","start","sqrt","pow","other","distanceTo","throttle","storedContext","storedArgs","wait","previous","timeout","later","apply","remaining","args","clearTimeout","setTimeout","startPoint","control2","control1","endPoint","startWidth","endWidth","px","py","steps","t","cx","point","cy","xdiff","ydiff","c1","c2","end","points","widths","calculateControlPoints","c3","Bezier","s1","s2","s3","dx1","dy1","dx2","dy2","m1","m2","l1","l2","dxm","dym","k","cm","tx","ty","_handleMouseDown","_mouseButtonDown","_strokeBegin","_handleMouseMove","_strokeMoveUpdate","_handleMouseUp","_strokeEnd","_handleTouchStart","targetTouches","touch","changedTouches","_handleTouchMove","_handleTouchEnd","wasCanvasTouched","velocityFilterWeight","minWidth","minDistance","dotSize","penColor","backgroundColor","onBegin","onEnd","SignaturePad","_strokeUpdate","_ctx","getContext","ctx","fillStyle","clearRect","width","height","fillRect","_data","_reset","_isEmpty","dataUrl","callback","image","Image","ratio","devicePixelRatio","onload","drawImage","onerror","src","encoderOptions","_toSVG","touchAction","msTouchAction","PointerEvent","_handlePointerEvents","_handleMouseEvents","_handleTouchEvents","removeEventListener","pointGroups","_fromData","color","curve","_drawCurve","_drawDot","newPointGroup","clientX","clientY","_createPoint","lastPointGroup","lastPoints","lastPoint","isLastPointTooClose","_addPoint","_lastPoints","_lastVelocity","_lastWidth","rect","getBoundingClientRect","left","top","getTime","unshift","_calculateCurveWidths","fromPoints","shift","velocity","velocityFrom","newWidth","_strokeWidth","max","moveTo","arc","PI","widthDelta","drawSteps","beginPath","tt","ttt","u","uu","uuu","min","_drawCurveSegment","closePath","fill","drawCurve","drawDot","group","j","basicPoint","minX","minY","maxX","maxY","svg","createElementNS","setAttribute","createElement","attr","toFixed","appendChild","circle","prefix","header","innerHTML","dummy","nodes","childNodes","cloneNode","footer","btoa"],"mappings":"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","file":"js/chunk-39ce40e8.51c159a3.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!./UserProfileSummary.vue?vue&type=style&index=0&id=6c8b36c2&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","\"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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-profile-summary\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"User Details\")]),_c('div',{staticClass:\"errors\"},[(_vm.errors.length)?_c('p',[_c('b',[_vm._v(\"Please correct the following error(s):\")]),_c('ul',_vm._l((_vm.errors),function(error,index){return _c('li',{key:index},[_vm._v(_vm._s(error))])}),0)]):_vm._e()]),(_vm.isUserSignatureEnabled)?void 0:_vm._e(),_c('div',{staticClass:\"form-body\"},[(_vm.isCurrentUser && _vm.isUserSignatureEnabled)?_c('button',{staticClass:\"update-sign btn-default\",on:{\"click\":function($event){_vm.showSignPad=true}}},[_vm._v(\"Update My Signature\")]):_vm._e(),_c('AppForm',{attrs:{\"structures\":_vm.userStructure,\"model\":_vm.user}})],1),_c('div',{staticClass:\"title\"},[_vm._v(\"System Details\")]),_c('div',{staticClass:\"form-body\"},[_c('AppForm',{attrs:{\"structures\":_vm.systemStructure,\"model\":_vm.userSystem}})],1),_c('div',{staticClass:\"title\"},[_vm._v(\"Product Principal\")]),_c('AppDatatable',{attrs:{\"loading\":_vm.loading,\"columns\":_vm.productPrincipalColumns,\"data\":_vm.productPrincipalRows,\"sort\":{},\"show\":true},on:{\"rowClickCustom\":_vm.rowClick}}),_c('div',{staticClass:\"title\"},[_vm._v(\"User Groups\")]),_c('AppDatatable',{attrs:{\"loading\":_vm.loading,\"columns\":_vm.userGroupsColumns,\"data\":_vm.userGroupsRows,\"sort\":{},\"show\":true}}),(_vm.isModalVisible)?_c('AppDialog',{on:{\"close\":function($event){_vm.isModalVisible = false}}},[_c('template',{slot:\"header\"},[_vm._v(\"Add/ Edit Advisor Code\")]),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('AppForm',{attrs:{\"structures\":_vm.productPrincipalStructure,\"model\":_vm.productPrincipal}})],1),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn-default\",on:{\"click\":_vm.saveAdviserCode}},[_vm._v(\"Save\")])])],2):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* eslint-disable @typescript-eslint/camelcase */\nimport { Component, Vue } from 'vue-property-decorator'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport TheUserNavi from '@core/components/TheUserNavi.vue'\nimport API from '@core/services/API'\nimport { inject } from 'inversify-props'\nimport AppForm from '@core/components/AppForm.vue'\nimport AppRadioSelection from '@core/components/AppRadioSelection.vue'\nimport AppSignatureBox from '@core/components/AppSignatureBox.vue'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport { UserMeta } from '@core/model/common/UserMeta'\nimport { namespace } from 'vuex-class'\nimport { PrincipalMetaList } from '@core/model/common/PrincipalMetaList'\nimport { PrincipalMeta } from '@core/model/common/PrincipalMeta'\nimport { SharedVariable } from '@core/model/SharedVariable'\nimport { IProjectSettings } from '@master/config/IProjectSettings'\nimport { AccountStructureMemberService } from '../api'\nimport { UserAdviserDetailsMeta } from './user-adviser-details-components/model/UserAdviserDetailsMeta'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport { YesNoOptions } from '@master/model/options/DefaultOptions'\nimport { SystemRoleOptions } from '@master/model/options/SystemRoleOptions'\nimport { PicodedAccount } from '@core/pages/account/model/PicodedAccountDTO'\n\nconst userStore = namespace('UserStore')\n\n@Component({\n components: {\n AppForm,\n AppRadioSelection,\n AppSignatureBox,\n AppDatatable,\n TheUserNavi,\n AppDialog\n }\n})\nexport default class UserProfileSummary extends Vue {\n @inject()\n private projectSettings: IProjectSettings\n\n @inject()\n private $api: API\n\n @inject()\n private sharedVariable: SharedVariable\n\n @userStore.State\n private loading: boolean\n\n @userStore.State\n private user: UserMeta\n\n @userStore.State\n userSystem: PicodedAccount\n\n @userStore.State\n private userAdviserDetails: UserAdviserDetailsMeta\n\n @userStore.State\n private productPrincipals: PrincipalMetaList\n\n @userStore.Action\n private saveUser: () => Promise\n\n @userStore.Action\n private savePassword: () => Promise\n\n @userStore.Action\n private fetchPrincipalList: () => Promise\n\n @userStore.Action\n private saveProductPrincipal: (principal: PrincipalMeta) => Promise\n\n private isModalVisible = false;\n private showSignPad = false;\n\n private productPrincipal: PrincipalMeta = new PrincipalMeta()\n\n private productPrincipalColumns: Array<{ label: string; field: keyof PrincipalMeta }> = [\n { label: 'Company Name', field: 'companyDetailsName' },\n { label: 'Company Code', field: 'companyDetailsCode' },\n { label: 'Representative Code', field: 'adviserCode' }\n ];\n\n private userGroupsColumns: Array = [\n { label: 'Group Name', field: 'names' },\n { label: 'Group Role', field: 'role' }\n ];\n\n private errors = [];\n\n private representativeBranch = ''\n\n get userOid (): string {\n return this.$route.params.userOid as string || this.$store.getters.currentUser.accountID\n }\n\n get isUserSignatureEnabled () {\n return this.sharedVariable.sysInfo?.user_signature\n }\n\n get isCurrentUser () {\n return this.$store.getters.currentUser._oid === this.$route.params.userOid\n }\n\n get isSuperUser () {\n return this.$store.getters.currentUser.isSuperUser\n }\n\n get productPrincipalRows () {\n return this.productPrincipals.getFullList().map(e => ({ ...e, emit: true }))\n }\n\n // isLockedField (key: string): boolean {\n // const listOfLockedFields = this.userAdviserDetails.myinfoLockedFieldsClient.map(e => camelCase(e))\n // return listOfLockedFields.includes(key)\n // }\n\n get userStructure (): FormStructure {\n return [\n {\n label: 'Full Name',\n key: 'fullname',\n disabled: !this.isSuperUser // || this.isLockedField('fullname')\n },\n {\n label: 'System Role',\n key: 'systemrole',\n options: [\n { label: 'Adviser', value: 'adviser' },\n { label: 'Supervisor', value: 'supervisor' },\n { label: 'Director', value: 'director' },\n { label: 'Ops-Staff', value: 'ops-staff' },\n { label: 'Product Admin', value: 'product-admin' },\n { label: 'BSC Reviewer', value: 'bsc-reviewer' }\n ],\n disabled: !this.isSuperUser\n },\n {\n label: 'Old Password',\n key: 'oldPassword',\n type: 'password'\n },\n {\n label: 'New Password',\n key: 'newPassword',\n type: 'password',\n tooltip: {\n placement: 'right',\n class: 'item tooltip',\n effect: 'light',\n style: 'font-size: 18px; margin-left: 0.25rem;',\n content: `Criteria for accepted password:
\n At least 8 characters
\n 1 special character
\n 1 number
\n 1 uppercase
\n 1 lowercase
`\n },\n icon: {\n class: 'el-icon-info'\n }\n },\n {\n label: 'Confirm New Password',\n key: 'confirmPassword',\n type: 'password'\n },\n {\n label: 'Email',\n key: 'email',\n disabled: !this.isSuperUser // || this.isLockedField('email')\n },\n {\n label: 'Mobile No.',\n key: 'mobile',\n disabled: !this.isSuperUser // || this.isLockedField('mobile')\n },\n {\n label: 'Company Code',\n key: 'companyCode',\n disabled: !this.isSuperUser\n },\n {\n label: 'RNF Number',\n key: 'masRepno',\n disabled: !this.isSuperUser\n },\n {\n label: 'Representative Branch',\n model: {\n get: () => {\n if (this.projectSettings.useNewCommissionModule) {\n return this.representativeBranch\n }\n\n return this.user.adviserBranch\n },\n set: (val) => {\n this.user.adviserBranch = val\n }\n },\n disabled: !this.isSuperUser || this.projectSettings.useNewCommissionModule\n },\n {\n label: 'Account Status',\n key: 'status',\n options: [\n { label: '', value: '' },\n { label: 'Active', value: 'active' },\n { label: 'Inactive', value: 'inactive' }\n ],\n disabled: !this.isSuperUser\n },\n {\n label: 'ID Doc. Type',\n key: 'idDocType',\n options: [\n { label: '', value: '' },\n { label: 'Identity Card - Pink', value: 'ic-pink' },\n { label: 'Identity Card - Blue', value: 'ic-blue' },\n { label: 'Other', value: 'others' }\n ],\n disabled: !this.isSuperUser\n },\n {\n label: 'ID No.',\n key: 'idNumber',\n disabled: !this.isSuperUser // || this.isLockedField('idNumber')\n },\n {\n label: 'With Experience',\n key: 'withExp',\n type: 'radio',\n options: YesNoOptions,\n disabled: !this.isSuperUser\n },\n {\n label: 'Product Type',\n key: 'adviserProducts',\n classes: ['colspan'],\n type: 'checkbox',\n options: [\n { label: 'Life Insurance', value: 'lifeinsurance' },\n { label: 'Investment-Linked Plans', value: 'investmentlinkedplans' },\n {\n label: 'Collective Investment Schemes (i.e. Unit Trust)',\n value: 'unittrusts'\n },\n { label: 'Accident & Health Plans', value: 'accidentandhealthplans' },\n { label: 'General Insurance', value: 'generalinsurance' },\n { label: 'Securities', value: 'securities' },\n {\n label: 'Others',\n value: 'others',\n others: {\n key: 'otherAdviserProducts',\n disabled: this.user.adviserProducts && !this.user.adviserProducts.includes('others')\n }\n }\n ],\n disabled: !this.isSuperUser\n }\n ]\n }\n\n get systemStructure (): FormStructure {\n return [\n // {\n // label: 'Username',\n // key: 'username',\n // disabled: !this.isSuperUser,\n // show: this.isSuperUser\n // },\n {\n label: 'System Role',\n key: 'systemrole',\n options: SystemRoleOptions,\n disabled: !this.isSuperUser\n },\n {\n label: 'Account Status',\n key: 'status',\n options: [\n { label: '', value: '' },\n { label: 'Active', value: 'active' },\n { label: 'Inactive', value: 'inactive' }\n ],\n disabled: !this.isSuperUser\n },\n {\n label: 'Old Password',\n key: 'oldPassword',\n type: 'password'\n },\n {\n label: 'New Password',\n key: 'newPassword',\n type: 'password',\n tooltip: {\n placement: 'right',\n class: 'item tooltip',\n effect: 'light',\n style: 'font-size: 18px; margin-left: 0.25rem;',\n content: `Criteria for accepted password:
\n At least 8 characters
\n 1 special character
\n 1 number
\n 1 uppercase
\n 1 lowercase
`\n },\n icon: {\n class: 'el-icon-info'\n }\n },\n {\n label: 'Confirm New Password',\n key: 'confirmPassword',\n type: 'password'\n }\n ]\n }\n\n get productPrincipalStructure (): FormStructure {\n return [\n {\n label: 'Company Name',\n key: 'companyDetailsName',\n disabled: true\n },\n {\n label: 'Company Code',\n key: 'companyDetailsCode',\n disabled: true\n },\n {\n label: 'Representative Code',\n key: 'adviserCode'\n }\n ]\n }\n\n async saveAdviserCode () {\n await this.saveProductPrincipal(this.productPrincipal)\n this.isModalVisible = false\n }\n\n get userGroupsRows () {\n return this.user.groups.map((userGroup) => {\n return {\n accountId: userGroup.accountID,\n names: userGroup.names[0],\n role: userGroup.role,\n redirect: '/live/group-profile/' + userGroup.accountID\n }\n })\n }\n\n validatePassword (): void {\n this.errors = []\n if (\n !this.user.oldPassword &&\n this.user.newPassword &&\n this.user.systemrole !== 'ops-staff'\n ) {\n this.errors.push('Old Password cannot be blank')\n return\n }\n if (\n this.user.oldPassword &&\n this.user.newPassword &&\n !this.user.confirmPassword\n ) {\n this.errors.push('Confirm Password cannot be blank')\n return\n }\n if (\n this.user.oldPassword &&\n this.user.confirmPassword !== this.user.newPassword\n ) {\n this.errors.push('Both passwords do not match')\n }\n }\n\n rowClick (row: PrincipalMeta): void {\n if (this.isSuperUser) {\n this.isModalVisible = true\n this.productPrincipal = row\n }\n }\n\n saveSignature (sign) {\n this.$api.signature.upsert({\n signature: sign\n }).then(res => {\n if (res.error) return alert(res.error)\n this.showSignPad = false\n }).catch(err =>\n alert(err)\n )\n }\n\n async onSubmit () {\n this.validatePassword()\n if (!this.errors.length) {\n if (!this.userSystem.newPassword) {\n this.saveUser()\n return\n }\n this.savePassword()\n }\n }\n\n async fetchRepresentativeBranch () {\n const res = await AccountStructureMemberService.findMemberInStructure(this.userOid)\n this.representativeBranch = res.length > 0 ? res[res.length - 1] : ''\n }\n\n async mounted () {\n await this.fetchPrincipalList()\n\n if (this.projectSettings.useNewCommissionModule) {\n await this.fetchRepresentativeBranch()\n }\n }\n\n async created () {\n this.$parent.$on('save', this.onSubmit)\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!./UserProfileSummary.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!./UserProfileSummary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserProfileSummary.vue?vue&type=template&id=6c8b36c2&scoped=true&\"\nimport script from \"./UserProfileSummary.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserProfileSummary.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserProfileSummary.vue?vue&type=style&index=0&id=6c8b36c2&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 \"6c8b36c2\",\n null\n \n)\n\nexport default component.exports","module.exports = require(\"./lib/randomstring\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSignatureBox.vue?vue&type=style&index=0&lang=scss&\"","import { options } from './Options'\n\nexport const SystemRoleOptions: options[] = [\n { label: 'Adviser', value: 'adviser' },\n { label: 'Supervisor', value: 'supervisor' },\n { label: 'Director', value: 'director' },\n { label: 'Ops-Staff', value: 'ops-staff' },\n { label: 'Product Admin', value: 'product-admin' },\n { label: 'BSC Reviewer', value: 'bsc-reviewer' }\n]\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-navi\",attrs:{\"id\":\"host\"}},[_c('div',{staticClass:\"user-profile\"},[_c('span',{staticClass:\"user-fullname\"},[_vm._v(_vm._s(_vm.user.fullname))]),_c('p',[_vm._v(_vm._s(_vm.user.email))]),_c('p',[_vm._v(_vm._s(_vm.user.systemrole))])]),(!_vm.isBscReviewer)?_vm._l((_vm.sections),function(section){return _c('router-link',{key:section.path,attrs:{\"to\":{ name: section.name, params: { userOid: _vm.user.oid } }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar href = ref.href;\nvar isActive = ref.isActive;\nreturn [_c('div',{staticClass:\"navi-section\"},[_c('a',{attrs:{\"active\":isActive,\"href\":href}},[_vm._v(_vm._s(section.name))])])]}}],null,true)})}):_vm._e()],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\nimport { IProjectSettings } from '@master/config/IProjectSettings'\nimport { inject } from 'inversify-props'\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { getChildSections } from '../pages/userProfile/route/index'\n\ninterface User {\n oid: string;\n fullname: string;\n systemrole: string;\n email: string;\n}\n@Component\nexport default class TheUserNavi extends Vue {\n @inject()\n private projectSettings: IProjectSettings\n\n @Prop({ required: true }) readonly user!: User\n\n get isBscReviewer () {\n return this.$store.getters.currentUser.systemrole === 'bsc-reviewer'\n }\n\n get currentUser () {\n return this.$store.getters.currentUser\n }\n\n get sections () {\n // return this.$router.options.routes.find(route => route.name === 'User Profile Main')?.children || []\n return getChildSections(this.currentUser.systemrole, this.$router) || []\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!./TheUserNavi.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!./TheUserNavi.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheUserNavi.vue?vue&type=template&id=15571f70&scoped=true&\"\nimport script from \"./TheUserNavi.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheUserNavi.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheUserNavi.vue?vue&type=style&index=0&id=15571f70&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 \"15571f70\",\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","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { AddMemberDTO } from '../models/AddMemberDTO';\nimport { request as __request } from '@openapi/request';\n\nexport class AccountStructureMemberService {\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async addMember(\n requestBody: AddMemberDTO,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/account-structure/member`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param memberId\n * @returns any\n * @throws ApiError\n */\n public static async deleteMember(\n memberId: number,\n ): Promise {\n const result = await __request({\n method: 'DELETE',\n path: `/live/api/account-structure/member/${memberId}`,\n });\n return result.body;\n }\n\n /**\n * @param accountOid\n * @returns string\n * @throws ApiError\n */\n public static async findMemberInStructure(\n accountOid: string,\n ): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/account-structure/member/find/${accountOid}`,\n });\n return result.body;\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&\"","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!./TheUserNavi.vue?vue&type=style&index=0&id=15571f70&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&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"signaturePad\",class:{ show : _vm.showSignPad },on:{\"click\":function($event){return _vm.$emit('hide')}}},[_c('div',{staticClass:\"signatureBox\",class:{ show : _vm.showSignPad },on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"signatureModal signatureHeader\"},[_vm._t(\"header\",function(){return [_c('span',[_vm._v(\"Signature\")])]}),_c('button',{staticClass:\"btn-close\",on:{\"click\":function($event){return _vm.$emit('hide')}}},[_c('i',{staticClass:\"fas fa-times\"})])],2),_c('div',{staticClass:\"signatureModal signatureBody\"},[_vm._t(\"backdrop\"),_vm._m(0),_c('span',[_vm._v(\"Please Sign Within the Box\")])],2),_c('div',{staticClass:\"signatureModal signatureFooter\"},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.footerBtn.hasOwnProperty('clear')),expression:\"footerBtn.hasOwnProperty('clear')\"}],staticClass:\"signatureBtn clear\",on:{\"click\":_vm.clearSignature}},[_vm._v(\"Clear\")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.footerBtn.hasOwnProperty('cancel')),expression:\"footerBtn.hasOwnProperty('cancel')\"}],staticClass:\"signatureBtn cancel\",on:{\"click\":function($event){return _vm.$emit('hide')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"signatureBtn save\",on:{\"click\":_vm.triggerSave}},[_vm._v(\"Save\")])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"signaturePadLine\"},[_c('canvas',{attrs:{\"width\":\"398\",\"height\":\"198\"}})])}]\n\nexport { render, staticRenderFns }","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { UpdateSignatureDto } from '../models/UpdateSignatureDto';\nimport { request as __request } from '@openapi/request';\n\nexport class SignaturesService {\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async upsert(\n requestBody: UpdateSignatureDto,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/signatures/upsert`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @returns any\n * @throws ApiError\n */\n public static async findOne(): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/signatures/retrieve`,\n });\n return result.body;\n }\n\n}","\n\n\n\n\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 SignaturePad from '@core/tools/CustomSignaturePad'\nimport { inject } from 'inversify-props'\nimport { UIService } from '@core/services/UIService'\nimport { SharedVariable } from '@core/model/SharedVariable'\nimport API from '@core/services/API'\n// @TODO: This import shouldnt be here but for the sake of time, i put here first\nimport { SignaturesService } from '@core/pages/signatures/api/services/SignaturesService'\n\n@Component({})\nexport default class AppSignatureBox extends Vue {\n @Prop({ default: {} }) readonly footerBtn!: object\n @Prop({ default: false }) readonly showSignPad!: boolean\n @Prop({ default: true }) readonly clearOnShow!: boolean\n @Prop({ default: true }) readonly fetchUserSignature!: boolean\n\n uiService: UIService\n\n @inject()\n private $api: API\n\n @inject()\n private sharedVariable: SharedVariable\n\n private signaturePad = null\n private userSignature = null\n\n clearSignature () {\n if (this.signaturePad) {\n this.userSignature = null\n this.signaturePad.clear()\n }\n }\n\n async triggerSave () {\n const noSigned = this.signaturePad.isEmpty()\n if (noSigned) {\n await this.uiService.alert.show({\n type: 'warning',\n message: 'No signature is detected! Please try again!'\n })\n return\n // NOTE : do not allow overwrite signature with blank canvas as this causes complication in checking whether signature is done\n // if (confirm('No signature is detected!\\nClick CANCEL to try again\\nClick OK to save ( remove existing signature if any ).')) {\n // this.saveSignature(noSigned)\n // }\n }\n if (this.userSignature) return this.$emit('save', this.userSignature)\n const signatureData = this.signaturePad.toDataURL('image/svg+xml')\n this.$emit('save', signatureData) // return the signature data for parent to handle\n }\n\n mounted () {\n // take injected UIService and set it to local\n this.uiService = this.sharedVariable.uiService\n\n const canvas = document.querySelector('.signaturePadLine canvas') as HTMLCanvasElement\n if (canvas) {\n this.signaturePad = new SignaturePad(canvas, {\n maxWidth: 3\n })\n // for automated testing (sign programatically)\n canvas.addEventListener('fromDataURL', (ev) => {\n const signature = (ev as CustomEvent).detail\n if (signature) this.setSignature(signature)\n })\n }\n }\n\n @Watch('showSignPad')\n async prepSignPad (show) {\n if (show) {\n this.clearSignature()\n if (this.fetchUserSignature) await this.retrieveUserSignature()\n }\n }\n\n setSignature (signData) {\n this.userSignature = signData\n this.signaturePad.fromDataURL(signData)\n }\n\n async retrieveUserSignature () {\n console.log(this.sharedVariable?.sysInfo?.user_signature)\n if (!this.sharedVariable?.sysInfo?.user_signature) return\n const signature = await SignaturesService.findOne()\n this.setSignature(signature)\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!./AppSignatureBox.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!./AppSignatureBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSignatureBox.vue?vue&type=template&id=fff0d5dc&\"\nimport script from \"./AppSignatureBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSignatureBox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppSignatureBox.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'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","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","// Interface for point data structure used e.g. in SignaturePad#fromData method\nexport interface BasicPoint {\n x: number;\n y: number;\n time: number;\n}\n\nexport class Point implements BasicPoint {\n public time: number;\n\n constructor(public x: number, public y: number, time?: number) {\n this.time = time || Date.now();\n }\n\n public distanceTo(start: BasicPoint): number {\n return Math.sqrt(\n Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2),\n );\n }\n\n public equals(other: BasicPoint): boolean {\n return this.x === other.x && this.y === other.y && this.time === other.time;\n }\n\n public velocityFrom(start: BasicPoint): number {\n return this.time !== start.time\n ? this.distanceTo(start) / (this.time - start.time)\n : 0;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n// Slightly simplified version of http://stackoverflow.com/a/27078401/815507\n\nexport function throttle(\n fn: (...args: any[]) => any,\n wait = 250,\n): (this: any, ...args: any[]) => any {\n let previous = 0;\n let timeout: number | null = null;\n let result: any;\n let storedContext: any;\n let storedArgs: any[];\n\n const later = (): void => {\n previous = Date.now();\n timeout = null;\n result = fn.apply(storedContext, storedArgs);\n\n if (!timeout) {\n storedContext = null;\n storedArgs = [];\n }\n };\n\n return function wrapper(this: any, ...args: any[]): any {\n const now = Date.now();\n const remaining = wait - (now - previous);\n\n storedContext = this;\n storedArgs = args;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = fn.apply(storedContext, storedArgs);\n\n if (!timeout) {\n storedContext = null;\n storedArgs = [];\n }\n } else if (!timeout) {\n timeout = window.setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n","import { BasicPoint, Point } from './point';\n\nexport class Bezier {\n public static fromPoints(\n points: Point[],\n widths: { start: number; end: number },\n ): Bezier {\n const c2 = this.calculateControlPoints(points[0], points[1], points[2]).c2;\n const c3 = this.calculateControlPoints(points[1], points[2], points[3]).c1;\n\n return new Bezier(points[1], c2, c3, points[2], widths.start, widths.end);\n }\n\n private static calculateControlPoints(\n s1: BasicPoint,\n s2: BasicPoint,\n s3: BasicPoint,\n ): {\n c1: BasicPoint;\n c2: BasicPoint;\n } {\n const dx1 = s1.x - s2.x;\n const dy1 = s1.y - s2.y;\n const dx2 = s2.x - s3.x;\n const dy2 = s2.y - s3.y;\n\n const m1 = { x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0 };\n const m2 = { x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0 };\n\n const l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n const l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2);\n\n const dxm = m1.x - m2.x;\n const dym = m1.y - m2.y;\n\n const k = l2 / (l1 + l2);\n const cm = { x: m2.x + dxm * k, y: m2.y + dym * k };\n\n const tx = s2.x - cm.x;\n const ty = s2.y - cm.y;\n\n return {\n c1: new Point(m1.x + tx, m1.y + ty),\n c2: new Point(m2.x + tx, m2.y + ty),\n };\n }\n\n constructor(\n public startPoint: Point,\n public control2: BasicPoint,\n public control1: BasicPoint,\n public endPoint: Point,\n public startWidth: number,\n public endWidth: number,\n ) {}\n\n // Returns approximated length. Code taken from https://www.lemoda.net/maths/bezier-length/index.html.\n public length(): number {\n const steps = 10;\n let length = 0;\n let px;\n let py;\n\n for (let i = 0; i <= steps; i += 1) {\n const t = i / steps;\n const cx = this.point(\n t,\n this.startPoint.x,\n this.control1.x,\n this.control2.x,\n this.endPoint.x,\n );\n const cy = this.point(\n t,\n this.startPoint.y,\n this.control1.y,\n this.control2.y,\n this.endPoint.y,\n );\n\n if (i > 0) {\n const xdiff = cx - (px as number);\n const ydiff = cy - (py as number);\n\n length += Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n }\n\n px = cx;\n py = cy;\n }\n\n return length;\n }\n\n // Calculate parametric value of x or y given t and the four point coordinates of a cubic bezier curve.\n private point(\n t: number,\n start: number,\n c1: number,\n c2: number,\n end: number,\n ): number {\n // prettier-ignore\n return ( start * (1.0 - t) * (1.0 - t) * (1.0 - t))\n + (3.0 * c1 * (1.0 - t) * (1.0 - t) * t)\n + (3.0 * c2 * (1.0 - t) * t * t)\n + ( end * t * t * t);\n }\n}\n","import { Point, BasicPoint } from 'signature_pad/src/point'\nimport { throttle } from 'signature_pad/src/throttle'\nimport { Bezier } from 'signature_pad/src/bezier'\n\ndeclare global {\n interface CSSStyleDeclaration {\n msTouchAction: string;\n }\n}\n\nexport interface Options {\n dotSize?: number | (() => number);\n minWidth?: number;\n maxWidth?: number;\n minDistance?: number;\n backgroundColor?: string;\n penColor?: string;\n throttle?: number;\n velocityFilterWeight?: number;\n onBegin?: (event: MouseEvent | Touch) => void;\n onEnd?: (event: MouseEvent | Touch) => void;\n}\n\nexport interface PointGroup {\n color: string;\n points: BasicPoint[];\n}\n\nexport default class SignaturePad {\n // Public stuff\n public dotSize: number | (() => number)\n public minWidth: number\n public maxWidth: number\n public minDistance: number\n public backgroundColor: string\n public penColor: string\n public throttle: number\n public velocityFilterWeight: number\n public onBegin?: (event: MouseEvent | Touch) => void\n public onEnd?: (event: MouseEvent | Touch) => void\n\n // Private stuff\n /* tslint:disable: variable-name */\n private _ctx: CanvasRenderingContext2D\n private _mouseButtonDown: boolean\n private _isEmpty: boolean\n private _lastPoints: Point[] // Stores up to 4 most recent points used to generate a new curve\n private _data: PointGroup[] // Stores all points in groups (one group per line or dot)\n private _lastVelocity: number\n private _lastWidth: number\n private _strokeMoveUpdate: (event: MouseEvent | Touch) => void\n /* tslint:enable: variable-name */\n\n constructor (\n private canvas: HTMLCanvasElement,\n private options: Options = {}\n ) {\n this.velocityFilterWeight = options.velocityFilterWeight || 0.7\n this.minWidth = options.minWidth || 0.5\n this.maxWidth = options.maxWidth || 2.5\n this.throttle = ('throttle' in options ? options.throttle : 16) as number // in milisecondss\n this.minDistance = ('minDistance' in options\n ? options.minDistance\n : 5) as number // in pixels\n this.dotSize =\n options.dotSize ||\n function dotSize (this: SignaturePad): number {\n return (this.minWidth + this.maxWidth) / 2\n }\n this.penColor = options.penColor || 'black'\n this.backgroundColor = options.backgroundColor || 'rgba(0,0,0,0)'\n this.onBegin = options.onBegin\n this.onEnd = options.onEnd\n\n this._strokeMoveUpdate = this.throttle\n ? throttle(SignaturePad.prototype._strokeUpdate, this.throttle)\n : SignaturePad.prototype._strokeUpdate\n this._ctx = canvas.getContext('2d') as CanvasRenderingContext2D\n\n this.clear()\n\n // Enable mouse and touch event handlers\n this.on()\n }\n\n public clear (): void {\n const { _ctx: ctx, canvas } = this\n\n // Clear canvas using background color\n ctx.fillStyle = this.backgroundColor\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n this._data = []\n this._reset()\n this._isEmpty = true\n }\n\n public fromDataURL (\n dataUrl: string,\n options: { ratio?: number; width?: number; height?: number } = {},\n callback?: (error?: string | Event) => void\n ): void {\n const image = new Image()\n const ratio = options.ratio || window.devicePixelRatio || 1\n const width = options.width || this.canvas.width / ratio\n const height = options.height || this.canvas.height / ratio\n\n this._reset()\n\n image.onload = (): void => {\n this._ctx.drawImage(image, 0, 0, width, height)\n if (callback) {\n callback()\n }\n }\n image.onerror = (error): void => {\n if (callback) {\n callback(error)\n }\n }\n image.src = dataUrl\n\n this._isEmpty = false\n }\n\n public toDataURL (type = 'image/png', encoderOptions?: number): string {\n switch (type) {\n case 'image/svg+xml':\n return this._toSVG()\n default:\n return this.canvas.toDataURL(type, encoderOptions)\n }\n }\n\n public on (): void {\n // Disable panning/zooming when touching canvas element\n this.canvas.style.touchAction = 'none'\n this.canvas.style.msTouchAction = 'none'\n\n if (window.PointerEvent) {\n this._handlePointerEvents()\n } else {\n this._handleMouseEvents()\n\n if ('ontouchstart' in window) {\n this._handleTouchEvents()\n }\n }\n }\n\n public off (): void {\n // Enable panning/zooming when touching canvas element\n this.canvas.style.touchAction = 'auto'\n this.canvas.style.msTouchAction = 'auto'\n\n this.canvas.removeEventListener('pointerdown', this._handleMouseDown)\n this.canvas.removeEventListener('pointermove', this._handleMouseMove)\n document.removeEventListener('pointerup', this._handleMouseUp)\n\n this.canvas.removeEventListener('mousedown', this._handleMouseDown)\n this.canvas.removeEventListener('mousemove', this._handleMouseMove)\n document.removeEventListener('mouseup', this._handleMouseUp)\n\n this.canvas.removeEventListener('touchstart', this._handleTouchStart)\n this.canvas.removeEventListener('touchmove', this._handleTouchMove)\n this.canvas.removeEventListener('touchend', this._handleTouchEnd)\n }\n\n public isEmpty (): boolean {\n return this._isEmpty\n }\n\n public fromData (pointGroups: PointGroup[]): void {\n this.clear()\n\n this._fromData(\n pointGroups,\n ({ color, curve }) => this._drawCurve({ color, curve }),\n ({ color, point }) => this._drawDot({ color, point })\n )\n\n this._data = pointGroups\n }\n\n public toData (): PointGroup[] {\n return this._data\n }\n\n // Event handlers\n private _handleMouseDown = (event: MouseEvent): void => {\n if (event.which === 1) {\n this._mouseButtonDown = true\n this._strokeBegin(event)\n }\n }\n\n private _handleMouseMove = (event: MouseEvent): void => {\n if (this._mouseButtonDown) {\n this._strokeMoveUpdate(event)\n }\n }\n\n private _handleMouseUp = (event: MouseEvent): void => {\n if (event.which === 1 && this._mouseButtonDown) {\n this._mouseButtonDown = false\n this._strokeEnd(event)\n }\n }\n\n private _handleTouchStart = (event: TouchEvent): void => {\n // Prevent scrolling.\n event.preventDefault()\n\n if (event.targetTouches.length === 1) {\n const touch = event.changedTouches[0]\n this._strokeBegin(touch)\n }\n }\n\n private _handleTouchMove = (event: TouchEvent): void => {\n // Prevent scrolling.\n event.preventDefault()\n\n const touch = event.targetTouches[0]\n this._strokeMoveUpdate(touch)\n }\n\n private _handleTouchEnd = (event: TouchEvent): void => {\n const wasCanvasTouched = event.target === this.canvas\n if (wasCanvasTouched) {\n event.preventDefault()\n\n const touch = event.changedTouches[0]\n this._strokeEnd(touch)\n }\n }\n\n // Private methods\n private _strokeBegin (event: MouseEvent | Touch): void {\n const newPointGroup = {\n color: this.penColor,\n points: []\n }\n\n if (typeof this.onBegin === 'function') {\n this.onBegin(event)\n }\n\n this._data.push(newPointGroup)\n this._reset()\n this._strokeUpdate(event)\n }\n\n private _strokeUpdate (event: MouseEvent | Touch): void {\n if (this._data.length === 0) {\n // This can happen if clear() was called while a signature is still in progress,\n // or if there is a race condition between start/update events.\n this._strokeBegin(event)\n return\n }\n\n const x = event.clientX\n const y = event.clientY\n\n const point = this._createPoint(x, y)\n const lastPointGroup = this._data[this._data.length - 1]\n const lastPoints = lastPointGroup.points\n const lastPoint =\n lastPoints.length > 0 && lastPoints[lastPoints.length - 1]\n const isLastPointTooClose = lastPoint\n ? point.distanceTo(lastPoint) <= this.minDistance\n : false\n const color = lastPointGroup.color\n\n // Skip this point if it's too close to the previous one\n if (!lastPoint || !(lastPoint && isLastPointTooClose)) {\n const curve = this._addPoint(point)\n\n if (!lastPoint) {\n this._drawDot({ color, point })\n } else if (curve) {\n this._drawCurve({ color, curve })\n }\n\n lastPoints.push({\n time: point.time,\n x: point.x,\n y: point.y\n })\n }\n }\n\n private _strokeEnd (event: MouseEvent | Touch): void {\n this._strokeUpdate(event)\n\n if (typeof this.onEnd === 'function') {\n this.onEnd(event)\n }\n }\n\n private _handlePointerEvents (): void {\n this._mouseButtonDown = false\n\n this.canvas.addEventListener('pointerdown', this._handleMouseDown)\n this.canvas.addEventListener('pointermove', this._handleMouseMove)\n document.addEventListener('pointerup', this._handleMouseUp)\n }\n\n private _handleMouseEvents (): void {\n this._mouseButtonDown = false\n\n this.canvas.addEventListener('mousedown', this._handleMouseDown)\n this.canvas.addEventListener('mousemove', this._handleMouseMove)\n document.addEventListener('mouseup', this._handleMouseUp)\n }\n\n private _handleTouchEvents (): void {\n this.canvas.addEventListener('touchstart', this._handleTouchStart)\n this.canvas.addEventListener('touchmove', this._handleTouchMove)\n this.canvas.addEventListener('touchend', this._handleTouchEnd)\n }\n\n // Called when a new line is started\n private _reset (): void {\n this._lastPoints = []\n this._lastVelocity = 0\n this._lastWidth = (this.minWidth + this.maxWidth) / 2\n this._ctx.fillStyle = this.penColor\n }\n\n private _createPoint (x: number, y: number): Point {\n const rect = this.canvas.getBoundingClientRect()\n\n return new Point(x - rect.left, y - rect.top, new Date().getTime())\n }\n\n // Add point to _lastPoints array and generate a new curve if there are enough points (i.e. 3)\n private _addPoint (point: Point): Bezier | null {\n const { _lastPoints } = this\n\n _lastPoints.push(point)\n\n if (_lastPoints.length > 2) {\n // To reduce the initial lag make it work with 3 points\n // by copying the first point to the beginning.\n if (_lastPoints.length === 3) {\n _lastPoints.unshift(_lastPoints[0])\n }\n\n // _points array will always have 4 points here.\n const widths = this._calculateCurveWidths(_lastPoints[1], _lastPoints[2])\n const curve = Bezier.fromPoints(_lastPoints, widths)\n\n // Remove the first element from the list, so that there are no more than 4 points at any time.\n _lastPoints.shift()\n\n return curve\n }\n\n return null\n }\n\n private _calculateCurveWidths (\n startPoint: Point,\n endPoint: Point\n ): { start: number; end: number } {\n const velocity =\n this.velocityFilterWeight * endPoint.velocityFrom(startPoint) +\n (1 - this.velocityFilterWeight) * this._lastVelocity\n\n const newWidth = this._strokeWidth(velocity)\n\n const widths = {\n end: newWidth,\n start: this._lastWidth\n }\n\n this._lastVelocity = velocity\n this._lastWidth = newWidth\n\n return widths\n }\n\n private _strokeWidth (velocity: number): number {\n return Math.max(this.maxWidth / (velocity + 1), this.minWidth)\n }\n\n private _drawCurveSegment (x: number, y: number, width: number): void {\n const ctx = this._ctx\n\n ctx.moveTo(x, y)\n ctx.arc(x, y, width, 0, 2 * Math.PI, false)\n this._isEmpty = false\n }\n\n private _drawCurve ({ color, curve }: { color: string; curve: Bezier }): void {\n const ctx = this._ctx\n const widthDelta = curve.endWidth - curve.startWidth\n // '2' is just an arbitrary number here. If only lenght is used, then\n // there are gaps between curve segments :/\n const drawSteps = Math.floor(curve.length()) * 2\n\n ctx.beginPath()\n ctx.fillStyle = color\n\n for (let i = 0; i < drawSteps; i += 1) {\n // Calculate the Bezier (x, y) coordinate for this step.\n const t = i / drawSteps\n const tt = t * t\n const ttt = tt * t\n const u = 1 - t\n const uu = u * u\n const uuu = uu * u\n\n let x = uuu * curve.startPoint.x\n x += 3 * uu * t * curve.control1.x\n x += 3 * u * tt * curve.control2.x\n x += ttt * curve.endPoint.x\n\n let y = uuu * curve.startPoint.y\n y += 3 * uu * t * curve.control1.y\n y += 3 * u * tt * curve.control2.y\n y += ttt * curve.endPoint.y\n\n const width = Math.min(\n curve.startWidth + ttt * widthDelta,\n this.maxWidth\n )\n this._drawCurveSegment(x, y, width)\n }\n\n ctx.closePath()\n ctx.fill()\n }\n\n private _drawDot ({\n color,\n point\n }: {\n color: string;\n point: BasicPoint;\n }): void {\n const ctx = this._ctx\n const width =\n typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize\n\n ctx.beginPath()\n this._drawCurveSegment(point.x, point.y, width)\n ctx.closePath()\n ctx.fillStyle = color\n ctx.fill()\n }\n\n private _fromData (\n pointGroups: PointGroup[],\n drawCurve: SignaturePad['_drawCurve'],\n drawDot: SignaturePad['_drawDot']\n ): void {\n for (const group of pointGroups) {\n const { color, points } = group\n\n if (points.length > 1) {\n for (let j = 0; j < points.length; j += 1) {\n const basicPoint = points[j]\n const point = new Point(basicPoint.x, basicPoint.y, basicPoint.time)\n\n // All points in the group have the same color, so it's enough to set\n // penColor just at the beginning.\n this.penColor = color\n\n if (j === 0) {\n this._reset()\n }\n\n const curve = this._addPoint(point)\n\n if (curve) {\n drawCurve({ color, curve })\n }\n }\n } else {\n this._reset()\n\n drawDot({\n color,\n point: points[0]\n })\n }\n }\n }\n\n private _toSVG (): string {\n const pointGroups = this._data\n // Custom devicePixelRatio as ipad has higher DPI than desktop\n // When that happens, the maxX and maxY will be reduced, hence\n // configure it to maximum of 1. To be monitored.\n // https://github.com/szimek/signature_pad/issues/428\n let devicePixelRatio = window.devicePixelRatio\n if (devicePixelRatio > 1) devicePixelRatio = 1\n const ratio = Math.max(devicePixelRatio || 1, 1)\n const minX = 0\n const minY = 0\n const maxX = this.canvas.width / ratio\n const maxY = this.canvas.height / ratio\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')\n\n svg.setAttribute('width', this.canvas.width.toString())\n svg.setAttribute('height', this.canvas.height.toString())\n\n this._fromData(\n pointGroups,\n\n ({ color, curve }: { color: string; curve: Bezier }) => {\n const path = document.createElement('path')\n\n // Need to check curve for NaN values, these pop up when drawing\n // lines on the canvas that are not continuous. E.g. Sharp corners\n // or stopping mid-stroke and than continuing without lifting mouse.\n /* eslint-disable no-restricted-globals */\n if (\n !isNaN(curve.control1.x) &&\n !isNaN(curve.control1.y) &&\n !isNaN(curve.control2.x) &&\n !isNaN(curve.control2.y)\n ) {\n const attr =\n `M ${curve.startPoint.x.toFixed(3)},${curve.startPoint.y.toFixed(\n 3\n )} ` +\n `C ${curve.control1.x.toFixed(3)},${curve.control1.y.toFixed(3)} ` +\n `${curve.control2.x.toFixed(3)},${curve.control2.y.toFixed(3)} ` +\n `${curve.endPoint.x.toFixed(3)},${curve.endPoint.y.toFixed(3)}`\n path.setAttribute('d', attr)\n path.setAttribute('stroke-width', (curve.endWidth * 2.25).toFixed(3))\n path.setAttribute('stroke', color)\n path.setAttribute('fill', 'none')\n path.setAttribute('stroke-linecap', 'round')\n\n svg.appendChild(path)\n }\n /* eslint-enable no-restricted-globals */\n },\n\n ({ color, point }: { color: string; point: BasicPoint }) => {\n const circle = document.createElement('circle')\n const dotSize =\n typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize\n circle.setAttribute('r', dotSize.toString())\n circle.setAttribute('cx', point.x.toString())\n circle.setAttribute('cy', point.y.toString())\n circle.setAttribute('fill', color)\n\n svg.appendChild(circle)\n }\n )\n\n const prefix = 'data:image/svg+xml;base64,'\n const header =\n ''\n let body = svg.innerHTML\n\n // IE hack for missing innerHTML property on SVGElement\n if (body === undefined) {\n const dummy = document.createElement('dummy')\n const nodes = svg.childNodes\n dummy.innerHTML = ''\n\n // tslint:disable-next-line: prefer-for-of\n for (let i = 0; i < nodes.length; i += 1) {\n dummy.appendChild(nodes[i].cloneNode(true))\n }\n\n body = dummy.innerHTML\n }\n\n const footer = ''\n const data = header + body + footer\n\n return prefix + btoa(data)\n }\n}\n"],"sourceRoot":""}