{"version":3,"sources":["webpack:///./@core/pages/CommissionModule/CommissionDetails.vue?e46c","webpack:///./@core/pages/CommissionModule/new-commission-module-components/CommissionDetailsDialogComponent.vue?3072","webpack:///./@master/util/commission-record-calculation.ts","webpack:///./@core/pages/CommissionModule/new-commission-module-components/CommissionDetailsDialogComponent.vue","webpack:///./@core/pages/CommissionModule/new-commission-module-components/CommissionDetailsDialogComponent.vue?7d8f","webpack:///./@core/pages/CommissionModule/new-commission-module-components/CommissionDetailsDialogComponent.vue?72d8","webpack:///./@core/pages/CommissionModule/CommissionDetailsMixin.ts","webpack:///./@core/pages/CommissionModule/CommissionDetails.vue","webpack:///./@core/pages/CommissionModule/CommissionDetails.vue?8a35","webpack:///./@core/pages/CommissionModule/CommissionDetails.vue?72f9","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/randomstring/lib/randomstring.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/randomstring/lib/charset.js","webpack:///./node_modules/randomstring/index.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./@core/pages/CommissionModule/CommissionDetails.vue?cb00","webpack:///./@core/assets/myinfo-icon.svg","webpack:///./node_modules/randomstring/node_modules/randombytes/browser.js","webpack:///./@core/pages/CommissionModule/api/models/ClientPolicyReportRequestDTO.ts","webpack:///./@core/pages/CommissionModule/api/models/DownloadCsvDto.ts","webpack:///./@core/pages/CommissionModule/api/models/ReportGeneratorDto.ts","webpack:///./@core/pages/CommissionModule/api/models/ReportLogDTO.ts","webpack:///./@core/pages/CommissionModule/api/models/ScheduleTimeDto.ts","webpack:///./@core/pages/CommissionModule/api/services/AccountStructureCommissionService.ts","webpack:///./@core/pages/CommissionModule/api/services/AccountStructureMemberService.ts","webpack:///./@core/pages/CommissionModule/api/services/CommissionIntermediariesService.ts","webpack:///./@core/pages/CommissionModule/api/services/CommissionRecordsService.ts","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./@core/components/AppForm.vue?baa9","webpack:///./@core/components/AppDatatable.vue?fa4e","webpack:///./@core/components/AppDatatable.vue","webpack:///./@core/components/AppDatatable.vue?a0c0","webpack:///./@core/components/AppDatatable.vue?89f0","webpack:///./@core/components/AppCurrencyNA.vue?af5e","webpack:///./node_modules/randomstring/node_modules/array-uniq/index.js","webpack:///./@core/components/AppDatatable.vue?8f2d","webpack:///./@core/components/AppForm.vue?4190","webpack:///./@core/components/AppCurrencyNA.vue?2c19","webpack:///./@core/components/AppCurrencyNA.vue","webpack:///./@core/components/AppCurrencyNA.vue?4219","webpack:///./@core/components/AppCurrencyNA.vue?6502","webpack:///./@core/components/AppForm.vue","webpack:///./@core/components/AppForm.vue?cec5","webpack:///./@core/components/AppForm.vue?3db6"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","Object","keys","commissionInfo","length","attrs","comissionInfoStructure","_e","on","exportCSV","deleteButtonEnabled","$event","deleteRecord","directives","name","rawName","value","expression","domProps","target","composing","txtSearchRecords","detailsRecordsColumn","detailsList","prop","order","showDetail","$router","push","saveRecord","selectedDetail","showDetailDialog","resetDeleteDialog","slot","taxInvoiceNo","confirmDelete1","staticStyle","confirmText","submitDeleteText","staticRenderFns","$emit","policyDetailsStructureV2","_l","index","key","_s","servicingStructure","payoutStructure","projectSettings","useHierarchySetup","performanceServiceChargeStructure","discrepancyStructure","getYearDifference","paidToDate","issuedDate","extend","prototype","format","pDate","iDate","dateToCompare","Date","year","month","date","isPaidDateLtIssuedDate","isBefore","yearDiff","YR","monthDiff","isPaidDayLtIssuedDay","modParam1","MTH","yrResult","IsLessThanEqualAYear","premiumYear","GetCommissionType","GetPremiumYear","structure","includes","toLowerCase","label","options","undefined","disabled","model","get","payMode","set","issuedDateMillis","commissionDetailsStructure","filter","default","components","AppDatatable","AppForm","AppDialog","component","detailsTableData","showFirstDeleteDialog","showSecondDeleteDialog","percentageKey","currencyKey","field","projectInfo","commissionDecimal","assign","paymentDateMillis","statementDateMillis","principal","remunerationType","paid","batchRemark","type","decimal","formatter","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","map","records","dateService","keyword","values","join","emit","deleteCommissionRecords","commissionBatchOid","success","uiService","alert","show","message","path","sharedVariable","$route","query","_oid","getDetailRecordsList","displayHiearchySetupColumns","getCommissionRecordsByBatch","rawRecord","formatCommissionRecord","rawRecords","record","forEach","pctKey","formatValue","row","list","getCommissionBatchCsv","res","blob","Blob","window","navigator","msSaveOrOpenBlob","msSaveBlob","elem","document","createElement","href","URL","createObjectURL","download","body","appendChild","click","removeChild","response","data","updateCommissionBatch","remark","CommissionDetailsDialogComponent","module","exports","is","x","y","randomBytes","Charset","unsafeRandomBytes","stack","i","Math","floor","random","readUInt8","safeRandomBytes","e","processString","buf","initialString","chars","reqLen","maxByte","string","randomByte","charAt","getAsyncString","cb","err","generatedString","generate","charset","setType","capitalization","setcapitalization","readable","removeUnreadable","removeDuplicates","charsLen","ceil","EOF","$","DESCRIPTORS","USE_NATIVE_URL","global","bind","uncurryThis","defineProperties","redefine","anInstance","hasOwn","arrayFrom","arraySlice","codeAt","toASCII","$toString","setToStringTag","URLSearchParamsModule","InternalStateModule","setInternalState","getInternalURLState","getterFor","URLSearchParams","getInternalSearchParamsState","getState","NativeURL","TypeError","parseInt","pow","exec","numberToString","toString","pop","replace","shift","split","stringSlice","slice","unshift","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseIPv4","input","partsLength","numbers","part","radix","number","ipv4","parts","parseIPv6","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","chr","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","host","result","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","code","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","second","startsWithWindowsDriveLetter","third","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","url","isBase","base","baseState","failure","searchParams","urlString","parse","bindURL","stateOverride","codePoints","bufferCodePoints","state","buffer","seenAt","seenBracket","seenPasswordToken","scheme","username","password","port","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","cannotHaveUsernamePasswordPort","pathSize","serialize","output","setHref","update","getOrigin","URLConstructor","origin","error","getProtocol","setProtocol","protocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","pathname","getSearch","setSearch","search","getSearchParams","facade","getHash","setHash","hash","that","URLPrototype","arguments","accessorDescriptor","getter","setter","configurable","enumerable","nativeCreateObjectURL","nativeRevokeObjectURL","revokeObjectURL","forced","sham","arrayUniq","charsLower","charsUpper","toUpperCase","hexChars","binaryChars","octalChars","unreadableChars","charMap","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","RangeError","fromCharCode","String","charCodeAt","ucs2decode","counter","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","currentValue","inputLength","n","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","encoded","labels","oldBrowser","Error","crypto","msCrypto","size","rawBytes","Uint8Array","getRandomValues","bytes","Buffer","process","nextTick","ClientPolicyReportRequestDTO","DownloadCsvDto","ReportGeneratorDto","ReportLogDTO","dateFilteringSelection","status","ScheduleTimeDto","frequency","memberId","method","accountOid","requestBody","errors","400","404","409","role","oid","commissionOid","userOid","batchId","valueDate","batchOid","policyNumber","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","RegExp","rx","S","done","previousLastIndex","lastIndex","class","ref","currentPageData","hasNoError","selectionKey","tableRowClassName","sortChange","rowClick","handleSelection","column","sortable","scopedSlots","_u","fn","scope","modifiers","$$selectedVal","Array","o","selected","val","_value","$set","multiple","handleCustomEvent","option","_n","$forceUpdate","convertToCurrency","_t","button","shouldDisabled","stopPropagation","infoFrom","infoTo","total","currentPage","pageSizesDisplay","pageSize","pageChange","handleSizeChange","pageSizes","sortBy","sizes","lastSize","round","searchKeyword","trim","filters","JSON","stringify","filteredData","sort","a","b","sortedData","every","redirect","location","rows","appdatatable","$refs","clearSelection","currencySymbol","Number","toLocaleString","clearCheckboxOnHeader","AppDecimalNumber","uniqNoSet","arr","ret","indexOf","uniqSet","seen","Set","el","has","add","uniqSetWithForEach","doesForEachActuallyWork","style","shouldShow","getCustomClass","hasErrors","focusId","getId","focusInner","getTestId","labelModelValue","labelModel","labelKey","tooltip","eidx","msg","full","fullErr","optionCols","multiLimit","buttonName","cycleMode","displayDirection","setValue","blurHandler","getValue","checkboxColumnNo","compact","isMyInfo","getLabelId","setSelectValue","maxChar","currencyFormat","precision","futureDate","disabledFutureDate","isVertical","maxSize","columns","getValueForTable","remove","counterMsg","isModernTheme","maxlength","numberAndNAOnly","onBlur","onFocus","onSelect","inputModal","textIsSelected","convertCurrencyToNumber","remainingChar","evt","event","charCode","which","keyCode","isAlphabetN","isNonNumber","preventDefault","isAlphabetA","isNaN","source","useCurrency","currencyPrefix","currency","replaceAll","inputValue","minimal","structures","charLeft","getCharLeft","getCounterMsg","gridTemplateColumns","theme","condition","readOnly","Function","oriValue","labelValue","selectedOption","selectedIndex","onChange","ex","uniqueID","snakeCaseKey","curAppForm","$el","hasOverflow","scrollWidth","clientWidth","eleId","ele","getElementById","focus","mc","classes","swe","first","find","s","scrollIntoView","behavior","block","arrangeCols","addEventListener","now","deep","AppSmartSelect","AppCheckboxGroup","AppRadioSelection","AppDateInput","AppFormTable","AppCurrencyNA","AppTooltip"],"mappings":"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","file":"js/chunk-71b677ce.880891c5.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"Commission Details\")]),(Object.keys(_vm.commissionInfo).length > 0)?_c('AppForm',{attrs:{\"structures\":_vm.comissionInfoStructure,\"model\":_vm.commissionInfo,\"columns\":2}}):_vm._e(),_c('div',{staticClass:\"tool-bar\"},[_c('button',{staticClass:\"btn-default\",on:{\"click\":_vm.exportCSV}},[_vm._v(\"Export .CSV\")]),_c('button',{staticClass:\"btn-danger\",attrs:{\"disabled\":!_vm.deleteButtonEnabled},on:{\"click\":function($event){return _vm.deleteRecord()}}},[_vm._v(\"Delete Record\")]),_c('div',{staticClass:\"search-wrapper\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.txtSearchRecords),expression:\"txtSearchRecords\"}],staticClass:\"txt-search\",attrs:{\"type\":\"search\",\"data-test\":\"commission-search-keyword\"},domProps:{\"value\":(_vm.txtSearchRecords)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.txtSearchRecords=$event.target.value}}})])]),_c('AppDatatable',{staticClass:\"datatable\",attrs:{\"columns\":_vm.detailsRecordsColumn,\"data\":_vm.detailsList,\"sort\":{prop: 'adv_code', order: 'descending'},\"search\":_vm.txtSearchRecords},on:{\"rowClickCustom\":_vm.showDetail}}),_c('div',{staticClass:\"footer\"},[_c('button',{on:{\"click\":function($event){return _vm.$router.push({ name: 'Transactions' })}}},[_vm._v(\"Back\")]),_c('div'),_c('button',{staticClass:\"btn-default\",on:{\"click\":function($event){return _vm.saveRecord()}}},[_vm._v(\"Save\")])]),(_vm.showDetailDialog)?_c('CommissionDetailsDialogComponent',{attrs:{\"selectedDetail\":_vm.selectedDetail},on:{\"close\":function($event){_vm.showDetailDialog = false}}}):_vm._e(),(_vm.showFirstDeleteDialog)?_c('AppDialog',{on:{\"close\":function($event){return _vm.resetDeleteDialog(0)}}},[_c('template',{slot:\"header\"},[_vm._v(\"Are you sure want to delete this records ?\")]),_c('template',{slot:\"body\"},[_c('div',{staticClass:\"column-group\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"Tax Invoice No.:\")]),_c('input',{attrs:{\"disabled\":\"true\"},domProps:{\"value\":_vm.commissionInfo.taxInvoiceNo}})])]),_c('div',{staticClass:\"column-group\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"Total records: \")]),_c('input',{attrs:{\"disabled\":\"true\"},domProps:{\"value\":_vm.detailsList.length}})])])]),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn-success\",attrs:{\"disabled\":_vm.detailsList.length == 0 || !_vm.commissionInfo.taxInvoiceNo},on:{\"click\":function($event){return _vm.confirmDelete1()}}},[_vm._v(\"Confirm\")])])],2):_vm._e(),(_vm.showSecondDeleteDialog)?_c('AppDialog',{on:{\"close\":function($event){return _vm.resetDeleteDialog()}}},[_c('template',{slot:\"header\"},[_vm._v(\"Please key in \"),_c('span',{staticClass:\"red-text\"},[_vm._v(\"'CONFIRM DELETE'\")]),_vm._v(\" to the text field\")]),_c('template',{slot:\"body\"},[_c('p',{staticStyle:{\"margin-bottom\":\"10px\"}},[_vm._v(\"Please note that this action cannot be undone.\")]),_c('div',{staticClass:\"column-group\"},[_c('div',{staticClass:\"input-group\"},[_c('label',{attrs:{\"for\":\"confirmText\"}},[_vm._v(\"Answer\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.confirmText),expression:\"confirmText\"}],attrs:{\"id\":\"confirmText\"},domProps:{\"value\":(_vm.confirmText)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.confirmText=$event.target.value}}})])])]),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn-success\",on:{\"click\":function($event){return _vm.submitDeleteText()}}},[_vm._v(\"Submit\")])])],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppDialog',{attrs:{\"size\":'large',\"hideFooter\":true},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('template',{slot:\"header\"},[_vm._v(\"Commission Details\")]),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('div',{staticClass:\"section-title\"},[_vm._v(\"a. Policy Details\")]),(_vm.selectedDetail)?_c('AppForm',{staticClass:\"commission-details\",attrs:{\"structures\":_vm.policyDetailsStructureV2,\"model\":_vm.selectedDetail,\"columns\":3}}):_vm._e(),_c('div',{staticClass:\"section-title\"},[_vm._v(\"b. Commission Level\")]),(_vm.selectedDetail)?_c('table',{staticClass:\"bordered\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Level\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Pct\")]),_c('th',[_vm._v(\"Amt\")])])]),_c('tbody',_vm._l((3),function(index){return _c('tr',{key:index},[_c('td',[_vm._v(\"Level \"+_vm._s(index))]),_c('td',[_vm._v(_vm._s(_vm.selectedDetail[(\"level\" + index + \"ComFullname\")]))]),_c('td',[_vm._v(_vm._s(_vm.selectedDetail[(\"level\" + index + \"ComPct\")]))]),_c('td',[_vm._v(_vm._s(_vm.selectedDetail[(\"level\" + index + \"ComAmt\")]))])])}),0)]):_vm._e(),_c('div',{staticClass:\"section-title\"},[_vm._v(\"c. Introducer / Vesting / Servicing / Clawback / Rebates\")]),(_vm.selectedDetail)?_c('AppForm',{staticClass:\"commission-details\",attrs:{\"structures\":_vm.servicingStructure,\"model\":_vm.selectedDetail,\"columns\":3}}):_vm._e(),_c('div',{staticClass:\"section-title\"},[_vm._v(\"d. Commission Payout\")]),(_vm.selectedDetail)?_c('AppForm',{staticClass:\"commission-details\",attrs:{\"structures\":_vm.payoutStructure,\"model\":_vm.selectedDetail,\"columns\":3}}):_vm._e(),(_vm.projectSettings.useHierarchySetup)?_c('div',{staticClass:\"section-title\"},[_vm._v(\"e. Performance Bonus / Service Charge\")]):_vm._e(),(_vm.selectedDetail && _vm.projectSettings.useHierarchySetup)?_c('AppForm',{staticClass:\"commission-details\",attrs:{\"structures\":_vm.performanceServiceChargeStructure,\"model\":_vm.selectedDetail,\"columns\":3}}):_vm._e(),(_vm.projectSettings.useHierarchySetup)?_c('div',{staticClass:\"section-title\"},[_vm._v(\"f. Discrepancy\")]):_vm._e(),(_vm.selectedDetail && _vm.projectSettings.useHierarchySetup)?_c('AppForm',{staticClass:\"commission-details\",attrs:{\"structures\":_vm.discrepancyStructure,\"model\":_vm.selectedDetail,\"columns\":3}}):_vm._e()],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\nimport utc from 'dayjs/plugin/utc'\nimport timezonePlugin from 'dayjs/plugin/timezone'\nimport { format } from '@master/services/DateService'\n\nfunction getYearDifference (paidToDate: number | string | Date, issuedDate: number| string | Date) {\n dayjs.extend(customParseFormat)\n dayjs.extend(utc)\n dayjs.extend(timezonePlugin)\n dayjs.prototype.format = format\n\n const pDate = dayjs(paidToDate)\n const iDate = dayjs(issuedDate)\n const dateToCompare = dayjs(new Date(pDate.year(), iDate.month(), iDate.date()))\n const isPaidDateLtIssuedDate = pDate.isBefore(dateToCompare)\n const yearDiff = pDate.year() - iDate.year()\n const YR = yearDiff - (isPaidDateLtIssuedDate ? 1 : 0)\n\n const monthDiff = pDate.month() - iDate.month()\n const isPaidDayLtIssuedDay = pDate.date() < iDate.date()\n const modParam1 = monthDiff + 12 - (isPaidDayLtIssuedDay ? 1 : 0)\n const MTH = modParam1 % 12\n\n const yrResult = YR === 0 ? 1 : (YR + (MTH > 0 ? 1 : 0))\n\n return yrResult\n}\n\nexport function IsLessThanEqualAYear (paidToDate: number | string | Date, issuedDate: number| string | Date) {\n const premiumYear = getYearDifference(paidToDate, issuedDate)\n\n return premiumYear <= 1\n}\n\nexport function GetCommissionType (paidToDate: number | string | Date, issuedDate: number| string | Date) {\n return IsLessThanEqualAYear(paidToDate, issuedDate) ? 'Year1' : 'Renewal'\n}\n\nexport function GetPremiumYear (paidToDate: number | string | Date, issuedDate: number| string | Date) {\n // formula reference:\n // YR = Year (PaidToDate ) - Year (IssuedDate) - If (PaidToDate < Date (Month (IssuedDate); Day (IssuedDate); Year (PaidToDate )); 1; 0);\n // MTH = Mod (Month (PaidToDate ) - Month(IssuedDate) + 12 - If (Day (PaidToDate ) < Day (IssuedDate); 1; 0); 12) ];\n // \"Year\" & Case ( YR = 0 ; 1 ;YR + Case( MTH > 0 ; 1 ; 0 ) )\n // Result will be Year1 for example\n const yrResult = getYearDifference(paidToDate, issuedDate)\n\n return 'Year' + yrResult\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 } from 'vue-property-decorator'\nimport AppForm from '@core/components/AppForm.vue'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport { CommissionRecordDTO } from '../api'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport { startCase } from 'lodash/fp'\nimport moment from 'moment'\nimport { IProjectSettings } from '@master/config/IProjectSettings'\nimport { inject } from 'inversify-props'\nimport { GetPaymentModeNiceName, GetPremiumType } from '@master/model/options/FrequencyOptions'\nimport dayjs from 'dayjs'\nimport { GetCommissionType, GetPremiumYear } from '@master/util/commission-record-calculation'\n@Component({\n components: {\n AppDatatable,\n AppForm,\n AppDialog\n }\n})\nexport default class CommissionDetailsDialogComponent extends Vue {\n @Prop({ default: null }) selectedDetail: CommissionRecordDTO\n\n @inject()\n projectSettings: IProjectSettings\n\n get commissionDetailsStructure () {\n const structure = [] as any\n for (const key in this.selectedDetail) {\n if (['pky', 'keyword', 'emit', 'ctm', 'utm'].includes(key) || key.toLowerCase().includes('oid')) {\n continue\n }\n\n if (key === 'remunerationType') {\n structure.push({\n label: startCase(key),\n key,\n options: [\n { label: '', value: undefined },\n { label: 'Commission', value: 0 },\n { label: 'Trailer Fee', value: 1 },\n { label: 'Wrap Fee', value: 2 }\n ],\n disabled: true\n })\n } else {\n structure.push({\n label: startCase(key),\n key,\n disabled: true\n })\n }\n }\n return structure\n }\n\n get policyDetailsStructureV2 (): FormStructure {\n return [\n {\n label: 'Remuneration Type',\n key: 'remunerationType',\n options: [\n { label: '', value: undefined },\n { label: 'Commission', value: 0 },\n { label: 'Trailer Fee', value: 1 },\n { label: 'Wrap Fee', value: 2 }\n ],\n disabled: true\n },\n {\n label: 'Policy Number',\n key: 'policyNumber',\n disabled: true\n },\n {\n label: 'Product Name',\n key: 'productName',\n disabled: true\n },\n {\n label: 'Adviser Code',\n key: 'advCode',\n disabled: true\n },\n {\n label: 'Adviser Name',\n key: 'advName',\n disabled: true\n },\n {\n label: 'Client Name',\n key: 'clientName',\n disabled: true\n },\n {\n label: 'Premium Amount',\n key: 'premiumAmt',\n disabled: true\n },\n {\n label: 'Gross Commission Amount',\n key: 'commissionAmt',\n disabled: true\n },\n {\n label: 'OR Commission Amount',\n key: 'orCommissionAmt',\n disabled: true\n },\n {\n label: 'Principal',\n key: 'principal',\n disabled: true\n },\n {\n label: 'Transaction Type',\n key: 'transactionType',\n disabled: true\n },\n {\n label: 'Issued Date',\n key: 'issuedDateMillis',\n disabled: true\n },\n {\n label: 'Paid To Date/Due Date',\n key: 'paidToDate',\n disabled: true\n },\n {\n label: 'Payment Mode',\n model: {\n get: () => GetPaymentModeNiceName(this.selectedDetail.payMode),\n set: () => { return null }\n },\n disabled: true\n },\n {\n label: 'Commission Type',\n model: {\n get: () => GetCommissionType(this.selectedDetail.paidToDate, this.selectedDetail.issuedDateMillis),\n set: () => { return null }\n },\n disabled: true\n },\n {\n label: 'Premium Type',\n model: {\n get: () => GetPremiumType(this.selectedDetail.payMode),\n set: () => { return null }\n },\n disabled: true\n },\n {\n label: 'Premium Year',\n model: {\n get: () => GetPremiumYear(this.selectedDetail.paidToDate, this.selectedDetail.issuedDateMillis),\n set: () => { return null }\n },\n disabled: true\n },\n {\n label: 'Payment Date',\n key: 'paymentDateMillis',\n disabled: true\n },\n {\n label: 'Statement Date',\n key: 'statementDateMillis',\n disabled: true\n },\n {\n label: 'Remark',\n key: 'remark',\n disabled: true\n },\n {\n label: 'Paid',\n key: 'paid',\n disabled: true\n }\n ]\n }\n\n get policyDetailsStructure (): FormStructure {\n const keys = ['policyNumber', 'productName', 'advCode', 'advName', 'clientName', 'premiumAmt', 'commissionAmt', 'orCommissionAmt', 'principal', 'remunerationType', 'transactionType', 'issuedDateMillis', 'dueDateMillis', 'paymentMode', 'remark', 'paymentDateMillis', 'statementDateMillis', 'paid']\n return this.commissionDetailsStructure.filter(structure => keys.includes(structure.key))\n }\n\n get servicingStructure (): FormStructure {\n const keys = ['introducerFullname', 'introducerComPct', 'introducerComAmt', 'vestingOid', 'vestingFullname', 'vestingComPct', 'vestingComAmt', 'servicingOid', 'servicingFullname', 'servicingComPct', 'servicingComAmt', 'bscClawbackPct', 'clientRebatePct', 'clientRebateAmt', 'level1BscClawbackAmt', 'level2BscClawbackAmt', 'level3BscClawbackAmt', 'level4BscClawbackAmt', 'totalBscClawbackAmt']\n return this.commissionDetailsStructure.filter(structure => keys.includes(structure.key))\n }\n\n get payoutStructure (): FormStructure {\n return [\n {\n label: 'Level 1 Com Payout',\n key: 'level1ComPayout',\n disabled: true\n },\n {\n label: 'Level 2 Com Payout',\n key: 'level2ComPayout',\n disabled: true\n },\n {\n label: 'Level 3 Com Payout',\n key: 'level3ComPayout',\n disabled: true\n },\n {\n label: 'Level 4 Com Payout',\n key: 'level4ComPayout',\n disabled: true\n },\n {\n label: 'Service Charge',\n key: 'serviceChargePayout',\n disabled: true\n },\n {\n label: 'Group ID',\n key: 'groupId',\n disabled: true\n }\n ]\n }\n\n get performanceServiceChargeStructure (): FormStructure {\n return [\n {\n label: 'Performance Bonus',\n key: 'performanceBonusPayout',\n disabled: true\n },\n {\n label: 'Profit Sharing',\n key: 'profitSharingRpPayout',\n disabled: true\n }\n ]\n }\n\n get discrepancyStructure (): FormStructure {\n const keys = ['discrepancy']\n return this.commissionDetailsStructure.filter(structure => keys.includes(structure.key))\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!./CommissionDetailsDialogComponent.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!./CommissionDetailsDialogComponent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommissionDetailsDialogComponent.vue?vue&type=template&id=c463fcca&scoped=true&\"\nimport script from \"./CommissionDetailsDialogComponent.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommissionDetailsDialogComponent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c463fcca\",\n null\n \n)\n\nexport default component.exports","import { Component, Vue } from 'vue-property-decorator'\nimport AppForm from '@core/components/AppForm.vue'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport { inject } from 'inversify-props'\nimport { IDateService } from '@master/services/IDateService'\nimport { FormStructure } from '@master/model/structure/FormStructure'\nimport { camelCase } from 'lodash/fp'\nimport { CommissionRecordDTO, CommissionRecordsService } from './api'\nimport { UIService } from '@core/services/UIService'\nimport { SharedVariable } from '@core/model/SharedVariable'\nimport { IProjectInfo } from '@master/config/IProjectInfo'\nimport { IProjectSettings } from '@master/config/IProjectSettings'\nimport CommissionDetailsDialogComponent from '@core/pages/CommissionModule/new-commission-module-components/CommissionDetailsDialogComponent.vue'\n\n@Component({\n components: {\n AppDatatable,\n AppForm,\n AppDialog,\n CommissionDetailsDialogComponent\n }\n})\nexport class CommissionDetailsMixin extends Vue {\n /* eslint-disable @typescript-eslint/camelcase */\n @inject()\n private dateService: IDateService\n\n @inject()\n private projectInfo: IProjectInfo\n\n @inject()\n private projectSettings: IProjectSettings\n\n uiService: UIService\n\n @inject()\n private sharedVariable: SharedVariable\n\n private commissionBatchOid\n\n private txtSearchRecords = ''\n\n private detailsTableData: CommissionRecordDTO[] = []\n\n private showDetailDialog = false\n\n showFirstDeleteDialog = false\n showSecondDeleteDialog = false\n confirmText = ''\n\n private selectedDetail: CommissionRecordDTO = null\n\n private percentageKey: (keyof CommissionRecordDTO) [] = ['level1ComPct', 'level2ComPct', 'level3ComPct', 'level4ComPct', 'introducerComPct', 'vestingComPct', 'servicingComPct', 'clientRebatePct']\n private currencyKey: (keyof CommissionRecordDTO) [] = ['premiumAmt', 'commissionAmt', 'orCommissionAmt', 'level1ComAmt', 'level2ComAmt', 'level3ComAmt', 'level4ComAmt', 'introducerComAmt', 'vestingComAmt', 'servicingComAmt',\n 'level1BscClawbackAmt', 'level2BscClawbackAmt', 'level3BscClawbackAmt', 'level4BscClawbackAmt', 'totalBscClawbackAmt', 'clientRebateAmt', 'companyRevenue', 'level1ComPayout', 'level2ComPayout', 'level3ComPayout', 'level4ComPayout']\n\n // extra columns like performance bonus payout will be addded only if config useHierarchySetup is true below\n private detailsRecordsColumn: Array = [\n { label: 'Adviser Code', field: 'advCode' },\n { label: 'Adviser Name', field: 'advName' },\n { label: 'Policy Number', field: 'policyNumber' },\n { label: 'Client Name', field: 'clientName' },\n { label: 'Product Name', field: 'productName' },\n { label: 'Premium', field: 'premiumAmt' },\n { label: 'Comission', field: 'commissionAmt' },\n { label: 'OR Comission', field: 'orCommissionAmt' },\n { label: 'Transaction Type', field: 'transactionType' },\n { label: 'Level 1 Commission', field: 'level1ComAmt' },\n { label: 'Level 2 Commission', field: 'level2ComAmt' },\n { label: 'Level 3 Commission', field: 'level3ComAmt' },\n { label: 'Level 4 Commission', field: 'level4ComAmt' },\n { label: 'Introducer Commission', field: 'introducerComAmt' },\n { label: 'Vesting Commission', field: 'vestingComAmt' },\n { label: 'Servicing Commission', field: 'servicingComAmt' },\n { label: 'Paid Status', field: 'paid' }]\n\n get commissionDecimal () {\n return this.projectInfo.commissionDecimal ?? 2\n }\n\n get commissionInfo () {\n return this.detailsTableData.length > 0 ? Object.assign({}, this.detailsTableData[0]) : {\n paymentDateMillis: null,\n statementDateMillis: null,\n principal: null,\n remunerationType: null,\n paid: null,\n taxInvoiceNo: null,\n batchRemark: null\n }\n }\n\n get comissionInfoStructure (): FormStructure {\n return [\n {\n label: 'Payment Date',\n key: 'paymentDateMillis',\n type: 'date',\n disabled: true\n },\n {\n label: 'Statement Date',\n key: 'statementDateMillis',\n type: 'date',\n disabled: true\n },\n {\n label: 'Principal',\n key: 'principal',\n disabled: true\n },\n {\n label: 'Remuneration Type*',\n key: 'remunerationType',\n options: [\n { label: '', value: undefined },\n { label: 'Commission', value: 0 },\n { label: 'Trailer Fee', value: 1 },\n { label: 'Wrap Fee', value: 2 }\n ],\n disabled: true\n },\n {\n label: 'Paid',\n key: 'paid',\n options: [\n { label: '', value: 'unselected' },\n { label: 'Paid', value: 'paid' },\n { label: 'Unpaid', value: 'unpaid' }\n ]\n },\n {\n label: 'Tax Invoice No.*',\n key: 'taxInvoiceNo',\n disabled: true\n },\n {\n label: 'Remarks',\n key: 'batchRemark'\n }\n ]\n }\n\n formatValue (target, decimal) {\n if (target !== 0 && !target) {\n return ''\n }\n const formatter = new Intl.NumberFormat('en-US', {\n minimumFractionDigits: decimal,\n maximumFractionDigits: decimal\n })\n return formatter.format(target)\n }\n\n get detailsList () {\n return this.detailsTableData.map(records => {\n const paymentDateMillis = this.dateService.format(records.paymentDateMillis, 'YYYY-MM-DD')\n const statementDateMillis = this.dateService.format(records.statementDateMillis, 'YYYY-MM-DD')\n const issuedDateMillis = this.dateService.format(records.issuedDateMillis, 'YYYY-MM-DD')\n const paidToDate = this.dateService.format(records.paidToDate, 'YYYY-MM-DD')\n const keyword = Object.values(records).join(',').toLowerCase()\n const emit = true\n return {\n ...records,\n paymentDateMillis,\n statementDateMillis,\n issuedDateMillis,\n paidToDate,\n keyword,\n emit\n }\n })\n }\n\n get deleteButtonEnabled () {\n // only allow to delete when the paid status is unpaid\n return this.commissionInfo.paid === 'unpaid'\n }\n\n deleteRecord () {\n // two prompt message will be display\n // 1. to confirm what to delete the records with details\n // 2. prompt to key in value to confirm\n this.showFirstDeleteDialog = true\n }\n\n confirmDelete1 () {\n this.showFirstDeleteDialog = false\n this.showSecondDeleteDialog = true\n }\n\n resetDeleteDialog () {\n this.confirmText = ''\n this.showFirstDeleteDialog = false\n this.showSecondDeleteDialog = false\n }\n\n async submitDeleteText () {\n if (this.confirmText === 'CONFIRM DELETE') {\n try {\n const { success } = await CommissionRecordsService.deleteCommissionRecords(this.commissionBatchOid)\n if (success) {\n await this.uiService.alert.show({\n type: 'success',\n message: 'Successful delete.'\n })\n this.$router.push({ path: '/commission-module' })\n }\n } catch (error) {\n await this.uiService.alert.show({\n type: 'error',\n message: error\n })\n }\n } else {\n await this.uiService.alert.show({\n type: 'warning',\n message: 'The Input text not match'\n })\n }\n }\n\n async created () {\n // take injected UIService and set it to local\n this.uiService = this.sharedVariable.uiService\n\n this.commissionBatchOid = this.$route.query._oid\n await this.getDetailRecordsList()\n this.displayHiearchySetupColumns()\n }\n\n displayHiearchySetupColumns () {\n if (this.projectSettings.useHierarchySetup) {\n this.detailsRecordsColumn.push(\n { label: 'Performance Bonus', field: 'performanceBonusPayout' },\n { label: 'Service Charge', field: 'serviceChargePayout' },\n { label: 'Profit Sharing RP', field: 'profitSharingRpPayout' }\n )\n }\n }\n\n async getDetailRecordsList () {\n const rawRecord = await CommissionRecordsService.getCommissionRecordsByBatch(this.commissionBatchOid)\n this.detailsTableData = this.formatCommissionRecord(rawRecord)\n }\n\n formatCommissionRecord (rawRecords: CommissionRecordDTO []) {\n return rawRecords.map((record: CommissionRecordDTO) => {\n this.percentageKey.forEach((pctKey: string) => {\n if (record[pctKey]) {\n record[pctKey] = this.formatValue(record[pctKey], this.commissionDecimal)\n }\n })\n\n this.currencyKey.forEach((key: string) => {\n if (record[key]) {\n record[key] = this.formatValue(record[key], 2)\n }\n })\n\n return record\n })\n }\n\n showDetail (row: CommissionRecordDTO): void {\n this.showDetailDialog = true\n this.selectedDetail = row\n }\n\n mapRawKeytoFormatKey (list: string[]) {\n return list.filter((key) => { return key !== '_oid' && key !== 'ctm' }).map(key => {\n return camelCase(key)\n })\n }\n\n async exportCSV () {\n try {\n const commissionBatchOid = this.$route.query._oid as string\n const res = await CommissionRecordsService.getCommissionBatchCsv(commissionBatchOid)\n\n const blob = new Blob([res], { type: 'text/csv' })\n if (window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveBlob(blob, 'commission_batch.csv')\n } else {\n const elem = window.document.createElement('a')\n elem.href = window.URL.createObjectURL(blob)\n elem.download = 'commission_batch.csv'\n document.body.appendChild(elem)\n elem.click()\n document.body.removeChild(elem)\n }\n } catch (err) {\n alert(err.response.data.message)\n }\n }\n\n async saveRecord () {\n await CommissionRecordsService.updateCommissionBatch({ commissionBatchOid: this.commissionBatchOid, paid: this.commissionInfo.paid, remark: this.commissionInfo.batchRemark })\n await this.getDetailRecordsList()\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Mixins } from 'vue-property-decorator'\nimport { CommissionDetailsMixin } from './CommissionDetailsMixin'\n\nexport default class CommissionDetails extends Mixins(CommissionDetailsMixin) {\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!./CommissionDetails.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!./CommissionDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommissionDetails.vue?vue&type=template&id=f5335c1e&scoped=true&\"\nimport script from \"./CommissionDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommissionDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CommissionDetails.vue?vue&type=style&index=0&id=f5335c1e&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 \"f5335c1e\",\n null\n \n)\n\nexport default component.exports","// `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","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor('serialize', 'setHref'),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor('getOrigin'),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor('getProtocol', 'setProtocol'),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor('getUsername', 'setUsername'),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor('getPassword', 'setPassword'),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor('getHost', 'setHost'),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor('getHostname', 'setHostname'),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor('getPort', 'setPort'),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor('getPathname', 'setPathname'),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor('getSearch', 'setSearch'),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor('getSearchParams'),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor('getHash', 'setHash')\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var arrayUniq = require('array-uniq');\n\nfunction Charset() {\n this.chars = '';\n}\n\nCharset.prototype.setType = function(type) {\n var chars;\n\n var numbers = '0123456789';\n var charsLower = 'abcdefghijklmnopqrstuvwxyz';\n var charsUpper = charsLower.toUpperCase();\n var hexChars = 'abcdef';\n var binaryChars = '01';\n var octalChars = '01234567';\n\n if (type === 'alphanumeric') {\n chars = numbers + charsLower + charsUpper;\n }\n else if (type === 'numeric') {\n chars = numbers;\n }\n else if (type === 'alphabetic') {\n chars = charsLower + charsUpper;\n }\n else if (type === 'hex') {\n chars = numbers + hexChars;\n }\n else if (type === 'binary') {\n chars = binaryChars;\n }\n else if (type === 'octal') {\n chars = octalChars;\n }\n else {\n chars = type;\n }\n\n this.chars = chars;\n}\n\nCharset.prototype.removeUnreadable = function() {\n var unreadableChars = /[0OIl]/g;\n this.chars = this.chars.replace(unreadableChars, '');\n}\n\nCharset.prototype.setcapitalization = function(capitalization) {\n if (capitalization === 'uppercase') {\n this.chars = this.chars.toUpperCase();\n }\n else if (capitalization === 'lowercase') {\n this.chars = this.chars.toLowerCase();\n }\n}\n\nCharset.prototype.removeDuplicates = function() {\n var charMap = this.chars.split('');\n charMap = arrayUniq(charMap);\n this.chars = charMap.join('');\n}\n\nmodule.exports = exports = Charset;\n","module.exports = require(\"./lib/randomstring\");","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar RangeError = global.RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\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!./CommissionDetails.vue?vue&type=style&index=0&id=f5335c1e&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/myinfo-icon.28e75045.svg\";","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\n\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > 65536) throw new Error('requested too many random bytes')\n // in case browserify isn't using the Uint8Array version\n var rawBytes = new global.Uint8Array(size)\n\n // This will not work in older browsers.\n // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n if (size > 0) { // getRandomValues fails on IE if size == 0\n crypto.getRandomValues(rawBytes)\n }\n // phantomjs doesn't like a buffer being passed here\n var bytes = new Buffer(rawBytes.buffer)\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport type ClientPolicyReportRequestDTO = {\n type: ClientPolicyReportRequestDTO.type;\n startDate?: number;\n endDate?: number;\n issuers?: Array;\n advisersList?: Array;\n nbrApplicationStatus?: string;\n dateFilteringSelection: ClientPolicyReportRequestDTO.dateFilteringSelection;\n fileFormatType?: any;\n}\n\nexport namespace ClientPolicyReportRequestDTO {\n\n export enum type {\n PRODUCTION_MTD_PERSONAL = 'production_mtd_personal',\n PRODUCTION_MTD_SUPERVISOR = 'production_mtd_supervisor',\n PRODUCTION_YTD_PERSONAL = 'production_ytd_personal',\n PRODUCTION_YTD_SUPERVISOR = 'production_ytd_supervisor',\n PRODUCTION_REPORT_CUSTOM_PERSONAL = 'production_report_custom_personal',\n PRODUCTION_REPORT_CUSTOM_SUPERVISOR = 'production_report_custom_supervisor',\n }\n\n export enum dateFilteringSelection {\n OPS_APPROVAL_DATE = 'opsApprovalDate',\n KYC_SUBMISSION_TIMESTAMP = 'kycSubmissionTimestamp',\n }\n\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport type DownloadCsvDto = {\n company: string;\n user: string;\n dateType: string;\n from: number;\n to: number;\n status?: DownloadCsvDto.status;\n}\n\nexport namespace DownloadCsvDto {\n\n export enum status {\n PAID = 'paid',\n UNPAID = 'unpaid',\n }\n\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport type ReportGeneratorDto = {\n report: number;\n option: any;\n from: number;\n to: number;\n status: ReportGeneratorDto.status;\n}\n\nexport namespace ReportGeneratorDto {\n\n export enum status {\n PAID = 'paid',\n UNPAID = 'unpaid',\n }\n\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport type ReportLogDTO = {\n pky: number;\n ctm: number;\n utm: number;\n statementRunNumber: string;\n batch: string;\n runTimestamp: number;\n fromTimestamp: number;\n toTimestamp: number;\n status: ReportLogDTO.status;\n numberProcessed: number;\n}\n\nexport namespace ReportLogDTO {\n\n export enum status {\n INCOMPLETE = 'INCOMPLETE',\n COMPLETE = 'COMPLETE',\n ERROR = 'ERROR',\n '_0' = 0,\n '_1' = 1,\n '_2' = 2,\n }\n\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport type ScheduleTimeDto = {\n enable: boolean;\n minute: number;\n hideTask?: boolean;\n hour: number;\n frequency: ScheduleTimeDto.frequency;\n name: ScheduleTimeDto.name;\n email?: string;\n ccEmail?: string;\n}\n\nexport namespace ScheduleTimeDto {\n\n export enum frequency {\n WEEKLY = 'WEEKLY',\n BIWEEKLY = 'BIWEEKLY',\n MONTHLY = 'MONTHLY',\n DAILY = 'DAILY',\n WEEKDAYS = 'WEEKDAYS',\n '_0' = 0,\n '_1' = 1,\n '_2' = 2,\n '_3' = 3,\n '_4' = 4,\n }\n\n export enum name {\n COMMISSION_REPORT = 'COMMISSION_REPORT',\n ADVISER_NAME_SCREENING = 'ADVISER_NAME_SCREENING',\n CLIENT_NAME_SCREENING = 'CLIENT_NAME_SCREENING',\n CORPORATE_NAME_SCREENING = 'CORPORATE_NAME_SCREENING',\n PRESALES_CALLBACK = 'PRESALES_CALLBACK',\n MARKETING_CONSENT = 'MARKETING_CONSENT',\n }\n\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CommissionDTO } from '../models/CommissionDTO';\nimport type { CommissionRatesDTO } from '../models/CommissionRatesDTO';\nimport { request as __request } from '@openapi/request';\n\nexport class AccountStructureCommissionService {\n\n /**\n * @param memberId\n * @returns CommissionDTO Return commission\n * @throws ApiError\n */\n public static async getCommission(\n memberId: number,\n ): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/account-structure/commission/${memberId}`,\n });\n return result.body;\n }\n\n /**\n * @param accountOid\n * @returns CommissionRatesDTO\n * @throws ApiError\n */\n public static async getCommissionRates(\n accountOid: string,\n ): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/account-structure/commission/rates/${accountOid}`,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any Create or update commission success\n * @throws ApiError\n */\n public static async editCommission(\n requestBody: CommissionDTO,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/account-structure/commission`,\n body: requestBody,\n errors: {\n 400: `commission value not in correct range`,\n 404: `invalid member id`,\n 409: `commission value conflict with existing commission in hierarchy`,\n },\n });\n return result.body;\n }\n\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { AddMemberDTO } from '../models/AddMemberDTO';\nimport type { PicodedAccountDTO } from '../models/PicodedAccountDTO';\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 /**\n * @returns PicodedAccountDTO\n * @throws ApiError\n */\n public static async listOfMemberInStructure(): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/account-structure/member/list`,\n });\n return result.body;\n }\n\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { IntermediariesDTO } from '../models/IntermediariesDTO';\nimport { request as __request } from '@openapi/request';\n\nexport class CommissionIntermediariesService {\n\n /**\n * @param role\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async createNewIntermediaries(\n role: string,\n requestBody: Array,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/intermediaries/${role}`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param role\n * @returns any\n * @throws ApiError\n */\n public static async fetchIntermediaryList(\n role: string,\n ): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/intermediaries/${role}`,\n });\n return result.body;\n }\n\n /**\n * @param oid\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async updateIntermediary(\n oid: string,\n requestBody: IntermediariesDTO,\n ): Promise {\n const result = await __request({\n method: 'PUT',\n path: `/live/api/commission_records/intermediaries/${oid}`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param role\n * @returns any\n * @throws ApiError\n */\n public static async fetchPolicyList(\n role: string,\n ): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/intermediaries/intermediaries-policies-list/${role}`,\n });\n return result.body;\n }\n\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { AdHocDto } from '../models/AdHocDto';\nimport type { CommissionBatchDTO } from '../models/CommissionBatchDTO';\nimport type { CommissionData } from '../models/CommissionData';\nimport type { CommissionRecordDTO } from '../models/CommissionRecordDTO';\nimport type { CommissionStatementDTO } from '../models/CommissionStatementDTO';\nimport type { DownloadCsvDto } from '../models/DownloadCsvDto';\nimport type { IncomeDeductiblesDTO } from '../models/IncomeDeductiblesDTO';\nimport type { NewCommissionDataDTO } from '../models/NewCommissionDataDTO';\nimport type { NewIncomeDeductiblesDTO } from '../models/NewIncomeDeductiblesDTO';\nimport type { Object } from '../models/Object';\nimport type { ReportGeneratorDto } from '../models/ReportGeneratorDto';\nimport type { ReportLogDTO } from '../models/ReportLogDTO';\nimport type { ScheduleTimeDto } from '../models/ScheduleTimeDto';\nimport type { UpdateCommissionBatchDTO } from '../models/UpdateCommissionBatchDTO';\nimport type { ValidateTaxInvoiceDTO } from '../models/ValidateTaxInvoiceDTO';\nimport { request as __request } from '@openapi/request';\n\nexport class CommissionRecordsService {\n\n /**\n * @returns CommissionBatchDTO\n * @throws ApiError\n */\n public static async commissionRecords(): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/all`,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async validateNewCommissionData(\n requestBody: Array,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/validate/new-commission-data`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async validateNewCommissionDataWithRemuneration(\n requestBody: NewCommissionDataDTO,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/validate/new-commission-data-remuneration`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async importNewCommissionData(\n requestBody: NewCommissionDataDTO,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/import/new-commission-data`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async importNewCommissionDataViaHierarchySetup(\n requestBody: NewCommissionDataDTO,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/import/new-commission-data-hierarchy-setup`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param commissionOid\n * @returns any\n * @throws ApiError\n */\n public static async deleteCommissionRecords(\n commissionOid: string,\n ): Promise {\n const result = await __request({\n method: 'DELETE',\n path: `/live/api/commission_records/${commissionOid}`,\n });\n return result.body;\n }\n\n /**\n * @returns any\n * @throws ApiError\n */\n public static async getReport(): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/report`,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async setScheduleJobTime(\n requestBody: ScheduleTimeDto,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/setScheduleJobTime`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async generateAdHocStatement(\n requestBody: AdHocDto,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/generateAdHocStatement`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @returns any\n * @throws ApiError\n */\n public static async getScheduleJobTime(): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/getScheduleJobTime`,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async downloadCsv(\n requestBody: DownloadCsvDto,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/downloadCsv`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param oid\n * @returns any\n * @throws ApiError\n */\n public static async getCommissionBatchCsv(\n oid: string,\n ): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/commission-batch-csv/${oid}`,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async reportGenerator(\n requestBody: ReportGeneratorDto,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/reportGenerator`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @returns CommissionStatementDTO\n * @throws ApiError\n */\n public static async reportList(): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/reportList/all`,\n });\n return result.body;\n }\n\n /**\n * @param userOid\n * @returns CommissionStatementDTO\n * @throws ApiError\n */\n public static async reportListForUser(\n userOid: string,\n ): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/reportList/${userOid}`,\n });\n return result.body;\n }\n\n /**\n * @param batchId\n * @returns CommissionStatementDTO\n * @throws ApiError\n */\n public static async getReportListByBatchId(\n batchId: number,\n ): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/statementList/${batchId}`,\n });\n return result.body;\n }\n\n /**\n * @param batchId\n * @param valueDate\n * @returns any\n * @throws ApiError\n */\n public static async getGiroReport(\n batchId: number,\n valueDate: number,\n ): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/giro-report`,\n query: {\n 'batchId': batchId,\n 'valueDate': valueDate,\n },\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async updatePublishedStatus(\n requestBody: Object,\n ): Promise {\n const result = await __request({\n method: 'PUT',\n path: `/live/api/commission_records/publishStatus`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @returns any\n * @throws ApiError\n */\n public static async listOfPrincipalsAndUsers(): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/listOfPrincipalsAndUsers`,\n });\n return result.body;\n }\n\n /**\n * @returns any\n * @throws ApiError\n */\n public static async getDeductiblesDescription(): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/deductibles/description`,\n });\n return result.body;\n }\n\n /**\n * @returns IncomeDeductiblesDTO\n * @throws ApiError\n */\n public static async allIncomeDeductibles(): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/deductibles/all`,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async addDeductibles(\n requestBody: Array,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/deductibles`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async updateDeductibles(\n requestBody: IncomeDeductiblesDTO,\n ): Promise {\n const result = await __request({\n method: 'PUT',\n path: `/live/api/commission_records/deductibles`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param oid\n * @returns any\n * @throws ApiError\n */\n public static async deleteDeductibles(\n oid: string,\n ): Promise {\n const result = await __request({\n method: 'DELETE',\n path: `/live/api/commission_records/deductibles/${oid}`,\n });\n return result.body;\n }\n\n /**\n * @returns ReportLogDTO\n * @throws ApiError\n */\n public static async getReportLog(): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/report-log`,\n });\n return result.body;\n }\n\n /**\n * @param batchOid\n * @returns CommissionRecordDTO\n * @throws ApiError\n */\n public static async getCommissionRecordsByBatch(\n batchOid: string,\n ): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/batch/${batchOid}`,\n });\n return result.body;\n }\n\n /**\n * @param policyNumber\n * @returns CommissionRecordDTO\n * @throws ApiError\n */\n public static async getCommissionRecordsByPolicyNumber(\n policyNumber: string,\n ): Promise> {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/${policyNumber}/policy`,\n });\n return result.body;\n }\n\n /**\n * @param policyNumber\n * @returns any\n * @throws ApiError\n */\n public static async downloadPolicyCommissionRecordsCsv(\n policyNumber: string,\n ): Promise {\n const result = await __request({\n method: 'GET',\n path: `/live/api/commission_records/${policyNumber}/csv`,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async updateCommissionBatch(\n requestBody: UpdateCommissionBatchDTO,\n ): Promise {\n const result = await __request({\n method: 'PUT',\n path: `/live/api/commission_records/batch`,\n body: requestBody,\n });\n return result.body;\n }\n\n /**\n * @param requestBody\n * @returns any\n * @throws ApiError\n */\n public static async validateTaxInvoiceNo(\n requestBody: ValidateTaxInvoiceDTO,\n ): Promise {\n const result = await __request({\n method: 'POST',\n path: `/live/api/commission_records/validate-tax-invoice-no`,\n body: requestBody,\n });\n return result.body;\n }\n\n}","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=style&index=0&id=11928856&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"datatable\",class:{'active': _vm.show, 'inactive': !_vm.show}},[_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"appdatatable\",attrs:{\"data\":_vm.currentPageData,\"stripe\":_vm.hasNoError,\"size\":\"mini\",\"row-key\":_vm.selectionKey,\"row-class-name\":_vm.tableRowClassName,\"header-cell-class-name\":'cell-header'},on:{\"sort-change\":_vm.sortChange,\"row-click\":_vm.rowClick,\"selection-change\":_vm.handleSelection}},[(_vm.selectionKey)?_c('el-table-column',{attrs:{\"type\":\"selection\",\"reserve-selection\":true}}):_vm._e(),_vm._l((_vm.columns),function(column){return [(column.options)?_c('el-table-column',{key:column.field,attrs:{\"prop\":column.field,\"label\":column.label,\"align\":\"center\",\"sortable\":column.sortable === undefined ? true : column.sortable},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('select',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(scope.row[column.field]),expression:\"scope.row[column.field]\",modifiers:{\"lazy\":true}}],on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(scope.row, column.field, $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.handleCustomEvent(scope.row)}]}},_vm._l((column.options),function(option,index){return _c('option',{key:index,domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.label))])}),0)]}}],null,true)}):(column.type)?_c('el-table-column',{key:column.field,attrs:{\"prop\":column.field,\"label\":column.label,\"align\":\"center\",\"sortable\":column.sortable === undefined ? true : column.sortable},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(column.type==='number')?[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number.lazy\",value:(scope.row[column.field]),expression:\"scope.row[column.field]\",modifiers:{\"number\":true,\"lazy\":true}}],attrs:{\"type\":column.type},domProps:{\"value\":(scope.row[column.field])},on:{\"change\":[function($event){_vm.$set(scope.row, column.field, _vm._n($event.target.value))},function($event){return _vm.handleCustomEvent(scope.row)}],\"blur\":function($event){return _vm.$forceUpdate()}}})]:(column.type === 'decimal-number')?[_c('AppDecimalNumber',{attrs:{\"decimal\":column.decimal,\"inputValue\":scope.row[column.field],\"disabled\":column.disabled}})]:(column.type === 'currency')?[_c('label',[_vm._v(_vm._s(_vm.convertToCurrency(scope.row[column.field])))])]:(column.type === 'action')?_vm._t(\"action\",function(){return _vm._l((column.buttons),function(button,index){return _c('button',{key:index,on:{\"click\":function($event){return _vm.$emit(button, scope.row)}}},[_vm._v(_vm._s(button))])})}):(column.type === 'actionWithFeatures')?_vm._t(\"action\",function(){return _vm._l((column.buttons),function(button,index){return _c('button',{key:index,attrs:{\"disabled\":button.shouldDisabled},on:{\"click\":function($event){return _vm.$emit(button.label, scope.row)}}},[_vm._v(_vm._s(button.label))])})}):_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(scope.row[column.field]),expression:\"scope.row[column.field]\",modifiers:{\"lazy\":true}}],attrs:{\"type\":column.type},domProps:{\"value\":(scope.row[column.field])},on:{\"change\":[function($event){return _vm.$set(scope.row, column.field, $event.target.value)},function($event){return _vm.handleCustomEvent(scope.row)}]}})]}}],null,true)}):_c('el-table-column',{key:column.field,attrs:{\"prop\":column.field,\"label\":column.label,\"align\":\"center\",\"sortable\":column.sortable === undefined ? true : column.sortable,\"show-overflow-tooltip\":true},scopedSlots:_vm._u([{key:\"content\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(scope.row[column.field]))])]}}],null,true)})]}),(_vm.redirect)?_c('el-table-column',{key:'redirect',attrs:{\"prop\":'redirect',\"align\":\"center\",\"sortable\":false},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('redirect', scope.row)}}},[_c('i',{staticClass:\"fas fa-external-link-alt\"})])]}}],null,false,2100746354)}):_vm._e()],2),_c('div',{staticClass:\"table-footer\"},[_c('div',{staticClass:\"table-info\"},[_vm._v(\"Show \"+_vm._s(_vm.infoFrom)+\" to \"+_vm._s(_vm.infoTo)+\" of \"+_vm._s(_vm.total)+\" entries\")]),_c('el-pagination',{attrs:{\"current-page\":_vm.currentPage,\"total\":_vm.total,\"hide-on-single-page\":false,\"page-sizes\":_vm.pageSizesDisplay,\"page-size\":_vm.pageSize,\"layout\":\"sizes, prev, pager, next, jumper\",\"background\":\"\"},on:{\"current-change\":_vm.pageChange,\"size-change\":_vm.handleSizeChange}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { isUndefined } from 'lodash/fp'\nimport AppDecimalNumber from './AppDecimalNumber.vue'\n\nexport interface Column {\n label: string;\n field: string;\n sortable?: boolean;\n options: { label: string; value: string }[];\n}\n\ninterface Sort {\n prop: string;\n order: 'ascending' | 'decending';\n}\n\n@Component({\n components: {\n AppDecimalNumber\n }\n})\nexport default class TheDatatable extends Vue {\n @Prop() readonly loading!: boolean\n @Prop() readonly columns!: Array\n @Prop() readonly data!: Array\n @Prop() readonly filters: Array\n @Prop() readonly sort!: Sort\n @Prop() readonly search!: string\n @Prop({ default: true }) readonly show!: boolean\n @Prop({ default: false }) readonly redirect!: boolean\n @Prop() readonly selectionKey: string\n private pageSizes = [10, 50, 100, 500, 1000]\n private pageSize = 10\n private currentPage = 1\n private sortBy: Sort = {\n prop: this.data[0],\n order: 'ascending'\n }\n\n @Prop() clearSelection: boolean\n\n get pageSizesDisplay () {\n // return first size(10), if data total less than 10\n if (this.total < this.pageSizes[0]) return [this.pageSizes[0]]\n\n // get all the size that less than total\n const sizes = this.pageSizes.filter(size => size < this.total)\n\n // push last size\n const lastSize = (Math.round(this.total / 10) + 1) * 10\n sizes.push(lastSize)\n\n return sizes\n }\n\n get filteredData () {\n if (isUndefined(this.search)) return this.data\n\n const searchKeyword = this.search.trim().toLowerCase()\n const data = (this.filters && this.filters.length) ? this.filters : this.data\n return data.filter(value => {\n const result = JSON.stringify(value).toLowerCase().includes(searchKeyword)\n return result\n })\n }\n\n get sortedData () {\n const data = this.filteredData.sort((a, b) => {\n if (this.sortBy.order === 'ascending') {\n if (a[this.sortBy.prop] > b[this.sortBy.prop]) { return 1 }\n if (a[this.sortBy.prop] < b[this.sortBy.prop]) { return -1 }\n } else {\n if (a[this.sortBy.prop] > b[this.sortBy.prop]) { return -1 }\n if (a[this.sortBy.prop] < b[this.sortBy.prop]) { return 1 }\n }\n return 0\n })\n return data\n }\n\n get currentPageData () {\n return this.sortedData.slice((this.currentPage - 1) * this.pageSize, this.pageSize * this.currentPage)\n }\n\n get total () {\n return this.filteredData.length\n }\n\n get infoFrom () {\n if (this.currentPage !== 1) {\n return (this.currentPage - 1) * this.pageSize + 1\n } else {\n return this.filteredData.length ? 1 : 0\n }\n }\n\n get infoTo () {\n return this.currentPageData.length < this.pageSize\n ? this.pageSize * (this.currentPage - 1) + this.currentPageData.length\n : this.pageSize * this.currentPage\n }\n\n get hasNoError () {\n return this.data.every(e => e.error === undefined)\n }\n\n pageChange (currentPage: number): void {\n this.currentPage = currentPage\n this.$emit('pageChangeCustom', this.currentPage)\n }\n\n sortChange (sort: Sort): void {\n this.sortBy.prop = sort.prop\n this.sortBy.order = sort.order || 'ascending'\n }\n\n rowClick (row: any): void {\n if (row.emit) this.$emit('rowClickCustom', row)\n if (!row.redirect) return\n window.location.href = row.redirect\n }\n\n handleSelection (rows: any[]) {\n this.$emit('selectionChange', rows)\n }\n\n handleCustomEvent (row) {\n this.$emit('customEventSelect', row)\n }\n\n tableRowClassName ({ row }) {\n if (row.error) {\n return 'warning-row'\n } else {\n return ''\n }\n }\n\n clearCheckboxOnHeader () {\n const appdatatable = this.$refs.appdatatable as any\n if (this.selectionKey && appdatatable) {\n appdatatable.clearSelection()\n }\n }\n\n handleSizeChange (val) {\n this.pageSize = val\n }\n\n convertToCurrency (value, currencySymbol = '') {\n if (!value && value !== 0) return ''\n return currencySymbol + Number(value).toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n })\n }\n\n mounted () {\n this.sortBy = this.sort\n this.clearCheckboxOnHeader()\n }\n\n @Watch('clearSelection')\n clearSelectionCheckbox () {\n if (this.clearSelection) {\n this.clearCheckboxOnHeader()\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDatatable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDatatable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppDatatable.vue?vue&type=template&id=4b557606&scoped=true&\"\nimport script from \"./AppDatatable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppDatatable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppDatatable.vue?vue&type=style&index=0&id=4b557606&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4b557606\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=style&index=0&id=423a3b72&lang=scss&scoped=true&\"","'use strict';\n\n// there's 3 implementations written in increasing order of efficiency\n\n// 1 - no Set type is defined\nfunction uniqNoSet(arr) {\n\tvar ret = [];\n\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (ret.indexOf(arr[i]) === -1) {\n\t\t\tret.push(arr[i]);\n\t\t}\n\t}\n\n\treturn ret;\n}\n\n// 2 - a simple Set type is defined\nfunction uniqSet(arr) {\n\tvar seen = new Set();\n\treturn arr.filter(function (el) {\n\t\tif (!seen.has(el)) {\n\t\t\tseen.add(el);\n\t\t\treturn true;\n\t\t}\n\t});\n}\n\n// 3 - a standard Set type is defined and it has a forEach method\nfunction uniqSetWithForEach(arr) {\n\tvar ret = [];\n\n\t(new Set(arr)).forEach(function (el) {\n\t\tret.push(el);\n\t});\n\n\treturn ret;\n}\n\n// V8 currently has a broken implementation\n// https://github.com/joyent/node/issues/8449\nfunction doesForEachActuallyWork() {\n\tvar ret = false;\n\n\t(new Set([true])).forEach(function (el) {\n\t\tret = el;\n\t});\n\n\treturn ret === true;\n}\n\nif ('Set' in global) {\n\tif (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) {\n\t\tmodule.exports = uniqSetWithForEach;\n\t} else {\n\t\tmodule.exports = uniqSet;\n\t}\n} else {\n\tmodule.exports = uniqNoSet;\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDatatable.vue?vue&type=style&index=0&id=4b557606&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"column-group\",style:(_vm.gridStyle),attrs:{\"id\":\"app-form\"}},[_vm._l((_vm.structuresDetails),function(structure){return [(_vm.shouldShow(structure.show))?_c('div',{key:structure.key,staticClass:\"input-group-with-theme\",class:[{ 'input-disabled': _vm.shouldDisabled(structure.disabled)}, _vm.getCustomClass(structure)],attrs:{\"has-msg\":structure.hasErrors,\"focusing\":_vm.focusId == _vm.getId(structure.key),\"id\":(\"box-\" + (_vm.getId(structure.key)))},on:{\"click\":function($event){return _vm.focusInner(structure)}}},[[(structure.labelModel)?_c('input',{staticClass:\"label\",attrs:{\"type\":\"text\",\"placeholder\":structure.label,\"data-test\":(\"label-input:\" + (_vm.getTestId(structure.key)))},domProps:{\"value\":_vm.labelModelValue(structure.labelModel.get())},on:{\"input\":function($event){return structure.labelModel.set($event.target.value)}}}):(structure.labelKey)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model[structure.labelKey]),expression:\"model[structure.labelKey]\"}],staticClass:\"label\",attrs:{\"type\":\"text\",\"data-test\":(\"label-input:\" + (_vm.getTestId(structure.key)))},domProps:{\"value\":(_vm.model[structure.labelKey])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, structure.labelKey, $event.target.value)}}}):_vm._e(),(structure.labelModel || structure.labelKey)?_c('i',{staticClass:\"fa fa-pencil-alt right-sided\"}):(structure.type === 'single-checkbox')?_c('span'):_c('label',{attrs:{\"for\":_vm.getId(structure.key),\"id\":_vm.getId(structure.key) + '_label'},domProps:{\"innerHTML\":_vm._s(structure.label)}}),(structure.tooltip)?_c('AppTooltip',{attrs:{\"tooltipConfig\":structure.tooltip}}):_vm._e(),(_vm.isModernTheme)?_vm._l((structure.errors),function(ref,eidx){\nvar msg = ref.msg;\nreturn _c('div',{key:((structure.key) + \"-error-\" + eidx),staticClass:\"form-msg\",class:{\n full:\n eidx === 0 || _vm.fullErr === ((structure.key) + \"-error-\" + eidx),\n },on:{\"click\":function($event){_vm.fullErr = (structure.key) + \"-error-\" + eidx}}},[_c('el-tooltip',[_c('span',{staticClass:\"el-icon-warning\"}),_c('span',{attrs:{\"slot\":\"content\"},slot:\"content\"},[_vm._v(_vm._s(msg))])])],1)}):_vm._e()],(structure.options && structure.type === 'smart')?_c('AppSmartSelect',{attrs:{\"options\":structure.options,\"value\":_vm.model[structure.key],\"multiple\":structure.multiple,\"cols\":structure.optionCols,\"multiLimit\":structure.multiLimit,\"buttonName\":structure.buttonName,\"cycleMode\":structure.cycleMode,\"displayDirection\":structure.displayDirection,\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'single-checkbox')?_c('el-checkbox',{attrs:{\"value\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"change\":function($event){return _vm.setValue(structure, $event)}}},[_vm._v(\" \"+_vm._s(structure.label)+\" \")]):(structure.options && structure.type === 'checkbox')?_c('AppCheckboxGroup',{attrs:{\"structure\":structure,\"model\":_vm.model,\"column\":structure.checkboxColumnNo,\"compact\":structure.compact},on:{\"change\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.options && structure.type === 'radio')?_c('AppRadioSelection',{attrs:{\"options\":structure.options,\"value\":_vm.model[structure.key],\"buttonName\":structure.buttonName,\"displayDirection\":structure.displayDirection,\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'multi')?_c('el-select',{staticClass:\"form-multi-select\",attrs:{\"value\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled),\"multiple\":\"\",\"collapse-tags\":\"\",\"size\":'small',\"popper-class\":'wen-popper-class'},on:{\"change\":function($event){return _vm.setValue(structure, $event)}}},_vm._l((structure.options),function(option,index){return _c('el-option',{key:index,attrs:{\"value\":option.value,\"label\":option.label}})}),1):(structure.options)?_c('select',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"disabled\":_vm.shouldDisabled(structure.disabled)},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setSelectValue($event.target, structure)}}},_vm._l((structure.options),function(option,index){return _c('option',{key:index,domProps:{\"value\":option.value}},[_vm._v(\" \"+_vm._s(option.label)+\" \")])}),0):(structure.type === 'decimal-number')?[_c('AppDecimalNumber',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"decimal\":structure.decimal,\"inputValue\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled)},on:{\"input\":function($event){return _vm.setValue(structure, $event)}}})]:(structure.type === 'number' || structure.type === 'time' || structure.type === 'password')?_c('input',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"type\":structure.type,\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxChar},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setValue(structure, $event.target.value)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'currency')?_c('currency-input',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"currency\":structure.currencyFormat,\"aria-labelledby\":_vm.getLabelId(structure.key),\"value\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled),\"precision\":structure.precision},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'date' || structure.type === 'month')?_c('AppDateInput',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"value\":_vm.getValue(structure),\"id\":_vm.getId(structure.key),\"input-type\":structure.type,\"data-test\":_vm.getTestId(structure.key),\"aria-label\":structure.label,\"disabled\":_vm.shouldDisabled(structure.disabled),\"futureDate\":structure.futureDate,\"disabledFutureDate\":structure.disabledFutureDate},on:{\"input\":function($event){return _vm.setValue(structure, $event)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'textarea')?_c('textarea',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxChar,\"rows\":structure.rows || 10},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setValue(structure, $event.target.value)},\"blur\":function($event){return _vm.blurHandler()}}}):(structure.type === 'table')?_c('AppFormTable',{staticClass:\"inner-table\",attrs:{\"innerTable\":true,\"vertical\":structure.isVertical,\"maxSize\":structure.maxSize,\"fields\":structure.columns,\"data\":_vm.getValueForTable(structure)},on:{\"add\":structure.add,\"remove\":structure.remove}}):(structure.type==='na-currency')?[_c('AppCurrencyNA',{attrs:{\"inputValue\":_vm.getValue(structure),\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxLength},on:{\"input\":function($event){return _vm.setValue(structure, $event)}}})]:_c('input',{class:{ 'myinfo-disabled': structure.isMyInfo },attrs:{\"id\":_vm.getId(structure.key),\"data-test\":_vm.getTestId(structure.key),\"aria-labelledby\":_vm.getLabelId(structure.key),\"type\":\"text\",\"disabled\":_vm.shouldDisabled(structure.disabled),\"maxlength\":structure.maxChar},domProps:{\"value\":_vm.getValue(structure)},on:{\"input\":function($event){return _vm.setValue(structure, $event.target.value)},\"blur\":function($event){return _vm.blurHandler(structure, $event.target.value)}}}),(structure.isMyInfo)?_c('img',{staticClass:\"input-hint logo\",attrs:{\"src\":require(\"@core/assets/myinfo-icon.svg\")}}):_vm._e(),(structure.counterMsg && _vm.isModernTheme)?_c('div',{staticClass:\"char-counter\"},[_vm._v(\" \"+_vm._s(structure.counterMsg)+\" \")]):_vm._e()],2):_vm._e()]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputModal),expression:\"inputModal\"}],attrs:{\"maxlength\":_vm.maxlength,\"disabled\":_vm.disabled},domProps:{\"value\":(_vm.inputModal)},on:{\"keypress\":function($event){return _vm.numberAndNAOnly($event)},\"blur\":function($event){return _vm.onBlur()},\"focus\":function($event){return _vm.onFocus()},\"select\":function($event){return _vm.onSelect($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.inputModal=$event.target.value}}}),(!_vm.disabled)?_c('div',{staticClass:\"char-counter\"},[_vm._v(\" \"+_vm._s(_vm.counterMsg)+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { IProjectInfo } from '@master/config/IProjectInfo'\nimport { inject } from 'inversify-props'\n\n@Component\nexport default class AppCurrencyNA extends Vue {\n @Prop() inputValue\n @Prop({ default: true }) useCurrency!: boolean\n @Prop({ default: 10 }) maxlength?: number\n @Prop({ default: false }) disabled: boolean\n\n @inject()\n private projectInfo: IProjectInfo\n\n inputModal = ''\n textIsSelected = false\n\n get counterMsg () {\n if (typeof this.maxlength === 'undefined') return\n const number = this.convertCurrencyToNumber(this.inputModal)\n const remainingChar = this.maxlength - (number.toString().length || 0)\n return remainingChar > 0 ? `${remainingChar} letter(s) remaining` : 'Max character limit reached'\n }\n\n numberAndNAOnly (evt) {\n evt = (evt) || window.event\n const charCode = (evt.which) ? evt.which : evt.keyCode\n\n const currentValue = evt.target.value\n if (this.textIsSelected) {\n if (!this.isAlphabetN(charCode) && this.isNonNumber(charCode)) {\n evt.preventDefault()\n } else {\n this.textIsSelected = false\n }\n return true\n }\n\n // if current value is 'NA', cannot key in other character\n if (currentValue.toUpperCase() === 'NA') {\n evt.preventDefault()\n }\n\n // if current value is N, the followed char must be A\n if (this.isAlphabetN(currentValue.charCodeAt(0))) {\n if (this.isAlphabetA(charCode)) {\n return true\n }\n evt.preventDefault() // only can accept A\n }\n\n // if there is empty value, it can either key in char N or number only\n if (!currentValue) {\n if (this.isAlphabetN(charCode)) {\n return true\n }\n }\n\n // cannot key in non number value\n if (this.isNonNumber(charCode)) {\n evt.preventDefault()\n } else {\n return true\n }\n }\n\n isAlphabetN (charCode) {\n return charCode === 78 || charCode === 110\n }\n\n isAlphabetA (charCode) {\n return charCode === 65 || charCode === 97\n }\n\n isNonNumber (charCode) {\n return charCode > 31 && (charCode < 48 || charCode > 57)\n }\n\n onBlur () {\n if (!this.inputModal && this.inputModal !== '0') {\n this.inputModal = this.formatValue('')\n this.$emit('input', '')\n return\n }\n\n // format na to NA to display\n if (this.inputModal.toUpperCase() === 'NA') {\n this.inputModal = 'NA'\n this.$emit('input', 'NA')\n return\n }\n\n // in case only key in 'n' and on blur, format it to NA\n if (isNaN(Number(this.inputModal))) {\n this.inputModal = 'NA'\n this.$emit('input', 'NA')\n return\n }\n\n const number = this.convertCurrencyToNumber(this.inputModal)\n this.inputModal = this.formatValue(number)\n this.$emit('input', Number(number))\n }\n\n onFocus () {\n this.inputModal = this.convertCurrencyToNumber(this.inputModal)\n }\n\n onSelect () {\n this.textIsSelected = true\n }\n\n formatValue (source) {\n if (typeof source === 'string') {\n if (source.toUpperCase() === 'NA' || source === '') {\n return source\n }\n source = Number(source.replace('$', '').replace(',', ''))\n } else if (source === undefined || source == null) {\n source = ''\n }\n return this.useCurrency ? this.currencyPrefix + source?.toLocaleString('en-US') : source?.toLocaleString('en-US')\n }\n\n convertCurrencyToNumber (currency) {\n return currency.replaceAll(this.currencyPrefix, '').replaceAll(',', '')\n }\n\n get currencyPrefix () {\n return this.projectInfo.currency ?? 'SGD$'\n }\n\n @Watch('inputValue')\n inputValueOnChange () {\n if (this.inputValue || this.inputValue === '0' || Number(this.inputValue) === 0) {\n this.inputModal = this.formatValue(this.inputValue)\n } else {\n this.inputModal = this.formatValue('')\n }\n }\n\n mounted () {\n this.inputModal = this.formatValue(this.inputValue)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCurrencyNA.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppCurrencyNA.vue?vue&type=template&id=423a3b72&scoped=true&\"\nimport script from \"./AppCurrencyNA.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppCurrencyNA.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppCurrencyNA.vue?vue&type=style&index=0&id=423a3b72&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"423a3b72\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Base } from '@master/model/Base'\nimport { FormStructure, Input, TableSetup } from '@master/model/structure/FormStructure'\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport AppCheckboxGroup from '@core/components/AppCheckboxGroup.vue'\nimport AppFormTable from '@core/components/AppFormTable.vue'\nimport AppRadioSelection from '@core/components/AppRadioSelection.vue'\nimport AppSmartSelect from '@core/components/AppSmartSelect.vue'\nimport { inject } from 'inversify-props'\nimport { IDateService } from '@master/services/IDateService'\nimport AppDateInput from './AppDateInput.vue'\nimport { getMaxChar } from '@master/annotation/MaxChar'\nimport { IProjectSettings } from '@master/config/IProjectSettings'\nimport { isUndefined } from 'lodash/fp'\nimport randomstring from 'randomstring'\nimport AppCurrencyNA from './AppCurrencyNA.vue'\nimport AppDecimalNumber from './AppDecimalNumber.vue'\nimport AppTooltip from './AppTooltip.vue'\n\n@Component({\n components: {\n AppSmartSelect,\n AppCheckboxGroup,\n AppRadioSelection,\n AppDateInput,\n AppFormTable,\n AppCurrencyNA,\n AppDecimalNumber,\n AppTooltip\n }\n})\n\nexport default class AppForm extends Vue {\n @Prop() readonly structures!: FormStructure[];\n @Prop() readonly model!: T;\n @Prop({ default: 1 }) readonly columns: number;\n @Prop() readonly errors?: { key: string; msg: string }[];\n @Prop({ default: () => { return Date.now() } })\n readonly uniqueID: string;\n\n @Prop({ default: false }) readonly readOnly: boolean;\n\n @inject()\n private dateService: IDateService;\n\n @inject()\n private projectSettings: IProjectSettings;\n\n private minimal = true;\n // private renderCnt = 0;\n private focusId = null;\n private fullErr = null;\n\n get structuresDetails () {\n return this.structures.map((structure) => {\n const key = (structure as any).key\n const errors = this.errors?.filter((err) => err.key === key) || []\n const maxChar = getMaxChar(this.model, key)\n const charLeft = this.getCharLeft(key)\n const counterMsg = this.getCounterMsg(maxChar, charLeft)\n return {\n errors,\n hasErrors: errors?.length > 0,\n maxChar,\n counterMsg,\n ...structure\n }\n })\n }\n\n get gridStyle () {\n return {\n gridTemplateColumns: `repeat(${this.columns}, minmax(0, 1fr))`\n }\n }\n\n get isModernTheme () {\n return this.projectSettings.theme === 'Modern'\n }\n\n getCounterMsg (maxChar, charLeft) {\n if (!this.isModernTheme) return '' // counterMsg only used in Modern Theme\n return maxChar ? charLeft > 0 ? `${charLeft} letters remaining` : 'Max character limit reached' : ''\n }\n\n shouldDisabled (condition: boolean | Function = false) {\n if (this.readOnly) return true\n if (condition === undefined) {\n return false\n } else if (condition instanceof Function) {\n return condition(this.model)\n } else {\n return condition\n }\n }\n\n shouldShow (condition: boolean | Function = true) {\n if (condition === undefined) {\n return false\n } else if (condition instanceof Function) {\n return condition(this.model)\n } else {\n return condition\n }\n }\n\n getValue (input: Input) {\n if (input.type === 'currency') {\n const oriValue = this.model[input.key]\n if (typeof oriValue === 'string' || oriValue instanceof String) {\n return Number(this.model[input.key])\n }\n }\n if (input.key) {\n return this.model[input.key]\n } else if (input.model) {\n return input.model.get()\n } else {\n throw new Error(\n `Invalid config for label ${input.label}: key or model is required`\n )\n }\n }\n\n /**\n * Return null as the label if it is empty so\n * that the placeholder will appear\n */\n labelModelValue (labelValue: string) {\n return !labelValue ? null : labelValue\n }\n\n getValueForTable (input: TableSetup) {\n if (input.key) {\n return this.model[input.key]\n } else if (input.data) {\n return input.data\n } else {\n throw new Error(\n `Invalid config for label ${input.label}: key or model is required`\n )\n }\n }\n\n // this is to resolve the issue of event.target.value is always passed as string, but our use cases might need number\n setSelectValue (event, structure) {\n const selectedOption = structure.options[event.selectedIndex]\n this.setValue(structure, selectedOption.value)\n }\n\n setValue (input: Input, _value: T[keyof T]) {\n const value: any = input.type === 'number' ? +_value || 0 : _value\n\n if (input.key) {\n if (input.onChange) {\n input.onChange(this.model[input.key], value)\n }\n // when only has getter (for currency input), sidestep the error\n try {\n this.model[input.key] = value\n } catch (ex) {}\n } else if (input.model) {\n if (input.onChange) {\n input.onChange(this.model[input.key], value)\n }\n return input.model.set(value)\n } else {\n throw new Error(`Invalid config for label ${input.label}: key or model is required`)\n }\n }\n\n getId (key: string) {\n if (this.model && 'snakeCaseKey' in this.model) {\n return `${this.uniqueID}_${this.model.snakeCaseKey(key)}`\n }\n\n if (isUndefined(key)) {\n key = randomstring.generate(6)\n }\n\n if (this.uniqueID) {\n return `${this.uniqueID}_${key}`\n }\n\n return `${key}`\n }\n\n getTestId (key: string) {\n if (this.model && 'snakeCaseKey' in this.model) {\n return `${this.model.snakeCaseKey(key)}`\n }\n return undefined\n }\n\n getLabelId (key: string) {\n return this.getId(key) + '_label'\n }\n\n arrangeCols () {\n const curAppForm = this.$el\n const hasOverflow = curAppForm.scrollWidth > curAppForm.clientWidth\n if (hasOverflow) this.minimal = true\n }\n\n blurHandler (input: Input, _value: T[keyof T]) {\n if (this.isModernTheme) {\n this.focusId = null\n }\n\n if (input && input?.onBlur) {\n input.onBlur(_value)\n }\n }\n\n // use to handle Modern theme\n focusInner (structure: any) {\n // this means label is also editable, thus do not auto focus input\n if (structure.labelModel || structure.labelKey || structure.model) return\n const eleId = this.getId(structure.key)\n this.focusId = eleId\n const ele = document.getElementById(eleId)\n if (ele) ele.focus()\n }\n\n getCharLeft (key: string) {\n const mc = getMaxChar(this.model, key)\n return mc ? mc - (this.model[key]?.length || 0) : mc\n }\n\n getCustomClass (structure) {\n return structure.classes ? [...structure.classes] : []\n }\n\n // @Watch('structures')\n // structuresUpdated () {\n // // this is to allow view to be updated when structures change\n // this.renderCnt++\n // }\n\n @Watch('structuresDetails', { deep: true })\n focusError (swe) {\n if (!this.isModernTheme) return // this is used for Modern Theme\n\n const first = swe.find((s) => 'msg' in s)\n if (!first) return\n const ele = document.getElementById(`box-${this.getId(first.key)}`)\n if (!ele) return\n ele.scrollIntoView({ behavior: 'smooth', block: 'end' })\n }\n\n updated () {\n this.arrangeCols()\n }\n\n mounted () {\n this.arrangeCols()\n window.addEventListener('resize', () => this.arrangeCols())\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppForm.vue?vue&type=template&id=11928856&scoped=true&\"\nimport script from \"./AppForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppForm.vue?vue&type=style&index=0&id=11928856&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11928856\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}